Coletar registros do Abnormal Security

Compatível com:

Este documento explica como ingerir registros da Abnormal Security no Google Security Operations. O analisador processa registros de e-mail nos formatos JSON e Syslog. Primeiro, ele tenta processar a entrada como JSON e, se não for possível, usa padrões Grok para extrair dados do formato Syslog. Os campos extraídos são mapeados para o Modelo de Dados Unificado (UDM), enriquecendo os dados com contexto de segurança relevante e padronizando o formato para análise posterior.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps.
  • Acesso privilegiado à Abnormal Security.

Receber o ID de cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão.

Configurar a Abnormal Security para enviar registros ao Google SecOps

  1. Faça login na interface da Web do Abnormal Security.
  2. Clique em Configurações > Integrações.
  3. Encontre o ícone do Google Chronicle e clique em Conectar.
  4. Insira seu ID de cliente do Google SecOps.
  5. Insira o endereço do endpoint da instância do Google SecOps.
  6. Faça upload do arquivo de autenticação de ingestão baixado anteriormente como uma conta de serviço do Google.
  7. Clique em Salvar > Confirmar.

Formatos de registro do Abnormal Security compatíveis

O analisador da Abnormal Security é compatível com registros nos formatos SYSLOG e JSON.

Registros de amostra da Abnormal Security compatíveis

  • JSON
{
  "threatId": "3fd4ed1a-9237-7e6f-d434-eacdcc41f47b",
  "messages": [
    {
      "abxMessageId": 3405268390454580698,
      "abxPortalUrl": "https://portal.abnormalsecurity.com/home/threat-center/remediation-history/3405268390454580698",
      "attachmentCount": 0,
      "attachmentNames": [],
      "attackStrategy": "Unknown Sender",
      "attackType": "Spam",
      "attackVector": "Link",
      "attackedParty": "VIP",
      "autoRemediated": true,
      "fromAddress": "masked.from@example.com",
      "fromName": "Masked User Name",
      "impersonatedParty": "None / Others",
      "internetMessageId": "<20eb9e7c1c3046fda97f6564c81ced64@530566577>",
      "isRead": false,
      "postRemediated": false,
      "receivedTime": "2023-08-28T14:09:31Z",
      "recipientAddress": "masked.recipient@example.com",
      "remediationStatus": "Auto-Remediated",
      "remediationTimestamp": "2023-08-28T14:09:35.618Z",
      "sentTime": "2023-08-28T14:08:44Z",
      "subject": "Banking Insights | A deep dive into the global M&A landscape",
      "threatId": "3fd4ed1a-9237-7e6f-d434-eacdcc41f47b",
      "toAddresses": [
        "masked.to@example.com"
      ],
      "ccEmails": [],
      "replyToEmails": [
        "masked.reply@example.com"
      ],
      "returnPath": "masked.returnPath@example.com",
      "senderDomain": "masked.sender.domain",
      "senderIpAddress": null,
      "summaryInsights": [
        "Suspicious Link",
        "Unusual Sender",
        "Abnormal Email Body HTML",
        "Invisible characters found in Email",
        "Unusual Sender Domain",
        "Suspicious Financial Request",
        "Unusual Reply To"
      ],
      "urlCount": 19,
      "urls": [
        "https://masked.comm.link/e/es?s=530566577&e=2595782&elqTrackId=MASKEDID&elq=MASKEDID&elqaid=119820&elqat=1",
        "https://www.masked.group/en/simplifying-the-brand?utm_source=Eloqua&utm_medium=email&utm_campaign=MASKED_CAMPAIGN&elqCampaignId=20995&elq=MASKEDID",
        "https://masked.group.link/e/er?utm_source=Eloqua&utm_medium=email&utm_campaign=MASKED_CAMPAIGN&elqCampaignId=20995&s=530566577&lid=192730&elqTrackId=MASKEDID&elq=MASKEDID&elqaid=119820&elqat=1"
        // ... (16 additional masked URLs omitted for brevity)
      ]
    }
  ]
}
  • SYSLOG + JSON
<14> {
  "threatId": "83da593b-3778-9d2f-da8c-e305dc1425e1",
  "messages": [
    {
      "abxMessageId": 8274341447487143770,
      "abxPortalUrl": "https://portal.abnormalsecurity.com/home/threat-center/remediation-history/8274341447487143770",
      "attackType": "Spam",
      "fromAddress": "masked.from.1@example.com",
      "fromName": "Masked User Name",
      "internetMessageId": "<PUZPR06MB45764FCED76739D0BC8A1B69E3DFA@masked.server.prod.outlook.com>",
      "recipientAddress": "masked.recipient.1@example.com",
      "remediationStatus": "Auto-Remediated",
      "subject": "Freightview, FreightPOP Users List",
      "toAddresses": [
        "masked.to.1@example.com"
      ],
      "returnPath": "masked.returnPath.1@example.com",
      "senderDomain": "outlook.com",
      "senderIpAddress": null,
      "urlCount": 0,
      "urls": []
    },
    {
      "abxMessageId": -4495524442058864563,
      "abxPortalUrl": "https://portal.abnormalsecurity.com/home/threat-center/remediation-history/-4495524442058864563",
      "attackType": "Spam",
      "fromAddress": "masked.user.2@outlook.com",
      "fromName": "Masked User Name",
      "internetMessageId": "<PUZPR06MB4576BF221988D780C8412731E3DFA@masked.server.prod.outlook.com>",
      "recipientAddress": "masked.recipient.2@example.com",
      "remediationStatus": "Auto-Remediated",
      "subject": "Freightview, FreightPOP Users List",
      "toAddresses": [
        "masked.to.2@example.com"
      ],
      "returnPath": "masked.user.2@outlook.com",
      "senderDomain": "outlook.com",
      "senderIpAddress": null,
      "urlCount": 0,
      "urls": []
    }
  ]
}
  • Esquema JSON (threat_log)
{
  "event": {
    "abx_message_id": -3325933065721657641,
    "abx_portal_url": "https://portal.abnormalsecurity.com/home/threat-center/remediation-history/-3325933065721657641",
    "threat_id": "1c3736ab-9e3a-883f-62b5-6fe36ac9672c",
    "subject": "[EXTERNAL] RE: Masked Name PUP094439581",
    "from_address": "masked.sender@maskeddomain.xyz",
    "from_name": "masked.sender@maskeddomain.xyz",
    "to_addresses": "masked.recipient@maskedcorp.com",
    "recipient_address": "masked.recipient@maskedcorp.com",
    "internet_message_id": "<MASKEDID@masked-insurance-group.com>",
    "attack_type": "Phishing: Credential",
    "return_path": "masked.sender@maskeddomain.xyz",
    "sender_ip_address": "",
    "urls": [
      "www.masked-insurance-group.com",
      "http://www.masked-insurance-group.com/"
    ],
    "sender_domain": "masked-insurance-group.com",
    "tenant": "Auto Club Group"
  },
  "sourcetype": "threat_log"
}
  • Esquema JSON (abuse_mailbox)
{
  "event": {
    "abx_metadata": {
      "event_type": "ABUSE_MAILBOX",
      "timestamp": "2024-04-27T15:25:53.374227319Z",
      "trace_id": "00bc67b5-eb26-41c2-9f95-021eb435fc49"
    },
    "abx_body": {
      "campaign_id": "28b9c99f-f4a4-3032-bd99-3b7bac532471",
      "subject": "[EXTERNAL] News you might have missed",
      "recipient_name": "Masked PII Name",
      "recipient_address": "masked.abuse.recipient@secops.com",
      "internet_message_id": "<AutoNewsDigest-MASKED@odspnotify>",
      "email_label_or_location": "inbox"
    }
  },
  "sourcetype": "abuse_mailbox"
}
  • Esquema JSON (audit_log)
{
  "event": {
    "abx_metadata": {
      "event_type": "AUDIT_LOG",
      "timestamp": "2024-04-01T17:50:55.194231924Z",
      "trace_id": "6f95188c-cba2-4e86-a3ae-3eaf22c869e4"
    },
    "abx_body": {
      "category": "login",
      "details": {
        "request_url": "/api-token-auth/"
      },
      "source_ip": "0.0.0.0",
      "status": "SUCCESS",
      "tenant_name": "masked_secops_tenant",
      "timestamp": "2024-04-01T17:50:54.632Z",
      "user": {
        "email": "masked.audit.user@secops.net"
      }
    }
  },
  "sourcetype": "audit_log"
}
  • Esquema JSON (maiúsculas e minúsculas)
{
  "event": {
    "abx_metadata": {
      "event_type": "CASE",
      "timestamp": "2024-08-08T12:42:45.104485389Z",
      "trace_id": "e4ad638f-439a-4c5f-839d-b650ecab9156"
    },
    "abx_body": {
      "schema_version": "1.0.0",
      "case_id": 11188520,
      "tenant": "masked name",
      "entity": {
        "entity_type": "USER_ACCOUNT",
        "identifier": "masked.case.user@secops.com"
      },
      "description": "Account Compromised",
      "event_timeline": [
        {
          "timestamp": "2024-09-07T20:17:25+00:00",
          "event_type": "SIGN_IN",
          "platform": "AZURE_AD",
          "insights": [
            {
              "signal": "Risky Browser",
              "description": "The browser associated with this sign-in, None, is considered risky and has been blocklisted by Abnormal or your organization."
            }
          ],
          "ip_address": "0.0.0.0 ",
          "operating_system": "ios 17.6",
          "isp": "verizon wireless",
          "location": {
            "city": "Huntley",
            "state": "Illinois",
            "country": "United States"
          }
        },
        {
          "timestamp": "2024-09-07T20:17:25+00:00",
          "event_type": "SIGN_IN",
          "platform": "AZURE_AD",
          "ip_address": "0.0.0.0 ",
          "operating_system": "ios 15.6"
        }
      ],
      "event_type": "CASE"
    }
  },
  "sourcetype": "case"
}

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
attachmentCount additional.fields.attachmentCount.value.number_value Mapeado diretamente
attachmentNames additional.fields.attachmentNames.value Concatenados em uma string separada por vírgulas
attackStrategy security_result.detection_fields.attackStrategy.value Mapeado diretamente
attackType security_result.threat_name Mapeado diretamente
attackVector security_result.detection_fields.attackVector.value Mapeado diretamente
attackedParty security_result.detection_fields.attackedParty.value Mapeado diretamente
autoRemediated Não mapeado para o objeto IDM
ccEmails network.email.cc Cada endereço de e-mail é extraído e adicionado à matriz.
fromAddress network.email.from O endereço de e-mail é extraído e mapeado diretamente
fromName principal.user.user_display_name Mapeado diretamente
impersonatedParty security_result.detection_fields.impersonatedParty.value Mapeado diretamente
internetMessageId additional.fields.internetMessageId.value.string_value Mapeado diretamente
isRead additional.fields.isRead.value.bool_value Mapeado diretamente
postRemediated additional.fields.postRemediated.value.bool_value Mapeado diretamente
receivedTime additional.fields.mailReceivedTime.value.string_value Mapeado diretamente
remediationStatus additional.fields.remediationStatus.value.string_value Mapeado diretamente
remediationTimestamp additional.fields.mailRemediationTimestamp.value.string_value Mapeado diretamente
replyToEmails network.email.reply_to O primeiro endereço de e-mail é extraído e mapeado diretamente.
returnPath additional.fields.returnPath.value.string_value Mapeado diretamente
senderDomain principal.administrative_domain Mapeado diretamente
senderIpAddress principal.ip, principal.asset.ip O endereço IP é extraído e mapeado para os dois campos
sentTime additional.fields.mailSentTime.value.string_value Mapeado diretamente
subject network.email.subject Mapeado diretamente
summaryInsights security_result.summary Concatenados em uma string separada por vírgulas
threatId security_result.threat_id Mapeado diretamente
toAddresses network.email.to Cada endereço de e-mail é extraído e adicionado à matriz.
urlCount additional.fields.urlCount.value.number_value Mapeado diretamente
URLs additional.fields.detectedUrls.value Concatenados em uma string separada por vírgulas
additional.fields.campaign_id.value.string_value Mapeado de event_data.abx_body.campaign_id, se presente
additional.fields.trace_id.value.string_value Mapeado de event_data.abx_metadata.trace_id, se presente
additional.fields.messageReportedTime.value.string_value Mapeado de event_data.abx_body.message_reported_time, se presente
metadata.event_type Definido como EMAIL_TRANSACTION se a matriz de mensagens estiver presente. Caso contrário, é determinado com base em outros campos e pode ser USER_LOGIN, STATUS_UPDATE ou GENERIC_EVENT.
metadata.product_name Sempre definido como ABNORMAL_SECURITY
metadata.vendor_name Sempre definido como ABNORMAL_SECURITY
metadata.product_event_type Mapeado de event_data.abx_metadata.event_type, se presente
extensions.auth.type Defina como AUTHTYPE_UNSPECIFIED se event_type for USER_LOGIN
security_result.category Definido como MAIL_SPAM e MAIL_PHISHING se a matriz de mensagens estiver presente. Caso contrário, definido como MAIL_PHISHING e/ou MAIL_SPAM com base em outros campos.
security_result.category_details Defina como ABUSE_MAILBOX se abx_metadata.event_type for ABUSE_MAILBOX. Caso contrário, defina como login se abx_body.category for login.
security_result.detection_fields.reported.value Mapeado de event_data.abx_body.reported, se presente
security_result.detection_fields.judgement.value Mapeado de event_data.abx_body.judgement, se presente
target.url Mapeado de event_data.abx_body.details.request_url, se presente
target.user.userid Mapeado de event_data.abx_body.user.email, se presente
target.user.email_addresses Mapeado de event_data.abx_body.user.email, se presente

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.