Abnormal Security-Logs erfassen
Parserversion:6.0
In diesem Dokument wird beschrieben, wie Sie Abnormal Security-Logs in Google Security Operations aufnehmen. Der Parser verarbeitet E-Mail-Logs sowohl im JSON- als auch im Syslog-Format. Zuerst wird versucht, die Eingabe als JSON zu verarbeiten. Wenn dies nicht erfolgreich ist, werden Grok-Muster verwendet, um Daten aus dem Syslog-Format zu extrahieren. Die extrahierten Felder werden dann dem Unified Data Model (UDM) zugeordnet, um die Daten mit relevantem Sicherheitskontext anzureichern und das Format für weitere Analysen zu standardisieren.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz.
- Privilegierter Zugriff auf Abnormal Security.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Profile auf.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organization Details (Organisationsdetails).
Google SecOps-Anmeldedaten abrufen
Wählen Sie eine der folgenden Methoden aus, um Abnormal Security bei Google SecOps zu authentifizieren:
- Neue Bereitstellungen: Verwenden Sie die Chronicle API (Option 1).
- Alte Bereitstellungen: Verwenden Sie die Datei für die Authentifizierung bei der Aufnahme (Option 2) weiterhin, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
Option 1: Dienstkonto für die Chronicle API erstellen (empfohlen)
- Melden Sie sich in der Google Cloud -Konsole an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
- Rufen Sie IAM und Verwaltung > Dienstkonten auf.
- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B.
abnormal-security-ingest. - Dienstkontobeschreibung: Geben Sie eine Beschreibung ein (z. B.
Abnormal Security log ingestion).
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B.
- Klicken Sie auf Erstellen und fortfahren.
- Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle-Bearbeiter aus.
- Klicken Sie auf Weiter und dann auf Fertig.
- Klicken Sie auf das von Ihnen erstellte Dienstkonto und rufen Sie den Tab Schlüssel auf.
- Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
- Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
- Speichern Sie die Schlüsseldatei sicher, damit Sie sie in der Abnormal Security-Konfiguration verwenden können.
Option 2: Authentifizierungsdatei für die Aufnahme herunterladen (Legacy)
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
- Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
- Speichern Sie die Datei sicher, damit Sie sie in der Abnormal Security-Konfiguration verwenden können.
Abnormal Security so konfigurieren, dass Logs an Google SecOps gesendet werden
- Melden Sie sich in der Web-UI von Abnormal Security an.
- Klicken Sie auf Einstellungen > Integrationen.
- Suchen Sie das Symbol für Google Chronicle und klicken Sie auf Verbinden.
- Geben Sie Ihre Google SecOps-Kundennummer ein.
- Geben Sie die Endpunktadresse Ihrer Google SecOps-Instanz ein. Die folgenden Endpunkte zeigen die moderne Ingestion API. Wenn Sie die Legacy-Methode verwenden, müssen Sie die Legacy-APIs verwenden.
- Kanada: https://northamerica-northeast2-chronicle.googleapis.com
- Dammam: https://me-central2-chronicle.googleapis.com
- Europa (Multiregion): https://eu-chronicle.googleapis.com
- Frankfurt: https://europe-west3-chronicle.googleapis.com
- London: https://europe-west2-chronicle.googleapis.com
- Mumbai: https://asia-south1-chronicle.googleapis.com
- Singapur: https://asia-southeast1-chronicle.googleapis.com
- Sydney: https://australia-southeast1-chronicle.googleapis.com
- Tel Aviv: https://me-west1-chronicle.googleapis.com
- Tokio: https://asia-northeast1-chronicle.googleapis.com
- Multiregional (USA): https://us-chronicle.googleapis.com
- Zürich: https://europe-west6-chronicle.googleapis.com
- Wenn Sie Option 1 verwenden, laden Sie die zuvor heruntergeladene JSON-Schlüsseldatei für das Dienstkonto als Google-Dienstkonto hoch.
- Wenn Sie Option 2 verwenden, laden Sie die zuvor heruntergeladene Ingestion Authentication File als Google-Dienstkonto hoch.
- Klicken Sie auf Speichern > Bestätigen.
Unterstützte Abnormal Security-Logformate
Der Abnormal Security-Parser unterstützt Logs im SYSLOG- und JSON-Format.
Unterstützte Abnormal Security-Beispielprotokolle
- 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": []
}
]
}
- JSON-Schema (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"
}
- JSON-Schema (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"
}
- JSON-Schema (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"
}
- JSON-Schema (Fall)
{
"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"
}
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| attachmentCount | additional.fields.attachmentCount.value.number_value | Direkt zugeordnet |
| attachmentNames | additional.fields.attachmentNames.value | Als kommagetrennter String verkettet |
| attackStrategy | security_result.detection_fields.attackStrategy.value | Direkt zugeordnet |
| attackType | security_result.threat_name | Direkt zugeordnet |
| attackVector | security_result.detection_fields.attackVector.value | Direkt zugeordnet |
| attackedParty | security_result.detection_fields.attackedParty.value | Direkt zugeordnet |
| autoRemediated | Nicht dem IDM-Objekt zugeordnet | |
| ccEmails | network.email.cc | Jede E‑Mail-Adresse wird extrahiert und dem Array hinzugefügt. |
| fromAddress | network.email.from | E‑Mail-Adresse wird extrahiert und direkt zugeordnet |
| fromName | principal.user.user_display_name | Direkt zugeordnet |
| impersonatedParty | security_result.detection_fields.impersonatedParty.value | Direkt zugeordnet |
| internetMessageId | additional.fields.internetMessageId.value.string_value | Direkt zugeordnet |
| isRead | additional.fields.isRead.value.bool_value | Direkt zugeordnet |
| postRemediated | additional.fields.postRemediated.value.bool_value | Direkt zugeordnet |
| receivedTime | additional.fields.mailReceivedTime.value.string_value | Direkt zugeordnet |
| remediationStatus | additional.fields.remediationStatus.value.string_value | Direkt zugeordnet |
| remediationTimestamp | additional.fields.mailRemediationTimestamp.value.string_value | Direkt zugeordnet |
| replyToEmails | network.email.reply_to | Die erste E-Mail-Adresse wird extrahiert und direkt zugeordnet. |
| returnPath | additional.fields.returnPath.value.string_value | Direkt zugeordnet |
| senderDomain | principal.administrative_domain | Direkt zugeordnet |
| senderIpAddress | principal.ip, principal.asset.ip | Die IP-Adresse wird extrahiert und beiden Feldern zugeordnet. |
| sentTime | additional.fields.mailSentTime.value.string_value | Direkt zugeordnet |
| subject | network.email.subject | Direkt zugeordnet |
| summaryInsights | security_result.summary | Als kommagetrennter String verkettet |
| threatId | security_result.threat_id | Direkt zugeordnet |
| toAddresses | network.email.to | Jede E‑Mail-Adresse wird extrahiert und dem Array hinzugefügt. |
| urlCount | additional.fields.urlCount.value.number_value | Direkt zugeordnet |
| URLs | additional.fields.detectedUrls.value | Verkettet zu einem kommagetrennten String |
| additional.fields.campaign_id.value.string_value | Wird aus „event_data.abx_body.campaign_id“ zugeordnet, falls vorhanden | |
| additional.fields.trace_id.value.string_value | Wird aus „event_data.abx_metadata.trace_id“ zugeordnet, falls vorhanden | |
| additional.fields.messageReportedTime.value.string_value | Wird aus „event_data.abx_body.message_reported_time“ abgeleitet, sofern vorhanden. | |
| metadata.event_type | Auf EMAIL_TRANSACTION gesetzt, wenn das Nachrichtenarray vorhanden ist. Andernfalls wird der Wert anhand anderer Felder ermittelt und kann USER_LOGIN, STATUS_UPDATE oder GENERIC_EVENT sein. |
|
| metadata.product_name | Immer auf ABNORMAL_SECURITY gesetzt. |
|
| metadata.vendor_name | Immer auf ABNORMAL_SECURITY gesetzt. |
|
| metadata.product_event_type | Wird aus „event_data.abx_metadata.event_type“ zugeordnet, falls vorhanden | |
| extensions.auth.type | Wird auf AUTHTYPE_UNSPECIFIED gesetzt, wenn „event_type“ gleich USER_LOGIN ist. |
|
| security_result.category | Auf MAIL_SPAM und MAIL_PHISHING festgelegt, wenn das Nachrichten-Array vorhanden ist. Andernfalls wird es basierend auf anderen Feldern auf MAIL_PHISHING und/oder MAIL_SPAM festgelegt. |
|
| security_result.category_details | Wird auf ABUSE_MAILBOX gesetzt, wenn „abx_metadata.event_type“ gleich ABUSE_MAILBOX ist, andernfalls auf login, wenn „abx_body.category“ gleich login ist |
|
| security_result.detection_fields.reported.value | Wird aus „event_data.abx_body.reported“ zugeordnet, falls vorhanden | |
| security_result.detection_fields.judgement.value | Wird aus „event_data.abx_body.judgement“ zugeordnet, falls vorhanden | |
| target.url | Wird aus „event_data.abx_body.details.request_url“ zugeordnet, falls vorhanden. | |
| target.user.userid | Wird aus „event_data.abx_body.user.email“ zugeordnet, falls vorhanden | |
| target.user.email_addresses | Wird aus event_data.abx_body.user.email zugeordnet, sofern vorhanden | |
event.abx_body.abnormal_message_id |
event.idm.read_only_udm.metadata.product_log_id |
Aus Änderungsprotokoll zugeordnet |
event.abx_body.email_label_or_location |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
event.abx_body.not_analyzed |
event.idm.read_only_udm.security_result.detection_fields |
Aus Änderungsprotokoll zugeordnet |
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 |
Aus Änderungsprotokoll zugeordnet |
event_data.abx_body.severity |
security_result.severity |
Aus Änderungsprotokoll zugeordnet |
event_data.abx_body.trigger_event" and "event_data.abx_body.entity.entity_type |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
event_data.abx_body.entity.identifier |
principal.user.email_addresses |
Aus Änderungsprotokoll zugeordnet |
event_data.abx_body.case_id |
metadata.product_log_id |
Aus Änderungsprotokoll zugeordnet |
sourcetype", "event.folder_locations |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
event.abx_message_id |
metadata.product_log_id |
Aus Änderungsprotokoll zugeordnet |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten