Ataques à cadeia de suprimentos e nuvem nativa: tudo que você precisa saber

Os últimos dois anos viram um aumento nos ataques à cadeia de suprimentos de software, com o exemplo mais notório sendo o ataque Solarwinds. Como os ambientes de produção ganharam várias camadas de proteção e grande parte da atenção das equipes de segurança, os agentes mal-intencionados se voltaram para “envenenar o poço”, ou seja, o destino onde os aplicativos são desenvolvidos ou seus componentes básicos. Mas o que isso significa para os nativos da nuvem? Os aplicativos nativos da nuvem são mais suscetíveis a ataques à cadeia de suprimentos? Vamos tentar responder a essas perguntas, usando exemplos das descobertas da pesquisa cibernética da Equipe Nautilus do Aqua de ataques observados na natureza.

 

Ameaças da cadeia de suprimentos nativa da nuvem

Existem várias características dos ambientes de desenvolvimento de aplicativos nativos em nuvem que os tornam um alvo lucrativo para invasores que procuram incorporar código malicioso na cadeia de suprimentos.

 

Primeiro, o desenvolvimento de aplicativos nativos em nuvem é caracterizado pelo uso generalizado de componentes de código aberto, geralmente obtidos de registros públicos. Embora muitos projetos de código aberto sejam bem administrados e examinados sob muitos olhos, alguns não são, e isso permite que atores mal-intencionados se façam passar por colaboradores. Quanto mais alto na cadeia de abastecimento os invasores podem ir, melhores são suas chances de conseguir uma ampla disseminação de seu código, motivo pelo qual os invasores mais avançados procuram pacotes amplamente usados ​​que podem reaparecer em muitos aplicativos diferentes.

 

Além disso, os ambientes de desenvolvimento de hoje não são examinados tão de perto quanto os ambientes de produção, e as imagens, funções e pacotes de contêineres são atualizados com frequência usando pipelines de CI / CD, criando várias oportunidades para os invasores se incorporarem ao processo. A equipe Nautilus detectou e analisou ataques a ambientes CI SaaS que abusaram do próprio processo de CI para obter acesso ao tempo de CPU da nuvem. A partir daí, é um salto relativamente curto para os artefatos que estão sendo construídos no pipeline de CI.

 

Vetores de Ataque Observados

Nossa pesquisa cibernética sobre ataques em estado selvagem que visam contêineres e ambientes Kubernetes mostrou vários níveis de sofisticação e técnicas de evasão. Começando do relativamente simples ao mais avançado, estamos vendo:

 

  • Colocar imagens maliciosas em registros públicos, seja para colocá-las em ambientes comprometidos ou na esperança de que alguém as use.
  • Esconder código malicioso dentro de imagens benignas, “vanilla”, na esperança de que os desenvolvedores os usem sem saber o que se esconde dentro delas. Também vimos “typo-squatting” usado nesse sentido, onde um nome de imagem popular é deliberadamente incorreto – por exemplo, tesnorflow em vez de tensorflow .
  • Evitando a análise estática de malware usando malware polimórfico em evolução que não é reconhecível com base em sua assinatura e chama componentes adicionais depois que uma imagem foi implantada e executada como um contêiner.
  • Contornar os controles no pipeline de CI / CD criando imagens diretamente nos hosts
  • Abuso de ferramentas de CI baseadas em nuvem , nas quais os invasores tiram proveito de ofertas gratuitas de SaaS para executar mineração de criptomoeda sob o pretexto de construir um aplicativo.

Em vários estágios desses ataques, os agentes mal-intencionados executariam ações graduais e cada vez mais graves para atingir seus objetivos e estabelecer persistência no ambiente – ou seja, permitir que continuem um ataque além do contêiner, host ou mesmo cluster específico.

 

Alguma boa notícia neste cenário?

Felizmente, sim. Existem características inerentes aos aplicativos nativos da nuvem que os tornam mais resistentes a ataques e permitem limitar os danos de um ataque que poderia escapar de uma forma mais robusta do que com os aplicativos monolíticos tradicionais:

 

O alto grau de automação no pipeline permite incorporar controles que potencialmente detectariam ou, pelo menos, dificultariam o sucesso dos ataques à cadeia de suprimentos (mais sobre isso na próxima seção).

 

Devido à natureza orquestrada e frequentemente efêmera das cargas de trabalho nativas da nuvem, é extremamente difícil para o invasor persistir. Quando um ataque como o Solarwinds acontece e infecta um servidor Windows em algum lugar, esse servidor Windows pode estar sendo executado com as mesmas permissões, mesmo endereço IP e sem tempo de inatividade ou atualizações por muitos meses, às vezes até anos. Por outro lado, uma função sem servidor normalmente é executada por segundos e no máximo 15 minutos na maioria dos ambientes de nuvem, o que limitaria o dano potencial.

 

