Cloud & Infraestrutura

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

9 min de leitura

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

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

<h2>Amazon Inspector: Análise Automatizada de Vulnerabilidades</h2>

<p>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.</p>

<p>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.</p>

<h3>Ativando e Configurando Inspector</h3>

<p>Para ativar o Amazon Inspector via CLI, execute:</p>

<pre><code class="language-bash">aws inspector2 enable \

--resource-types EC2 ECR LAMBDA \

--region us-east-1</code></pre>

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

<pre><code class="language-bash">aws inspector2 create-filter \

--name &quot;Critical-Production&quot; \

--filter-criteria file://filter.json \

--region us-east-1</code></pre>

<p>Onde <code>filter.json</code> contém:</p>

<pre><code class="language-json">{

&quot;severities&quot;: {

&quot;values&quot;: [&quot;CRITICAL&quot;, &quot;HIGH&quot;]

},

&quot;resourceTypes&quot;: {

&quot;comparison&quot;: &quot;EQUALS&quot;,

&quot;value&quot;: &quot;AWS_EC2_INSTANCE&quot;

}

}</code></pre>

<h2>AWS Trusted Advisor: Otimização em Larga Escala</h2>

<p>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 &quot;bem-estar&quot; geral com 200+ verificações automáticas.</p>

<p>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.</p>

<h3>Consultando Recomendações do Trusted Advisor</h3>

<p>Acesse as recomendações via CLI:</p>

<pre><code class="language-python">import boto3

import json

