Raccogli i log di Abnormal Security

Versione parser: 6.0

Supportata in:

Questo documento spiega come importare i log di Abnormal Security in Google Security Operations. Il parser gestisce i log email sia in formato JSON che Syslog. Innanzitutto tenta di elaborare l'input come JSON e, se non riesce, utilizza i pattern Grok per estrarre i dati dal formato Syslog. I campi estratti vengono poi mappati al modello UDM (Unified Data Model), arricchendo i dati con un contesto di sicurezza pertinente e standardizzando il formato per ulteriori analisi.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps.
  • Accesso con privilegi ad Abnormal Security.

Ottieni l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli organizzazione.

Ottenere le credenziali Google SecOps

Per autenticare Abnormal Security in Google SecOps, scegli uno dei seguenti metodi:

  • Nuovi deployment: utilizza l'API Chronicle (opzione 1).
  • Deployment legacy: continua a utilizzare il file di autenticazione dell'acquisizione (Opzione 2) fino alla dismissione dell'API Ingestion il 20 luglio 2027.
  1. Accedi alla consoleGoogle Cloud e seleziona il progetto Google Cloud collegato alla tua istanza Google SecOps.
  2. Vai a IAM e amministrazione > Service account.
  3. Fai clic su Crea service account.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome service account: inserisci un nome per l'account (ad esempio abnormal-security-ingest).
    • Descrizione del service account: inserisci una descrizione (ad esempio, Abnormal Security log ingestion).
  5. Fai clic su Crea e continua.
  6. Nella sezione Concedi a questo account di servizio l'accesso al progetto, fai clic su Seleziona un ruolo e seleziona Editor Chronicle.
  7. Fai clic su Continua, quindi su Fine.
  8. Fai clic sul account di servizio che hai creato, quindi vai alla scheda Chiavi.
  9. Fai clic su Aggiungi chiave > Crea nuova chiave.
  10. Seleziona JSON e fai clic su Crea. Il file della chiave viene scaricato sul computer.
  11. Salva il file della chiave in modo sicuro per utilizzarlo nella configurazione di Abnormal Security.

Opzione 2: scarica il file di autenticazione dell'acquisizione (legacy)

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'acquisizione.
  4. Salva il file in modo sicuro per utilizzarlo nella configurazione di Abnormal Security.

Configura Abnormal Security per inviare i log a Google SecOps

  1. Accedi all'interfaccia utente web di Abnormal Security.
  2. Fai clic su Settings (Impostazioni) > Integrations (Integrazioni).
  3. Trova l'icona Google Chronicle e fai clic su Connetti.
  4. Inserisci il tuo ID cliente Google SecOps.
  5. Inserisci l'indirizzo dell'endpoint dell'istanza Google SecOps. I seguenti endpoint mostrano l'API Ingestion moderna. Se utilizzi il metodo legacy, devi utilizzare le API legacy.
  6. Se utilizzi l'Opzione 1, carica il file della chiave JSON dell'account di servizio scaricato in precedenza come account di servizio Google.
  7. Se utilizzi l'Opzione 2, carica il file di autenticazione dell'acquisizione scaricato in precedenza come service account Google.
  8. Fai clic su Salva > Conferma.

Formati dei log di Abnormal Security supportati

Il parser Abnormal Security supporta i log nei formati SYSLOG e JSON.

Log di esempio di Abnormal Security supportati

  • 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": []
    }
  ]
}
  • Schema 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"
}
  • Schema 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"
}
  • Schema 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"
}
  • Schema JSON (case)
{
  "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"
}

Tabella di mappatura UDM

