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:
O container sobe apenas no momento do scan.
Executa a auditoria de forma isolada e limpa.
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.
