Gerenciando componentes de código aberto na cadeia de fornecimento de software
Getty Images/iStockphoto
Os componentes de código aberto são uma parte essencial dos aplicativos de software atuais, mas podem ter um custo crítico: segurança.
Os aplicativos de software modernos compreendem componentes de muitas fontes diferentes, incluindo software de código aberto (OSS). Isso pode agregar vantagens ao ciclo de vida de desenvolvimento de software, como maior velocidade de desenvolvimento, redução de custos de desenvolvimento e maior escalabilidade.
Mas o uso de componentes de diversas fontes também amplia a superfície de ataque de um aplicativo, aumentando o número de pontos de entrada que os invasores podem usar para obter acesso a aplicativos e dados confidenciais. As equipes de DevOps devem garantir a segurança de sua cadeia de fornecimento de software, adotando medidas proativas para mitigar ataques.
Uma cadeia de fornecimento de software compreende todas as pessoas, processos, ferramentas, bibliotecas de códigos e infraestruturas de TI subjacentes usadas para criar um aplicativo de software. Inclui todos os aspectos do ciclo de vida de desenvolvimento de software (SDLC), como construção de código, testes, implantação e manutenção pós-lançamento.
Muitos dos componentes que compõem a cadeia de fornecimento de software de um projeto são de código aberto. Por exemplo, a empresa de automação de design Synopsys publicou um relatório em fevereiro de 2023 que inspecionou os resultados de mais de 1.700 auditorias de bases de código comerciais. O relatório descobriu que pelo menos um componente de código aberto está presente em 96% dos aplicativos. Quase todos os aplicativos comerciais incorporam um componente de código aberto.
Um ataque à cadeia de suprimentos de software ocorre quando invasores se infiltram no software de um fornecedor para plantar código malicioso que infecta clientes que usam esse software. A infiltração pode acontecer a qualquer momento durante o SDLC, e muitos ataques cibernéticos devastadores utilizam a cadeia de fornecimento de software. Os ataques recentes à cadeia de abastecimento incluem o ataque SolarWinds e a vulnerabilidade Log4j.
A segurança básica da cadeia de fornecimento de software requer a verificação de suas áreas vulneráveis:
Os componentes OSS são cada vez mais populares para projetos de desenvolvimento de software. Os provedores de TI utilizam e apoiam a criação de projetos de código aberto, como os seguintes:
Além de alimentar aplicações importantes, os componentes OSS oferecem inúmeros benefícios. Eles são de uso gratuito, mesmo no desenvolvimento de aplicativos comerciais. Os componentes OSS também são personalizáveis porque o código é aberto – os desenvolvedores podem estender a funcionalidade para incluir mais recursos.
O OSS pode reduzir o tempo de desenvolvimento. A biblioteca OSS contém componentes para praticamente qualquer funcionalidade que os usuários queiram incorporar em seus aplicativos. Isso dá aos desenvolvedores mais tempo para outras áreas de desenvolvimento. Projetos de código aberto também são frequentemente desenvolvidos seguindo um padrão específico, o que resulta na interoperabilidade de diferentes componentes de código aberto sem complicações.
Por último, os projetos de código aberto podem ter qualidade e segurança de código robustas. Freqüentemente, eles são desenvolvidos por muitos colaboradores, o que garante amplos testes do componente de software. Qualquer desenvolvedor também pode inspecionar componentes OSS em busca de vulnerabilidades de segurança, tornando-os mais seguros do que códigos proprietários que os desenvolvedores não podem inspecionar quanto a problemas de segurança.
Apesar dos inúmeros benefícios do OSS, os invasores ainda podem se infiltrar em componentes de código aberto. O método mais comum de ataque é o abuso de aspectos OSS da cadeia de fornecimento de software para fins maliciosos, o que pode acontecer de diferentes maneiras:
Para gerenciar a segurança dos componentes de código aberto nas cadeias de fornecimento de software, as equipes de DevOps devem considerar estas práticas recomendadas:
Siga práticas de codificação seguras ao desenvolver aplicativos e peça aos fornecedores de software que o façam também. Essas práticas de codificação incluem o seguinte:
As equipes também devem garantir que o ambiente da cadeia de suprimentos de software seja seguro durante todo o desenvolvimento. As melhores práticas incluem o seguinte: