Os ataques à cadeia de fornecimento de software estão a aumentar e a necessidade de responder a este vetor de ataque tornou-se crucial. Mas por onde você começa?
Se você tivesse os planos de batalha do atacante, poderia priorizar seus esforços de acordo. Não temos planos específicos para um invasor, mas temos um modelo de planos de batalha típicos para invasores: a matriz de ameaças CI\CD baseada no Estrutura de ataque MITRE.
Ler a tabela abaixo da esquerda para a direita nos conduz através do ciclo de ataque: o invasor precisa obter acesso inicial, depois executar o código, alcançar persistência, desenvolver capacidades por escalonamento de privilégios, evasão de defesa e acesso a credenciais. Dessa forma, os atacantes podem realizar um movimento lateral para alcançar suas presas e depois atacar – seja exfiltrando ou causando outros impactos.
Cada coluna da tabela lista técnicas que o invasor pode usar. Por exemplo, a primeira coluna sugere que o acesso inicial pode ser obtido por um comprometimento prévio do CI\CD ou por controles de acesso fracos (conta válida de um serviço Git, conta válida de um serviço CI\CD ou conta de administrador válida de um servidor crítico).
A abordagem baseada em evidências da Scribe para proteger a cadeia de abastecimento é essencialmente simples:
Confie num artefacto apenas se estiver associado a provas de apoio, provas assinadas que são definidas como atestados digitais.
Para implementar esta abordagem, a Scribe fornece as ferramentas de software necessárias para coletar e gerenciar tais evidências e avaliar a confiabilidade do artefato de acordo com políticas e atestados (evidências assinadas).
Obtenha um resumo da soluçãoExemplos de políticas apoiadas pelo Scribe:
Políticas de configurações de segurança
Certifique-se de que as configurações de segurança dos serviços usados durante o processo de construção atendam a um padrão predefinido.
Políticas de modificação de origem\arquivo\módulo
Verifique se o código-fonte, as configurações, os scripts de construção e os arquivos IoC foram modificados de acordo com um padrão predefinido que define as identidades, os processos, as etapas e os estados.
Políticas de integridade de origem\arquivo\módulo
Garanta que o código-fonte, os arquivos e os módulos sejam idênticos às versões permitidas predeterminadas.
Políticas de confiança de dependência
Certifique-se de que as dependências usadas estejam de acordo com um padrão predefinido (como OSSF Scorecard, idade da versão, lista de permissões/proibições).
Políticas de vulnerabilidades
Certifique-se de que as dependências e outros componentes de fonte pública (fechados ou abertos) não representem um alto risco de segurança.
Políticas de ciclo de vida de desenvolvimento de software
Certifique-se de que o código foi revisado pelas partes interessadas, os comentários foram resolvidos e os testes e testes de segurança foram concluídos com sucesso.
Políticas de comportamento de pipeline
Mantenha o comportamento do pipeline de acordo com o plano. Por exemplo, exija que uma imagem seja enviada como saída do pipeline e não por algum outro processo.
Exemplos de evidências que o Scribe coleta de forma contínua e automatizada para cada construção:
SBOMs refinados do SCM de origem, bem como artefatos finais (contêineres)
Instantâneos do ambiente de construção
Instantâneos do repositório de origem
Configuração de segurança do ambiente de controle de origem e construção
Eventos relevantes no nível do sistema operacional coletados da máquina de compilação