Frameworks e abordagens modernas para desenvolvimento de software se concentram na velocidade e na confiabilidade da entrega de software, bem como na propriedade compartilhada entre as partes interessadas do software.
Além da prática de DevOps de mudar para a esquerda na segurança, muitas outras práticas de DevOps contribuem para fornecer um software mais seguro. Maior colaboração das partes interessadas, visibilidade do trabalho, versões reproduzíveis, testes automatizados, alterações incrementais são práticas que podem dar suporte à segurança de software. Na verdade, o Relatório Accelerate State of DevOps de 2022 descobriu que as culturas de alta confiança são mais propensas a adotar práticas para fortalecer a cadeia de suprimentos de software, e o uso de CI/CD ajuda na implementação de práticas de segurança.
No entanto, os frameworks modernos de desenvolvimento não contam com orientações que ajudem as organizações a entender ameaças aos softwares, 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 de uma organização e negligenciar os fatores externos que podem afetar a integridade dos aplicativos. Por exemplo, um ataque que compromete um pacote de software de código aberto afeta qualquer código que dependa direta ou indiretamente desse pacote. Os ataques à cadeia de suprimentos de software como esses aumentaram drasticamente desde 2020.
Cadeias de suprimentos de software
Uma cadeia de suprimentos de software consiste em todo o código, pessoas, sistemas e processos que contribuem para o desenvolvimento e a entrega do software, dentro e fora da organização. Saiba o que 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 seu software.
- Processos e políticas de acesso, teste, revisão, monitoramento e feedback, comunicação e aprovação do sistema.
- Sistemas em que você confia para desenvolver, criar, armazenar e executar o software e as dependências dele.
Considerando o amplo alcance e a complexidade da cadeia de suprimentos de software, há várias maneiras de introduzir mudanças não autorizadas no software entregue aos usuários. Esses vetores de ataque abrangem todo o ciclo de vida do software. Enquanto alguns ataques são direcionados, como o ataque ao sistema de build SolarWinds, outras ameaças são indiretas ou entram na cadeia de suprimentos por pontos fracos no processo ou negligência.
Por exemplo, em uma postagem do blog (link em inglês) sobre a vulnerabilidade
de execução remota no Apache log4j de dezembro de 2021, a equipe do Google Open Source Insights observou que mais de 17.000 pacotes foram afetados no
Maven Central. A maioria dos pacotes afetados não dependia diretamente do
pacote log4j-core
vulnerável, mas tinha dependências que o exigiam.
Lacunas no processo, como falta de revisão de código ou critérios de segurança para implantação na produção, podem permitir que um código inválido entre de maneira não intencional na cadeia de suprimentos. Da mesma forma, códigos inválidos podem entrar no seu software se você criar com o 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 build e repositórios de artefatos confiáveis.
De acordo com o Estado da Cadeia de Suprimentos de Software de 2021, o uso de software de código aberto e os ataques às cadeias de suprimentos de software cresceram significativamente entre 2020 e 2021:
- Houve um aumento de 650% ano a ano nos ataques à cadeia de suprimentos de software em 2021.
- A disponibilidade e a demanda por pacotes de código aberto continuam aumentando, com um aumento de 73% ano a ano nos downloads de componentes de código aberto em 2021.
- As vulnerabilidades são as mais comuns nos projetos de código aberto mais populares.
Para proteger a integridade do software, é importante entender sua postura de segurança: o nível de preparação da sua organização para detectar, responder e corrigir ameaças.
Requisitos de compliance e frameworks de avaliação
Uma maior preocupação com a segurança da cadeia de suprimentos levou à criação de novos regulamentos governamentais específicos para a segurança da cadeia de suprimentos, como:
- Ordens executivas dos Estados Unidos
- A Diretiva de segurança da informação e rede 2 da União Europeia
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.
- Supply Chain Levels for Software Artifacts (SLSA), um framework de código aberto inspirado nas práticas de segurança de software do Google.
- Frameworks de organizações governamentais, como:
- Instituto Nacional de Padrões e Tecnologia (NIST, na sigla em inglês) Secure Software Development Framework (SSDF) (Estados Unidos)
- Framework de avaliação de segurança cibernética (Reino Unido)
Esses frameworks adotam práticas de segurança de software estabelecidas e as estruturam em um formato que ajuda a identificar ameaças de segurança que precisam ser resolvidas e quais ações tomar para mitigá-las.
Proteja sua cadeia de suprimentos de software no Google Cloud
O Software Delivery Shield oferece uma solução totalmente gerenciada de segurança da cadeia de suprimentos de software no Google Cloud. Ele incorpora práticas recomendadas, incluindo práticas em frameworks como SLSA e NIST SSDF. Adotar os componentes da solução gradualmente, com base nas suas prioridades e necessidades.
A seguir
- Saiba mais sobre ameaças às cadeias de suprimentos de software.
- Avalie sua postura de segurança atual para identificar maneiras de fortalecê-la.
- Saiba mais sobre práticas para proteger sua cadeia de suprimentos de software e como os recursos no Software Delivery Shield podem ajudar.
- Saiba mais sobre o Software Delivery Shield e confira os guias de início rápido.