Pular para o conteúdo
Skillpedia
Testes35 mil · #6083

performing-ioc-enrichment-automation

Faz seu agente automatizar a coleta de informações sobre indicadores de comprometimento (IOCs) de várias fontes.

O que ela faz

Esta ferramenta automatiza a coleta de informações sobre possíveis ameaças digitais (como IPs, domínios ou arquivos suspeitos) consultando diversas fontes confiáveis. Ela organiza esses dados para ajudar a decidir se algo é realmente perigoso.

Quando usar

  • ✓Quando você recebe um alerta de segurança e precisa entender rapidamente se ele é real.
  • ✓Quando há muitos alertas e você precisa de ajuda para verificar todos eles sem perder tempo.
  • ✓Quando você está investigando um incidente e precisa de muitos detalhes sobre um item suspeito.

Exemplo do que pedir para a IA

“Verifique este endereço IP: 192.168.1.1”

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-ioc-enrichment-automation/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-ioc-enrichment-automation/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta usa códigos (API keys) para se conectar a serviços como VirusTotal e AbuseIPDB. Ela envia o item suspeito para esses serviços e junta as respostas para dar um resumo.

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-ioc-enrichment-automation

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-ioc-enrichment-automation/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Automação de Enriquecimento de IOCs

Quando Usar

Use esta funcionalidade quando:

  • Analistas de SOC precisam enriquecer rapidamente IOCs de múltiplas fontes durante a triagem de alertas.
  • Altos volumes de alertas exigem enriquecimento automatizado para reduzir o tempo de busca manual.
  • Investigações de incidentes precisam de contexto abrangente de IOCs para avaliação de escopo.
  • Playbooks de SOAR requerem ações de enriquecimento como parte de fluxos de trabalho de triagem automatizada.

Não use para decisões de bloqueio em massa sem revisão do analista — o enriquecimento fornece contexto, não determinação definitiva de malicioso/benigno.

Pré-requisitos

  • Chaves de API: VirusTotal (gratuita ou premium), AbuseIPDB, Shodan, URLScan.io, GreyNoise
  • Python 3.8+ com requests, vt-py, shodan bibliotecas
  • Instância MISP ou TIP para referenciar inteligência organizacional
  • Plataforma SOAR (opcional) para integração de fluxo de trabalho
  • Consciência de limites de taxa: VT grátis (4 req/min), AbuseIPDB (1000/dia), Shodan (1 req/seg)

Fluxo de Trabalho

Passo 1: Construir o Motor de Enriquecimento Unificado

Crie um pipeline de enriquecimento multi-fonte:

import requests
import vt
import shodan
import time
from dataclasses import dataclass, field
from typing import Optional

@dataclass
class EnrichmentResult:
    ioc_value: str
    ioc_type: str
    virustotal: dict = field(default_factory=dict)
    abuseipdb: dict = field(default_factory=dict)
    shodan_data: dict = field(default_factory=dict)
    greynoise: dict = field(default_factory=dict)
    urlscan: dict = field(default_factory=dict)
    misp_matches: list = field(default_factory=list)
    risk_score: float = 0.0
    disposition: str = "Unknown"

class IOCEnrichmentEngine:
    def __init__(self, config):
        self.vt_client = vt.Client(config["virustotal_key"])
        self.shodan_api = shodan.Shodan(config["shodan_key"])
        self.abuseipdb_key = config["abuseipdb_key"]
        self.greynoise_key = config["greynoise_key"]
        self.urlscan_key = config["urlscan_key"]

    def enrich_ip(self, ip_address):
        result = EnrichmentResult(ioc_value=ip_address, ioc_type="ip")

        # VirusTotal
        try:
            vt_obj = self.vt_client.get_object(f"/ip_addresses/{ip_address}")
            result.virustotal = {
                "malicious": vt_obj.last_analysis_stats.get("malicious", 0),
                "suspicious": vt_obj.last_analysis_stats.get("suspicious", 0),
                "total_engines": sum(vt_obj.last_analysis_stats.values()),
                "reputation": vt_obj.reputation,
                "country": getattr(vt_obj, "country", "Unknown"),
                "as_owner": getattr(vt_obj, "as_owner", "Unknown")
            }
        except Exception as e:
            result.virustotal = {"error": str(e)}

        # AbuseIPDB
        try:
            response = requests.get(
                "https://api.abuseipdb.com/api/v2/check",
                headers={"Key": self.abuseipdb_key, "Accept": "application/json"},
                params={"ipAddress": ip_address, "maxAgeInDays": 90}
            )
            data = response.json()["data"]
            result.abuseipdb = {
                "confidence_score": data["abuseConfidenceScore"],
                "total_reports": data["totalReports"],
                "is_tor": data.get("isTor", False),
                "usage_type": data.get("usageType", "Unknown"),
                "isp": data.get("isp", "Unknown"),
                "domain": data.get("domain", "Unknown")
            }
        except Exception as e:
            result.abuseipdb = {"error": str(e)}

        # Shodan
        try:
            host = self.shodan_api.host(ip_address)
            result.shodan_data = {
                "ports": host.get("ports", []),
                "os": host.get("os", "Unknown"),
                "organization": host.get("org", "Unknown"),
                "isp": host.get("isp", "Unknown"),
                "vulns": host.get("vulns", []),
                "last_update": host.get("last_update", "Unknown")
            }
        except shodan.APIError:
            result.shodan_data = {"status": "Not found in Shodan"}

        # GreyNoise
        try:
            response = requests.get(
                f"https://api.greynoise.io/v3/community/{ip_address}",
                headers={"key": self.greynoise_key}
            )
            gn_data = response.json()
            result.greynoise = {
                "classification": gn_data.get("classification", "unknown"),
                "noise": gn_data.get("noise", False),

…
Perguntas frequentes

Preciso pagar por esses serviços?

Alguns serviços oferecem um plano gratuito com limites, outros podem exigir pagamento para uso mais intenso.

A ferramenta decide sozinha se algo é perigoso?

Não. Ela reúne informações para ajudar um especialista a tomar a decisão, mas não faz isso sozinha.

Quais tipos de ameaças ela verifica?

Ela verifica endereços de IP, nomes de domínio e códigos de arquivos (hashes).

Detalhes

Descrição original do autor

Automates Indicator of Compromise (IOC) enrichment by orchestrating lookups across VirusTotal, AbuseIPDB, Shodan, MISP, and other intelligence sources to provide contextual scoring and disposition recommendations. Use when SOC analysts need rapid multi-source enrichment of IPs, domains, URLs, and file hashes during alert triage or incident investigation. '

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6083
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas