Communitygithub.com

análisis-de-indicadores-de-compromiso

Analiza indicadores de compromiso (IOCs) incluyendo direcciones IP, dominios, hashes de archivos y URLs mediante múltiples fuentes de inteligencia de amenazas.

¿Qué es análisis-de-indicadores-de-compromiso?

Este skill permite realizar un análisis completo y contextualizado de indicadores de compromiso (IOCs) obtenidos de diversas fuentes como correos de phishing, alertas de seguridad o feeds automatizados. Proporciona un flujo de trabajo estructurado que incluye la normalización y clasificación de IOCs, el enriquecimiento mediante servicios como VirusTotal, AbuseIPDB y MalwareBazaar, la asignación de puntuaciones de confianza y la documentación final en plataformas como MISP. Está diseñado para analistas de seguridad que necesitan priorizar y tomar decisiones rápidas sobre qué IOCs bloquear, monitorear o descartar, evitando falsos positivos comunes como infraestructura compartida de CDNs. Soporta integraciones con Python y plataformas SOAR, y enfatiza la importancia de combinar automatización con juicio analítico, especialmente en decisiones de alto riesgo que no deben basarse únicamente en una sola fuente (como VirusTotal). Incluye advertencias sobre prácticas inseguras como no desarmar IOCs (defanging) o no establecer políticas de caducidad.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-indicators-of-compromise

Preguntar en tu IA favorita

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

Documentación

Análisis de Indicadores de Compromiso

Cuándo Usarlo

Utiliza este skill cuando:

  • Un correo de phishing o alerta genere IOCs (URLs, direcciones IP, hashes de archivos) que requieran triaje rápido
  • Los feeds automatizados entreguen IOCs en lote que necesiten puntuación de confianza antes de su ingesta en controles de bloqueo
  • Una investigación de incidentes requiera enriquecimiento contextual de artefactos de red observados

No uses este skill de forma aislada para decisiones de bloqueo de alto riesgo; combina siempre el enriquecimiento automatizado con el juicio del analista, especialmente en infraestructura compartida (CDNs, proveedores de nube).

Requisitos Previos

  • Clave API de VirusTotal (gratuita o Enterprise) para consultas multi-AV y sandbox
  • Clave API de AbuseIPDB para comprobaciones de reputación de IP
  • Instancia de MISP o TIP para referencias cruzadas contra campañas conocidas
  • Python con las bibliotecas requests y vt-py, o plataforma SOAR con conectores predefinidos

Flujo de Trabajo

Paso 1: Normalizar y Clasificar Tipos de IOC

Antes de enriquecer, clasifica cada IOC:

  • Dirección IPv4/IPv6: Verificar si es privada RFC 1918 (omitir enriquecimiento externo), validar formato
  • Dominio/FQDN: Desarmar para manejo seguro (evil[.]com), extraer dominio registrado mediante tldextract
  • URL: Extraer dominio + ruta por separado; verificar redireccionadores
  • Hash de archivo: Identificar tipo de hash (MD5/SHA-1/SHA-256); preferir SHA-256 por unicidad
  • Dirección de correo: Dividir en dominio (verificar MX/DMARC) y parte local para análisis de patrones

