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 el nuevo modelo de eventos. 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.
Requisitos previos
- Credenciales tal como se describen en el artículo Autenticación del Centro de partners. Este escenario admite la autenticación con credenciales de aplicación y usuario.
Solicitud REST
Sintaxis de la solicitud
Método | URI de solicitud |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
Encabezados de solicitud
- Para obtener más información, consulta 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 | Requerido | Descripción |
---|---|---|---|
SubscriptionId | cadena | Sí | El identificador de suscripción de Azure, que tiene las actividades de minería de cripro |
Cuerpo de la solicitud
Propiedad | Tipo | Requerido | 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 un evento de fraude, establezca un código de motivo adecuado, los códigos de motivo aceptados son Fraude o Omitir |
Respuesta REST
Si se ejecuta correctamente, este método devuelve una colección de eventos De fraude en el cuerpo de la respuesta.
Códigos de error y de respuesta correctos
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 la solicitud
MethodRequest | URI |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
Encabezados de solicitud
- X-NewEventsModel: true
- Para obtener más información, consulta 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 | Requerido | Descripción |
---|---|---|---|
SubscriptionId | cadena | Sí | El identificador de suscripción de Azure, que tiene las actividades de minería de cripro |
Cuerpo de la solicitud
Propiedad | Tipo | Requerido | 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 se ejecuta correctamente, este método devuelve una colección de eventos Fraud con atributos extendidos en el cuerpo de la respuesta.
Códigos de error y de respuesta correctos
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 | Type | Descripción |
---|---|---|
eventTime | datetime | Hora a la que se detectó la alerta |
Eventid | cadena | Identificador único de la alerta |
partnerTenantId | cadena | Identificador de inquilino del asociado asociado a la alerta |
partnerFriendlyName | cadena | Un nombre descriptivo para el inquilino del 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 | Dirección URL de 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 | datetime | La hora de inicio del impacto de la alerta (la hora del primer evento o actividad incluida en la alerta). |
lastOccurrence | datetime | 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 asociado para abordar el estado de la alerta |
resolvedOn | datetime | Hora a la que se resolvió la alerta |
resolvedBy | cadena | Usuario que resolvió la alerta |
firstObserved | datetime | La hora de inicio del impacto de la alerta (la hora del primer evento o actividad incluida en la alerta). |
lastObserved | datetime | 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, Network Conectar ionsToCryptoMiningPools, VirtualMachineDeploymentAnomaly, MultiRegionMachineLearningUsageAnomaly |
severity | cadena | Gravedad de la alerta. Valores: Bajo, Medio, Alto |
confidenceLevel | cadena | 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. |
descripción | cadena | Descripción de la alerta |
country | cadena | Código de país para el inquilino del asociado |
valueAddedResellerTenantId | cadena | Identificador de inquilino del revendedor de valor agregado asociado al inquilino del asociado y al inquilino del cliente |
valueAddedResellerFriendlyName | cadena | Un nombre descriptivo para el revendedor de valor agregado |
subscriptionName | cadena | Nombre de la suscripción del inquilino del cliente |
affectedResources | matriz json | Lista de recursos afectados. Los recursos afectados pueden estar vacíos para distintos tipos de alertas. Si es así, el asociado debe comprobar el uso y el consumo en el nivel de suscripción. |
additionalDetails | Json (objeto) | 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 en false. |
activityLogs | cadena | Registros de actividad para alertas. |