AWS Admin

Amazon Inspector e Trusted Advisor: Vulnerabilidades e Boas Práticas na Prática Já leu

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: 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

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.

Referências


Artigos relacionados