Skip to main content

Três tendências que estão moldando a segurança da cadeia de suprimentos de software hoje

Escrito por
blog feature open source security

22 de agosto de 2024

0 minutos de leitura

O desenvolvimento de software continua se parecendo com uma linha de montagem: desenvolvedores recorrem a recursos disponíveis na web para criar aplicações. Embora recursos de terceiros sejam essenciais para o desenvolvimento de software há muitos anos, a forma como as equipes usam esses componentes externos mudou. Os desenvolvedores incorporam uma variedade maior de recursos de terceiros aos projetos e, graças aos assistentes de programação com IA, fazem isso muito mais rápido, diretamente no código próprio. 

Com todas essas mudanças no mundo do desenvolvimento de software, tanto órgãos reguladores quanto empresas reconhecem os riscos de muitas dessas práticas na cadeia de suprimentos de software e continuam pressionando por regulamentações para softwares de terceiros. 

O que essas mudanças significam para as organizações que desenvolvem software? Agora, mais do que nunca, as empresas que desenvolvem aplicações precisam adotar práticas de segurança proativas, como criar listas de materiais de software (SBOMs) que possam ser testadas novamente, antecipar a segurança do código para considerar o código gerado por IA, oferecer aos desenvolvedores ferramentas práticas para escolher componentes seguros de terceiros e usar o contexto de negócios para priorizar os riscos da cadeia de suprimentos da maneira certa. 

Para entender como são essas práticas proativas, vamos analisar três tendências importantes da cadeia de suprimentos e como elas afetam o desenvolvimento de software:

Regulamentações de SBOMs cada vez mais abrangentes 

As SBOMs aparecem com frequência em requisitos de conformidade e contratos com fornecedores recentes. Organizações dos setores público e privado estão elevando os padrões para SBOMs à medida que aumentam as preocupações com componentes e dependências inseguros ou maliciosos. Muitas dessas regulamentações ressaltam a importância de atualizar as SBOMs regularmente, à medida que novos recursos de terceiros são incorporados ao ecossistema de software.

O que essas regulamentações significam para as equipes hoje

Manter as SBOMs atualizadas em breve será decisivo para o sucesso da sua empresa. Com cada vez mais contratos governamentais e do setor privado exigindo esses documentos, você precisará produzir uma SBOM que possa ser testada novamente, garantindo que seja possível identificar novas ameaças ou mudanças no seu ecossistema ao longo do tempo. As SBOMs também são importantes do ponto de vista do consumo de software, pois dão transparência sobre os serviços que você utiliza.

Código gerado por IA

Os assistentes de programação com IA rapidamente se tornaram padrão nas equipes de desenvolvimento de software. No entanto, a introdução de código próprio gerado por IA traz algumas implicações para a segurança da cadeia de suprimentos de software. Isso significa que as equipes de segurança precisam reforçar as medidas fundamentais de segurança do código (por exemplo, testes estáticos de segurança de aplicações) e adaptar as práticas e ferramentas existentes à velocidade com que o código gerado por IA chega aos repositórios. 

O que a popularização dos assistentes de programação com IA significa para as equipes

Os assistentes de programação com IA aumentam as expectativas de velocidade e eficiência em todas as equipes de desenvolvimento. Em geral, os desenvolvedores confiam mais no código gerado por IA do que no escrito por pessoas e esperam avançar ainda mais rápido, deixando pouco espaço para práticas de segurança que consomem tempo e energia. Por isso, as equipes de segurança que ainda adotavam práticas antigas, como testar o código próprio mais adiante no ciclo de vida de desenvolvimento de software (SDLC) ou exigir que os desenvolvedores alternassem entre ferramentas para testar e proteger o código, não podem mais agir assim. É preciso antecipar ainda mais a segurança, oferecendo ferramentas integradas aos fluxos de trabalho de desenvolvimento. 

Um cenário de ameaças em evolução 

Além desses fatores, o cenário de ameaças mudou bastante nos últimos anos, e as ameaças relacionadas à IA representam novos riscos para as empresas. Na verdade, o projeto OWASP Machine Learning Security Top Ten aponta ataques à cadeia de suprimentos de IA como uma ameaça significativa aos LLMs. Ao comprometer projetos inteiros de machine learning, os invasores podem multiplicar seus esforços e obter acesso a mais ativos do que conseguiriam ao comprometer uma biblioteca estática. 

O que a evolução do cenário de ameaças significa para as equipes

As equipes precisam encontrar maneiras de escolher desde o início os recursos de terceiros mais seguros. Depois, devem verificar periodicamente as bibliotecas existentes para garantir que nenhuma tenha sido comprometida. Também é essencial priorizar as vulnerabilidades de terceiros de acordo com a criticidade para os negócios. Assim, sua equipe pode corrigir primeiro as falhas relacionadas a ativos essenciais para os negócios e seguir a partir daí. 

Como responder às tendências de segurança da cadeia de suprimentos

A chave para acompanhar essas tendências da cadeia de suprimentos é a proatividade. O objetivo é antecipar possíveis riscos — para a sua empresa ou para o próprio processo de segurança — e agir para reduzi-los o quanto antes. Estas perguntas ajudam a começar a adotar uma abordagem proativa:

  • Se uma pessoa mal-intencionada invadisse uma aplicação, quais áreas da empresa, aplicações ou bibliotecas seriam as mais críticas para ela acessar? Quais não fariam tanta diferença? Essas perguntas sobre o contexto ajudam você a entender quais áreas essenciais para os negócios devem ser protegidas primeiro e quais áreas de baixo risco podem ficar no fim da lista. Para ter uma visão detalhada dos riscos, é preciso ir além da simples triagem de vulnerabilidades por CVSS ou possibilidade de exploração.

  • Quantas mudanças de contexto você está exigindo das equipes de desenvolvimento ao proteger o código próprio ou os componentes de terceiros? Elas precisam sair do ambiente de programação para corrigir problemas? Se a resposta for sim, provavelmente você está exigindo demais, ainda mais considerando que os assistentes de programação com IA ajudam essas equipes a trabalhar mais rápido. 

  • Quais controles automatizados você usa para impedir que componentes inseguros de terceiros ou problemas de licenciamento cheguem aos repositórios? Vale a pena organizar listas de recursos seguros de terceiros para os desenvolvedores, seja um banco de dados com recomendações de imagens-base ou uma forma de escolher pacotes de qualidade para necessidades específicas. Também é importante incorporar a aplicação das diretrizes aos processos e pipelines de compilação e entrega de software. 

Para saber mais sobre os desafios atuais de segurança da cadeia de suprimentos e conferir dicas práticas, leia nosso e-book, Securing today’s software supply chains.