O 10º Relatório Anual da Sonatype sobre o Estado da Cadeia de Fornecimento de Software® já está disponível e, nós homeostase, partilhamos os resultados.
Apoiado por dados de mais de 7 milhões de projetos de código aberto, o relatório deste ano destaca a crescente ameaça de malware de código aberto e os riscos na cadeia de fornecimento de software num ano em que o consumo de código aberto atingiu 6,6 trilhões de downloads.
Escala de código aberto e comportamentos de consumo
A adoção de software de código aberto está numa escala de solicitação de vários trilhões, com os ecossistemas JavaScript (npm) e Python (PyPI) a liderar a lista:
- O JavaScript (npm) foi responsável por 4,5 trilhões de solicitações em 2024, representando um crescimento de 70% nas solicitações ano a ano.
- Estima-se que o Python (PyPI), impulsionado pela IA e pela adoção da nuvem, atinja 530 bilhões de solicitações de pacotes até o final de 2024. Um aumento de 87% ano a ano.
Mas este crescimento traz novos riscos. O aumento do malware de código aberto infiltrou-se nos ecossistemas de código aberto a um ritmo alarmante.
Mais de 512.847 pacotes maliciosos foram registados apenas no ano passado, um aumento de 156% em relação ao ano anterior.
As ferramentas de segurança tradicionais muitas vezes não conseguem detectar estes novos ataques, deixando os desenvolvedores e os ambientes de criação automatizados altamente vulneráveis. Isto resultou numa nova vaga de ataques à cadeia de fornecimento.
Além disso, cada ecossistema apresenta desafios diferentes. Por exemplo, o npm teve grande parte do seu crescimento de vulnerabilidades devido ao spam.
Já o Python é o que mais cresce em projectos e volume, e apresenta mais vulnerabilidades por pacote em comparação com outros. E o Java (Maven) tem uma média de 28 versões por projeto.
Risco persistente e complacência do consumidor
Paralelamente, as organizações continuam a debater-se com uma mitigação deficiente dos riscos.
Por isso, este ano, surgiu o conceito de “Risco Persistente”. Uma combinação de vulnerabilidades não corrigidas e corrosivas que continua a impactar a integridade da segurança do software ao longo do tempo.
Um exemplo disso é o Log4j, em que 13% dos downloads permanecem vulneráveis três anos após a exposição da vulnerabilidade Log4Shell. Embora haja uma concentração neste aumento de projectos de código aberto contaminados, ou malware, a realidade é que todo o software de código aberto ou comercial acabará por ter bugs que evoluem para vulnerabilidades.
- 80% das dependências de aplicações permanecem sem atualização durante mais de um ano, apesar de 95% destas versões vulneráveis terem alternativas mais seguras prontamente disponíveis. Não é uma questão de “se” ocorrerá uma violação, mas sim de “quando”.
- Apenas 0,5% dos componentes OSS (Open Source Software) não têm atualização disponível. O que significa que quase todos os riscos são evitáveis se as organizações tomarem medidas proativas para atualizar as suas dependências.
- Mesmo quando as atualizações são aplicadas, 3,6% das dependências ainda estão vulneráveis porque foram atualizadas para outra versão insegura.
- A análise de mais de 20.000 aplicações empresariais mostra que a dependência de componentes EOL (end-of-life), que já não recebem atualizações, leva à quebra gradual da integridade do software, indicando fortemente o aumento das vulnerabilidades de segurança.
- A análise da capacidade de descoberta revelou que, apesar de mais de sete milhões de componentes de código aberto, apenas 10,5% (cerca de 762 000) são utilizados ativamente.
Apesar dos avanços nas práticas de segurança da cadeia de fornecimento, o comportamento do consumidor está atrasado, ilustrando uma falha crítica nas práticas de consumo.
Desta forma e para resolver estas questões, as organizações devem adotar as melhores práticas, nomeadamente: a gestão proactiva de dependências, escolhendo componentes de alta qualidade e evitando riscos de malware.
Eficiência e desperdício: A perda de tempo dos programadores
A rápida evolução de bibliotecas de código aberto (OSS) compromete a eficiência do desenvolvimento. Portanto, as organizações precisam equilibrar a agilidade DevOps com a segurança, adotando ferramentas automatizadas para analisar vulnerabilidades.
Através desta análise, é sabido que:
- O tamanho da aplicação não importa – com a média das aplicações contendo 180 componentes, mesmo as pequenas aplicações enfrentam cargas de trabalho impossíveis de gerir devido ao aumento das dependências;
- Os dados de qualidade são importantes. 92% dos dados de vulnerabilidade obtidos por crowdsourcing necessitaram de uma correção depois de analisados mais detalhadamente por um investigador de segurança;
- A eficiência não tem apenas a ver com a segurança, mas também com o tipo de licenças open-source.
A atual abordagem reactiva às vulnerabilidades e às análises de licenças faz perder tempo aos programadores e aumenta custos.
Assim, para combater esta situação, as empresas precisam de ferramentas eficazes de análise da composição do software que forneçam informações de alta qualidade sobre os componentes e se integrem perfeitamente no processo de desenvolvimento.
Um apelo à ação e à vigilância: Gestão proactiva, segurança contínua e ferramentas avançadas
Por fim, a crescente sofisticação dos ataques à cadeia de fornecimento de software exige uma resposta coordenada de fabricantes, consumidores e reguladores. Uma gestão proactiva das dependências, ferramentas avançadas e uma intervenção de segurança mais precoce é essencial para mitigar esses riscos.
- Práticas de segurança sempre activas, quando técnicas como a Análise da Composição do Software (SCA) são integradas diretamente nos pipelines de CI/CD e ao longo do processo de desenvolvimento – isto pode reduzir o tempo desperdiçado pelo programador e fornecer contexto para a tomada de decisões informadas e antecipar-se a este risco.
- É possível reduzir o risco persistente concentrando-se em ferramentas que ajudam a gerir as dependências e a aplicar a deteção de vulnerabilidades em tempo real. Os projectos que utilizaram uma lista de materiais de software (SBOM) para gerir as dependências de OSS apresentaram uma redução de 264 dias no tempo médio de correção (MTTR) em comparação com os que não o fizeram.
Adotando práticas rigorosas de gestão de OSS desde o início e investindo em ferramentas SCA avançadas, as organizações podem prevenir vulnerabilidades, reduzir custos e o desperdício de recursos.
Em suma, o equilíbrio entre inovação e segurança é mais crítico do que nunca. Os ecossistemas de código aberto continuarão a alimentar os avanços tecnológicos, mas as organizações têm de desenvolver as suas práticas de segurança para evitarem ser vítimas do seu próprio sucesso.
Fonte: aqui.