Notificación de fraude de Azure: actualización del estado del evento de fraude
Se aplica a: API del Centro de partners
Después de investigar las actividades de fraude para cada recurso de Azure notificado y determinar el comportamiento como fraudulento o legítimo, puede usar esta API para actualizar el estado del evento de fraude con el motivo adecuado.
Nota
Esta API solo actualizará el estado del evento, no resolverá la actividad de fraude en nombre de los asociados de CSP.
A partir de mayo de 2023, los asociados piloto pueden usar esta API con New Events Model. Con el nuevo modelo, puede actualizar nuevos tipos de alertas a medida que se agregan al sistema, por ejemplo, uso anómalo de proceso, minería de cifrado, uso de Azure Machine Learning y notificaciones de aviso de estado del servicio.
Prerrequisitos
- Credenciales como se describe en Autenticación del Centro de partners. Este escenario admite la autenticación con credenciales de aplicación y usuario.
Solicitud REST
Sintaxis de solicitud
Método | URI de solicitud |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
Encabezados de solicitud
- Para obtener más información, consulte Encabezados REST del Centro de partners.
Cuerpo de la solicitud
Ninguno.
Ejemplo de solicitud
POST https://api.partnercenter.microsoft.com/v1/fraudEvents/subscription/{subscriptionId}/status} HTTP/1.1
Authorization: Bearer <token>
Host: api.partnercenter.microsoft.com
Content-Type: application/json
{
"EventIds": ["2a7064fb-1e33-4007-974e-352cb3f2c805_2edeb5b1-766f-4209-9271-3ddf27755afa"],
"EventStatus" : "Resolved",
"ResolvedReason": "Fraud"
}
Parámetro de URI
Use los siguientes parámetros de consulta opcionales al crear la solicitud.
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
SubscriptionId |
cadena | Sí | El identificador de suscripción de Azure, que tiene las actividades de criptominería |
Cuerpo de la solicitud
Propiedad | Tipo | Obligatorio | Descripción |
---|---|---|---|
eventIds |
string[] | No | Mantenga eventIds como vacío si desea actualizar el estado de todos los eventos de fraude en el identificador de suscripción especificado. |
eventStatus |
cadena | No | Estado de la alerta de fraude. Puede ser Activo, Resuelto, o Investigando. |
resolvedReason |
cadena | Sí | Cuando se resuelve el evento de fraude, establezca un código de motivo adecuado, los códigos de motivo aceptados son Fraude, o Omitir. |
Respuesta REST
Si tiene éxito, este método devuelve una colección de eventos de fraude en el cuerpo de la respuesta.
Códigos de éxito y de error de respuesta
Cada respuesta incluye un código de estado HTTP que indica éxito o error y más información de depuración. Use una herramienta de seguimiento de red para leer este código, tipo de error y más parámetros. Para obtener la lista completa, consulte códigos de error.
Ejemplo de respuesta
HTTP/1.1 200 OK
Content-Length: 313
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 566330a7-1e4b-4848-9c23-f135c70fd810
Date: Thu, 21 May 2020 22:29:17 GMT
[
{
"eventTime": "2021-12-08T00:25:45.69",
"eventId": "2a7064fb-1e33-4007-974e-352cb3f2c805_2edeb5b1-766f-4209-9271-3ddf27755afa",
"partnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"partnerFriendlyName": "test partner",
"customerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"customerFriendlyName": "test customer",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"subscriptionType": "modern",
"entityId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"entityName": "sampleentity",
"entityUrl": "\\sample\\entity\\url",
"hitCount": "10",
"catalogOfferId": "ms-azr-17g",
"eventStatus": "Resolved",
"serviceName": "sampleservice",
"resourceName": "sampleresource",
"resourceGroupName": "sampleresourcegroup",
"firstOccurrence": "2021-12-08T00:25:45.69",
"lastOccurrence": "2021-12-08T00:25:45.69",
"resolvedReason": "Fraud",
"resolvedOn": "2021-12-08T11:25:45.69",
"resolvedBy": "adminagent@test.com"
}
]
Solicitud REST con el encabezado X-NewEventsModel
Sintaxis de solicitud
MethodRequest | URI |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
Encabezados de solicitud
- X-NewEventsModel: true
- Para obtener más información, consulte Encabezados REST del Centro de partners.
Cuerpo de la solicitud
{
"EventIds": ["string"],
"EventStatus": "Resolved",
"ResolvedReason": "Fraud"
}
Ejemplo de solicitud
POST https://api.partnercenter.microsoft.com/v1/fraudEvents/subscription/{subscriptionId}/status} HTTP/1.1
Authorization: Bearer <token>
Host: api.partnercenter.microsoft.com
Content-Type: application/json
X-NewEventsModel: true
{
"EventIds": ["2a7064fb-1e33-4007-974e-352cb3f2c805_2edeb5b1-766f-4209-9271-3ddf27755afa"],
"EventStatus" : "Resolved",
"ResolvedReason": "Fraud"
}
Parámetro de URI
Use los siguientes parámetros de consulta opcionales al crear la solicitud.
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
SubscriptionId |
cadena | Sí | El identificador de suscripción de Azure, que tiene las actividades de criptominería |
Cuerpo de la solicitud
Propiedad | Tipo | Obligatorio | Descripción |
---|---|---|---|
eventIds |
string[] | No | Mantenga eventIds como vacío si desea actualizar el estado de todos los eventos de fraude en el identificador de suscripción especificado. |
eventStatus |
cadena | Sí | Establézcalo en Resolver para resolver el evento de fraude o establecerlo en Investigar para investigar un evento de fraude. |
resolvedReason |
cadena | Sí | Cuando se resuelve un evento de fraude, establezca un código de motivo adecuado; los códigos de motivo aceptados son Fraude o Omitir. |
Respuesta REST
Si tiene éxito, este método devuelve una colección de eventos de fraude con atributos ampliados en el cuerpo de la respuesta.
Códigos de éxito y error de respuesta
Cada respuesta incluye un código de estado HTTP que indica éxito o error y más información de depuración. Use una herramienta de seguimiento de red para leer este código, tipo de error y más parámetros. Para obtener la lista completa, consulte Códigos de error.
Ejemplo de respuesta
HTTP/1.1 200 OK
Content-Length: 313
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 566330a7-1e4b-4848-9c23-f135c70fd810
Date: Thu, 21 May 2020 22:29:17 GMT
[
{
"eventTime": "2021-12-08T00:25:45.69",
"eventId": "2a7064fb-1e33-4007-974e-352cb3f2c805_2edeb5b1-766f-4209-9271-3ddf27755afa",
"partnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"partnerFriendlyName": "test partner",
"customerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"customerFriendlyName": "test customer",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"subscriptionType": "modern",
"entityId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"entityName": "sampleentity",
"entityUrl": "\\sample\\entity\\url",
"hitCount": "10",
"catalogOfferId": "ms-azr-17g",
"eventStatus": "Resolved",
"serviceName": "sampleservice",
"resourceName": "sampleresource",
"resourceGroupName": "sampleresourcegroup",
"firstOccurrence": "2021-12-08T00:25:45.69",
"lastOccurrence": "2021-12-08T00:25:45.69",
"resolvedReason": "Fraud",
"resolvedOn": "2021-12-08T11:25:45.69",
"resolvedBy": "adminagent@test.com",
"eventType": "NetworkConnectionsToCryptoMiningPools",
"severity": "Medium",
"confidenceLevel": "high",
"displayName": "sample display name",
"description": "sample description.",
"country": "US",
"valueAddedResellerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"valueAddedResellerFriendlyName": "Sample Reseller Name",
"subscriptionName": "sample Subscription Name",
"affectedResources": [
{
"azureResourceId": "\\sample\\resource\\url ",
"type": "sample resource type"
}
],
"additionalDetails": {
"resourceid": "\\sample\\resource\\id ",
"resourcetype": "sample resource type",
"vM_IP": "[\r\n \"13.89.185.189\"\r\n]",
"miningPool_IP": "[\r\n \"104.243.33.118\"\r\n]",
"connectionCount": "31",
"cryptoCurrencyMiningPoolDomainName": "sample pool domain name"
},
"IsTest": "false",
"activityLogs": "[
{
"statusFrom": "Active",
"statusTo": "Investigating",
"updatedBy": "admin@testtestcsp022.onmicrosoft.com",
"dateTime": "2023-07-10T12:34:27.8016635+05:30"
},
{
"statusFrom": "Investigating",
"statusTo": "Resolved",
"updatedBy": "admin@testtestcsp022.onmicrosoft.com",
"dateTime": "2023-07-10T12:38:26.693182+05:30"
}
]"
}
}
]
Propiedad | Tipo | Descripción |
---|---|---|
eventTime |
fecha y hora | Hora a la que se detectó la alerta |
eventId |
cadena | Identificador único de la alerta |
partnerTenantId |
cadena | Identificador de inquilino del partner asociado a la alerta |
partnerFriendlyName |
cadena | Un nombre amigable para el inquilino asociado |
customerTenantId |
cadena | Identificador de inquilino del cliente asociado a la alerta |
customerFriendlyName |
cadena | Un nombre descriptivo para el inquilino del cliente |
subscriptionId |
cadena | Identificador de suscripción del inquilino del cliente |
subscriptionType |
cadena | El tipo de suscripción del inquilino del cliente |
entityId |
cadena | Identificador único de la alerta |
entityName |
cadena | Nombre de la entidad en peligro |
entityUrl |
cadena | URL de la entidad del recurso |
hitCount |
cadena | Número de conexiones detectadas entre firstObserved y lastObserved |
catalogOfferId |
cadena | El identificador de categoría de la oferta moderna de la suscripción |
eventStatus |
cadena | El estado de la alerta: Activo, Investigando o Resuelto |
serviceName |
cadena | Nombre del servicio de Azure asociado a la alerta |
resourceName |
cadena | Nombre del recurso de Azure asociado a la alerta |
resourceGroupName |
cadena | Nombre del grupo de recursos de Azure asociado a la alerta |
firstOccurrence |
fecha y hora | La hora de inicio del impacto de la alerta (la hora del primer evento o actividad incluida en la alerta) |
lastOccurrence |
fecha y hora | La hora de finalización del impacto de la alerta (la hora del último evento o actividad incluida en la alerta) |
resolvedReason |
cadena | El motivo proporcionado por el partner para abordar el estado de la alerta |
resolvedOn |
fecha y hora | Hora a la que se resolvió la alerta |
resolvedBy |
cadena | Usuario que resolvió la alerta |
firstObserved |
fecha y hora | La hora de inicio del impacto de la alerta (la hora del primer evento o actividad incluida en la alerta) |
lastObserved |
fecha y hora | La hora de finalización del impacto de la alerta (la hora del último evento o actividad incluida en la alerta) |
eventType |
cadena | El tipo de alerta: ServiceHealthSecurityAdvisory , UsageAnomalyDetection , MultiRegionVirtualMachineScaleSetDeploymentAnomaly , NetworkConnectionsToCryptoMiningPools , VirtualMachineDeploymentAnomaly , MultiRegionMachineLearningUsageAnomaly |
severity |
cadena | Gravedad de la alerta (Valores: Bajo, Medio, Alto) |
confidenceLevel |
cadena | El nivel de confianza de la alerta (Valores: Bajo, Medio, Alto) |
displayName |
cadena | Nombre para mostrar descriptivo de la alerta en función del tipo de alerta |
description |
cadena | Descripción de la alerta |
country |
cadena | Código de país para el inquilino asociado |
valueAddedResellerTenantId |
cadena | Identificador de inquilino del revendedor de valor agregado asociado al inquilino del partner y al inquilino del cliente |
valueAddedResellerFriendlyName |
cadena | Un nombre amigable para el revendedor de valor agregado |
subscriptionName |
cadena | Nombre de la suscripción del inquilino del cliente |
affectedResources |
Matriz de JSON | Lista de recursos afectados; Los recursos afectados pueden estar vacíos para distintos tipos de alertas, en cuyo caso el asociado debe comprobar el uso y el consumo en el nivel de suscripción. |
additionalDetails |
objeto JSON | Diccionario de otros pares clave-valores de detalles necesarios para identificar y administrar la alerta de seguridad |
isTest |
cadena | Si se genera una alerta para la prueba, se establecerá en true o false |
activityLogs |
cadena | Registros de actividad para alertas |