Geral 3min de Leitura - 26 de maio de 2020

70% dos aplicativos têm bugs relacionados à segurança

Homem sentado em frente à três telas de computador.

This post is also available in: Português

Problema surge pelo uso indiscriminado de bibliotecas de código aberto, que sem o devido cuidado podem levar a vulnerabilidades nos softwares.

Atualmente, sete em cada dez aplicativos têm pelo menos uma falha de segurança decorrente do uso de uma biblioteca de código aberto. É o que mostra o relatório anual State of Software Security da companhia Veracode. Segundo o documento, essas bibliotecas de código aberto não apenas são quase onipresentes, mas também arriscadas. Tratam-se conjuntos de códigos gratuitos e centralizados que fornecem “blocos de construção” de aplicativos prontos para desenvolvedores.

A análise examinou 351.000 bibliotecas externas em 85.000 aplicativos e constatou que são extremamente comuns. A maioria dos aplicativos JavaScript, por exemplo, contém centenas de bibliotecas de código aberto; alguns possuem mais de mil. Além disso, a maioria dos idiomas apresenta o mesmo conjunto de bibliotecas principais. “O JavaScript e o PHP, em particular, têm várias bibliotecas principais que estão em praticamente todos os aplicativos”, diz um trecho do relatório.

Essas bibliotecas, como diversos outros softwares, podem ter bugs. A questão é que, por conta da reutilização do código, um único bug pode afetar centenas de aplicativos. São recursos que permitem que os desenvolvedores atuem mais rapidamente, adicionando funcionalidades básicas com mais agilidade. Contudo, a falta de conscientização sobre onde e como as bibliotecas de código aberto estão sendo usadas, e seus fatores de risco, faz disso uma prática problemática. É como consultar sempre o mesmo livro que tem diversas informações questionáveis, sem preocupar-se em descobrir quais são duvidosas e quais são autênticas – a ainda assim utilizar todas.

Onde e como

Quatro tipos representam a maioria dos erros de código aberto encontrados nos aplicativos: Swift, .NET, Go e PHP. O Swift tem uso especializado no ecossistema da Apple e possui a maior densidade de falhas. No entanto, registra uma baixa porcentagem geral de bibliotecas defeituosas em termos de volume.

Enquanto isso, o .NET tem o menor percentual de defeitos dentre as quatro, porém em uma “população” que é 17 vezes maior que a Swift. Por sua vez, o Go tem uma alta porcentagem de bibliotecas com falhas, mas um número geral baixo de falhas por biblioteca individual. E o PHP tem uma taxa mais alta de registros defeituosos do que o Go – contudo, tem o dobro da densidade de falhas em uma determinada biblioteca.

A empresa também descobriu que o XSS (cross-site scripting) é a categoria de vulnerabilidade mais comum, presente em 30% dos casos. Em seguida, está a desserialização insegura (23,5%) e controle de acesso interrompido (20,3%).

“Descobrimos que a desserialização insegura era uma falha relativamente rara entre as aplicações internas”, segundo o relatório. “Ter uma classificação alta nesse quesito seria preocupante, pois essa categoria de falhas pode resultar na execução de caminhos de códigos inesperados, o que significa que partes das bibliotecas que não pretendemos usar podem ser inseridas no caminho de execução de sua hospedagem através do uso dessa falha”, relatam os autores do estudo.

Sem freio

Os dados também mostraram que a maioria das bibliotecas defeituosas acaba no código indiretamente, graças às interdependências em cascata. Os desenvolvedores podem usar uma biblioteca – mas, sem o conhecimento deles, a biblioteca que estão usando pode extrair o código de uma biblioteca de código-fonte totalmente diferente para sustentá-la.

Cerca de 47% das bibliotecas defeituosas nos aplicativos são transitivas, ou seja, não são atraídas diretamente pelos desenvolvedores, mas estão sendo atraídas pela primeira biblioteca (42% são atraídas diretamente, e 11% por ambas). Isso significa que os desenvolvedores estão introduzindo muito mais código, frequentemente defeituosos, do que deveriam estar usando.

Problema “menor”

A boa notícia é que lidar com falhas de segurança nessas bibliotecas não é uma questão de proporções gigantescas. A maioria das falhas introduzidas na biblioteca (quase 75%) dos aplicativos pode ser solucionada com apenas uma pequena atualização de versão. Nesse contexto, a pesquisa sugere que esse problema é de descoberta e rastreamento, não de grande reconstrução de código. Ainda assim, precisam de atenção, pois toda e qualquer vulnerabilidade de segurança precisa ser corrigida o mais rápido possível.

This post is also available in: Português