client = boto3.client(&#039;support&#039;, region_name=&#039;us-east-1&#039;)

Obter verificações disponíveis

checks = client.describe_trusted_advisor_checks(language=&#039;en&#039;)

Descrever resultado de uma verificação específica

result = client.describe_trusted_advisor_check_result(

checkId=&#039;eW7HH0l7J4&#039;, # Security Groups - Specific Ports Unrestricted

language=&#039;en&#039;

)

print(json.dumps(result[&#039;checkResult&#039;], indent=2))</code></pre>

<p>Para processar resultados em grande escala:</p>

<pre><code class="language-python">def analyze_advisor_findings(category=&#039;SECURITY&#039;):

&quot;&quot;&quot;Analisa findings do Trusted Advisor por categoria&quot;&quot;&quot;

checks = client.describe_trusted_advisor_checks(language=&#039;en&#039;)

for check in checks[&#039;checks&#039;]:

if check[&#039;category&#039;] == category:

result = client.describe_trusted_advisor_check_result(

checkId=check[&#039;id&#039;],

language=&#039;en&#039;

)

flagged_resources = result[&#039;checkResult&#039;].get(&#039;flaggedResources&#039;, [])

if flagged_resources:

print(f&quot;\n⚠️ {check[&#039;name&#039;]}&quot;)

print(f&quot; Severity: {check[&#039;metadata&#039;][-1]}&quot;)

print(f&quot; Flagged: {len(flagged_resources)} recursos&quot;)

for resource in flagged_resources[:3]: # Primeiros 3

print(f&quot; - {resource[&#039;metadata&#039;][0]}&quot;)

analyze_advisor_findings(category=&#039;SECURITY&#039;)</code></pre>

<h2>Implementando Fluxo de Remediação Prático</h2>

<p>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.</p>

<p>Implemente um Lambda que captura eventos de vulnerabilidades detectadas:</p>

<pre><code class="language-python">import boto3

import json

from datetime import datetime

inspector = boto3.client(&#039;inspector2&#039;, region_name=&#039;us-east-1&#039;)

sns = boto3.client(&#039;sns&#039;, region_name=&#039;us-east-1&#039;)

def lambda_handler(event, context):

&quot;&quot;&quot;Processa findings do Inspector via EventBridge&quot;&quot;&quot;

finding = event[&#039;detail&#039;]

Classificar por severidade

severity = finding[&#039;severity&#039;]

resource_id = finding[&#039;resources&#039;][0][&#039;id&#039;]

if severity == &#039;CRITICAL&#039;:

Ação imediata: notificar segurança

sns.publish(

TopicArn=&#039;arn:aws:sns:us-east-1:123456789:SecurityAlerts&#039;,

Subject=f&#039;CRITICAL: Vulnerability in {resource_id}&#039;,

Message=json.dumps(finding, indent=2)

)

Auto-remediate: isolar instância (exemplo)

ec2 = boto3.client(&#039;ec2&#039;, region_name=&#039;us-east-1&#039;)

ec2.modify_instance_attribute(

InstanceId=resource_id.split(&#039;/&#039;)[-1],

DisableApiTermination={&#039;Value&#039;: False} # Permitir ações

)

return {

&#039;statusCode&#039;: 200,

&#039;body&#039;: &#039;Critical vulnerability escalated and isolated&#039;

}

elif severity in [&#039;HIGH&#039;, &#039;MEDIUM&#039;]:

Gerar ticket automaticamente

Aqui você integraria com Jira, ServiceNow, etc

pass

return {&#039;statusCode&#039;: 200, &#039;body&#039;: &#039;Finding processed&#039;}</code></pre>

<h3>Orquestração com EventBridge e State Machine</h3>

<p>Configure uma regra EventBridge para capturar findings em tempo real:</p>

<pre><code class="language-json">{

&quot;Name&quot;: &quot;InspectorVulnerabilityDetected&quot;,

&quot;EventPattern&quot;: {

&quot;source&quot;: [&quot;aws.inspector2&quot;],

&quot;detail-type&quot;: [&quot;Inspector2 Finding - New&quot;],

&quot;detail&quot;: {

&quot;severity&quot;: [&quot;CRITICAL&quot;, &quot;HIGH&quot;]

}

},

&quot;State&quot;: &quot;ENABLED&quot;,

&quot;Targets&quot;: [

{

&quot;Arn&quot;: &quot;arn:aws:lambda:us-east-1:123456789:function:VulnerabilityHandler&quot;,

&quot;RoleArn&quot;: &quot;arn:aws:iam::123456789:role/EventBridgeRole&quot;

}

]

}</code></pre>

<p>Crie uma política IAM mínima para o Lambda:</p>

<pre><code class="language-json">{

&quot;Version&quot;: &quot;2012-10-17&quot;,

&quot;Statement&quot;: [

{

&quot;Effect&quot;: &quot;Allow&quot;,

&quot;Action&quot;: [

&quot;inspector2:ListFindings&quot;,

&quot;inspector2:BatchGetFindingDetails&quot;

],

&quot;Resource&quot;: &quot;*&quot;

},

{

&quot;Effect&quot;: &quot;Allow&quot;,

&quot;Action&quot;: [

&quot;ec2:DescribeInstances&quot;,

&quot;ec2:CreateSecurityGroup&quot;

],

&quot;Resource&quot;: &quot;*&quot;

},

{

&quot;Effect&quot;: &quot;Allow&quot;,

&quot;Action&quot;: [&quot;sns:Publish&quot;],

&quot;Resource&quot;: &quot;arn:aws:sns::123456789:&quot;

}

]

}</code></pre>

<h2>Dashboard e Monitoramento Contínuo</h2>

<p>Integre dados de Inspector e Advisor no CloudWatch para visibilidade centralizada:</p>

<pre><code class="language-python">def push_metrics_to_cloudwatch():

&quot;&quot;&quot;Envia métricas customizadas para CloudWatch&quot;&quot;&quot;

cloudwatch = boto3.client(&#039;cloudwatch&#039;)

Contar vulnerabilidades por severidade

findings = inspector.list_findings(filterCriteria={

&#039;severities&#039;: [{&#039;comparison&#039;: &#039;EQUALS&#039;, &#039;value&#039;: &#039;CRITICAL&#039;}]

})

cloudwatch.put_metric_data(

Namespace=&#039;SecurityDashboard&#039;,

MetricData=[

{

&#039;MetricName&#039;: &#039;CriticalVulnerabilities&#039;,

&#039;Value&#039;: len(findings[&#039;findings&#039;]),

&#039;Unit&#039;: &#039;Count&#039;,

&#039;Timestamp&#039;: datetime.utcnow()

}

]

)</code></pre>

<h2>Conclusão</h2>

<p>Os três pontos críticos para dominar esta área: <strong>primeiro</strong>, 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. <strong>Segundo</strong>, automatize tudo via EventBridge e Lambda; findings sem ação são desperdício. <strong>Terceiro</strong>, priorize por severidade e contexto de negócio — nem toda HIGH vulnerability é urgente da mesma forma.</p>

<p>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.</p>

<h2>Referências</h2>

<ul>

<li><a href="https://docs.aws.amazon.com/inspector/latest/user/what-is-inspector.html" target="_blank" rel="noopener noreferrer">AWS Inspector Documentation</a></li>

<li><a href="https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor.html" target="_blank" rel="noopener noreferrer">AWS Trusted Advisor Best Practices</a></li>

<li><a href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html" target="_blank" rel="noopener noreferrer">AWS Well-Architected Framework - Security Pillar</a></li>

<li><a href="https://nvd.nist.gov/vuln/search" target="_blank" rel="noopener noreferrer">CVE Database - NVD Official</a></li>

<li><a href="https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html" target="_blank" rel="noopener noreferrer">AWS Security Hub Integration Guide</a></li>

</ul>

Comentários

Mais em Cloud & Infraestrutura

IAM Avançado: SCP, Permission Boundaries e Attribute-Based Access: Do Básico ao Avançado
IAM Avançado: SCP, Permission Boundaries e Attribute-Based Access: Do Básico ao Avançado

IAM Avançado: SCP, Permission Boundaries e Attribute-Based Access O que é IAM...

Dominando AWS Lambda: Fundamentos, Triggers e Execution Model em Projetos Reais
Dominando AWS Lambda: Fundamentos, Triggers e Execution Model em Projetos Reais

Fundamentos do AWS Lambda AWS Lambda é um serviço de computação sem servidor...

Como Usar S3 em Profundidade: Bucket Policies, Versioning e Lifecycle Rules em Produção
Como Usar S3 em Profundidade: Bucket Policies, Versioning e Lifecycle Rules em Produção

Bucket Policies: Controle de Acesso em Escala As Bucket Policies são document...