Los IOCs (Indicators of Compromise) generados por la plataforma están disponibles como feed consumible por tu SOC / SIEM / EDR. El feed incluye tanto lo detectado dentro de tu tenant (senders sospechosos, adjuntos maliciosos, lookalikes) como lo agregado de fuentes externas (Spamhaus, URLhaus, ThreatFox).
Formatos del feed
JSON
GET /v1/threats/iocs?since=2026-07-01&type=domain
Authorization: Bearer <api_key>
Respuesta:
{
"items": [
{
"type": "domain",
"value": "phish-lookalike.com",
"first_seen": "2026-07-02T10:15:00Z",
"last_seen": "2026-07-08T14:20:00Z",
"sources": ["urlhaus", "internal_phishing_report"],
"confidence": "high",
"context": {
"target_brand": "tuempresa.com",
"malware_family": null,
"attack_type": "credential_phishing"
}
}
],
"next_cursor": "..."
}
STIX 2.1
GET /v1/threats/iocs.stix2?since=2026-07-01
Compatible con MISP, OpenCTI y la mayoría de TIPs.
CSV
GET /v1/threats/iocs.csv?since=2026-07-01&type=ip
Para importar en firewalls / proxies que solo aceptan CSV.
Tipos de IOC
| Type | Ejemplo |
|---|---|
ip | 203.0.113.42 |
domain | phishy-example.com |
url | https://phishy-example.com/login |
sha256 | hash de adjunto malicioso |
sha1 | (alternativa) |
md5 | (legacy — algunos SIEMs solo aceptan esto) |
email | address usada como sender |
Confidence levels
high— múltiples fuentes coinciden o validación en sandbox (urlscan/VT).medium— una fuente sola con historial confiable.low— una fuente sola sin historial (por ejemplo, RDAP domain age muy nuevo pero sin otras señales).
Para producción bloqueando activamente, usá solo high. Para monitoreo, sumar medium.
Filtros útiles
?since=<ISO date>— solo IOCs vistos desde esa fecha.?type=<ioc_type>— filtrar por tipo.?confidence=<high|medium|low>— filtrar por confidence.?source=<source_name>— solo de una fuente específica.
Paginación
Cursor-based. Cada respuesta trae next_cursor si hay más. Pasalo como ?cursor=<value> en la siguiente llamada.
Update frequency
- Feed de dominios se actualiza cada 15 minutos.
- Feed de IPs cada 5 minutos.
- Feed de hashes cada 30 minutos.
Rate limits: 100 requests/minuto por API key. Suficiente para pull cada 5 minutos.
Ejemplo — bloqueo en Cloudflare
curl -s "https://platform.emate.cloud/v1/threats/iocs?type=domain&confidence=high&since=$(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ)" \
-H "Authorization: Bearer $API_KEY" \
| jq -r '.items[] | .value' \
| while read domain; do
curl -X POST "https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT/gateway/lists/$LIST_ID/items" \
-H "Authorization: Bearer $CF_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"value\":\"$domain\"}"
done