Communitygithub.com

automatización-de-enriquecimiento-de-ioc

Automatiza el enriquecimiento de indicadores de compromiso sin procesar con múltiples fuentes de inteligencia de amenazas.

¿Qué es automatización-de-enriquecimiento-de-ioc?

Esta habilidad te permite construir un pipeline automatizado para enriquecer indicadores de compromiso (IOCs) como direcciones IP, dominios, URLs y hashes de archivos, utilizando múltiples servicios de inteligencia de amenazas como VirusTotal, AbuseIPDB, Shodan y MISP. Está diseñada para ser integrada en plataformas SOAR como Cortex XSOAR, Splunk SOAR, Tines o n8n, o para funcionar como un script independiente en Python 3.9+. El flujo de trabajo extrae los IOCs de alertas SIEM, los clasifica por tipo, los envía en paralelo a las APIs de enriquecimiento, y agrega los resultados en una puntuación de confianza compuesta que se añade al contexto de la alerta para que los analistas la revisen. Además, incluye prácticas recomendadas para manejar límites de tasa, reintentos en caso de fallos, y métricas para monitorear el rendimiento, como la latencia, la tasa de éxito de las API y la tasa de verdaderos positivos. No se debe usar para decisiones de bloqueo automatizadas sin revisión humana.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/automating-ioc-enrichment

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Automatización del Enriquecimiento de IOC

Cuándo Usar

Usa esta habilidad cuando:

  • Estés construyendo un playbook SOAR que enriquezca automáticamente las alertas SIEM con contexto de inteligencia de amenazas antes de enrutarlas a los analistas.
  • Estés creando un pipeline Python para el enriquecimiento masivo de IOCs a partir de envíos de correos electrónicos de phishing.
  • Quieras reducir el tiempo medio de triaje (MTTT) del analista precargando el contexto de la alerta con datos de VT, Shodan y MISP.

No uses esta habilidad para decisiones de bloqueo completamente automatizadas sin revisión humana; la automatización del enriquecimiento debe informar las decisiones, no ejecutar bloqueos de forma autónoma para acciones de alto impacto.

Prerrequisitos

  • Plataforma SOAR (Cortex XSOAR, Splunk SOAR, Tines o n8n) o entorno Python 3.9+
  • Claves API: VirusTotal, AbuseIPDB, Shodan, y al menos un TIP (MISP o OpenCTI)
  • Endpoint de integración SIEM para la ingesta de alertas
  • Presupuestos de límite de tasa documentados por API (VT: 4/min gratuita, 500/min empresarial)

Flujo de Trabajo

Paso 1: Diseñar la Arquitectura del Pipeline de Enriquecimiento

Define el flujo de enriquecimiento para cada tipo de IOC:

Alerta SIEM → Extraer IOCs → Clasificar Tipo → Enrutar a funciones de enriquecimiento
  Dirección IP → AbuseIPDB + Shodan + VirusTotal IP + MISP
  Dominio → VirusTotal Dominio + PassiveTotal + Shodan + MISP
  URL → URLScan.io + VirusTotal URL + Google Safe Browsing
  Hash de archivo → VirusTotal Archivos + MalwareBazaar + MISP
→ Agregar resultados → Calcular puntuación de confianza → Actualizar alerta → Notificar al analista

Paso 2: Implementar Funciones Python de Enriquecimiento

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

RETARDO_LIMITE_TASA = 0.25  # 4 solicitudes/segundo para VT nivel gratuito

@dataclass
class ResultadoEnriquecimiento:
    valor_ioc: str
    tipo_ioc: str
    vt_malicioso: int = 0
    vt_total: int = 0
    confianza_abuso: int = 0
    puertos_shodan: list = field(default_factory=list)
    eventos_misp: list = field(default_factory=list)
    puntuacion_confianza: int = 0

def enriquecer_ip(ip: str, clave_vt: str, clave_abuso: str, clave_shodan: str) -> ResultadoEnriquecimiento:
    resultado = ResultadoEnriquecimiento(ip, "ip")

    # Consulta IP en VirusTotal
    resp_vt = requests.get(
        f"https://www.virustotal.com/api/v3/ip_addresses/{ip}",
        headers={"x-apikey": clave_vt}
    )
    if resp_vt.status_code == 200:
        stats = resp_vt.json()["data"]["attributes"]["last_analysis_stats"]
        resultado.vt_malicioso = stats.get("malicious", 0)
        resultado.vt_total = sum(stats.values())

    time.sleep(RETARDO_LIMITE_TASA)

    # AbuseIPDB
    resp_abuso = requests.get(
        "https://api.abuseipdb.com/api/v2/check",
        headers={"Key": clave_abuso, "Accept": "application/json"},
        params={"ipAddress": ip, "maxAgeInDays": 90}
    )
    if resp_abuso.status_code == 200:
        resultado.confianza_abuso = resp_abuso.json()["data"]["abuseConfidenceScore"]

    # Calcular puntuación de confianza compuesta
    resultado.puntuacion_confianza = min(
        (resultado.vt_malicioso / max(resultado.vt_total, 1)) * 60 +
        (resultado.confianza_abuso / 100) * 40, 100
    )

    return resultado

