Traduzido por: Erick Ferreira
Ambientes, processos e sistemas de CI/CD são o coração pulsante de qualquer organização de software moderna. Eles entregam o código da estação de trabalho de um desenvolvedor para a produção. Combinados com a ascensão da disciplina DevOps e das arquiteturas de microsserviços, os sistemas e processos de CI/CD remodelaram o ecossistema de desenvolvimento:
- O Conjunto de tecnologias é mais diversificado, tanto em relação às linguagens de codificação quanto às tecnologias e estruturas adotadas posteriormente (por exemplo, GitOps, K8s).
- A adoção de novas linguagens e frameworks está cada vez mais rápida, sem grandes barreiras técnicas.
- Há um aumento no uso de práticas de automação e infraestrutura como código (IaC).
- Terceiros, tanto na forma de provedores externos quanto de dependências no código, tornaram-se uma parte importante de qualquer ecossistema de CI/CD, com a integração de um novo serviço normalmente exigindo não mais do que adicionar 1 a 2 linhas de código.
Essas características permitem uma entrega de software mais rápida, flexível e diversificada. No entanto, eles também reformularam a superfície de ataque com uma infinidade de novos caminhos e oportunidades para os atacantes.
Adversários de todos os níveis de sofisticação estão voltando sua atenção para CI/CD, percebendo que os serviços de CI/CD fornecem um caminho eficiente para alcançar as joias da coroa de uma organização. A indústria está testemunhando um aumento significativo na quantidade, frequência e magnitude de incidentes e vetores de ataque com foco no abuso de falhas no ecossistema CI/CD, incluindo -
- O comprometimento do sistema de compilação SolarWinds, usado para espalhar malware para 18.000 clientes.
- A violação Codecov, que levou à exfiltração de segredos armazenados em variáveis de ambiente em milhares de pipelines de build em várias empresas.
- A violação do PHP, resultando na publicação de uma versão maliciosa do PHP contendo um backdoor.
- A falha Dependency Confusion, que afetou dezenas de empresas gigantes, e abusa de falhas na forma como dependências externas são buscadas para executar código malicioso em estações de trabalho de desenvolvedores e ambientes de build.
- Os compromentimentos dos pacotes ua-parser-js, coa e rc NPM, com milhões de downloads semanais cada, resultando em código malicioso executado em milhões de ambientes de construção e estações de trabalho de desenvolvedores.
Embora os invasores tenham adaptado suas técnicas às novas realidades de CI/CD, a maioria dos defensores ainda está no início de seus esforços para encontrar as maneiras corretas de detectar, entender e gerenciar os riscos associados a esses ambientes. Buscando o equilíbrio certo entre segurança ideal e velocidade de desenvolvimento, as equipes de segurança estão em busca dos controles mais eficazes que permitirão que o desenvolvimento permaneça ágil sem comprometer a segurança.
Todos os riscos seguem uma estrutura consistente:
- Definição - Definição concisa da natureza do risco.
- Descrição - Explicação detalhada do contexto e motivação do adversário.
- Impacto - Detalhe sobre o impacto potencial que a realização do risco pode ter em uma organização.
- Recomendações - Conjunto de medidas e controles recomendados para otimizar a postura de CI/CD de uma organização em relação ao risco em questão.
- Referências - Uma lista de exemplos e precedentes do mundo real em que o risco em questão foi explorado.
A lista foi compilada com base em extensa pesquisa e análise com base nas seguintes fontes:
- Análise da postura de arquitetura, design e segurança de centenas de ambientes de CI/CD em vários setores e setores.
- Discussões profundas com especialistas do setor.
- Publicações detalhando incidentes e falhas de segurança dentro do domínio de segurança CI/CD. Exemplos são fornecidos quando relevantes.
CICD-SEC-1: Mecanismos de Controle de Fluxo Insuficientes
CICD-SEC-2: Gerenciamento de Identidade e Acessos inadequado
CICD-SEC-3: Abuso de cadeia de dependência
CICD-SEC-4: Execução de Pipeline Envenendada - Poisoned Pipeline Execution (PPE)
CICD-SEC-5: Controle de Acesso Insuficiente em Pipelines - Insufficient PBAC (Pipeline-Based Access Controls)
CICD-SEC-6: Gestão de Credenciais Inadequada
CICD-SEC-7: Configurações Inseguras de Sistemas
CICD-SEC-8: Uso não controlado de serviços de terceiros
CICD-SEC-9: Validação de integridade de artefatos impróprias
CICD-SEC-10: Visibilidade e Logs Insuficientes
Este documento ajuda os defensores a identificar áreas de foco para proteger seu ecossistema de CI/CD. É o resultado de uma extensa pesquisa sobre vetores de ataque associados a CI/CD e da análise de violações de alto perfil e falhas de segurança.
Inúmeros especialistas da área em vários setores e disciplinas se reuniram para colaborar neste documento para garantir sua relevância para o cenário atual de ameaças, superfície de risco e os desafios que os defensores enfrentam ao lidar com esses riscos.
O texto original é a versão em inglês do site: https://github.com/OWASP/www-project-top-10-ci-cd-security-risks . Quaisquer discrepâncias ou diferenças criadas na tradução não são vinculativas e não têm efeito legal para fins de conformidade.
A precisão do texto traduzido não é garantida. Qualquer pessoa que confie nas informações obtidas através desta tradução o faz por sua própria conta e risco. O @erickrazr se isenta e não aceitará qualquer responsabilidade por danos ou perdas de qualquer tipo causados pelo uso da documentação traduzida. Onde houver alguma dúvida, a versão em inglês é sempre a versão oficial do site: https://github.com/OWASP/www-project-top-10-ci-cd-security-risks