<h2>Introdução ao AWS Security Hub</h2>
<p>O AWS Security Hub é um serviço centralizado que agrega, organiza e prioriza descobertas de segurança de múltiplas fontes da AWS. Se você gerencia infraestrutura na nuvem, sabe que monitorar segurança manualmente é inviável — o Hub automatiza essa tarefa crítica. Ele integra dados do GuardDuty, Inspector, Macie, CloudTrail, Config e outras ferramentas, fornecendo uma visão 360° da postura de segurança da sua organização em um único painel.</p>
<p>Diferentemente de gerenciar cada ferramenta individualmente, o Security Hub normaliza achados, aplica padrões de conformidade (CIS, PCI-DSS, HIPAA) e gera relatórios automatizados. Isso reduz tempo de resposta a incidentes e facilita auditorias. Para empresas com múltiplas contas AWS, o recurso de delegação permite consolidar achados em uma conta central, simplificando governança.</p>
<h2>Arquitetura e Funcionamento do Security Hub</h2>
<h3>Como o Security Hub Coleta Dados</h3>
<p>O Security Hub atua como um agregador inteligente. Ele se conecta a vários provedores de segurança — tanto nativos da AWS quanto de terceiros — e normaliza os achados em um formato padrão (ASFF: AWS Security Findings Format). Você pode habilitar integrações nativas como Config Rules, Inspector e GuardDuty, ou conectar ferramentas externas via API.</p>
<pre><code class="language-python">import boto3
import json
Cliente do Security Hub
client = boto3.client('securityhub', region_name='us-east-1')
Habilitar Security Hub
try:
response = client.create_hub(Tags={'Ambiente': 'Produção'})
print(f"Hub criado: {response['HubArn']}")
except client.exceptions.ResourceConflictException:
print("Hub já existe nesta região")
Ativar padrões de conformidade
compliance_standards = [
'arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0',
'arn:aws:securityhub:us-east-1::standards/cis-aws-foundations-benchmark/v/1.2.0'
]
for standard_arn in compliance_standards:
client.batch_enable_standards(StandardsSubscriptionRequests=[
{'StandardsArn': standard_arn}
])
print(f"Padrão {standard_arn.split('/')[-2]} ativado")</code></pre>
<h3>Filtragem e Priorização de Achados</h3>
<p>O Security Hub recebe centenas de achados diariamente. Para não ficar perdido em ruído, você precisa filtrar o que importa. A plataforma oferece múltiplos critérios: tipo de recurso, gravidade, status de remediação e conformidade.</p>
<pre><code class="language-python"># Buscar achados críticos não remediados
response = client.get_findings(
Filters={
'SeverityLabel': [{'Value': 'CRITICAL', 'Comparison': 'EQUALS'}],
'RecordState': [{'Value': 'ACTIVE', 'Comparison': 'EQUALS'}],
'ComplianceStatus': [{'Value': 'FAILED', 'Comparison': 'EQUALS'}]
},
MaxResults=100,
SortCriteria=[
{
'Field': 'FirstObservedAt',
'SortOrder': 'desc'
}
]
)
print(f"Achados críticos encontrados: {response['Findings'].__len__()}")
for finding in response['Findings']:
print(f"- {finding['Title']} ({finding['Resources'][0]['Type']})")</code></pre>
<h2>Implementação de Conformidade e Remediação</h2>
<h3>Configurar Padrões de Conformidade</h3>
<p>O Security Hub oferece templates prontos que mapeiam controles de segurança para seus recursos. O padrão CIS AWS Foundations Benchmark, por exemplo, verifica 18 controles críticos como habilitar MFA, proteger chaves de acesso e configurar logs.</p>
<p>Quando você ativa um padrão, o Hub roda avaliações automáticas e marca controles como "PASSED" ou "FAILED". A diferença em relação a gerenciar isso manualmente é crucial: você não precisa escrever regras — elas já existem, testadas por especialistas.</p>
<pre><code class="language-python"># Obter status dos controles de conformidade
response = client.describe_standards_controls(
StandardsSubscriptionArn='arn:aws:securityhub:us-east-1:123456789012:standards-subscription/cis-aws-foundations-benchmark/v/1.2.0/subscription/abc123'
)
failed_controls = [c for c in response['Controls']
if c['ControlStatus'] == 'FAILED']
print(f"Controles falhando: {len(failed_controls)}")
for control in failed_controls[:5]:
print(f"- [{control['ControlId']}] {control['Title']}")
print(f" Severidade: {control['SeverityRating']}")</code></pre>
<h3>Automação de Remediação com Lambda</h3>
<p>Nem todo achado requer intervenção manual. Para controles conhecidos, você pode criar Lambdas que remediarem automaticamente. Por exemplo, desabilitar portas SSH abertas ao público ou rotacionar chaves de acesso antigas.</p>
<pre><code class="language-python">import boto3
from datetime import datetime, timedelta
def lambda_handler(event, context):
"""Remediar chaves de acesso não rotacionadas"""
iam_client = boto3.client('iam')
securityhub_client = boto3.client('securityhub')
Listar todas as chaves de acesso
users = iam_client.list_users()['Users']
remediated = []
for user in users:
access_keys = iam_client.list_access_keys(UserName=user['UserName'])['AccessKeyMetadata']
for key in access_keys:
create_date = key['CreateDate'].replace(tzinfo=None)
age_days = (datetime.now() - create_date).days
Se a chave tem mais de 90 dias, marcar para renovação
if age_days > 90:
securityhub_client.update_findings(
FindingIdentifiers=[{
'Id': f"arn:aws:securityhub:region:account:finding/access-key-rotation/{key['AccessKeyId']}",
'ProductArn': 'arn:aws:securityhub:region:account:product/account/default'
}],
Note={'Text': f'Chave com {age_days} dias - enviado para renovação manual'}
)
remediated.append(f"{user['UserName']}:{key['AccessKeyId']}")
return {
'statusCode': 200,
'remediated': remediated
}</code></pre>
<h2>Gestão Centralizada com Múltiplas Contas</h2>
<h3>Arquitetura de Delegação</h3>
<p>Para organizações com muitas contas AWS, gerenciar Security Hub em cada uma é custoso. O modelo de delegação permite nomear uma conta central que agrega achados de todas as outras. Essa conta delegada recebe permissões via AWS Organizations ou invitações manuais.</p>
<p>A vantagem é clara: um painel único mostra a saúde de segurança de toda a organização. Você identifica rapidamente qual conta tem problemas críticos e prioriza remediação. Relatórios consolidados facilitam compliance com auditores externos.</p>
<pre><code class="language-python"># Na conta delegada (central)
client = boto3.client('securityhub', region_name='us-east-1')
Convidar conta member
response = client.create_members(
AccountDetails=[
{
'AccountId': '210987654321',
'Email': 'security-team@empresa.com'
}
]
)
print(f"Convites enviados: {len(response['Members'])}")
Aceitar convite (na conta member)
member_client = boto3.client('securityhub', region_name='us-east-1')
response = member_client.accept_administrator_invitation(
AdministratorId='123456789012',
InvitationId='invitation-abc123'
)
print(f"Convite aceito. Administrador: {response['AdministratorId']}")</code></pre>
<h2>Conclusão</h2>
<p>Você aprendeu que o <strong>AWS Security Hub centraliza achados</strong> de múltiplas ferramentas, eliminando silos de informação. Segundo, implementar <strong>conformidade automatizada</strong> com padrões como CIS reduz trabalho manual e garante cobertura consistente. Terceiro, criar <strong>automações de remediação</strong> com Lambda transforma o Hub de um painel informativo em um sistema ativo que protege sua infraestrutura. Dominar essas práticas coloca você na vanguarda de engenheiros de segurança cloud.</p>
<h2>Referências</h2>
<ul>
<li><a href="https://docs.aws.amazon.com/securityhub/" target="_blank" rel="noopener noreferrer">AWS Security Hub Documentation</a></li>
<li><a href="https://aws.amazon.com/architecture/security-identity-compliance/" target="_blank" rel="noopener noreferrer">AWS Security Best Practices</a></li>
<li><a href="https://www.cisecurity.org/benchmark/amazon_web_services" target="_blank" rel="noopener noreferrer">CIS AWS Foundations Benchmark</a></li>
<li><a href="https://aws.amazon.com/blogs/security/" target="_blank" rel="noopener noreferrer">Automatizar Remediação com Security Hub</a></li>
<li><a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html" target="_blank" rel="noopener noreferrer">ASFF - AWS Security Findings Format</a></li>
</ul>