Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La API de indicadores de carga de Microsoft Sentinel permite que las plataformas de inteligencia sobre amenazas o las aplicaciones personalizadas importen indicadores de peligro en el formato STIX en un área de trabajo de Microsoft Sentinel. Este documento sirve como referencia a la API heredada.
Importante
Esta API está en versión preliminar, pero ya no se recomienda. Use la nueva API de objetos STIX en versión preliminar para cargar la inteligencia sobre amenazas. Para obtener más información, consulte API de objetos STIX. Los términos complementarios de Azure Preview incluyen términos legales adicionales que se aplican a Azure características que están en versión beta, versión preliminar o que aún no se han publicado en disponibilidad general.
Una llamada API de indicadores de carga tiene cinco componentes:
- Uri de solicitud
- Encabezado del mensaje de solicitud HTTP
- Cuerpo del mensaje de solicitud HTTP
- Opcionalmente, procese el encabezado del mensaje de respuesta HTTP.
- Opcionalmente, procese el cuerpo del mensaje de respuesta HTTP.
Registre la aplicación cliente con Microsoft Entra ID
Para autenticarse en Microsoft Sentinel, la solicitud a la API de indicadores de carga requiere un token de acceso Microsoft Entra válido. Para obtener más información sobre el registro de aplicaciones, consulte Registro de una aplicación con el Plataforma de identidad de Microsoft o vea los pasos básicos como parte de la configuración del conector de datos de API de indicadores de carga.
Permissions
Esta API requiere que se conceda a la aplicación de Microsoft Entra llamada el rol de colaborador Microsoft Sentinel en el nivel de área de trabajo.
Creación de la solicitud
En esta sección se tratan los tres primeros componentes descritos anteriormente. Primero debe adquirir el token de acceso de Microsoft Entra ID, que se usa para ensamblar el encabezado del mensaje de solicitud.
Adquirir un token de acceso
Adquiera un token de acceso de Microsoft Entra con la autenticación de OAuth 2.0. V1.0 y V2.0 son tokens válidos aceptados por la API.
La versión del token (v1.0 o v2.0) que recibe la aplicación viene determinada por la accessTokenAcceptedVersion propiedad del manifiesto de la aplicación de la API a la que llama la aplicación. Si accessTokenAcceptedVersion se establece en 1, la aplicación recibirá un token v1.0.
Use MSAL de la biblioteca de autenticación de Microsoft para adquirir un token de acceso v1.0 o v2.0. O bien, envíe solicitudes a la API REST en el formato siguiente:
- POST
https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token - Encabezados para usar Microsoft Entra App:
- grant_type: "client_credentials"
- client_id: {Id. de cliente de Microsoft Entra App}
- client_secret: {secreto de Microsoft Entra App}
- ámbito:
"https://management.azure.com/.default"
Si accessTokenAcceptedVersion en el manifiesto de la aplicación se establece en 1, la aplicación recibirá un token de acceso v1.0 aunque llame al punto de conexión del token v2.
El valor de recurso o ámbito es la audiencia del token. Esta API solo acepta las siguientes audiencias:
https://management.core.windows.net/https://management.core.windows.nethttps://management.azure.com/https://management.azure.com
Ensamblar el mensaje de solicitud
Había dos versiones de la API heredada. En función del punto de conexión, se requiere un nombre de matriz diferente en el cuerpo de la solicitud. Esto también se representó mediante dos versiones de la acción del conector de aplicación lógica.
- Nombre de la acción del conector: Inteligencia sobre amenazas: indicadores de carga de peligro (en desuso)
- Punto de conexión:
https://sentinelus.azure-api.net/{workspaceId}/threatintelligence:upload-indicators - Matriz de nombre de indicadores:
value
- Punto de conexión:
- Nombre de la acción del conector: Inteligencia sobre amenazas: Indicadores de carga de peligro (V2) (versión preliminar)
- Punto de conexión:
https://sentinelus.azure-api.net/workspaces/{workspaceId}/threatintelligenceindicators:upload - Matriz de nombre de indicadores:
indicators{ "sourcesystem":"TIsource-example", "indicators":[] }
- Punto de conexión:
URI de solicitud
Control de versiones de API: api-version=2022-07-01
Punto de conexión: https://sentinelus.azure-api.net/workspaces/{workspaceId}/threatintelligenceindicators:upload?api-version=2022-07-01
Método: POST
Encabezado de solicitud
Authorization: contiene el token de portador de OAuth2.
Content-Type: application/json
Cuerpo de la solicitud
El objeto JSON del cuerpo contiene los campos siguientes:
| Nombre del campo | Tipo de datos | Description |
|---|---|---|
| SourceSystem (obligatorio) | string | Identifique el nombre del sistema de origen. El valor Microsoft Sentinel está restringido. |
| indicadores (obligatorios) | matriz | Matriz de indicadores en formato STIX 2.0 o 2.1 |
Cree la matriz de indicadores con la especificación de formato de indicador STIX 2.1, que se ha condensado aquí para su comodidad con vínculos a secciones importantes. Tenga en cuenta también que algunas propiedades, aunque son válidas para STIX 2.1, no tienen propiedades de indicador correspondientes en Microsoft Sentinel.
| Nombre de la propiedad | Tipo | Description |
|---|---|---|
id (obligatorio) |
string | Identificador que se usa para identificar el indicador. Consulte la sección 2.9 para obtener especificaciones sobre cómo crear un id. El formato tiene un aspecto similar al de indicator--<UUID> |
spec_version (opcional) |
string | Versión del indicador STIX. Este valor es necesario en la especificación STIX, pero dado que esta API solo admite STIX 2.0 y 2.1, cuando este campo no está establecido, la API tendrá como valor predeterminado 2.1 |
type (obligatorio) |
string | El valor de esta propiedad debe ser indicator. |
created (obligatorio) |
timestamp | Consulte la sección 3.2 para conocer las especificaciones de esta propiedad común. |
modified (obligatorio) |
timestamp | Consulte la sección 3.2 para conocer las especificaciones de esta propiedad común. |
name (opcional) |
string | Nombre que se usa para identificar el indicador. Los productores deben proporcionar esta propiedad para ayudar a los productos y analistas a comprender lo que realmente hace este indicador. |
description (opcional) |
string | Descripción que proporciona más detalles y contexto sobre el indicador, incluyendo potencialmente su propósito y sus características clave. Los productores deben proporcionar esta propiedad para ayudar a los productos y analistas a comprender lo que realmente hace este indicador. |
indicator_types (opcional) |
lista de cadenas | Conjunto de categorizaciones para este indicador. Los valores de esta propiedad deben proceder del indicator-type-ov. |
pattern (obligatorio) |
string | El patrón de detección de este indicador podría expresarse como un patrón STIX u otro lenguaje adecuado, como SNORT, YARA, etc. |
pattern_type (obligatorio) |
string | Lenguaje de patrón usado en este indicador. El valor de esta propiedad debe proceder de tipos de patrón. El valor de esta propiedad debe coincidir con el tipo de datos de patrón incluidos en la propiedad pattern. |
pattern_version (opcional) |
string | Versión del lenguaje de patrón que se usa para los datos de la propiedad pattern, que debe coincidir con el tipo de datos de patrón incluidos en la propiedad pattern. Para los patrones que no tienen una especificación formal, se debe usar la versión de compilación o código con la que se sabe que funciona el patrón. Para el lenguaje de patrón STIX, la versión de especificación del objeto determina el valor predeterminado. Para otros lenguajes, el valor predeterminado debe ser la versión más reciente del lenguaje de creación de patrones en el momento de la creación de este objeto. |
valid_from (obligatorio) |
timestamp | Hora a partir de la cual este indicador se considera un indicador válido de los comportamientos que está relacionado con o representa. |
valid_until (opcional) |
timestamp | El momento en que este indicador ya no debe considerarse un indicador válido de los comportamientos que está relacionado con o representa. Si se omite la propiedad valid_until, no hay ninguna restricción en la hora más reciente para la que el indicador es válido. Esta marca de tiempo debe ser mayor que la marca de tiempo de valid_from. |
kill_chain_phases (opcional) |
lista de cadenas | Fases de la cadena de eliminación a las que corresponde este indicador. El valor de esta propiedad debe proceder de la fase de la cadena de eliminación. |
created_by_ref (opcional) |
string | La propiedad created_by_ref especifica la propiedad ID de la entidad que creó este objeto. Si se omite este atributo, el origen de esta información no está definido. Para los creadores de objetos que desean permanecer anónimos, mantenga este valor sin definir. |
revoked (opcional) |
booleano | El creador de objetos ya no considera válidos los objetos revocados. Revocar un objeto es permanente; no se deben crear versiones futuras del objeto con estoid.El valor predeterminado de esta propiedad es false. |
labels (opcional) |
lista de cadenas | La labels propiedad especifica un conjunto de términos utilizados para describir este objeto. Los términos se definen por el usuario o por grupo de confianza. Estas etiquetas se mostrarán como Etiquetas en Microsoft Sentinel. |
confidence (opcional) |
integer | La confidence propiedad identifica la confianza que el creador tiene en la exactitud de sus datos. El valor de confianza debe ser un número en el intervalo de 0 a 100.El apéndice A contiene una tabla de asignaciones normativas a otras escalas de confianza que se deben usar al presentar el valor de confianza en una de esas escalas. Si la propiedad de confianza no está presente, la confianza del contenido no se especifica. |
lang (opcional) |
string | La lang propiedad identifica el idioma del contenido de texto de este objeto. Cuando está presente, debe ser un código de lenguaje conforme a RFC5646. Si la propiedad no está presente, el idioma del contenido es en (inglés).Esta propiedad debe estar presente si el tipo de objeto contiene propiedades de texto traducibles (por ejemplo, nombre, descripción). El idioma de los campos individuales de este objeto podría invalidar la lang propiedad en marcas granulares (consulte la sección 7.2.3). |
object_marking_refs (opcional, incluido TLP) |
lista de cadenas | La object_marking_refs propiedad especifica una lista de propiedades id. de objetos de definición de marcado que se aplican a este objeto. Por ejemplo, use el identificador de definición de marcado del Protocolo de semáforo (TLP) para designar la confidencialidad del origen del indicador. Para más información sobre los identificadores de definición de marcado que se usarán para el contenido de TLP, consulte la sección 7.2.1.4.En algunos casos, aunque no son comunes, las propias definiciones de marcado se pueden marcar con instrucciones de uso compartido o de control. En este caso, esta propiedad no debe contener ninguna referencia al mismo objeto Definición de marcado (es decir, no puede contener ninguna referencia circular). Consulte la sección 7.2.2 para obtener más definición de las marcas de datos. |
external_references (opcional) |
lista de objetos | La external_references propiedad especifica una lista de referencias externas que hace referencia a información que no es STIX. Esta propiedad se usa para proporcionar una o varias direcciones URL, descripciones o identificadores a los registros de otros sistemas. |
granular_markings (opcional) |
lista de marcado granular | La granular_markings propiedad ayuda a definir partes del indicador de forma diferente. Por ejemplo, el idioma del indicador es inglés, en pero la descripción es alemán, de.En algunos casos, aunque no son comunes, las propias definiciones de marcado se pueden marcar con instrucciones de uso compartido o de control. En este caso, esta propiedad no debe contener ninguna referencia al mismo objeto Definición de marcado (es decir, no puede contener ninguna referencia circular). Consulte la sección 7.2.3 para obtener más definición de las marcas de datos. |
Procesar el mensaje de respuesta
El encabezado de respuesta contiene un código de estado HTTP. Haga referencia a esta tabla para obtener más información sobre cómo interpretar el resultado de la llamada API.
| Código de estado | Description |
|---|---|
| 200 | Correcto. La API devuelve 200 cuando uno o varios indicadores se validan y publican correctamente. |
| 400 | Formato incorrecto. Algo en la solicitud no tiene el formato correcto. |
| 401 | No autorizado. |
| 404 | No se encontró el archivo. Normalmente, este error se produce cuando no se encuentra el identificador del área de trabajo. |
| 429 | Se ha superado el número de solicitudes en un minuto. |
| 500 | Error del servidor. Normalmente, se produce un error en la API o Microsoft Sentinel servicios. |
El cuerpo de la respuesta es una matriz de mensajes de error en formato JSON:
| Nombre del campo | Tipo de datos | Description |
|---|---|---|
| errores | Matriz de objetos de error | Lista de errores de validación |
Error (objeto)
| Nombre del campo | Tipo de datos | Description |
|---|---|---|
| recordIndex | Entero | Índice de los indicadores de la solicitud |
| errorMessages | Matriz de cadenas | Mensajes de error |
Límites de limitación para la API
Todos los límites se aplican por usuario:
- 100 indicadores por solicitud.
- 100 solicitudes por minuto.
Si hay más solicitudes que el límite, se devuelve un 429 código de estado HTTP en el encabezado de respuesta con el siguiente cuerpo de la respuesta:
{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in <number of seconds> seconds."
}
Aproximadamente 10 000 indicadores por minuto es el rendimiento máximo antes de recibir un error de limitación.
Cuerpo de la solicitud de ejemplo
{
"sourcesystem": "test",
"indicators":[
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--10000003-71a2-445c-ab86-927291df48f8",
"name": "Test Indicator 1",
"created": "2010-02-26T18:29:07.778Z",
"modified": "2011-02-26T18:29:07.778Z",
"pattern": "[ipv4-addr:value = '172.29.6.7']",
"pattern_type": "stix",
"valid_from": "2015-02-26T18:29:07.778Z"
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--67e62408-e3de-4783-9480-f595d4fdae52",
"created": "2023-01-01T18:29:07.778Z",
"modified": "2025-02-26T18:29:07.778Z",
"created_by_ref": "identity--19f33886-d196-468e-a14d-f37ff0658ba7",
"revoked": false,
"labels": [
"label 1",
"label 2"
],
"confidence": 55,
"lang": "en",
"external_references": [
{
"source_name": "External Test Source",
"description": "Test Report",
"external_id": "e8085f3f-f2b8-4156-a86d-0918c98c498f",
"url": "https://fabrikam.com//testreport.json",
"hashes": {
"SHA-256": "6db12788c37247f2316052e142f42f4b259d6561751e5f401a1ae2a6df9c674b"
}
}
],
"object_marking_refs": [
"marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9"
],
"granular_markings": [
{
"marking_ref": "marking-definition--beb3ec79-03aa-4594-ad24-09982d399b80",
"selectors": [ "description", "labels" ],
"lang": "en"
}
],
"name": "Test Indicator 2",
"description": "This is a test indicator to demo valid fields",
"indicator_types": [
"threatstream-severity-low", "threatstream-confidence-80"
],
"pattern": "[ipv4-addr:value = '192.168.1.1']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2023-01-01T18:29:07.778Z",
"valid_until": "2025-02-26T18:29:07.778Z",
"kill_chain_phases": [
{
"kill_chain_name": "lockheed-martin-cyber-kill-chain",
"phase_name": "reconnaissance"
}
]
}
]
}
Cuerpo de la respuesta de ejemplo con error de validación
Si todos los indicadores se validan correctamente, se devuelve un estado HTTP 200 con un cuerpo de respuesta vacío.
Si se produce un error en la validación de uno o varios indicadores, el cuerpo de la respuesta se devuelve con más información. Por ejemplo, si envía una matriz con cuatro indicadores y los tres primeros son buenos, pero el cuarto no tiene ( id un campo obligatorio), se genera una respuesta de código de estado HTTP 200 junto con el siguiente cuerpo:
{
"errors": [
{
"recordIndex":3,
"errorMessages": [
"Error for Property=id: Required property is missing. Actual value: NULL."
]
}
]
}
Los indicadores se envían como una matriz, por lo que comienza recordIndex en 0.
Paso siguiente
Esta API es heredada. Migre para usar la API de objetos STIX para cargar la inteligencia sobre amenazas. Para obtener más información, consulte API de objetos STIX.