Notifica di frode di Azure - Aggiornare lo stato degli eventi illeciti
si applica a: API del Centro 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 come descritto in autenticazione del Partner Center. Questo scenario supporta l'autenticazione con le credenziali app+utente.
Richiesta REST
Sintassi della richiesta
Metodo | URI della richiesta |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
Intestazioni della richiesta
- Per ulteriori informazioni, vedere intestazioni REST del Centro 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 | Digitare | Obbligatorio | Descrizione |
---|---|---|---|
SubscriptionId |
corda | Sì | L'ID sottoscrizione di Azure, che ha le attività di crypto-mining |
Corpo della richiesta
Proprietà | Digitare | Obbligatorio | 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 |
corda | No | Stato dell'allerta di frode. Può essere attivo, risoltao in fase di indagine. |
resolvedReason |
corda | Sì | Quando viene risolto un evento di frode, impostare un codice motivo appropriato; i codici motivo accettati sono Frode o Ignora |
Risposta REST
In caso di esito positivo, questo metodo restituisce una raccolta di eventi di frode nel corpo della risposta.
Codici di errore e esito positivo 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, vedere codici di errore .
Esempio di risposta
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, vedere 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 | Digitare | Obbligatorio | Descrizione |
---|---|---|---|
SubscriptionId |
corda | Sì | ID della sottoscrizione di Azure che include attività di crypto-mining |
Corpo della richiesta
Proprietà | Digitare | Obbligatorio | 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 |
corda | Sì | Imposta su Risolvere per risolvere l'evento di frode o su Indagare per indagare un evento di frode. |
resolvedReason |
corda | Sì | Quando viene risolto un evento di frode, impostare un codice motivo appropriato. I codici motivo accettati sono frode 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 esito positivo 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, vedere Codici di errore.
Esempio di risposta
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à | Digitare | Descrizione |
---|---|---|
eventTime |
data e ora | Ora in cui è stato rilevato l'avviso |
eventId |
corda | Identificatore univoco per l'avviso |
partnerTenantId |
corda | ID del tenant del partner associato all'avviso |
partnerFriendlyName |
corda | Nome amichevole per il tenant del partner |
customerTenantId |
corda | ID tenant del cliente associato all'avviso |
customerFriendlyName |
corda | Nome amichevole per il tenant del cliente |
subscriptionId |
corda | ID di sottoscrizione del tenant cliente |
subscriptionType |
corda | Tipo di sottoscrizione del tenant del cliente |
entityId |
corda | Identificatore univoco per l'avviso |
entityName |
corda | Nome dell'entità compromessa |
entityUrl |
corda | URL dell'entità della risorsa |
hitCount |
corda | Numero di connessioni rilevate tra firstObserved e lastObserved |
catalogOfferId |
corda | ID categoria dell'offerta moderna dell'abbonamento |
eventStatus |
corda | Stato dell'avviso: Attivo, Analisi o Risolto |
serviceName |
corda | Nome del servizio di Azure associato all'avviso |
resourceName |
corda | Nome della risorsa di Azure associata all'avviso |
resourceGroupName |
corda | Nome del gruppo di risorse di Azure associato all'avviso |
firstOccurrence |
data e ora | Ora di inizio dell'avviso di impatto (l'ora del primo evento o dell'attività inclusa nell'avviso) |
lastOccurrence |
data e ora | Ora di fine impatto dell'avviso (ora dell'ultimo evento o dell'attività inclusa nell'avviso) |
resolvedReason |
corda | Motivo fornito dal partner per risolvere lo stato dell'avviso |
resolvedOn |
data e ora | Ora in cui l'avviso è stato risolto |
resolvedBy |
corda | Utente che ha risolto l'avviso |
firstObserved |
data e ora | Ora di inizio dell'avviso di impatto (l'ora del primo evento o dell'attività inclusa nell'avviso) |
lastObserved |
data e ora | Ora di fine dell'avviso (ora dell'ultimo evento o dell'attività inclusa nell'avviso) |
eventType |
corda | Tipo di avviso: ServiceHealthSecurityAdvisory , UsageAnomalyDetection , MultiRegionVirtualMachineScaleSetDeploymentAnomaly , NetworkConnectionsToCryptoMiningPools , VirtualMachineDeploymentAnomaly , MultiRegionMachineLearningUsageAnomaly |
severity |
corda | Gravità dell'avviso (valori: Basso, Medio, Alto) |
confidenceLevel |
corda | Livello di attendibilità dell'avviso (valori: Basso, Medio, Alto) |
displayName |
corda | Nome visualizzato intuitivo per l'avviso, a seconda del tipo di avviso |
description |
corda | Descrizione dell'avviso |
country |
corda | Codice paese per il tenant partner |
valueAddedResellerTenantId |
corda | ID tenant del rivenditore a valore aggiunto associato al tenant partner e al tenant del cliente |
valueAddedResellerFriendlyName |
corda | Nome amichevole per il rivenditore a valore aggiunto |
subscriptionName |
corda | Nome della sottoscrizione dell'inquilino del cliente |
affectedResources |
Array JSON | Elenco delle risorse interessate; Le risorse interessate potrebbero essere vuote per diversi tipi di avviso, nel qual caso il partner deve controllare l'utilizzo e il consumo a livello di sottoscrizione. |
additionalDetails |
Oggetto JSON | Un dizionario di dettagli di altre coppie di chiave-valore necessarie per identificare e gestire l'avviso di sicurezza. |
isTest |
corda | Se viene generato un avviso per il test, verrà impostato su true oppure false |
activityLogs |
corda | Log dell'attività per l'allerta |