Desarma los IOCs en la documentación (reemplaza . con [.] y :// con [://]) para evitar clics accidentales.

Paso 2: Enriquecimiento Multi-Fuente

VirusTotal (hash de archivo, URL, IP, dominio):

import vt

client = vt.Client("TU_CLAVE_API_VT")

# Consulta de hash de archivo
file_obj = client.get_object(f"/files/{sha256_hash}")
detections = file_obj.last_analysis_stats
print(f"Malicioso: {detections['malicious']}/{sum(detections.values())}")

# Análisis de dominio
domain_obj = client.get_object(f"/domains/{dominio}")
print(domain_obj.last_analysis_stats)
print(domain_obj.reputation)
client.close()

AbuseIPDB (direcciones IP):

import requests

response = requests.get(
    "https://api.abuseipdb.com/api/v2/check",
    headers={"Key": "TU_CLAVE", "Accept": "application/json"},
    params={"ipAddress": "1.2.3.4", "maxAgeInDays": 90}
)
data = response.json()["data"]
print(f"Confianza: {data['abuseConfidenceScore']}%, Reportes: {data['totalReports']}")

MalwareBazaar (hashes de archivos):

response = requests.post(
    "https://mb-api.abuse.ch/api/v1/",
    data={"query": "get_info", "hash": sha256_hash}
)
result = response.json()
if result["query_status"] == "ok":
    print(result["data"][0]["tags"], result["data"][0]["signature"])

Paso 3: Contextualizar con Atribución de Campaña

Consulta MISP para eventos existentes que coincidan con el IOC:

from pymisp import PyMISP

misp = PyMISP("https://misp.example.com", "CLAVE_API")
results = misp.search(value="dominio-malicioso.com", type_attribute="domain")
for event in results:
    print(event["Event"]["info"], event["Event"]["threat_level_id"])

Consulta Shodan para contexto de IP (proveedor de alojamiento, puertos abiertos, banners) para identificar si la IP pertenece a un hosting a prueba de balas o un proveedor de nube legítimo (riesgo de falso positivo).

Paso 4: Asignar Puntuación de Confianza y Disposición

Aplica un marco de decisión por niveles:

  • Bloquear (Alta Confianza ≥ 70%): ≥15 detecciones AV en VT, puntuación AbuseIPDB ≥70, coincide con familia de malware o campaña conocida
  • Monitorear/Alertar (Media 40–69%): 5–14 detecciones AV, puntuación moderate AbuseIPDB, sin atribución de campaña
  • Lista blanca/Investigar (Baja <40%): ≤4 detecciones AV, sin reportes de abuso, servicio legítimo (IPs de CDN de Google, Cloudflare)
  • Falso Positivo: Servicio empresarial legítimo incorrectamente marcado; documentar y excluir de futuras alertas

Paso 5: Documentar y Distribuir

Registra los hallazgos en TIP/MISP con:

  • Todos los datos de enriquecimiento recopilados (marcas de tiempo, fuente, puntuación)
  • Decisión de disposición y justificación
  • Acciones de bloqueo tomadas (firewall, proxy, sumidero DNS)
  • Número de ticket de incidente relacionado

Exportar como objeto indicador STIX con el campo de confianza configurado adecuadamente.

Conceptos Clave

TérminoDefinición
IOCIndicador de Compromiso: artefacto observable de red o host que indica posible compromiso
EnriquecimientoProceso de añadir datos contextuales a un IOC en bruto desde múltiples fuentes de inteligencia
Desarmado (Defanging)Modificación de IOCs (reemplazo de . por [.]) para evitar activación accidental en documentación
Tasa de Falsos PositivosPorcentaje de artefactos benignos incorrectamente marcados como maliciosos; crítico para ajustar umbrales de bloqueo
Sumidero (Sinkhole)Servidor DNS que redirige consultas de dominios maliciosos a una IP benigna para detección sin bloquear el tráfico por completo
TTLTiempo de vida para un IOC en controles de bloqueo; los indicadores IP deben caducar tras 30 días, los dominios tras 90 días

Herramientas y Sistemas

  • VirusTotal: Escáner de malware multi-motor y plataforma de inteligencia de amenazas con más de 70 motores AV, informes de sandbox y comentarios de la comunidad
  • AbuseIPDB: Base de datos de reputación de IP mantenida por la comunidad con historial de reportes de abuso de 90 días
  • MalwareBazaar (abuse.ch): Repositorio gratuito de hashes de malware con asociaciones de reglas YARA y etiquetado de familias de malware
  • URLScan.io: Servicio gratuito de análisis de URLs que captura capturas de pantalla, DOM y solicitudes de red para triaje de URLs de phishing
  • Shodan: Datos de escaneo a nivel global que proporcionan información del proveedor de alojamiento, puertos abiertos y banners para enriquecimiento de IP

Errores Comunes

  • Bloquear infraestructura compartida: Las IPs de CDN (Cloudflare 104.21.x.x, AWS CloudFront) pueden alojar legítimamente contenido malicioso, pero bloquear la IP interrumpe miles de sitios legítimos.
  • Obsesión por la puntuación de VT: Un recuento bajo de detecciones en VT no significa benigno: el malware de día cero y las herramientas APT personalizadas a menudo obtienen 0 inicialmente. Verifica el comportamiento en sandbox, MISP y DNS pasivo.
  • Falta de desarmado: Pegar IOCs vivos en correos electrónicos o documentos de Confluence puede activar escáneres automáticos de URLs o herramientas de phishing.
  • Sin política de caducidad: Los IOCs sin TTL se acumulan indefinidamente en listas de bloqueo, generando falsos positivos a medida que la infraestructura es reutilizada por usuarios legítimos.
  • Dependencia excesiva de una sola fuente: VirusTotal agrega opiniones de AV; todas pueden estar equivocadas o retrasadas respecto al malware emergente. Usa 3+ fuentes independientes para decisiones de alto riesgo.

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