A capacidade de observação em nuvem nativa é muito superior. Graças a ferramentas de código aberto como o Tracee , podemos obter informações detalhadas em tempo real sobre cada processo, cada conexão de rede, cada evento. É mais fácil detectar anomalias e isolá-las em nível de processo, função ou contêiner.

 

Como se proteger contra ataques à cadeia de suprimentos

Eliminar o risco de ataques à cadeia de suprimentos é virtualmente impossível – mas existem medidas que DevOps e equipes de segurança podem tomar para reduzir esse risco:

 

Controle o acesso a registros públicos e componentes de código aberto

 

Reduza o risco limitando o número de pessoas que podem acessar imagens e pacotes públicos e crie um registro interno com curadoria para imagens de base. Implemente um processo para garantir que apenas imagens confiáveis ​​sejam usadas.

 

Assine imagens digitalmente ou use outros métodos para manter a integridade da imagem dev-to-prod

 

Certifique-se de que as imagens que você está implantando sejam as mesmas que você verificou e evite a implantação de imagens fora do pipeline predefinido. Na plataforma Aqua, automaticamente fazemos impressões digitais e rastreamos todas as imagens digitalizadas , o que nos permite detectar e prevenir o uso de imagens ou funções não compatíveis ou não reconhecidas em seu ambiente.

 

Isole seus ambientes de desenvolvimento / preparação

 

Se sua cadeia de suprimentos for penetrada com sucesso, os invasores podem tentar pular em ambientes adjacentes, mesmo sem visar ambientes de produção, para coisas como credenciais de administrador, IP confidencial ou código-fonte. Certifique-se de autenticar o acesso e limitá-lo a endereços IP específicos (ou VPN). Na plataforma Aqua, permitimos que os clientes mantenham uma separação estrita de funções (SoD) entre equipes e funções diferentes , bem como usem a definição de escopo flexível para políticas para que diferentes possam ser aplicadas a ambientes de desenvolvimento versus produção.

 

Faça a varredura de imagens em busca de malware, usando análise estática e dinâmica

 

Embora haja algum valor na varredura de imagens e funções para malware usando ferramentas estáticas, baseadas em assinaturas ou padrões, os ataques mais sofisticados agora evitam essas técnicas por fases de seus ataques – incorporando componentes pequenos e de aparência inocente na imagem e, em seguida, baixando e executando malware adicional apenas quando a imagem é executada como um contêiner.

 

Esses ataques sofisticados são perdidos pela vulnerabilidade estática e varredura de malware e só podem ser detectados pela análise dinâmica do comportamento do contêiner enquanto ele está em execução. Você precisa usar ferramentas como Aqua DTA (Dynamic Threat Analysis) que identifica elementos maliciosos em imagens, executando a imagem em uma caixa de proteção segura para observar seu comportamento.

 

Automatize e incorpore controles de segurança no pipeline de CI / CD

 

Com o ritmo acelerado dos ciclos de lançamento, é crucial incorporar a segurança ao seu ciclo de vida de desenvolvimento desde o início. Para detectar um ataque à cadeia de suprimentos logo no início, você precisa ser capaz de detectar desvios inesperados de execução de código em seu pipeline. Para esse propósito, você pode usar o Tracee, ferramenta de segurança de tempo de execução de código aberto, que também pode identificar atividades maliciosas durante a construção , ajudando assim a proteger seus aplicativos no início do ciclo de desenvolvimento.

 

 Monitore seu ambiente de execução

 

Se sua cadeia de suprimentos for penetrada apesar de todos os itens acima, isso acabará se revelando uma atividade anormal em seu ambiente de produção. A proteção em tempo de execução em tempo real deve ser um elemento em qualquer estratégia destinada a proteger tanto contra ataques à cadeia de suprimentos quanto contra ataques “normais” à infraestrutura de produção e aos aplicativos.

 

Conclusão

A realidade da cadeia de suprimentos de software nativo em nuvem é que as organizações dependem muito de código de terceiros, potencialmente introduzindo componentes vulneráveis ​​e arriscados em seus aplicativos. Isso oferece muitas oportunidades para os invasores atingirem software legítimo por meio de terceiros e se incorporarem ao processo de desenvolvimento. Os ataques à cadeia de suprimentos vieram para ficar e evoluir, e as organizações devem ajustar suas práticas de segurança para detectá-los, identificá-los e mitigá-los.

 

Para entender melhor como o Aqua DTA ajuda a proteger seus clientes contra ataques à cadeia de suprimentos, entre em contato.

 

Traduzido e adaptado de: https://bit.ly/3dm9SRa