A equipe de pesquisa da Tenable descobriu novas técnicas de ataque em Linguagens Específicas de Domínio (DSLs, na sigla em inglês) utilizadas em plataformas populares de Policy-as-Code (PaC) e Infrastructure-as-Code (IaC). Essas vulnerabilidades podem resultar em identidades na nuvem comprometidas, movimentação lateral (movimentos dentro da rede invadida) e exfiltração de dados.
O Infrastructure-as-Code (IaC) tornou-se a espinha dorsal das práticas modernas de DevOps na nuvem e as ferramentas de Policy-as-Code são fundamentais para gerenciar implementações sensíveis e complexas. As linguagens de DSL's são frequentemente consideradas mais seguras do que as linguagens de programação padrão devido às suas capacidades limitadas e design robusto. No entanto, esses frameworks são frequentemente assumidos como seguros por padrão, deixando uma porta aberta para que atacantes os explorem.
Por que isso é importante
Embora as DSLs, como os utilizados no Open Policy Agent (OPA) e no Terraform da HashiCorp, sejam projetadas para serem seguras, os achados da Tenable revelam configurações erradas específicas que os atacantes podem manipular por meio de componentes de terceiros. Isso destaca a importância de repensar estratégias de segurança nas implementações de PaC e IaC.
Este anúncio segue a recente identificação de uma vulnerabilidade de força de autenticação SMB no Open Policy Agent (OPA).
"Essas novas técnicas de ataque destacam o quão complexa a segurança na nuvem pode ser. As organizações na América Latina estão cada vez mais em risco e precisamos agir proativamente para ajudar a reduzir a exposição a ameaças e a proteger ambientes críticos na nuvem", afirma Alejandro Dutto, diretor de engenharia de Segurança da Tenable para América Latina e Caribe.
Cenários de Ataque
• Open Policy Agent (OPA)
O OPA é um motor de políticas amplamente utilizado para casos como autorização de microsserviços e políticas de infraestrutura. As políticas no OPA são escritas em Rego, uma DSL declarativa de alto nível com funções integradas que, quando mal utilizadas, podem facilitar atividades maliciosas.
A pesquisa da Tenable descobriu como um atacante que compromete a cadeia de suprimentos de políticas pode inserir políticas maliciosas em Rego, executadas durante avaliações, alcançando objetivos como a exfiltração de credenciais ou vazamento de dados.
• Terraform
O Terraform tem sido uma ferramenta amplamente adotada de IaC devido à sua natureza declarativa, agnóstica de plataforma, suporte comunitário e componentes reutilizáveis. Suas configurações utilizam a Linguagem de Configuração da HashiCorp (HCL), outra DSL.
O Terraform suporta componentes de terceiros como Módulos e Provedores, que podem ser compartilhados por meio do Registro Terraform ou outros registros públicos ou privados.
Embora esses componentes possam melhorar a eficiência e a segurança quando usados corretamente, o uso descuidado introduz riscos graves na cadeia de suprimentos. A Tenable descobriu que, quando o Terraform Plan está configurado para ser executado em um gatilho de pull request nas pipelines de CI/CD, os atacantes podem executar código não revisado, abrindo caminhos furtivos para agentes mal-intencionados internos ou externos.
Recomendações da Tenable Research para Mitigação
1. Implementar controle de acesso baseado em funções (RBAC): Aplique o princípio do menor privilégio para usuários locais e aqueles com acesso via API. Separe as funções para as etapas Terraform Plan e Apply para evitar alterações não revisadas na infraestrutura.
2. Verificar componentes de terceiros: Use apenas módulos, provedores e políticas de fontes confiáveis e verifique sua integridade antes da execução.
3. Habilitar logs abrangentes: Configure registros em nível de aplicativo e nuvem para monitoramento e detecção de anomalias.
4. Restringir acesso à rede e dados: Utilize o arquivo capabilities.json do OPA para limitar conexões de saída e evitar comunicações não autorizadas com servidores internos.
5. Escanear antes de planejar: Incorpore verificações de segurança no pipeline CI/CD antes da etapa terraform plan para evitar a execução de código não revisado ou malicioso.