def enriquecer_hash(sha256: str, clave_vt: str) -> ResultadoEnriquecimiento:
    resultado = ResultadoEnriquecimiento(sha256, "sha256")
    resp_vt = requests.get(
        f"https://www.virustotal.com/api/v3/files/{sha256}",
        headers={"x-apikey": clave_vt}
    )
    if resp_vt.status_code == 200:
        stats = resp_vt.json()["data"]["attributes"]["last_analysis_stats"]
        resultado.vt_malicioso = stats.get("malicious", 0)
        resultado.vt_total = sum(stats.values())
        resultado.puntuacion_confianza = int((resultado.vt_malicioso / max(resultado.vt_total, 1)) * 100)
    return resultado

Paso 3: Construir Playbook SOAR (Cortex XSOAR)

En Cortex XSOAR, crea un playbook de enriquecimiento:

  1. Disparador: Alerta creada en SIEM (mediante webhook o sondeo)
  2. Extraer IOCs: Usa la tarea "Extraer Indicadores" con patrones regex para IP, dominio, URL, hash
  3. Enriquecimiento en paralelo: Distribuye a múltiples tareas de enriquecimiento simultáneamente
  4. Enriquecimiento VT: Ejecuta comandos !vt-file-scan o !vt-ip-scan
  5. Verificación AbuseIPDB: Ejecuta el comando !abuseipdb-check-ip
  6. Búsqueda MISP: Ejecuta !misp-search para referenciar cruzadamente
  7. Agregación de puntuación: Tarea de transformación Python que calcula la puntuación compuesta
  8. Enrutamiento condicional: Si puntuación ≥70 → Cola de Alta Prioridad; si 40–69 → Media; <40 → Cierre automático con nota
  9. Enriquecimiento de alerta: Escribe los resultados del enriquecimiento en el contexto de la alerta para la vista del analista

Paso 4: Manejar Límites de Tasa y Fallos

import time
from functools import wraps

def limitado_por_tasa(max_por_segundo):
    intervalo_min = 1.0 / max_por_segundo
    def decorador(func):
        ultima_llamada = [0.0]
        @wraps(func)
        def envoltura(*args, **kwargs):
            tiempo_transcurrido = time.time() - ultima_llamada[0]
            espera = intervalo_min - tiempo_transcurrido
            if espera > 0:
                time.sleep(espera)
            resultado = func(*args, **kwargs)
            ultima_llamada[0] = time.time()
            return resultado
        return envoltura
    return decorador

def reintentar_en_429(max_reintentos=3):
    def decorador(func):
        @wraps(func)
        def envoltura(*args, **kwargs):
            for intento in range(max_reintentos):
                respuesta = func(*args, **kwargs)
                if respuesta.status_code == 429:
                    esperar_por = int(respuesta.headers.get("Retry-After", 60))
                    time.sleep(esperar_por)
                else:
                    return respuesta
        return envoltura
    return decorador

Paso 5: Métricas y Ajuste

Realiza seguimiento semanal del rendimiento del pipeline:

  • Latencia de enriquecimiento: Objetivo <30 segundos desde que se dispara la alerta hasta la salida enriquecida
  • Tasa de éxito de API: Objetivo >99% (identificar eventos de límite de tasa o interrupción)
  • Tasa de verdaderos positivos: Realizar seguimiento de las anulaciones del analista sobre las puntuaciones de confianza automatizadas
  • Costo: Realizar seguimiento del volumen de llamadas API contra el presupuesto (VT Enterprise: $X por 1M consultas)

Conceptos Clave

TérminoDefinición
SOAROrquestación, Automatización y Respuesta de Seguridad — plataforma para automatizar flujos de trabajo de seguridad e integrar herramientas dispares
Playbook de EnriquecimientoSecuencia de flujo de trabajo automatizada que añade inteligencia contextual a eventos de seguridad sin procesar
Límite de TasaRestricciones del proveedor de API en la frecuencia de solicitudes (p. ej., VT gratuito: 4 solicitudes/minuto); los pipelines deben respetar estos límites
Puntuación de Confianza CompuestaPuntuación única que agrega señales de múltiples fuentes de enriquecimiento usando una fórmula ponderada
Patrón de AbanicoEjecución paralela de múltiples consultas de enriquecimiento simultáneamente para minimizar la latencia total de enriquecimiento

Herramientas y Sistemas

  • Cortex XSOAR (Palo Alto): SOAR empresarial con más de 700 integraciones en marketplace, incluyendo VT, MISP, Shodan y AbuseIPDB
  • Splunk SOAR (Phantom): Plataforma SOAR con playbooks basados en Python; integración nativa con Splunk SIEM
  • Tines: Plataforma SOAR sin código con automatización basada en webhook; rentable para equipos pequeños
  • TheHive + Cortex: Plataforma de enriquecimiento/IR de código abierto con enriquecimiento de observables mediante analizadores Cortex

Errores Comunes

  • Bloquearse por la latencia del enriquecimiento: Si el enriquecimiento tarda más de 5 minutos, los analistas empiezan a trabajar con alertas no enriquecidas, lo que anula el propósito. Establece límites de tiempo de espera y proporciona resultados parciales.
  • Sin caché: Consultar el mismo IOC 50 veces genera costos de API innecesarios. Almacena en caché los resultados del enriquecimiento durante 24 horas por defecto.
  • Ignorar fallos de API en silencio: Las llamadas de enriquecimiento fallidas deben registrarse y activar lógica de respaldo, no producir silenciosamente resultados vacíos que aparezcan como IOCs limpios.
  • Automatizar bloqueos basándose únicamente en la puntuación de enriquecimiento: Las puntuaciones compuestas contienen falsos positivos; se requiere confirmación humana para decisiones de bloqueo contra infraestructura compartida.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Skills relacionados