performing-cloud-asset-inventory-with-cartography
Ajuda seu agente a mapear todos os recursos na nuvem e suas conexões. Ele cria um mapa visual para encontrar caminhos de ataque e gerar relatórios.
O que ela faz
Esta ferramenta coleta informações sobre seus recursos na nuvem (como AWS, Google Cloud ou Azure) e os organiza em um mapa interativo. Ela ajuda a entender como tudo está conectado e a encontrar possíveis problemas de segurança.
Quando usar
- ✓Quando você precisa saber todos os seus recursos na nuvem.
- ✓Ao investigar possíveis falhas de segurança.
- ✓Para criar relatórios sobre sua infraestrutura na nuvem.
Exemplo do que pedir para a IA
“Quero um mapa de todos os meus recursos na AWS e como eles se conectam.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta se conecta às suas contas na nuvem, busca os recursos existentes e suas relações, e armazena tudo em um banco de dados especial chamado Neo4j. Depois, você pode usar esse mapa para ver as conexões.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-cloud-asset-inventory-with-cartographyOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-cloud-asset-inventory-with-cartography/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Realizando Inventário de Ativos na Nuvem com Cartography
Visão Geral
Cartography é um projeto sandbox da CNCF (originalmente criado na Lyft) que consolida ativos de infraestrutura e seus relacionamentos em um banco de dados gráfico Neo4j. Ele consulta APIs de nuvem para descobrir recursos, mapeia relacionamentos entre eles e permite que equipes de segurança identifiquem caminhos de ataque, gerem relatórios de ativos e encontrem áreas para melhoria de segurança. O modelo gráfico revela conexões ocultas, como cadeias de permissões IAM, caminhos de rede e relacionamentos de confiança entre contas.
Quando Usar
- Ao realizar avaliações de segurança que envolvem o inventário de ativos na nuvem com Cartography
- Ao seguir procedimentos de resposta a incidentes para eventos de segurança relacionados
- Ao realizar testes de segurança ou atividades de auditoria agendadas
- Ao validar controles de segurança por meio de testes práticos
Pré-requisitos
- Python 3.8+
- Banco de dados Neo4j 4.x ou 5.x
- Credenciais do provedor de nuvem (AWS, GCP, Azure)
- Docker (opcional, para implantação do Neo4j)
- Mínimo de 4GB de RAM para Neo4j, mais para ambientes grandes
Instalação
# Install Cartography
pip install cartography
# Verify installation
cartography --help
Implantar Neo4j com Docker
docker run -d \
--name neo4j \
-p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/changethispassword \
-e NEO4J_PLUGINS='["apoc"]' \
-v neo4j_data:/data \
neo4j:5-community
Executando Cartography
Sincronização Básica da AWS
# Sync AWS account data to Neo4j
cartography \
--neo4j-uri bolt://localhost:7687 \
--neo4j-user neo4j \
--neo4j-password-env-var NEO4J_PASSWORD
Sincronizar módulos específicos da AWS
cartography \
--neo4j-uri bolt://localhost:7687 \
--neo4j-user neo4j \
--neo4j-password-env-var NEO4J_PASSWORD \
--aws-sync-all-profiles
Sincronização do GCP
cartography \
--neo4j-uri bolt://localhost:7687 \
--neo4j-user neo4j \
--neo4j-password-env-var NEO4J_PASSWORD \
--gcp-requested-syncs compute iam storage
Consultas Cypher Focadas em Segurança
Encontrar todos os buckets S3 com acesso público
MATCH (b:S3Bucket)
WHERE b.anonymous_access = true
OR b.anonymous_actions IS NOT NULL
RETURN b.name, b.anonymous_actions, b.region, b.arn
ORDER BY b.name
Identificar usuários IAM com políticas de administrador
MATCH (user:AWSUser)-[:POLICY]->(policy:AWSPolicy)
WHERE policy.name = 'AdministratorAccess'
OR policy.arn CONTAINS 'AdministratorAccess'
RETURN user.name, user.arn, policy.name, user.password_last_used
Encontrar instâncias EC2 expostas à internet
MATCH (instance:EC2Instance)-[:MEMBER_OF_EC2_SECURITY_GROUP]->(sg:EC2SecurityGroup)
-[:MEMBER_OF_EC2_SECURITY_GROUP_RULE]->(rule:IpRule)
WHERE rule.fromport <= 22 AND rule.toport >= 22
AND rule.protocol IN ['tcp', '-1']
AND '0.0.0.0/0' IN rule.ipranges
RETURN instance.instanceid, instance.publicipaddress, sg.groupid, sg.name
Descobrir relacionamentos de confiança entre contas
MATCH (role:AWSRole)-[:TRUSTS_AWS_PRINCIPAL]->(principal:AWSPrincipal)
WHERE principal.arn CONTAINS ':root'
AND NOT principal.arn CONTAINS role.accountid
RETURN role.arn, role.name, principal.arn AS trusted_account
ORDER BY role.name
Encontrar caminho de ataque de EC2 pública para S3 sensível
MATCH path = (instance:EC2Instance)-[:STS_ASSUME_ROLE_ALLOWS|MEMBER_OF_EC2_SECURITY_GROUP|
POLICY|INSTANCE_PROFILE*1..5]->(bucket:S3Bucket)
WHERE instance.publicipaddress IS NOT NULL
AND bucket.name CONTAINS 'sensitive'
RETURN path
LIMIT 25
Identificar funções IAM não utilizadas
MATCH (role:AWSRole)
WHERE role.last_used IS NULL
OR role.last_used < datetime().epochMillis - (90 * 24 * 60 * 60 * 1000)
RETURN role.name, role.arn, role.last_used
ORDER BY role.last_used
Encontrar funções Lambda com funções privilegiadas demais
MATCH (func:AWSLambda)-[:STS_ASSUME_ROLE_ALLOWS]->(role:AWSRole)-[:POLICY]->(policy:AWSPolicy)
WHERE policy.name = 'AdministratorAccess'
RETURN func.name, func.arn, role.name, policy.name
Análise de caminho de rede
MATCH (vpc:AWSVpc)-[:RESOURCE]->(subnet:EC2Subnet)-[:MEMBER_OF_SUBNET]->(instance:EC2Instance)
WHERE instance.publicipaddress IS NOT NULL
RETURN vpc.id, subnet.subnetid, subnet.cidr_block, instance.instanceid,
instance.publicipaddress, instance.state
Agendando Sincronizações Regulares
Sincronização baseada em Cron
# Adicionar ao crontab - sincronizar a cada 6 horas
0 */6 * * * /usr/local/bin/cartography \
…
Perguntas frequentes
Preciso ter conhecimento técnico para usar?
É recomendado ter alguma familiaridade com o uso de linha de comando e conceitos básicos de nuvem, mas a ferramenta foi projetada para simplificar a visualização.
Quais nuvens são suportadas?
Atualmente, suporta AWS, Google Cloud (GCP) e Microsoft Azure.
O que é Neo4j?
Neo4j é um tipo de banco de dados otimizado para armazenar e consultar informações que têm muitas conexões entre si, como um mapa de relacionamentos.
Detalhes
Descrição original do autor
Run Cartography to sync AWS, GCP, or Azure resources into a Neo4j graph database, mapping relationships such as IAM permission chains, network paths, and cross-account trust. Use when building a cloud asset inventory, querying the graph to identify attack paths, or generating security reports across multi-cloud infrastructure.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6035
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC