Auditing Cloud with CIS Benchmarks
When to Use
- Ao realizar auditorias de segurança iniciais de ambientes cloud em relação a benchmarks padrão do setor
- Ao se preparar para auditorias SOC 2, ISO 27001 ou regulatórias que referenciam controles CIS
- Ao estabelecer uma linha de base de segurança mensurável para novas contas ou assinaturas cloud
- Ao monitorar a melhoria da conformidade ao longo do tempo com reavaliações periódicas
- Ao avaliar a postura de segurança de ambientes cloud adquiridos ou herdados
Não use para detecção de ameaças em tempo de execução (veja detecting-cloud-threats-with-guardduty), para testes de segurança em nível de aplicação (veja conducting-cloud-penetration-testing) ou para frameworks de conformidade que não sejam baseados em CIS (consulte arquivos de habilidade regulatória específicos).
Prerequisites
- Acesso somente leitura às contas cloud alvo (política AWS SecurityAudit, função Azure Reader, função GCP Viewer)
- Prowler, ScoutSuite ou ferramentas CSPM nativas da nuvem instaladas e configuradas
- Compreensão da estrutura do CIS benchmark: seções, controles, perfis (Nível 1 e Nível 2)
- Acesso de correção para implementar correções (separado das credenciais de auditoria)
Workflow
Step 1: Selecione a Versão Apropriada do CIS Benchmark
Escolha a versão correta do benchmark para cada provedor cloud. As versões atuais em 2025 incluem CIS AWS Foundations Benchmark v5.0, CIS Azure Foundations Benchmark v4.0 e CIS GCP Foundations Benchmark v4.0.
Áreas de Cobertura do CIS Benchmark:
+---------------------------+--------------------------+--------------------------+
| Seção | AWS v5.0 | Azure v4.0 |
+---------------------------+--------------------------+--------------------------+
| Identidade e Acesso | Políticas IAM, MFA, root | Azure AD, RBAC, PIM |
| Logging | CloudTrail, Config | Activity Log, Diag |
| Monitoramento | Alarmes CloudWatch | Defender, Sentinel |
| Redes | VPC, SG, NACLs | NSG, ASG, Firewall |
| Armazenamento | Criptografia S3, acesso | Criptografia Storage |
| Banco de Dados | Criptografia RDS | SQL TDE, auditoria |
+---------------------------+--------------------------+--------------------------+
Níveis de Perfil CIS:
Nível 1: Configurações de segurança práticas que podem ser implementadas sem impacto
significativo no desempenho ou funcionalidade reduzida
Nível 2: Configurações de defesa em profundidade que podem reduzir a funcionalidade ou exigir
planejamento adicional para implementação
Step 2: Execute Avaliação Automatizada com Prowler
Execute varreduras abrangentes do CIS benchmark usando o Prowler para avaliação automatizada de controles em AWS, Azure e GCP.
# Avaliação AWS CIS v5.0
prowler aws \
--compliance cis_5.0_aws \
--profile audit-account \
--output-formats json-ocsf,html,csv \
--output-directory ./cis-audit-$(date +%Y%m%d)
# Avaliação Azure CIS v4.0
prowler azure \
--compliance cis_4.0_azure \
--subscription-ids "sub-id-1,sub-id-2" \
--output-formats json-ocsf,html,csv \
--output-directory ./cis-audit-azure-$(date +%Y%m%d)
# Avaliação GCP CIS v4.0
prowler gcp \
--compliance cis_4.0_gcp \
--project-ids "project-1,project-2" \
--output-formats json-ocsf,html,csv \
--output-directory ./cis-audit-gcp-$(date +%Y%m%d)
# Varredura multi-conta AWS usando ScoutSuite
scout suite aws \
--profile audit-account \
--report-dir ./scout-report \
--ruleset cis-5.0 \
--force
Step 3: Interprete os Resultados e Priorize a Correção
Analise os resultados da auditoria por seção e gravidade. Priorize primeiro os controles de Nível 1, pois representam higiene de segurança fundamental, depois aborde os controles de Nível 2 para defesa em profundidade.
# Analise os resultados do Prowler para controles com falha
cat ./cis-audit-*/prowler-output-*.json | \
jq '[.[] | select(.StatusExtended == "FAIL")] | group_by(.CheckID) |
map({control: .[0].CheckID, description: .[0].CheckTitle,
failed_resources: length, severity: .[0].Severity}) |
sort_by(-.failed_resources)'
# Gere pontuação de conformidade por seção
cat ./cis-audit-*/prowler-output-*.json | \
jq 'group_by(.Section) | map({
section: .[0].Section,
total: length,
passed: [.[] | select(.StatusExtended == "PASS")] | length,
failed: [.[] | select(.StatusExtended == "FAIL")] | length,
score: (([.[] | select(.StatusExtended == "PASS")] | length) / length * 100 | round)
})'
Step 4: Corrija Controles Críticos e Altos
Aborde controles com falha começando pelos itens de maior impacto. Use AWS Config remediation, Azure Policy ou Terraform para aplicar correções sistematicamente.
# CIS 1.4: Garanta que não exista chave de acesso da conta root
aws iam list-access-keys --user-name root
# Se existirem chaves, exclua-as
aws iam delete-access-key --user-name root --access-key-id AKIAEXAMPLE
# CIS 2.1.1: Garanta que a criptografia padrão de bucket S3 esteja ativada
for bucket in $(aws s3api list-buckets --query 'Buckets[*].Name' --output text); do
aws s3api put-bucket-encryption --bucket "$bucket" \
--server-side-encryption-configuration '{
"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]
}' 2>/dev/null && echo "Criptografado: $bucket" || echo "FALHA: $bucket"
done
# CIS 3.1: Garanta que o CloudTrail esteja ativado em todas as regiões
aws cloudtrail create-trail \
--name organization-trail \
--s3-bucket-name cloudtrail-logs-bucket \
--is-multi-region-trail \
--enable-log-file-validation \
--kms-key-id arn:aws:kms:us-east-1:123456789012:key/key-id
aws cloudtrail start-logging --name organization-trail
# CIS 4.x: Configure filtros de métrica e alarmes do CloudWatch
aws logs put-metric-filter \
--log-group-name CloudTrail/DefaultLogGroup \
--filter-name UnauthorizedAPICalls \
--filter-pattern '{ ($.errorCode = "*UnauthorizedAccess*") || ($.errorCode = "AccessDenied*") }' \
--metric-transformations metricName=UnauthorizedAPICalls,metricNamespace=CISBenchmark,metricValue=1
Step 5: Estabeleça Monitoramento Contínuo de Conformidade
Implante monitoramento automatizado de conformidade para detectar desvios de configuração entre auditorias periódicas. Use AWS Security Hub, Azure Policy ou GCP Security Command Center.
# AWS: Ative o CIS v5.0 no Security Hub
aws securityhub batch-enable-standards \
--standards-subscription-requests '[
{"StandardsArn": "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/5.0.0"}
]'
# Azure: Atribua a iniciativa de política CIS benchmark
az policy assignment create \
--name cis-azure-benchmark \
--scope "/subscriptions/<sub-id>" \
--policy-set-definition "1a5bb27d-173f-493e-9568-eb56638dbd0e" \
--params '{"effect": {"value": "AuditIfNotExists"}}'
# Agende avaliações periódicas do Prowler
# Execute semanalmente via cron ou pipeline CI/CD
0 2 * * 1 prowler aws --compliance cis_5.0_aws --output-formats csv --output-directory /opt/audits/weekly-$(date +\%Y\%m\%d)
Key Concepts
| Termo | Definição |
|---|---|
| CIS Benchmark | Diretrizes prescritivas de configuração de segurança desenvolvidas pelo Center for Internet Security por meio de consenso comunitário |
| Perfil Nível 1 | Controles de segurança práticos implementáveis sem impacto significativo no desempenho ou funcionalidade, representando higiene de segurança |
| Perfil Nível 2 | Controles de defesa em profundidade que podem restringir a funcionalidade e exigir planejamento cuidadoso antes da implementação |
| Foundations Benchmark | Benchmark CIS especificamente para provedores cloud, cobrindo segurança de IAM, logging, monitoramento, redes e armazenamento |
| ID do Controle | Identificador numérico único para cada recomendação CIS (ex.: 1.4 para verificação de chave de acesso root, 2.1.1 para criptografia S3) |
| Pontuação de Conformidade | Porcentagem de controles CIS em estado aprovado, rastreada ao longo do tempo para medir a melhoria da postura de segurança |
| Avaliação Automatizada | Avaliação orientada por ferramentas de controles CIS usando APIs do provedor cloud para verificar configurações de recursos em relação aos requisitos do benchmark |
| Runbook de Correção | Procedimento documentado passo a passo para corrigir um controle CIS com falha específico, incluindo pré-verificações e validação |
Tools & Systems
- Prowler: Ferramenta de segurança cloud de código aberto que realiza mais de 300 verificações, incluindo avaliações CIS benchmark para AWS, Azure e GCP
- ScoutSuite: Ferramenta de auditoria de segurança multi-cloud com conjuntos de regras CIS benchmark que geram relatórios HTML
- AWS Security Hub: Serviço nativo da AWS que suporta o CIS AWS Foundations Benchmark como padrão de segurança
- Azure Policy: Serviço de governança com iniciativas de política CIS benchmark integradas para monitoramento automatizado de conformidade
- GCP Security Command Center: Serviço nativo do GCP que avalia configurações em relação ao CIS GCP Foundations Benchmark
Common Scenarios
Scenario: Avaliação Pré-Auditoria CIS para Certificação SOC 2
Contexto: Uma empresa SaaS buscando certificação SOC 2 Tipo II precisa demonstrar controles de segurança cloud alinhados aos benchmarks CIS. O auditor exige evidências de monitoramento contínuo de conformidade em 45 contas AWS.
Abordagem:
- Execute avaliação Prowler CIS v5.0 em todas as 45 contas para estabelecer a pontuação de conformidade inicial
- Exporte os resultados para CSV e categorize as falhas por seção (IAM, Logging, Monitoramento, Redes)
- Mapeie cada controle CIS para os Critérios de Serviço SOC 2 relevantes (CC6.1, CC6.6, CC7.1, etc.)
- Corrija todas as falhas de controle de Nível 1 em até 30 dias e de Nível 2 em até 60 dias
- Ative o CIS v5.0 no AWS Security Hub para monitoramento contínuo e detecção automatizada de desvios
- Gere relatórios semanais de conformidade mostrando a trajetória de melhoria para o auditor
- Documente exceções para controles intencionalmente não implementados com justificativa de aceitação de risco
Armadilhas: Corrigir controles sem testar em um ambiente de staging primeiro pode interromper cargas de trabalho de produção. Ignorar controles de Nível 2 enfraquece a narrativa da auditoria, mesmo que não sejam estritamente necessários.
Output Format
Relatório de Auditoria CIS Benchmark
==========================================
Provedor Cloud: AWS
Versão do Benchmark: CIS AWS Foundations Benchmark v5.0
Contas Avaliadas: 45
Data da Avaliação: 2025-02-23
Ferramenta: Prowler v4.3.0
PONTUAÇÃO GERAL DE CONFORMIDADE: 74%
CONFORMIDADE POR SEÇÃO:
1. Gerenciamento de Identidade e Acesso: 68% (41/60 controles aprovados)
2. Armazenamento: 82% (28/34 controles aprovados)
3. Logging: 91% (20/22 controles aprovados)
4. Monitoramento: 55% (18/33 controles aprovados)
5. Redes: 78% (32/41 controles aprovados)
PRINCIPAIS CONTROLES COM FALHA (por contas afetadas):
[1.4] Conta root tem chaves de acesso ativas - 3/45 contas
[1.5] MFA não ativado para conta root - 2/45 contas
[2.1.1] Criptografia padrão S3 não ativada - 12/45 contas
[3.1] CloudTrail não multi-região - 8/45 contas
[4.3] Nenhum alarme para uso da conta root - 28/45 contas
[5.1] Logs de fluxo VPC não ativados - 15/45 contas
[5.4] Grupos de segurança permitem 0.0.0.0/0 de entrada - 22/45 contas
PRIORIDADE DE CORREÇÃO:
Crítica (Corrigir em 7 dias): Chaves de acesso root, MFA root ausente
Alta (Corrigir em 30 dias): Criptografia S3, CloudTrail, logs de fluxo VPC
Média (Corrigir em 60 dias): Alarmes CloudWatch, restrições de grupo de segurança
Baixa (Corrigir em 90 dias): Controles de Nível 2, itens informativos