Amazon Inspector: Análise Automatizada de Vulnerabilidades
Amazon Inspector é um serviço gerenciado da AWS que realiza avaliações automáticas de segurança em suas aplicações e infraestrutura. Ele identifica vulnerabilidades, desvios de conformidade e exposições de rede por meio de análise contínua. O Inspector utiliza um banco de dados constantemente atualizado de CVEs (Common Vulnerabilities and Exposures) para validar suas instâncias EC2, imagens de container no ECR e funções Lambda contra ameaças conhecidas.
O grande diferencial do Inspector é sua capacidade de análise em tempo real sem impacto na performance. Ele mapeia dependências de software, detecta configurações inseguras e fornece relatórios priorizados por severidade. Você não precisa se preocupar com infraestrutura adicional — o serviço funciona nativamente dentro do seu ambiente AWS com permissões via IAM.
Ativando e Configurando Inspector
Para ativar o Amazon Inspector via CLI, execute:
aws inspector2 enable \
--resource-types EC2 ECR LAMBDA \
--region us-east-1
Essa ativação habilita scanning automático para seus recursos. O serviço começa a verificar vulnerabilidades imediatamente após ativação. Você pode criar políticas customizadas para diferentes grupos de recursos:
aws inspector2 create-filter \
--name "Critical-Production" \
--filter-criteria file://filter.json \
--region us-east-1
Onde filter.json contém:
{
"severities": {
"values": ["CRITICAL", "HIGH"]
},
"resourceTypes": {
"comparison": "EQUALS",
"value": "AWS_EC2_INSTANCE"
}
}
AWS Trusted Advisor: Otimização em Larga Escala
Trusted Advisor é um serviço de recomendação que verifica sua conta AWS em relação às melhores práticas estabelecidas pela Amazon. Diferentemente do Inspector (focado em vulnerabilidades), o Advisor analisa segurança, performance, resiliência e otimização de custos. Ele fornece um score de "bem-estar" geral com 200+ verificações automáticas.
O Advisor fornece feedback imediato sobre configurações inadequadas. Com suporte full (Business ou Enterprise), você recebe atualizações em tempo real. Com plano básico ou developer, as verificações ocorrem semanalmente. O serviço é especialmente valioso para validar conformidade com frameworks como CIS Benchmarks e Well-Architected Framework da AWS.
Consultando Recomendações do Trusted Advisor
Acesse as recomendações via CLI:
import boto3
import json
client = boto3.client('support', region_name='us-east-1')
# Obter verificações disponíveis
checks = client.describe_trusted_advisor_checks(language='en')
# Descrever resultado de uma verificação específica
result = client.describe_trusted_advisor_check_result(
checkId='eW7HH0l7J4', # Security Groups - Specific Ports Unrestricted
language='en'
)
print(json.dumps(result['checkResult'], indent=2))
Para processar resultados em grande escala:
def analyze_advisor_findings(category='SECURITY'):
"""Analisa findings do Trusted Advisor por categoria"""
checks = client.describe_trusted_advisor_checks(language='en')
for check in checks['checks']:
if check['category'] == category:
result = client.describe_trusted_advisor_check_result(
checkId=check['id'],
language='en'
)
flagged_resources = result['checkResult'].get('flaggedResources', [])
if flagged_resources:
print(f"\n⚠️ {check['name']}")
print(f" Severity: {check['metadata'][-1]}")
print(f" Flagged: {len(flagged_resources)} recursos")
for resource in flagged_resources[:3]: # Primeiros 3
print(f" - {resource['metadata'][0]}")
analyze_advisor_findings(category='SECURITY')
Implementando Fluxo de Remediação Prático
Combinar Inspector e Trusted Advisor em um pipeline automatizado é onde a real segurança acontece. O ideal é criar ações corretivas baseadas em severidade e tipo de vulnerabilidade.
Implemente um Lambda que captura eventos de vulnerabilidades detectadas:
import boto3
import json
from datetime import datetime
inspector = boto3.client('inspector2', region_name='us-east-1')
sns = boto3.client('sns', region_name='us-east-1')
def lambda_handler(event, context):
"""Processa findings do Inspector via EventBridge"""
finding = event['detail']
# Classificar por severidade
severity = finding['severity']
resource_id = finding['resources'][0]['id']
if severity == 'CRITICAL':
# Ação imediata: notificar segurança
sns.publish(
TopicArn='arn:aws:sns:us-east-1:123456789:SecurityAlerts',
Subject=f'CRITICAL: Vulnerability in {resource_id}',
Message=json.dumps(finding, indent=2)
)
# Auto-remediate: isolar instância (exemplo)
ec2 = boto3.client('ec2', region_name='us-east-1')
ec2.modify_instance_attribute(
InstanceId=resource_id.split('/')[-1],
DisableApiTermination={'Value': False} # Permitir ações
)
return {
'statusCode': 200,
'body': 'Critical vulnerability escalated and isolated'
}
elif severity in ['HIGH', 'MEDIUM']:
# Gerar ticket automaticamente
# Aqui você integraria com Jira, ServiceNow, etc
pass
return {'statusCode': 200, 'body': 'Finding processed'}
Orquestração com EventBridge e State Machine
Configure uma regra EventBridge para capturar findings em tempo real:
{
"Name": "InspectorVulnerabilityDetected",
"EventPattern": {
"source": ["aws.inspector2"],
"detail-type": ["Inspector2 Finding - New"],
"detail": {
"severity": ["CRITICAL", "HIGH"]
}
},
"State": "ENABLED",
"Targets": [
{
"Arn": "arn:aws:lambda:us-east-1:123456789:function:VulnerabilityHandler",
"RoleArn": "arn:aws:iam::123456789:role/EventBridgeRole"
}
]
}
Crie uma política IAM mínima para o Lambda:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"inspector2:ListFindings",
"inspector2:BatchGetFindingDetails"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ec2:CreateSecurityGroup"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": ["sns:Publish"],
"Resource": "arn:aws:sns:*:123456789:*"
}
]
}
Dashboard e Monitoramento Contínuo
Integre dados de Inspector e Advisor no CloudWatch para visibilidade centralizada:
def push_metrics_to_cloudwatch():
"""Envia métricas customizadas para CloudWatch"""
cloudwatch = boto3.client('cloudwatch')
# Contar vulnerabilidades por severidade
findings = inspector.list_findings(filterCriteria={
'severities': [{'comparison': 'EQUALS', 'value': 'CRITICAL'}]
})
cloudwatch.put_metric_data(
Namespace='SecurityDashboard',
MetricData=[
{
'MetricName': 'CriticalVulnerabilities',
'Value': len(findings['findings']),
'Unit': 'Count',
'Timestamp': datetime.utcnow()
}
]
)
Conclusão
Os três pontos críticos para dominar esta área: primeiro, entenda que Inspector foca em vulnerabilidades técnicas em tempo real enquanto Trusted Advisor trata conformidade e boas práticas — são complementares, não excludentes. Segundo, automatize tudo via EventBridge e Lambda; findings sem ação são desperdício. Terceiro, priorize por severidade e contexto de negócio — nem toda HIGH vulnerability é urgente da mesma forma.
Seu roadmap: ativar ambos os serviços, criar dashboards, implementar alertas, validar remediação automática em staging, depois produção. A segurança real vem da execução consistente.