.
SCSW CI/CD na última década tornou-se a pedra angular do desenvolvimento de software moderno.
O termo – para integração contínua e entrega contínua (às vezes o “D” também pode significar “implantação”) – surgiu no final dos anos 2000 com o surgimento de DevOpsdefinindo uma maneira de criar e atualizar aplicativos com mais rapidez, apoiando-se fortemente na automação para tudo, desde a criação até o teste e a implantação de sistemas, reunindo contribuições de inúmeros colaboradores em um pipeline e acelerando os ciclos de lançamento.
O software não é mais construído por um único desenvolvedor em uma única máquina; em vez disso, os desenvolvedores que usam ferramentas distintas podem contribuir para a construção dentro do pipeline sem causar conflitos. As organizações não precisam esperar que as atualizações de software sejam reunidas em um único grande lote para serem lançadas em um horário definido, e as atualizações e melhorias podem ser lançadas assim que estiverem prontas.
As compilações são padronizadas, a segurança muda de recursos compartilhados para recursos cada vez mais isolados e as verificações podem ser executadas em cada alteração, e o valor é entregue mais rapidamente, afirma-se. Com CI/CD veio uma maior dependência de automação e infraestrutura como código (IaC), mais terceiros envolvidos e novas estruturas e linguagens sendo rapidamente adotadas.
Com a velocidade vem o risco
Dito isso, a mesma velocidade que vem de um pipeline de CI/CD compartilhado simplificado e automatizado também pode torná-lo altamente atraente para criminosos online.
“Hoje, CI/CD é onde o código do aplicativo, as ferramentas de construção, os componentes de terceiros, os segredos, as identidades e até mesmo os recursos da nuvem se reúnem”, disse Adrian Diglio, principal gerente de programa da cadeia de fornecimento de software seguro (S3C) da Microsoft, Strong The One.
“A adoção de CI/CD cresce na velocidade da velocidade do recurso e esses pipelines interconectados superam a maturidade organizacional e sua capacidade de mantê-los seguros. Isso torna o CI/CD o principal alvo dos invasores.”
CI/CD é onde o código do aplicativo, as ferramentas de construção, os componentes de terceiros, os segredos, as identidades e até os recursos da nuvem se reúnem
O CI/CD expande a superfície de ataque e os intrusos se tornaram bons em explorar esses sistemas para atacar a cadeia de suprimentos de software, conforme comprovado pelo alto perfil fiasco da SolarWinds em 2020. Nesse caso, o grupo Nobelium, vinculado à Rússia, comprometeu o processo de criação do fabricante do pacote de software de TI e inseriu código malicioso em aplicativos que posteriormente foram encaminhados para os usuários.
Palo Alto Networks escreveu em dezembro de 2022, o número de ataques à cadeia de suprimentos no ano anterior aumentou 51%. Os pipelines de CI/CD são particularmente vulneráveis a problemas como configurações incorretas (que podem expor informações confidenciais e se tornar pontos de entrada para códigos mal-intencionados) e credenciais permissivas (que podem levar a movimentação lateral e envenenamento de CI).
Múltiplas ameaças aos oleodutos
Diglio, da Microsoft, acrescentou que as técnicas de acesso inicial mais prevalentes são a configuração incorreta dos recursos do ciclo de vida de desenvolvimento de software (SDLC), dependências maliciosas e ataques de desenvolvedores direcionados.
“Na prática, isso significa que os invasores ganham uma posição inicial manipulando as entradas do pipeline de CI/CD, incluindo código e configuração”, disse ele.
Ao abusar de tokens de escopo amplo e outras configurações incorretas que concedem acesso a recursos, os invasores podem se aprofundar no sistema de seu alvo
“Então, os invasores buscam movimento lateral. Ao abusar de tokens de escopo amplo e outras configurações incorretas que concedem acesso a recursos, geralmente com base em privilégio posicional, os invasores podem se aprofundar no sistema de seu alvo e manipular os estágios subsequentes da entrega de software.”
A partir daí, os invasores podem abusar dos recursos de produção e comprometer produtos distribuídos a terceiros para espalhar ataques.
“Os comprometimentos da infraestrutura de CI/CD permitem que os invasores manipulem o software que está sendo construído, tornando a infraestrutura de CI/CD uma superfície de ataque para explorar a confiança dos usuários finais”, disse Diglio.
CI/CD torna-se um alvo mais fácil
Os pipelines são um alvo mais fácil do que ambientes de produção mais protegidos e bem monitorados, de acordo com John Steven, CTO da ThreatModeler. Os pipelines de CI/CD tendem a receber menos atenção de segurança e têm pouco ou nenhum registro para o que os desenvolvedores executam como parte das fases de compilação, pacote ou implantação.
Essencialmente, dizem-nos, injetar malware ou explorar uma vulnerabilidade por meio de ações de pipeline de CI/CD de uma organização – ou mesmo em software de código aberto ou contêineres e imagens baixadas de fontes externas – é mais fácil do que atacar com sucesso um ambiente de produção sem chamar a atenção. Os invasores sabem disso muito bem.
“Os invasores dentro de uma organização podem adicionar configurações para criar fases que injetam dependências vulneráveis ou maliciosas”, disse Steven Strong The One.
“Processos de compilação normalmente não criam – muito menos retêm – logs detalhados de como o código é construído ou transformado, então essas injeções seriam ‘invisíveis’ em comparação com uma configuração nefasta ou confirmação de fonte.
“A menos que uma fase posterior conduza uma varredura detalhada dos binários produzidos, essas injeções permanecerão desconhecidas enquanto são orquestradas na produção”.
A menos que uma fase posterior conduza uma varredura detalhada dos binários produzidos, essas injeções permanecerão desconhecidas enquanto são orquestradas na produção
O Open Worldwide Application Security Project (OWASP) escreveu sobre o recente surto no número de incidentes destinados a abusar do ecossistema CI/CD, com a frequência e magnitude dos ataques também em ascensão.
Defesas estão nos estágios iniciais
Os criminosos estão adaptando rapidamente as técnicas para atingir o CI/CD, enquanto muitos defensores estão nos estágios iniciais para descobrir como detectar, entender e gerenciar os riscos.
“Buscando o equilíbrio certo entre segurança ideal e velocidade de engenharia, as equipes de segurança estão em busca dos controles de segurança mais eficazes que permitirão que a engenharia permaneça ágil sem comprometer a segurança”, escreveu OWASP.
Diglio disse que o grande número de componentes que acompanham a entrega de software moderno e a crescente complexidade de CI/CD complicam as considerações de segurança da cadeia de suprimentos de software.
“As organizações devem liderar com uma abordagem de defesa em profundidade abrangendo integridade de origem, integridade de construção, integridade de liberação, dependências e controles de acesso”, disse ele.
O executivo da Microsoft destacou uma série de etapas que as empresas podem seguir para fortalecer os pipelines de CI/CD, incluindo a realização de uma avaliação usando o Secure Supply Chain Consumption Framework (S2C2F), uma ferramenta desenvolvida e usada pelo gigante do software desde 2019 para proteger seus próprios processos de desenvolvimento .
Em novembro de 2022, a Microsoft contribuído o S2C2F para o OpenSSF (Open Source Security Foundation). A estrutura foi projetada para lidar com ameaças da cadeia de suprimentos do mundo real que são específicas para software de código aberto. Uma avaliação usando-o ajudará as organizações a entender como melhorar a segurança das práticas de consumo de código aberto, disse Diglio.
Medidas de segurança a serem tomadas
As empresas também precisam lidar com configurações incorretas de CI/CD, limitar o acesso à infraestrutura de CI/CD e serviços relacionados e estender a detecção à infraestrutura de CI/CD. Eles também precisam proteger o IaC contra adulteração.
As equipes de DevOps devem “começar a abordar o risco de dependência de terceiros hoje, fazendo um inventário e compreendendo as dependências, reduzindo-as quando possível e monitorando-as”, disse Diglio, apontando para ferramentas de teste e depuração como o Dependabot no GitHub da Microsoft. “Trabalhe de forma incremental na fixação, proxy e reconstrução dessas dependências internamente à medida que sua maturidade organizacional e confiança aumentam.”
Além disso, os desenvolvedores precisam ser incluídos nos programas de segurança de suas empresas. Isso inclui habilitar a autenticação multifator (MFA) e o acesso condicional e revisar as permissões existentes na infraestrutura de CI/CD como parte do princípio do menor privilégio em uma estratégia de confiança zero.
“Eduque seus desenvolvedores sobre os riscos de segurança e como as ameaças de segurança podem colocar suas empresas em risco”, disse Diglio.
Os pipelines de CI/CD não vão a lugar nenhum. Há uma parte integrante do impulso maior do DevOps e da adoção do desenvolvimento ágil. No entanto, tudo isso os torna atraentes e, por enquanto, áreas vulneráveis a ataques. Os malfeitores entendem isso e estão focando na cadeia de suprimentos de software. As organizações agora precisam tomar medidas para endurecer o processo. ®
.