Desenvolvedores Java e .NET propensos a vulnerabilidades mais frequentes

Desenvolvedores Java e .NET propensos a vulnerabilidades mais frequentes

Nó Fonte: 1901108

Mais de três quartos dos aplicativos escritos em Java e .NET têm pelo menos uma vulnerabilidade do OWASP Top 10, uma lista de pontos fracos de software que os desenvolvedores geralmente usam como linha de base para a segurança do aplicativo.

Isso é de acordo com a empresa de teste de software Veracode, que descobriu em uma análise de quase 760,000 aplicativos que cerca de um em cada cinco aplicativos que usam esses dois ecossistemas de programação tinha pelo menos uma vulnerabilidade de alta gravidade ou gravidade crítica.

No geral, o aplicativo médio teve 27% de chance de ter pelo menos uma vulnerabilidade introduzida a cada mês, com aplicativos mal escritos e aplicativos verificados com pouca frequência provavelmente com mais falhas, enquanto aplicativos com um histórico mais longo de processos de segurança e escritos por profissionais bem treinados desenvolvedores menos propensos a introduzir novas falhas, mostraram os dados.

A análise destaca a importância de integrar a segurança no pipeline de desenvolvimento, diz Tim Jarrett, vice-presidente de gerenciamento estratégico de produtos da Veracode.

“Os dados mostram consistentemente que, se você criar o hábito de segurança em seu processo, terá um resultado melhor, tanto em termos de correção de falhas gerais quanto … " ele diz.

Enquanto isso, as empresas de software e as equipes de desenvolvimento continuam lutando para eliminar defeitos e vulnerabilidades do código do aplicativo. Enquanto desenvolvedores e projetos de código aberto são corrigindo falhas de software mais rapidamente, a meia-vida da vulnerabilidade média continua a ser medida em meses, não em dias ou semanas, de acordo com o relatório “State of Software Security” da Veracode, publicado em 11 de janeiro. 

Por exemplo, aplicativos Java e .NET, que responderam por 71% do total de aplicativos analisados ​​pelo estudo, viram metade das falhas ainda impactando os aplicativos após 243 dias e 158 dias, respectivamente.

Meia vida das vulnerabilidades por linguagem de programação

Fonte: relatório “State of Software Security” da Veracode

O excesso de aplicativos e a idade tiveram um impacto negativo significativo em sua segurança. O aplicativo médio acumulou cerca de 40% a mais de código e é mais provável que tenha vulnerabilidades. Cerca de 54% dos aplicativos com dois anos apresentam falhas, enquanto 69% dos aplicativos com cinco anos apresentam falhas, a análise encontrada.

Segurança surpreendente do JavaScript

Surpreendentemente, os aplicativos escritos em JavaScript ou que usam uma das estruturas JavaScript tendem a se sair melhor nas verificações de vulnerabilidade. Enquanto cerca de 80% dos aplicativos Java e .NET tinham uma vulnerabilidade, apenas 56% dos aplicativos JavaScript tinham. E enquanto cerca de 20% dos aplicativos Java e .NET tinham uma vulnerabilidade de alta gravidade, menos de 10% dos aplicativos JavaScript tinham.

As estruturas JavaScript são mais recentes, têm mais segurança e têm os benefícios de um ecossistema de código aberto, do qual o Java se beneficiou apenas recentemente, diz Jarret.

“JavaScript é uma linguagem mais recente, então os aplicativos escritos nele [são] mais novos, e há uma correlação que estabelecemos em relatórios anteriores entre a idade do aplicativo e o tempo de correção de falhas”, diz ele. “Muitas das ferramentas para JavaScript [são] maduras e é uma linguagem bem suportada.”

Além disso, onde uma vulnerabilidade em um aplicativo Java é um problema primário – deixando o desenvolvedor corrigir os problemas – em JavaScript e na estrutura Node.js, as vulnerabilidades geralmente são um problema de terceiros, porque a vulnerabilidade ocorreu em um componente do qual o software depende.

“A maneira como você corrige um problema de segurança em um aplicativo Java ainda é basicamente [onde] você faz uma alteração em um arquivo de classe e o compila”, diz ele. “Em um aplicativo JavaScript, é mais um problema de gerenciamento de pacotes. E isso é algo diferente para um desenvolvedor aprender, o que pode ser mais fácil.”

Novas linguagens de programação definham

Os dados do relatório também destacam a diferença entre as linguagens de programação que os desenvolvedores estão aprendendo e aquelas realmente usadas na maioria das empresas. As principais linguagens e ecossistemas — Java, .NET e JavaScript — vistas pela Veracode não são a tecnologia de programação escolhida pelos desenvolvedores.

Embora as estruturas baseadas em JavaScript e JS — como Node.js, React.js e Angular — dominem as listas de tecnologias preferidas dos desenvolvedores, Java é uma das linguagens de programação menos apreciadas, com 54% dos entrevistados temendo a linguagem, em comparação com 46% que adoraram, de acordo com Stack Overflow Pesquisa de Desenvolvedores 2022

No entanto, Java dominou a parcela de aplicativos verificados por clientes Veracode (44%) em comparação com 14% para JavaScript. 

Além disso, a linguagem de programação mais amada, Rust, nem aparece nos dados da Veracode, enquanto a número 6 dos desenvolvedores, Python, representa apenas menos de 4% dos aplicativos verificados.

Parte do motivo da desconexão é que os aplicativos estabelecidos são escritos em linguagens de programação estabelecidas, diz Jarrett, da Veracode.

“Você tem o universo completo de todo o código que está por aí, e então você tem o tipo de espuma na crista da onda de novos desenvolvimentos que está acontecendo, e é aí que você vê as pessoas pegando Go, Rust e Dart e Flutter,” ele diz.

Devido às bases de código agregadas de aplicativos escritos nessas linguagens, essa situação provavelmente não mudará.

“Aplicativos antigos nunca morrem, infelizmente, então há muita massa crítica em empresas com essas grandes bases de código Java e bases de código .NET”, diz ele.

Carimbo de hora:

Mais de Leitura escura