Un feed es un mecanismo que permite la transmisión continua y automatizada de datos desde la API de la plataforma Axur hacia sistemas o plataformas externas. Actualmente, la plataforma ofrece dos modos de entrega de feeds, ambos utilizando el mismo formato de datos (JSON) y el mismo flujo de creación:
Feed Pull – los datos se consultan bajo demanda (polling)
Feed Push (Webhook 2.0) – los datos se envían automáticamente a un endpoint configurado
En el contexto de la ciberseguridad, los feeds pueden utilizarse para proporcionar datos sobre amenazas digitales, como phishing, filtraciones de datos, credenciales comprometidas, entre otros riesgos potenciales, permitiendo integraciones con SIEMs y otros sistemas externos.
Tipos de Feeds
Feed Pull
En el modo Pull, el sistema externo realiza solicitudes HTTP para obtener los datos del feed cuando sea necesario. Recomendado para:
Integraciones programadas
Procesamiento por lotes
Entornos que ya utilizan polling
Feed Push
En el modo Push, también conocido como Webhook 2.0, los eventos son enviados automáticamente por la plataforma Axur a un endpoint definido por el cliente, tan pronto como se generan nuevos eventos. Recomendado para:
Integraciones automatizadas
SIEMs
Casos que requieren baja latencia y entrega continua
Diferencia entre Feed Pull y Feed Push
Característica | Feed Pull | Feed Push |
Forma de entrega | Consulta bajo demanda | Envío automático |
Necesidad de polling | Sí | No |
Latencia | Depende de la frecuencia | Cercana al tiempo real |
Formato de los datos | JSON | JSON (mismo formato) |
Cómo crear un feed
Primero, debes acceder a la página de API & Integraciones en la plataforma (https://one.axur.com/api-integrations) y dirigirte a la sección de “Feeds”. Para iniciar el flujo de creación, haz clic en el botón "Añadir feed". A partir de ahí, puedes elegir usar una plantilla o crear tu feed desde cero.
Usando una plantilla
La plataforma sugerirá una lista de los principales casos de uso.
Después de seleccionar una plantilla, el último paso será revisar la configuración. Puedes editarla si deseas algo diferente de lo que se sugirió. Si ninguna plantilla se ajusta a tu caso de uso, haz clic en "Saltar plantillas".
Creando el feed desde cero
Si elegiste “Omitir plantillas”, deberás definir todas las condiciones de tu feed.
Debes optar por crear un feed de Tickets o de Credenciales.
👉 Como se trata de APIs diferentes, no es posible crear un único feed para ambos tipos. Es decir, si deseas obtener datos de ambos, deberás crear dos feeds separados.
Seleccionar el modo de entrega
En este momento, deberá elegir cómo se entregarán los datos:
Pull – consulta mediante solicitudes HTTP
Push (Webhook 2.0) – envío automático a un endpoint configurado
Independientemente de la opción elegida, el formato de los datos y los filtros disponibles son los mismos.
2. Debes completar las especificaciones considerando que:
Fecha del evento
Es la fecha que se tomará en cuenta para la actualización de los eventos. Este campo es obligatorio.
Para credenciales, ya vendrá rellenado. Para tickets, las opciones seleccionables serán las siguientes:
Primera detección (ticket.creation.date): solo tomará en cuenta la primera detección del ticket o credencial. Si el mismo ticket tiene otras detecciones, no aparecerán en tu feed.
Cualquier detección (open.date): tomará en cuenta todas las detecciones del ticket.
Incidente registrado (incident.date): solo tomará en cuenta la fecha en que se registró el incidente. Los tickets que no se hayan convertido en incidentes no aparecerán en tu feed.
Solicitud de takedown (takedown.request.date): solo considerará la fecha en que se solicitó el takedown. Los tickets sin solicitud de takedown no aparecerán en tu feed.
Cualquier actualización del ticket (ticket.last-update.date): considerará cualquier actualización en el ticket. Por ejemplo: agregar notas, agregar o eliminar etiquetas, registrar incidente, solicitar takedown, etc. Todas estas acciones activarán una actualización en tu feed.
Parámetros del ticket
En este campo deberás definir los filtros de tu feed. Al hacer clic en “Mostrar consejos” verás un ejemplo y sugerencias para crear el feed.
Si eliges más de un campo, debes usar un & entre los parámetros. Por ejemplo:
type=fake-social-media-profile&creation.collector=facebook
Este campo es opcional. Si lo dejas en blanco, recibirás todos los eventos de la fecha seleccionada en el campo “Fecha del evento”.
Título del feed
El último paso es definir un título para tu feed. Aunque es opcional, este paso puede ayudarte mucho a mantener tu organización.
Esta es la única configuración que se puede editar después de guardar el feed.
Características del feed
El feed de la API de la plataforma de Axur tiene las siguientes características:
Debe ser consultado para enviar actualizaciones. Las consultas deben tener un intervalo mínimo de 30 segundos.
Por defecto, las actualizaciones enviadas son solo las que ocurren después de la creación del feed, no los eventos retrospectivos de la plataforma. Si lo deseas, puedes agregar un filtro de fecha para obtener resultados históricos. Por ejemplo: type=phishing&takedown.request.date=ge:2024-01-01.
Los feeds solo pueden ser creados, editados y eliminados por los gestores. Otros perfiles de usuarios de la plataforma solo pueden ver la lista de feeds, pero no pueden realizar ninguna acción.
Cada feed envía la misma actualización solo una vez.
Una vez eliminado, el feed no se puede recuperar.
Una vez creado, los parámetros del feed no se pueden editar. En este caso, recomendamos crear otro feed.
Lista de feeds
En la lista de feeds, verás todos los feeds creados por los usuarios gestores de tu equipo en la plataforma de Axur. Los feeds tienen tres estados posibles:
Verde: cuando el feed ha recibido al menos una solicitud en las últimas 24 horas.
Amarillo: cuando el feed no ha recibido solicitudes en las últimas 24 horas.
Vacío: cuando el feed nunca ha recibido solicitudes.
En la lista de feeds, puedes ver qué usuario creó el feed y quién fue el último en editarlo. Además, también es posible ver cuándo se hizo la última consulta al feed y qué ticket fue el último en ser recuperado.
Ejemplos de casos de uso
Antes de crear un feed, debes considerar qué caso de uso deseas aplicar. Aquí hay algunos ejemplos:
Caso de uso: Quiero recibir detecciones de perfiles falsos de redes sociales, específicamente de Facebook.
Fecha del evento: Cualquier detección (open.date)
Parámetros: type=perfil-falso-red-social&creation.collector=facebook
Título: Perfiles falsos de Facebook
Caso de uso: Quiero recibir tickets de la Deep & Dark Web de todo tipo, a partir de enero de 2024.
Fecha del evento: Cualquier detección (open.date)
Parámetros: type=dw-activity,data-exposure-message,data-exposure-website,data-sale-message,data-sale-website,fraud-tool-scheme-message,fraud-tool-scheme-website,suspicious-activity-message,suspicious-activity-website,infrastructure-exposure,ransomware-attack&open.date=ge2024-01-01
Título: Detecciones de Deep & Dark Web (Desde 01/01/2024)
Caso de uso: Quiero recibir tickets de phishing que hayan tenido una solicitud de eliminación.
Fecha del evento: Solicitud de eliminación (takedown.request.date)
Parámetros: type=phishing
Título: Phishings con solicitud de eliminación
Caso de uso: Quiero recibir todos los tickets que se convirtieron en incidentes.
Fecha del evento: Incidente registrado
Parámetros: Déjalo en blanco.
Título: Incidentes en la plataforma
Solicitud y respuesta
Como es una solicitud en la API de la plataforma de Axur, siempre se debe incluir la API Key como autenticación. Para obtener más información sobre la autenticación, consulta esta sección de la documentación técnica.
Ejemplo de una respuesta de solicitud sin actualizaciones
{
"feedData": {
"id": "f48ba821-2880-48fc-bc0e-dffe8312ad4d",
"title": "Detecções de Executivos & VIPs",
"url": "https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/f48ba821-2880-48fc-bc0e-dffe8312ad4d",
"createdAt": 1728325096238,
"lastRequest": 1728325104483,
"isActive": true,
"customerKey": "CTA",
"params": "type=executive-fake-social-media-profile,executive-personalinfo-leak,executive-credential-leak,executive-mobile-phone,executive-card-leak",
"eventDate": "open.date",
"nextPage": 1,
"feedType": "ticket"
},
"collectionData": {
"tickets": [],
"pageable": {
"pageNumber": 1,
"pageSize": 50,
"total": 0
}
}
}Ejemplo de una respuesta de solicitud con actualizaciones
{
"feedData": {
"id": "31575706-f762-4c56-aafc-78542c9e670b",
"title": "Phishings marcados como incidente",
"url": "https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/31575706-f762-4c56-aafc-78542c9e670b",
"lastDataRetrieved": "z5qb1r",
"createdAt": 1728336214469,
"lastRequest": 1728336221044,
"isActive": true,
"customerKey": "ORMUS",
"params": "type=phishing&incident.date=ge2021-01-01",
"eventDate": "incident.date",
"nextPage": 1,
"feedType": "ticket"
},
"collectionData": {
"tickets": [
{
"ticket": {
"reference": "https://ormuspay.wixsite.com/ormuspay/phish-pt",
"ticketKey": "z5qb1r",
"customerKey": "ORMUS",
"creation.user": "10426",
"last-update.date": "2023-01-10T17:34:45Z",
"creation.customer": "ORMUS",
"creation.date": "2022-07-22T13:43:18Z"
},
"detection": {
"creation.user": "10426",
"close.date": "2022-07-26T12:20:36Z",
"treatment.type": "axur",
"incident.date": "2022-07-22T13:43:19Z",
"takedown.notification.date": [
"2022-07-25T17:24:41Z"
],
"isp": "Wix.com Ltd.",
"treatment.date": "2022-07-25T17:22:39Z",
"type": "phishing",
"takedown.resolution": "resolved",
"resolution": "resolved",
"assets": [
"ORMUSP"
],
"host": "ormuspay.wixsite.com",
"takedown.request.date": "2022-07-25T17:19:38Z",
"group": [
null,
"efc_autonotification_failed",
"efc_af_second_verification",
"reup_validation"
],
"takedown.verification.last.type": "auto",
"open.date": "2022-07-22T13:43:18Z",
"takedown.notification.last.type": "manual",
"takedown.reup": "false",
"ip": "199.15.163.145",
"takedown.close.date": "2022-07-26T12:20:36Z",
"creation.customer": "ORMUS",
"domain.registrar": "GoDaddy.com, LLC",
"takedown": "true",
"resolution.reason": "",
"takedown.verification.date": [
"2022-07-26T00:35:12Z",
"2022-07-26T06:52:39Z"
],
"domain": "wixsite.com",
"takedown.uptime": "68155281",
"takedown.close.type": "manual",
"status": "closed"
},
"texts": [],
"snapshots": {
"ipFilter": {
"filtering": false,
"countries": []
},
"content": {
"title": "Login ormus-pay | Ormuspay",
"httpStatusCode": {
"code": 200,
"message": "OK"
},
"hashMD5": {
"value": "ed1e1924300caf7f9902b15df7472cca"
}
},
"isp": {
"location": {
"country": {
"name": "United States"
}
},
"name": "Wix.com Ltd."
},
"digitalLocation": {
"url": "https://ormuspay.wixsite.com/ormuspay/phish-pt",
"host": {
"name": "ormuspay.wixsite.com",
"domain": {
"name": "wixsite.com"
},
"ip": {
"address": "199.15.163.145"
}
}
},
"referenceInfo": {
"originalReference": "https://ormuspay.wixsite.com/ormuspay/phish-pt",
"redirectChain": [],
"finalReference": "https://ormuspay.wixsite.com/ormuspay/phish-pt"
},
"domainInfo": {
"status": "Registered",
"registrar": "GoDaddy.com, LLC",
"registrarEmail": "[email protected]",
"registrant": "Registration Private",
"registrantEmail": "Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=wixsite.com",
"nameServers": {
"hostnames": [
"dns1.p07.nsone.net",
"dns2.p07.nsone.net",
"dns3.p07.nsone.net",
"dns4.p07.nsone.net"
],
"ipAddresses": [
null,
null,
null,
null,
null,
null,
null,
null
]
}
}
}
}
],
"pageable": {
"pageNumber": 1,
"pageSize": 50,
"total": 1
}
}FAQ
¿Qué es ?dry-run=true?
Este parámetro se utiliza para probar el feed y debe añadirse al final de la URL. Por ejemplo:https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/f27afda8-2e5f-4f55-9243-4941b49ee51e?dry-run=true.
Este parámetro facilita las pruebas, ya que evitará que el puntero de actualización del feed se mueva. Una vez probado y validado que los eventos correctos están llegando, deberás eliminar este parámetro para que el puntero del feed se mueva y no recibas actualizaciones ya leídas.
¿Cuál es la diferencia entre Feeds y Webhooks?
En los Feeds, el usuario puede elegir exactamente qué eventos desea recibir, pero el feed debe ser consultado para enviar estos eventos. Es decir, los datos no se envían en tiempo real ni se actualizan automáticamente.
En los Webhooks, el usuario recibe todos los eventos disponibles sin poder filtrarlos. Además, los Webhooks no necesitan ser consultados; el envío se realiza en tiempo real.
Quiero un feed de tickets y credenciales, ¿cómo lo hago?
Como se trata de APIs diferentes, deberás crear dos feeds distintos: uno para consultar las detecciones de credenciales y otro para consultar las detecciones de tickets. No es posible recibir ambos tipos en un mismo feed.
Si tienes cualquier duda, puedes contactarnos en [email protected] 😊
