Segurança da cadeia de suprimentos de software

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

As abordagens e abordagens modernas de desenvolvimento de software se concentram na velocidade e na confiabilidade da entrega de software, além da propriedade compartilhada entre as partes interessadas no software.

Além da prática de DevOps da mudança para a esquerda sobre segurança, muitas outras práticas de DevOps contribuem para a entrega de software mais seguro. Maior colaboração entre as partes interessadas, visibilidade do trabalho, compilações reproduzíveis, testes automatizados, alterações incrementais são práticas que oferecem suporte à segurança do software.

No entanto, os frameworks de desenvolvimento moderno não têm orientação que ajude as organizações a entender ameaças ao software, avaliar a capacidade de detectar e responder a ameaças e implementar mitigações. Elas também tendem a se concentrar especificamente no código e nos processos da organização e negligenciam fatores externos que podem afetar a integridade dos aplicativos. Por exemplo, um ataque que comprometa um pacote de software de código aberto afeta qualquer código que direta ou indiretamente dependa dele. Os ataques da cadeia de suprimentos de software como esses aumentaram muito desde 2020.

Cadeias de suprimentos de software

Uma cadeia de suprimentos de software consiste em todo o código, as pessoas, os sistemas e os processos que contribuem para o desenvolvimento e a entrega do software, dentro e fora da organização. Ele inclui:

  • o código que você cria, as dependências dele e o software interno e externo usado para desenvolver, criar, empacotar, instalar e executar o software.
  • Processos e políticas para acesso, teste, revisão, monitoramento e feedback, comunicação e aprovação do sistema.
  • Sistemas confiáveis para desenvolver, criar, armazenar e executar o software e as dependências dele.

Devido ao amplo alcance e à complexidade da cadeia de suprimentos de software, existem várias maneiras de introduzir mudanças não autorizadas no software que você oferece aos usuários. Esses vetores de ataque abrangem o ciclo de vida do software. Alguns ataques são direcionados, como o ataque no sistema de compilação SolarWinds (link em inglês), outras ameaças são indiretas ou entram na cadeia de suprimentos por meio de pontos fracos ou negligentes no processo.

Por exemplo, em uma postagem do blog (em inglês) sobre a vulnerabilidade de execução remota no Apache log4j de dezembro de 2021, a equipe de insights de código aberto do Google observou que havia mais de 17.000 pacotes afetados no Maven Central. A maioria dos pacotes afetados não dependia diretamente do pacote log4j-core vulnerável, mas tinha dependências que precisavam dele.

Lacunas de processo, como falta de revisão de código ou critérios de segurança para implantação na produção, podem permitir que códigos inválidos entrem acidentalmente na cadeia de suprimentos. Da mesma forma, um código inválido poderá entrar no software se você criar com código-fonte fora do seu sistema de controle de versões confiável, ou empacotar e implantar aplicativos de sistemas fora do seu sistema de compilação confiável e repositórios de artefatos.

De acordo com o Estado da cadeia de suprimentos de software de 2021 (em inglês), o uso de software de código aberto e ataques a cadeias de suprimentos de software cresceram bastante entre 2020 e 2021:

  • Houve um aumento de 650% em relação aos ataques da cadeia de suprimentos de software em 2021.
  • A disponibilidade e a demanda de pacotes de código aberto continuam a crescer, com um aumento de 73% nos downloads de componentes de código aberto em 2021.
  • As vulnerabilidades são mais comuns nos projetos de código aberto mais usados.

Para proteger a integridade do software, é importante entender sua postura de segurança: o nível de preparação da organização para detectar, responder e corrigir ameaças.

Requisitos de conformidade e frameworks de avaliação

A preocupação maior com a segurança da cadeia de suprimentos levou à criação de novas regulamentações governamentais específicas à segurança da cadeia de suprimentos, como:

Novos frameworks estão surgindo para ajudar as organizações a avaliar a postura de segurança e aprender sobre mitigações de ameaças.

Esses frameworks adotam práticas estabelecidas de segurança de software em um formato que ajuda a identificar ameaças que precisam ser abordadas e quais ações tomar para mitigá-las.

Proteja sua cadeia de suprimentos

Para proteger sua cadeia de suprimentos, faça o seguinte:

  1. Entenda os ataques da cadeia de suprimentos. Pessoas, processos e ferramentas em todo o ciclo de vida do software podem comprometer seu software de maneira intencional ou acidental. As organizações que não reconhecem as ameaças são mais vulneráveis a ataques.

  2. Avalie sua postura de segurança atual para identificar formas de fortalecê-la. Com base na sua avaliação, planeje-se para as mudanças.

  3. Implemente as alterações. Para saber mais, consulte Proteger sua cadeia de suprimentos de software.