Auditoria de Segurança Serverless na AWS com Prowler e CodeBuild

Como podemos ter uma ferramenta poderosa de auditoria sem usar nenhum servidor.

Published on January 21, 2026

Auditoria de Segurança Serverless na AWS com Prowler e CodeBuild

Introdução: O Desafio da Infraestrutura de Segurança

O Prowler é uma das ferramentas open-source mais poderosas para realizar auditorias de segurança na AWS, verificando conformidade com frameworks como CIS Benchmark, PCI-DSS e GDPR. No entanto, o método tradicional de execução — manter um servidor dedicado para rodar os scans — cria um novo problema: mais infraestrutura para gerenciar.

O Problema: Os Servidores EC2 "Zumbis"

Manter uma instância EC2 ligada apenas para rodar auditorias periódicas gera diversos gargalos:

  • Custos Desnecessários: Pagamento por horas ociosas entre um scan e outro.

  • Manutenção de Patches: Necessidade de atualizar o Sistema Operacional e as dependências do Prowler.

  • Segurança da Auditoria: Um servidor permanente é um alvo a mais; se ele for comprometido, suas chaves de auditoria também estarão em risco.

A Solução: AWS CodeBuild como Orquestrador

A arquitetura moderna substitui servidores fixos por Segurança Serverless. Ao utilizar o AWS CodeBuild, o ambiente de scan torna-se efêmero:

  1. O container sobe apenas no momento do scan.

  2. Executa a auditoria de forma isolada e limpa.

  3. Desliga imediatamente após o término, cobrando apenas pelos minutos utilizados.


O Script (Buildspec): Simplicidade e Direto ao Ponto

Abaixo, um exemplo de como o buildspec.yml do CodeBuild torna o processo automatizado e livre de gestão de SO:


version: 0.2

phases:
  install:
    runtime-versions:
      python: 3.11
    commands:
      - echo "Instalando o Prowler..."
      - pip3 install -q -U prowler
  build:
    commands:
      - echo "Iniciando a varredura do Prowler para S3 e Security Hub..."
      
      # 1. Rodar o Prowler em MODO DEBUG e salvar o log em um arquivo
      - prowler aws --output-modes json-asff html json -f us-east-1 --log-level DEBUG --log-file prowler-debug.log || true
      
      - echo "Varredura concluída. Fazendo upload dos relatórios para o S3..."
      
      # 2. Criar o timestamp (como antes)
      - TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
      
      # 3. Copiar a pasta 'output' (como antes)
      - aws s3 cp output/ s3://logs-prowler2/prowler-report-$TIMESTAMP/ --recursive
      
      # 4. (NOVO) Fazer o upload do arquivo de LOG DE DEPURAÇÃO para o S3
      - aws s3 cp prowler-debug.log s3://logs-prowler2/prowler-report-$TIMESTAMP/
      
      - echo "Upload para s3://logs-prowler2/prowler-report-$TIMESTAMP/ concluído."


Resultados: Artefatos no S3 para todos os públicos

Ao final da execução, os resultados são automaticamente enviados para um bucket S3, atendendo a diferentes necessidades simultaneamente:

  • HTML (Para Humanos): Um dashboard visual pronto para ser revisado por gestores e auditores, com gráficos e tabelas de fácil leitura.

  • JSON/ASFF (Para Máquinas): Dados estruturados prontos para serem ingeridos por um SIEM (como o Wazuh) ou para alimentar automações de remediação.

  • Logs Detalhados: Rastro completo da execução para fins de auditoria e conformidade técnica.


Conclusão: Mudar para o modelo Serverless não é apenas sobre custo; é sobre focar no que importa. Em vez de gerenciar servidores, o time de segurança foca em analisar as falhas encontradas e proteger a infraestrutura.