Notification de fraude Azure - Mettre à jour l’état des événements de fraude
S’applique à : API de l’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.
Note
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.
Depuis 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 Learning et les notifications d’avis d’intégrité des services.
Conditions préalables
- Informations d’identification telles que décrites dans Authentification de l’Espace partenaires. Ce scénario prend en charge l’authentification avec les informations d’identification app+utilisateur.
Requête REST
Syntaxe de la requête
Méthode | URI de requête |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
En-têtes de requête
- Pour plus d’informations, consultez En-têtes REST d’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 | Obligatoire | Description |
---|---|---|---|
SubscriptionId |
chaîne | Oui | ID d’abonnement Azure présentant des activités de minage de crypto |
Corps de la demande
Propriété | Type | Obligatoire | Description |
---|---|---|---|
eventIds |
chaîne[] | 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 |
chaîne | Non | État de l’alerte de fraude. Le statut peut être Actif, Résolu, ou En cours d’investigation. |
resolvedReason |
chaîne | 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
En cas de succès, cette méthode renvoie une collection d’événements de fraude dans le corps de la réponse.
Réussite de la réponse et codes d’erreur
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 : vrai
- Pour plus d’informations, consultez En-têtes REST d’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 | Obligatoire | Description |
---|---|---|---|
SubscriptionId |
chaîne | Oui | ID d’abonnement Azure présentant des activités de minage de crypto |
Corps de la demande
Propriété | Type | Obligatoire | Description |
---|---|---|---|
eventIds |
chaîne[] | Non | Conservez eventIds comme vide si vous souhaitez mettre à jour l’état de tous les événements de fraude sous l’ID d’abonnement donné |
eventStatus |
chaîne | Oui | Définissez-le sur Résoudre pour résoudre l’événement de fraude ou définissez-le sur Enquête pour enquêter sur un événement de fraude. |
resolvedReason |
chaîne | 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
En cas de succès, cette méthode renvoie une collection d’événements de fraude avec des attributs étendus dans le corps de la réponse.
Réussite de la réponse et codes d’erreur
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 |
Date/Heure | Heure à laquelle l’alerte a été détectée |
eventId |
chaîne | Identificateur unique de l’alerte |
partnerTenantId |
chaîne | ID de locataire du partenaire associé à l’alerte |
partnerFriendlyName |
chaîne | Nom convivial du locataire partenaire |
customerTenantId |
chaîne | ID de locataire du client associé à l’alerte |
customerFriendlyName |
chaîne | Nom convivial du locataire client |
subscriptionId |
ficelle | Identifiant d’abonnement du locataire client |
subscriptionType |
chaîne | Type d’abonnement du client |
entityId |
chaîne | Identificateur unique de l’alerte |
entityName |
chaîne | Nom de l’entité compromise |
entityUrl |
chaîne | URL de l’entité de la ressource |
hitCount |
chaîne | Nombre de connexions détectées entre firstObserved et lastObserved |
catalogOfferId |
chaîne | ID de catégorie d’offre moderne de l’abonnement |
eventStatus |
chaîne | État de l’alerte : Actif, Examen ou Résolu |
serviceName |
chaîne | Nom du service Azure associé à l’alerte |
resourceName |
chaîne | Nom de la ressource Azure associée à l’alerte |
resourceGroupName |
chaîne | Nom du groupe de ressources Azure associé à l’alerte |
firstOccurrence |
date et heure | Heure de début de l’impact de l’alerte (heure du premier événement ou activité inclus dans l’alerte) |
lastOccurrence |
date et heure | Heure de fin de l’alerte d’impact (heure du dernier événement ou activité inclus dans l’alerte) |
resolvedReason |
chaîne | Raison fournie par le partenaire pour répondre à l’état de l’alerte |
resolvedOn |
date et heure | Heure à laquelle l’alerte a été résolue |
resolvedBy |
chaîne | Utilisateur qui a résolu l’alerte |
firstObserved |
date et heure | Heure de début de l’impact de l’alerte (heure du premier événement ou activité inclus dans l’alerte) |
lastObserved |
Date/Heure | Heure de fin de l’alerte d’impact (heure du dernier événement ou activité inclus dans l’alerte) |
eventType |
chaîne | Type d’alerte : ServiceHealthSecurityAdvisory , UsageAnomalyDetection , MultiRegionVirtualMachineScaleSetDeploymentAnomaly , NetworkConnectionsToCryptoMiningPools , VirtualMachineDeploymentAnomaly , MultiRegionMachineLearningUsageAnomaly |
severity |
chaîne | Gravité de l’alerte (Valeurs : Faible, Moyen, Élevé) |
confidenceLevel |
chaîne | Niveau de confiance de l’alerte (Valeurs : Faible, Moyen, Élevé) |
displayName |
chaîne | Nom d'affichage convivial pour l'alerte selon le type d’alerte |
description |
chaîne | Description de l’alerte |
country |
chaîne | Code de pays pour le locataire partenaire |
valueAddedResellerTenantId |
ficelle | ID de locataire du revendeur à valeur ajoutée associé au locataire partenaire et au locataire client |
valueAddedResellerFriendlyName |
chaîne | Nom convivial du revendeur à valeur ajoutée |
subscriptionName |
chaîne | Nom de l’abonnement du locataire client |
affectedResources |
json Array | Liste des ressources affectées ; les ressources affectées peuvent être vides pour différents types d’alertes, auquel cas le partenaire doit vérifier l’utilisation et la consommation au niveau de l’abonnement |
additionalDetails |
Objet Json | Dictionnaire d’autres paires clé-valeurs détaillées requises pour identifier et gérer l’alerte de sécurité |
isTest |
chaîne | Si une alerte est générée pour le test, elle est définie sur true ou false |
activityLogs |
chaîne | Journaux d’activité pour l’alerte |