Campo log mappatura UDM Logica
attachmentCount additional.fields.attachmentCount.value.number_value Mappatura diretta
attachmentNames additional.fields.attachmentNames.value Concatenati in una stringa separata da virgole
attackStrategy security_result.detection_fields.attackStrategy.value Mappatura diretta
attackType security_result.threat_name Mappatura diretta
attackVector security_result.detection_fields.attackVector.value Mappatura diretta
attackedParty security_result.detection_fields.attackedParty.value Mappato direttamente
autoRemediated Non mappato all'oggetto IDM
ccEmails network.email.cc Ogni indirizzo email viene estratto e aggiunto all'array
fromAddress network.email.from L'indirizzo email viene estratto e mappato direttamente
fromName principal.user.user_display_name Mappatura diretta
impersonatedParty security_result.detection_fields.impersonatedParty.value Mappatura diretta
internetMessageId additional.fields.internetMessageId.value.string_value Mappatura diretta
isRead additional.fields.isRead.value.bool_value Mappatura diretta
postRemediated additional.fields.postRemediated.value.bool_value Mappato direttamente
receivedTime additional.fields.mailReceivedTime.value.string_value Mappatura diretta
remediationStatus additional.fields.remediationStatus.value.string_value Mappatura diretta
remediationTimestamp additional.fields.mailRemediationTimestamp.value.string_value Mappatura diretta
replyToEmails network.email.reply_to Il primo indirizzo email viene estratto e mappato direttamente
returnPath additional.fields.returnPath.value.string_value Mappatura diretta
senderDomain principal.administrative_domain Mappato direttamente
senderIpAddress principal.ip, principal.asset.ip L'indirizzo IP viene estratto e mappato a entrambi i campi
sentTime additional.fields.mailSentTime.value.string_value Mappato direttamente
subject network.email.subject Mappato direttamente
summaryInsights security_result.summary Concatenati in una stringa separata da virgole
threatId security_result.threat_id Mappatura diretta
toAddresses network.email.to Ogni indirizzo email viene estratto e aggiunto all'array
urlCount additional.fields.urlCount.value.number_value Mappatura diretta
URL additional.fields.detectedUrls.value Concatenati in una stringa separata da virgole
additional.fields.campaign_id.value.string_value Mappato da event_data.abx_body.campaign_id, se presente
additional.fields.trace_id.value.string_value Mappato da event_data.abx_metadata.trace_id, se presente
additional.fields.messageReportedTime.value.string_value Mappato da event_data.abx_body.message_reported_time, se presente
metadata.event_type Impostato su EMAIL_TRANSACTION se è presente l'array di messaggi, altrimenti determinato in base ad altri campi e può essere USER_LOGIN, STATUS_UPDATE o GENERIC_EVENT
metadata.product_name Sempre impostato su ABNORMAL_SECURITY
metadata.vendor_name Sempre impostato su ABNORMAL_SECURITY
metadata.product_event_type Mappato da event_data.abx_metadata.event_type, se presente
extensions.auth.type Imposta su AUTHTYPE_UNSPECIFIED se event_type è USER_LOGIN
security_result.category Impostato su MAIL_SPAM e MAIL_PHISHING se è presente l'array di messaggi, altrimenti impostato su MAIL_PHISHING e/o MAIL_SPAM in base ad altri campi
security_result.category_details Imposta su ABUSE_MAILBOX se abx_metadata.event_type è ABUSE_MAILBOX, altrimenti imposta su login se abx_body.category è login
security_result.detection_fields.reported.value Mappato da event_data.abx_body.reported se presente
security_result.detection_fields.judgement.value Mappato da event_data.abx_body.judgement, se presente
target.url Mappato da event_data.abx_body.details.request_url, se presente
target.user.userid Mappato da event_data.abx_body.user.email, se presente
target.user.email_addresses Mappato da event_data.abx_body.user.email, se presente
event.abx_body.abnormal_message_id event.idm.read_only_udm.metadata.product_log_id Mappato dal log delle modifiche
event.abx_body.email_label_or_location event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
event.abx_body.not_analyzed event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
event_data.message_sources", "event_data.sender_auth_results.spf", "event_data.sender_auth_results.dkim", "event_data.sender_auth_results.dmarc", "event_data.tenant", and "event_data.attack_score additional.fields Mappato dal log delle modifiche
event_data.abx_body.severity security_result.severity Mappato dal log delle modifiche
event_data.abx_body.trigger_event" and "event_data.abx_body.entity.entity_type additional.fields Mappato dal log delle modifiche
event_data.abx_body.entity.identifier principal.user.email_addresses Mappato dal log delle modifiche
event_data.abx_body.case_id metadata.product_log_id Mappato dal log delle modifiche
sourcetype", "event.folder_locations additional.fields Mappato dal log delle modifiche
event.abx_message_id metadata.product_log_id Mappato dal log delle modifiche

Log delle modifiche

Visualizza il log delle modifiche per questo parser

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.