Notifica di frodi di Azure - Aggiornare lo stato degli eventi di frode
Si applica a: API del Centro per i partner
Dopo aver esaminato le attività di frode per ogni risorsa di Azure segnalata e determinato il comportamento come fraudolento o legittimo, è possibile usare questa API per aggiornare lo stato degli eventi di frode con il motivo appropriato.
Nota
Questa API aggiornerà solo lo stato dell'evento, non risolverà l'attività di frode per conto dei partner CSP.
A partire da maggio 2023, i partner pilota possono usare questa API con il nuovo modello di eventi. Con il nuovo modello, è possibile aggiornare nuovi tipi di avvisi man mano che vengono aggiunti al sistema, ad esempio, utilizzo anomalo del calcolo, crypto mining, utilizzo di Azure Machine Learning e notifiche di avviso sull'integrità dei servizi.
Prerequisiti
- Credenziali descritte in Autenticazione del Centro per i partner. Questo scenario supporta l'autenticazione con le credenziali dell'app e dell'utente.
Richiesta REST
Sintassi della richiesta
Method | URI della richiesta |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
Intestazioni della richiesta
- Per altre informazioni, vedi Intestazioni REST del Centro per i partner.
Corpo della richiesta
Nessuno.
Esempio di richiesta
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"
}
Parametro URI
Usare i parametri di query facoltativi seguenti durante la creazione della richiesta.
Nome | Type | Richiesto | Descrizione |
---|---|---|---|
SubscriptionId | string | Sì | ID sottoscrizione di Azure, che ha le attività di crypro-mining |
Corpo della richiesta
Proprietà | Type | Richiesto | Descrizione |
---|---|---|---|
eventIds | string[] | No | Mantenere eventIds come vuoto se si vuole aggiornare lo stato per tutti gli eventi illeciti con l'ID sottoscrizione specificato |
eventStatus | string | No | Stato dell'avviso di illecito. Può essere attivo, risolto o in corso di analisi. |
resolvedReason | string | Sì | Quando viene risolto un evento illecito, impostare un codice motivo appropriato, i codici motivo accettati sono Frodi o Ignora |
Risposta REST
In caso di esito positivo, questo metodo restituisce una raccolta di eventi illeciti nel corpo della risposta.
Codici di errore e di esito della risposta
Ogni risposta viene fornita con un codice di stato HTTP che indica l'esito positivo o negativo e altre informazioni di debug. Usare uno strumento di traccia di rete per leggere questo codice, il tipo di errore e altri parametri. Per l'elenco completo, vedi Codici di errore.
Risposta di esempio
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"
}
]
Richiesta REST con l'intestazione X-NewEventsModel
Sintassi della richiesta
MethodRequest | URI |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
Intestazioni della richiesta
- X-NewEventsModel: true
- Per altre informazioni, vedi Intestazioni REST del Centro per i partner.
Corpo della richiesta
{
"EventIds": ["string"],
"EventStatus": "Resolved",
"ResolvedReason": "Fraud"
}
Esempio di richiesta
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"
}
Parametro URI
Usare i parametri di query facoltativi seguenti durante la creazione della richiesta.
Nome | Type | Richiesto | Descrizione |
---|---|---|---|
SubscriptionId | string | Sì | ID sottoscrizione di Azure, che ha le attività di crypro-mining |
Corpo della richiesta
Proprietà | Type | Richiesto | Descrizione |
---|---|---|---|
eventIds | string[] | No | Mantenere eventIds come vuoto se si vuole aggiornare lo stato per tutti gli eventi illeciti con l'ID sottoscrizione specificato |
eventStatus | string | Sì | Impostarlo su Risolvi per risolvere l'evento di illecito o impostarlo su Analisi per analizzare un evento di frode. |
resolvedReason | string | Sì | Quando viene risolto un evento illecito, impostare un codice motivo appropriato, i codici motivo accettati sono Frodi o Ignora |
Risposta REST
In caso di esito positivo, questo metodo restituisce una raccolta di eventi Fraud con attributi estesi nel corpo della risposta.
Codici di errore e di esito della risposta
Ogni risposta viene fornita con un codice di stato HTTP che indica l'esito positivo o negativo e altre informazioni di debug. Usare uno strumento di traccia di rete per leggere questo codice, il tipo di errore e altri parametri. Per l'elenco completo, vedi Codici di errore.
Risposta di esempio
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"
}
]"
}
}
]
Proprietà | Digita | Descrizione |
---|---|---|
eventTime | data/ora | Ora in cui è stato rilevato l'avviso |
Eventid | stringa | Identificatore univoco per l'avviso |
partnerTenantId | stringa | ID tenant del partner associato all'avviso |
partnerFriendlyName | stringa | Nome descrittivo per il tenant del partner |
customerTenantId | stringa | ID tenant del cliente associato all'avviso |
customerFriendlyName | stringa | Nome descrittivo per il tenant del cliente |
subscriptionId | stringa | ID sottoscrizione del tenant del cliente |
subscriptionType | stringa | Tipo di sottoscrizione del tenant del cliente |
entityId | stringa | Identificatore univoco per l'avviso |
entityName | stringa | Nome dell'entità compromessa |
entityUrl | stringa | URL dell'entità della risorsa |
Hitcount | stringa | Numero di connessioni rilevate tra firstObserved e lastObserved |
catalogOfferId | stringa | ID categoria dell'offerta moderna della sottoscrizione |
eventStatus | stringa | Stato dell'avviso: attivo, in analisi o risolto |
serviceName | stringa | Nome del servizio di Azure associato all'avviso |
resourceName | stringa | Nome della risorsa di Azure associata all'avviso |
resourceGroupName | stringa | Nome del gruppo di risorse di Azure associato all'avviso |
firstOccurrence | data/ora | Ora di inizio dell'avviso (ora del primo evento o dell'attività inclusa nell'avviso). |
lastOccurrence | data/ora | Ora di fine dell'avviso (ora dell'ultimo evento o dell'attività inclusa nell'avviso). |
resolvedReason | stringa | Motivo fornito dal partner per risolvere lo stato dell'avviso |
resolvedOn | data/ora | Ora in cui l'avviso è stato risolto |
resolvedBy | stringa | Utente che ha risolto l'avviso |
firstObserved | data/ora | Ora di inizio dell'avviso (ora del primo evento o dell'attività inclusa nell'avviso). |
lastObserved | data/ora | Ora di fine dell'avviso (ora dell'ultimo evento o dell'attività inclusa nell'avviso). |
eventType | string | Tipo di avviso: ServiceHealthSecurityAdvisory, UsageAnomalyDetection, MultiRegionVirtualMachineScaleSetDeploymentAnomaly, Network Connessione ionsToCryptoMiningPools, VirtualMachineDeploymentAnomaly, MultiRegionMachineLearningUsageAnomaly |
severity | stringa | La gravità dell'avviso. Valori: Basso, Medio, Alto |
confidenceLevel | stringa | Livello di attendibilità dell'avviso, Valori- Basso, Medio, Alto |
displayName | stringa | Nome visualizzato descrittivo per l'avviso a seconda del tipo di avviso. |
description | stringa | Descrizione dell'avviso |
country | stringa | Codice paese per il tenant partner |
valueAddedResellerTenantId | stringa | ID tenant del rivenditore aggiunto associato al tenant partner e al tenant del cliente |
valueAddedResellerFriendlyName | stringa | Nome descrittivo per il rivenditore aggiunto di valore |
subscriptionName | stringa | Nome della sottoscrizione del tenant del cliente |
affectedResources | Matrice json | Elenco delle risorse interessate. Le risorse interessate potrebbero essere Vuote per tipi di avviso diversi. In tal caso, il partner deve controllare l'utilizzo e il consumo a livello di sottoscrizione. |
additionalDetails | Oggetto Json | Dizionario di altre coppie chiave-valore dettagli necessarie per identificare e gestire l'avviso di sicurezza. |
isTest | stringa | Se viene generato un avviso per il test, verrà impostato su true o su false. |
activityLogs | stringa | Log attività per gli avvisi. |