Notification de fraude Azure – Mettre à jour l’état des événements de fraude
S’applique à : API espace partenaires
Après avoir examiné les activités de fraude pour chaque ressource Azure signalée et déterminé le comportement comme frauduleux ou légitime, vous pouvez utiliser cette API pour mettre à jour l’état de l’événement de fraude avec la raison appropriée.
Remarque
Cette API met à jour uniquement l’état de l’événement, elle ne résout pas l’activité de fraude au nom des partenaires CSP.
À compter de mai 2023, les partenaires pilotes peuvent utiliser cette API avec le nouveau modèle d’événements. Avec le nouveau modèle, vous pouvez mettre à jour de nouveaux types d’alertes à mesure qu’elles sont ajoutées au système, par exemple, l’utilisation anormale du calcul, l’exploration de données de chiffrement, l’utilisation d’Azure Machine Apprentissage l’utilisation et les notifications d’avis d’intégrité du service.
Prérequis
- Informations d’identification, comme décrit dans Authentification auprès de l’Espace partenaires. Ce scénario prend en charge l’authentification avec les informations d’identification de l’application et de l’utilisateur.
Demande REST
Syntaxe de la requête
Méthode | URI de demande |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
En-têtes de requête
- Pour plus d’informations, consultez En-têtes REST de l’Espace Partenaires.
Corps de la demande
Aucun.
Exemple de requête
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"
}
Paramètre d’URI
Utilisez les paramètres de requête facultatifs suivants lors de la création de la requête.
Nom | Type | Requis | Description |
---|---|---|---|
SubscriptionId | string | Oui | ID d’abonnement Azure, qui a les activités d’exploration de données Crypro |
Corps de la demande
Propriété | Type | Requis | Description |
---|---|---|---|
eventIds | string[] | Non | Conservez eventIds comme vides si vous souhaitez mettre à jour l’état de tous les événements de fraude sous l’ID d’abonnement donné |
eventStatus | string | Non | État de l’alerte de fraude. Il peut être actif, résolu ou examen. |
resolvedReason | string | Oui | Lorsque l’événement de fraude est résolu, définissez un code de raison approprié, les codes de raison acceptés sont fraude ou ignorer |
Réponse REST
Si elle réussit, cette méthode retourne une collection d’événements fraude dans le corps de la réponse.
Codes d’erreur et de réussite de la réponse
Chaque réponse est fournie avec un code d’état HTTP qui indique la réussite ou l’échec et plus d’informations de débogage. Utilisez un outil de suivi réseau pour lire ce code, le type d’erreur et d’autres paramètres. Pour obtenir la liste complète, consultez Codes d’erreur.
Exemple de réponse
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"
}
]
Requête REST avec l’en-tête X-NewEventsModel
Syntaxe de la requête
MethodRequest | URI |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
En-têtes de requête
- X-NewEventsModel : true
- Pour plus d’informations, consultez En-têtes REST de l’Espace Partenaires.
Corps de la demande
{
"EventIds": ["string"],
"EventStatus": "Resolved",
"ResolvedReason": "Fraud"
}
Exemple de requête
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"
}
Paramètre d’URI
Utilisez les paramètres de requête facultatifs suivants lors de la création de la requête.
Nom | Type | Requis | Description |
---|---|---|---|
SubscriptionId | string | Oui | ID d’abonnement Azure, qui a les activités d’exploration de données Crypro |
Corps de la demande
Propriété | Type | Requis | Description |
---|---|---|---|
eventIds | string[] | Non | Conservez eventIds comme vides si vous souhaitez mettre à jour l’état de tous les événements de fraude sous l’ID d’abonnement donné |
eventStatus | string | Oui | Définissez-le sur Résoudre pour résoudre l’événement de fraude ou définissez-le sur Investigation pour enquêter sur un événement de fraude. |
resolvedReason | string | Oui | Lorsque l’événement de fraude est résolu, définissez un code de raison approprié, les codes de raison acceptés sont fraude ou ignorer |
Réponse REST
Si elle réussit, cette méthode retourne une collection d’événements Fraud avec des attributs étendus dans le corps de la réponse.
Codes d’erreur et de réussite de la réponse
Chaque réponse est fournie avec un code d’état HTTP qui indique la réussite ou l’échec et plus d’informations de débogage. Utilisez un outil de suivi réseau pour lire ce code, le type d’erreur et d’autres paramètres. Pour obtenir la liste complète, consultez Codes d’erreur.
Exemple de réponse
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"
}
]"
}
}
]
Propriété | Type | Description |
---|---|---|
eventTime | datetime | Heure à laquelle l’alerte a été détectée |
Eventid | string | Identificateur unique de l’alerte |
partnerTenantId | string | ID de locataire du partenaire associé à l’alerte |
partnerFriendlyName | string | Nom convivial du locataire partenaire |
customerTenantId | string | ID de locataire du client associé à l’alerte |
customerFriendlyName | string | Nom convivial du locataire client |
subscriptionId | string | ID d’abonnement du client |
subscriptionType | string | Type d’abonnement du client |
entityId | string | Identificateur unique de l’alerte |
entityName | string | Nom de l’entité compromise |
entityUrl | string | URL de l’entité de la ressource |
hitCount | string | Nombre de connexions détectées entre firstObserved et lastObserved |
catalogOfferId | string | ID de catégorie d’offre moderne de l’abonnement |
eventStatus | string | État de l’alerte : Actif, Examen ou Résolution |
serviceName | string | Nom du service Azure associé à l’alerte |
resourceName | string | Nom de la ressource Azure associée à l’alerte |
resourceGroupName | string | Nom du groupe de ressources Azure associé à l’alerte |
firstOccurrence | datetime | Heure de début de l’alerte d’impact (heure du premier événement ou activité inclus dans l’alerte). |
lastOccurrence | datetime | Heure de fin de l’impact de l’alerte (heure du dernier événement ou activité inclus dans l’alerte). |
resolvedReason | string | Raison fournie par le partenaire pour répondre à l’état de l’alerte |
resolvedOn | datetime | Heure à laquelle l’alerte a été résolue |
resolvedBy | string | Utilisateur qui a résolu l’alerte |
firstObserved | datetime | Heure de début de l’alerte d’impact (heure du premier événement ou activité inclus dans l’alerte). |
lastObserved | datetime | Heure de fin de l’impact de l’alerte (heure du dernier événement ou activité inclus dans l’alerte). |
eventType | string | Type d’alerte : ServiceHealthSecurity Advisory, UsageAnomalyDetection, MultiRegionVirtualMachineScaleSetDeploymentAnomaly, Network Connecter ionsToCryptoMiningPools, VirtualMachineDeploymentAnomaly, MultiRegionMachine Apprentissage UsageAnomaly |
gravité | string | Gravité de l’alerte. Valeurs : Faible, Moyen, Élevé |
confidenceLevel | string | Niveau de confiance de l’alerte, Valeurs - Faible, Moyen, Élevé |
displayName | string | Nom complet convivial de l’alerte en fonction du type d’alerte. |
description | string | Description de l’alerte |
country | string | Code de pays pour le locataire partenaire |
valueAddedResellerTenantId | string | ID de locataire du revendeur ajouté à valeur ajoutée associé au locataire partenaire et au locataire client |
valueAddedResellerFriendlyName | string | Nom convivial du revendeur à valeur ajoutée |
subscriptionName | string | Nom de l’abonnement du client |
affectedResources | json Array | Liste des ressources affectées. Les ressources affectées peuvent être vides pour différents types d’alertes. Dans ce cas, le partenaire doit case activée l’utilisation et la consommation au niveau de l’abonnement. |
additionalDetails | Json, objet | Dictionnaire d’autres paires clé-valeurs détaillées requises pour identifier et gérer l’alerte de sécurité. |
isTest | string | Si une alerte est générée pour le test, elle est définie sur true ou false. |
activityLogs | string | Journaux d’activité pour l’alerte. |