Saltar al contenido

Threat Intelligence

El agente ReAct

El corazon de la threat intelligence es un agente ReAct (Reasoning + Acting) implementado con LangGraph. A diferencia de pipelines fijos, el agente:

  1. Razona sobre el tipo de IOC y decide que herramientas usar
  2. Ejecuta las herramientas seleccionadas
  3. Observa los resultados
  4. Razona de nuevo sobre lo que encontro
  5. Repite hasta tener suficiente informacion para escribir la evaluacion

Ejemplo de razonamiento interno

Para 185.220.101.34:

Pensamiento: Es una IP. Debo consultar VirusTotal para reputacion,
AbuseIPDB para reportes de abuso, Shodan para servicios expuestos,
AlienVault para pulsos de amenaza, e IPInfo para geolocalización.
Accion: virustotal_ip_lookup("185.220.101.34")
Observacion: 87 detecciones AV, clasificado como "TOR exit node"
Pensamiento: Alta deteccion. Shodan puede revelar mas sobre los servicios.
Accion: shodan_host_lookup("185.220.101.34")
Observacion: Puerto 9001 abierto (Tor relay), 9030 (Tor directory)
Pensamiento: Confirmado como nodo Tor. Riesgo alto. Voy a verificar
los dominios asociados para hacer pivot...

Seleccion automatica de herramientas

El agente selecciona herramientas basandose en el tipo de IOC detectado:

Tipo IOCHerramientas primariasHerramientas secundarias
IPVirusTotal, AbuseIPDB, Shodan, AlienVault, IPInfoThreat Feeds, History
DominioVirusTotal, WHOIS, DNS, crt.sh, AlienVaultURLScan, Threat Feeds
URLURLScan, VirusTotal, DNSThreat Feeds
HashVirusTotalHistory
Consulta contextualGDELT, RSS, ACLED, Country RiskFinancial, AIS

Auto-pivot

Cuando una herramienta devuelve IOCs relacionados, el agente los extrae y los investiga automaticamente:

IP 185.220.101.34
↓ VirusTotal devuelve dominios asociados
├─ evil-c2.example.com → investiga
└─ malware-host.net → investiga
↓ WHOIS devuelve email del registrant
└─ attacker@protonmail.com → nota para informe

Parametros configurables:

Ventana de terminal
MAX_PIVOTS=2 # Profundidad maxima de pivot (default: 2)

Risk Dashboard

El sistema de puntuacion agrega senales de multiples fuentes en un score compuesto 0-100:

ScoreNivelColorSignificado
0-20LIMPIOVerdeSin indicios de actividad maliciosa
21-40BAJOAmarilloIndicios menores, monitorizar
41-60MEDIONaranjaActividad sospechosa, investigar
61-80ALTORojo claroAlta probabilidad de malicia
81-100CRITICORojoMalicioso con alta confianza

Factores que contribuyen al score

  • Detecciones AV en VirusTotal (peso alto)
  • Score de abuso en AbuseIPDB (peso alto)
  • Presencia en threat feeds (peso muy alto)
  • Pulsos en AlienVault OTX (peso medio)
  • Puertos/servicios sospechosos en Shodan (peso medio)
  • Historial en investigaciones previas (peso bajo)

Cache inteligente

Para evitar llamadas redundantes a las APIs (especialmente con rate limits), todos los resultados se cachean en SQLite:

Ventana de terminal
CACHE_TTL_SECONDS=86400 # 24 horas (default)

El cache es transparente — las herramientas comprueban primero el cache antes de hacer la llamada real. Puedes ver el estado del cache con:

osint> /cache stats

Feeds de amenazas en vivo

El agente puede analizar IOCs directamente desde feeds:

FeedQue contieneComando
Feodo TrackerIPs de C2 de botnets activas--feed feodo
URLhausURLs distribuyendo malware--feed urlhaus
IPsumIPs maliciosas por numero de fuentes--feed ipsum
C2IntelFeedsInfraestructura C2 conocida--feed c2intel
Ventana de terminal
osint-agent --feed feodo --limit 5 # Investiga las 5 IPs C2 mas recientes
osint-agent --feed urlhaus --limit 3 # Investiga las 3 URLs de malware mas recientes

Informes de threat intelligence

Tras una sesion de investigacion, genera un informe Markdown con:

  • Resumen ejecutivo: principales hallazgos en pocas frases
  • Evaluaciones por IOC: analisis detallado de cada indicador
  • Dashboard de riesgo: tabla con todos los IOCs y sus scores
  • Timeline: orden cronologico de los eventos investigados
  • Recomendaciones: acciones sugeridas basadas en los hallazgos
osint> /report save
# → reports/osint-report-2026-03-07-143022.md