Notificação de fraude do Azure – Atualizar o status do evento de fraude
Aplica-se a: API do Partner Center
Depois de investigar as atividades de fraude para cada recurso do Azure relatado e determinar o comportamento como fraudulento ou legítimo, você pode usar essa API para atualizar o status do evento de fraude com o motivo apropriado.
Nota
Essa API atualizará apenas o status do evento, não resolverá a atividade de fraude em nome de parceiros CSP.
A partir de maio de 2023, os parceiros piloto podem usar essa API com o New Events Model. Com o novo modelo, você pode atualizar novos tipos de alertas conforme eles são adicionados ao sistema, por exemplo, uso de computação anômala, mineração de criptografia, uso do Azure Machine Learning e notificações de consultoria de integridade do serviço.
Pré-requisitos
- Credenciais, conforme descrito em Autenticação do Partner Center. Esse cenário dá suporte à autenticação com credenciais de Aplicativo+Usuário.
Solicitação REST
Sintaxe de solicitação
Método | URI de solicitação |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
Cabeçalhos de solicitação
- Para obter mais informações, consulte Cabeçalhos REST do Partner Center.
Corpo da solicitação
Nenhum.
Exemplo de solicitação
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 URI
Use os seguintes parâmetros de consulta opcionais ao criar a solicitação.
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
SubscriptionId |
cadeia de caracteres | Sim | A ID da assinatura do Azure, que tem as atividades de mineração de Crypro |
Corpo da solicitação
Propriedade | Tipo | Necessário | Descrição |
---|---|---|---|
eventIds |
cadeia de caracteres[] | Não | Mantenha eventIds como vazias se quiser atualizar o status de todos os eventos de fraude na ID de assinatura fornecida |
eventStatus |
cadeia de caracteres | Não | O status do alerta de fraude. Pode ser Ativo, Resolvidoou Investigando. |
resolvedReason |
cadeia de caracteres | Sim | Quando o evento de fraude é resolvido, defina um código de motivo apropriado: os códigos de motivo aceitos são Fraude, ou Ignorar,. |
Resposta REST
Se tiver êxito, esse método retornará uma coleção de eventos de fraude no corpo da resposta.
Códigos de erro e êxito de resposta
Cada resposta vem com um código de status HTTP que indica êxito ou falha e mais informações de depuração. Use uma ferramenta de rastreamento de rede para ler este código, tipo de erro e mais parâmetros. Para obter a lista completa, consulte Códigos de Erro.
Exemplo de resposta
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"
}
]
Solicitação REST com o cabeçalho X-NewEventsModel
Sintaxe de solicitação
MethodRequest | URI |
---|---|
POST | {baseURL}/v1/fraudEvents/subscription/{subscriptionId}/status |
Cabeçalhos de solicitação
- X-NewEventsModel: true
- Para obter mais informações, consulte Cabeçalhos REST do Partner Center.
Corpo da solicitação
{
"EventIds": ["string"],
"EventStatus": "Resolved",
"ResolvedReason": "Fraud"
}
Exemplo de solicitação
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 URI
Use os seguintes parâmetros de consulta opcionais ao criar a solicitação.
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
SubscriptionId |
cadeia de caracteres | Sim | A ID da assinatura do Azure, que tem as atividades de mineração de Crypro |
Corpo da solicitação
Propriedade | Tipo | Necessário | Descrição |
---|---|---|---|
eventIds |
cadeia de caracteres[] | Não | Mantenha eventIds como vazio se quiser atualizar o status de todos os eventos de fraude na ID da assinatura fornecida |
eventStatus |
cadeia de caracteres | Sim | Defina-o para Resolver para resolver o evento de fraude ou defini-lo como Investigando para investigar um evento de fraude. |
resolvedReason |
cadeia de caracteres | Sim | Quando o evento de fraude é resolvido, defina um código de motivo apropriado. Os códigos de motivo aceitos são Fraude ou Ignorar. |
Resposta REST
Se bem-sucedido, esse método retornará uma coleção de eventos de fraude com atributos estendidos no corpo da resposta.
Códigos de erro e êxito de resposta
Cada resposta vem com um código de status HTTP que indica êxito ou falha e mais informações de depuração. Use uma ferramenta de rastreamento de rede para ler este código, tipo de erro e mais parâmetros. Para obter a lista completa, consulte Códigos de Erro.
Exemplo de resposta
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"
}
]"
}
}
]
Propriedade | Tipo | Descrição |
---|---|---|
eventTime |
data e hora | A hora em que o alerta foi detectado |
eventId |
cadeia de caracteres | O identificador exclusivo do alerta |
partnerTenantId |
cadeia de caracteres | A ID do locatário do parceiro associado ao alerta |
partnerFriendlyName |
cadeia de caracteres | Um nome fácil de usar para o inquilino parceiro |
customerTenantId |
cadeia de caracteres | A ID do locatário do cliente associado ao alerta |
customerFriendlyName |
cadeia de caracteres | Um nome amigável para o locatário do cliente |
subscriptionId |
cadeia de caracteres | A ID da assinatura do locatário do cliente |
subscriptionType |
cadeia de caracteres | O tipo de assinatura do locatário do cliente |
entityId |
cadeia de caracteres | O identificador exclusivo do alerta |
entityName |
cadeia de caracteres | O nome da entidade comprometida |
entityUrl |
cadeia de caracteres | A URL da entidade do recurso |
hitCount |
cadeia de caracteres | O número de conexões detectadas entre firstObserved e lastObserved |
catalogOfferId |
cadeia de caracteres | A ID da categoria de oferta moderna da assinatura |
eventStatus |
cadeia de caracteres | O status do alerta: Ativo, Investigando ou Resolvido |
serviceName |
cadeia de caracteres | O nome do serviço do Azure associado ao alerta |
resourceName |
cadeia de caracteres | O nome do recurso do Azure associado ao alerta |
resourceGroupName |
cadeia de caracteres | O nome do grupo de recursos do Azure associado ao alerta |
firstOccurrence |
data e hora | A hora de início do impacto do alerta (a hora do primeiro evento ou atividade incluída no alerta) |
lastOccurrence |
data e hora | A hora de término do impacto do alerta (a hora do último evento ou atividade incluída no alerta) |
resolvedReason |
cadeia de caracteres | O motivo fornecido pelo parceiro para abordar o status do alerta |
resolvedOn |
data e hora | A hora em que o alerta foi resolvido |
resolvedBy |
cadeia de caracteres | O usuário que resolveu o alerta |
firstObserved |
data e hora | A hora de início do impacto do alerta (a hora do primeiro evento ou atividade incluída no alerta) |
lastObserved |
data e hora | A hora de término do impacto do alerta (a hora do último evento ou atividade incluída no alerta) |
eventType |
cadeia de caracteres | O tipo de alerta: ServiceHealthSecurityAdvisory , UsageAnomalyDetection , MultiRegionVirtualMachineScaleSetDeploymentAnomaly , NetworkConnectionsToCryptoMiningPools , VirtualMachineDeploymentAnomaly , MultiRegionMachineLearningUsageAnomaly |
severity |
cadeia de caracteres | A gravidade do alerta (Valores: Baixo, Médio, Alto) |
confidenceLevel |
cadeia de caracteres | O nível de confiança do alerta (Valores: Baixo, Médio, Alto) |
displayName |
cadeia de caracteres | Um nome de exibição amigável para o alerta, dependendo do tipo de alerta |
description |
cadeia de caracteres | Uma descrição do alerta |
country |
cadeia de caracteres | O código de país do inquilino parceiro |
valueAddedResellerTenantId |
cadeia de caracteres | A ID do locatário do revendedor de valor adicionado associado ao locatário do parceiro e ao locatário do cliente |
valueAddedResellerFriendlyName |
cadeia de caracteres | Um nome amigável para o revendedor de valor adicionado |
subscriptionName |
cadeia de caracteres | O nome da assinatura do locatário do cliente |
affectedResources |
Matriz JSON | A lista de recursos afetados; os recursos afetados podem estar vazios para diferentes tipos de alerta, nesse caso, o parceiro precisa verificar o uso e o consumo no nível da assinatura |
additionalDetails |
Objeto Json | Um dicionário de outros detalhes de pares chave-valores necessários para identificar e gerenciar o alerta de segurança |
isTest |
cadeia de caracteres | Se um alerta for gerado para teste, ele será definido como verdadeiro ou então falso |
activityLogs |
cadeia de caracteres | Logs de atividades para alerta |