Collecter les journaux Abnormal Security

Version de l'analyseur : 6.0

Compatible avec :

Ce document explique comment ingérer des journaux Abnormal Security dans Google Security Operations. L'analyseur gère les journaux de messagerie aux formats JSON et Syslog. Il tente d'abord de traiter l'entrée au format JSON. En cas d'échec, il utilise des modèles Grok pour extraire les données du format Syslog. Les champs extraits sont ensuite mappés au modèle de données unifié (UDM), ce qui enrichit les données avec un contexte de sécurité pertinent et normalise le format pour une analyse plus approfondie.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps.
  • Accès privilégié à Abnormal Security.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM > Profil.
  3. Copiez et enregistrez le numéro client dans la section Informations sur l'organisation.

Obtenir les identifiants Google SecOps

Pour authentifier Abnormal Security auprès de Google SecOps, choisissez l'une des méthodes suivantes :

  • Nouveaux déploiements : utilisez l'API Chronicle (option 1).
  • Anciens déploiements : continuez à utiliser le fichier d'authentification d'ingestion (option 2) jusqu'à l'arrêt de l'API Ingestion le 20 juillet 2027.
  1. Connectez-vous à la consoleGoogle Cloud et sélectionnez le projet Google Cloud associé à votre instance Google SecOps.
  2. Accédez à IAM et administration > Comptes de service.
  3. Cliquez sur Créer un compte de service.
  4. Fournissez les informations de configuration suivantes :
    • Nom du compte de service : saisissez un nom pour le compte (par exemple, abnormal-security-ingest).
    • Description du compte de service : saisissez une description (par exemple, Abnormal Security log ingestion).
  5. Cliquez sur Créer et continuer.
  6. Dans la section Autoriser ce compte de service à accéder au projet, cliquez sur Sélectionner un rôle, puis sélectionnez Éditeur Chronicle.
  7. Cliquez sur Continue (Continuer), puis sur Done (OK).
  8. Cliquez sur le compte de service que vous avez créé, puis accédez à l'onglet Clés.
  9. Cliquez sur Ajouter une clé > Créer une clé.
  10. Sélectionnez JSON, puis cliquez sur Créer. Le fichier de clé est téléchargé sur votre ordinateur.
  11. Enregistrez le fichier de clé de manière sécurisée pour l'utiliser dans la configuration d'Abnormal Security.

Option 2 : Télécharger le fichier d'authentification d'ingestion (ancien)

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion.
  4. Enregistrez le fichier de manière sécurisée pour l'utiliser dans la configuration d'Abnormal Security.

Configurer Abnormal Security pour envoyer des journaux à Google SecOps

  1. Connectez-vous à l'interface utilisateur Web d'Abnormal Security.
  2. Cliquez sur Paramètres > Intégrations.
  3. Recherchez l'icône Google Chronicle, puis cliquez sur Connect (Associer).
  4. Saisissez votre ID client Google SecOps.
  5. Saisissez l'adresse du point de terminaison de votre instance Google SecOps. Les points de terminaison suivants affichent l'API Ingestion moderne. Vous devez utiliser les anciennes API si vous utilisez l'ancienne méthode.
  6. Si vous utilisez l'option 1, importez le fichier de clé JSON du compte de service téléchargé précédemment en tant que compte de service Google.
  7. Si vous utilisez l'option 2, importez le fichier d'authentification d'ingestion téléchargé précédemment en tant que compte de service Google.
  8. Cliquez sur Enregistrer> Confirmer.

Formats de journaux Abnormal Security compatibles

L'analyseur Abnormal Security accepte les journaux aux formats SYSLOG et JSON.

Exemples de journaux Abnormal Security acceptés

  • 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": []
    }
  ]
}
  • Schéma 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"
}
  • Schéma 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"
}
  • Schéma 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"
}
  • Schéma JSON (cas)
{
  "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"
}

Table de mappage UDM

Champ du journal Mappage UDM Logique
attachmentCount additional.fields.attachmentCount.value.number_value Mappage direct
attachmentNames additional.fields.attachmentNames.value Concaténées dans une chaîne séparée par une virgule
attackStrategy security_result.detection_fields.attackStrategy.value Mappage direct
attackType security_result.threat_name Mappé directement
attackVector security_result.detection_fields.attackVector.value Mappage direct
attackedParty security_result.detection_fields.attackedParty.value Mappé directement
autoRemediated Non mappé à l'objet IDM
ccEmails network.email.cc Chaque adresse e-mail est extraite et ajoutée au tableau.
fromAddress network.email.from L'adresse e-mail est extraite et mappée directement.
fromName principal.user.user_display_name Mappage direct
impersonatedParty security_result.detection_fields.impersonatedParty.value Mappage direct
internetMessageId additional.fields.internetMessageId.value.string_value Mappage direct
isRead additional.fields.isRead.value.bool_value Mappé directement
postRemediated additional.fields.postRemediated.value.bool_value Mappage direct
receivedTime additional.fields.mailReceivedTime.value.string_value Mappage direct
remediationStatus additional.fields.remediationStatus.value.string_value Mappage direct
remediationTimestamp additional.fields.mailRemediationTimestamp.value.string_value Mappage direct
replyToEmails network.email.reply_to La première adresse e-mail est extraite et mappée directement.
returnPath additional.fields.returnPath.value.string_value Mappage direct
senderDomain principal.administrative_domain Mappé directement
senderIpAddress principal.ip, principal.asset.ip L'adresse IP est extraite et mappée aux deux champs.
sentTime additional.fields.mailSentTime.value.string_value Mappé directement
subject network.email.subject Mappage direct
summaryInsights security_result.summary Concaténées dans une chaîne séparée par une virgule
threatId security_result.threat_id Mappé directement
toAddresses network.email.to Chaque adresse e-mail est extraite et ajoutée au tableau.
urlCount additional.fields.urlCount.value.number_value Mappage direct
URL additional.fields.detectedUrls.value Concaténées dans une chaîne séparée par une virgule
additional.fields.campaign_id.value.string_value Mappé à partir de event_data.abx_body.campaign_id, le cas échéant
additional.fields.trace_id.value.string_value Mappé à partir de event_data.abx_metadata.trace_id, s'il est présent
additional.fields.messageReportedTime.value.string_value Mappé à partir de event_data.abx_body.message_reported_time, le cas échéant
metadata.event_type Défini sur EMAIL_TRANSACTION si le tableau de messages est présent. Sinon, il est déterminé en fonction d'autres champs et peut être USER_LOGIN, STATUS_UPDATE ou GENERIC_EVENT.
metadata.product_name Toujours défini sur ABNORMAL_SECURITY
metadata.vendor_name Toujours défini sur ABNORMAL_SECURITY
metadata.product_event_type Mappé à partir de event_data.abx_metadata.event_type, s'il est présent
extensions.auth.type Définissez cet attribut sur AUTHTYPE_UNSPECIFIED si event_type est USER_LOGIN.
security_result.category Définissez sur MAIL_SPAM et MAIL_PHISHING si le tableau de messages est présent, sinon définissez sur MAIL_PHISHING et/ou MAIL_SPAM en fonction d'autres champs.
security_result.category_details Définie sur ABUSE_MAILBOX si abx_metadata.event_type est ABUSE_MAILBOX, sinon définie sur login si abx_body.category est login
security_result.detection_fields.reported.value Mappé à partir de event_data.abx_body.reported, si présent
security_result.detection_fields.judgement.value Mappé à partir de event_data.abx_body.judgement, le cas échéant
target.url Mappé à partir de event_data.abx_body.details.request_url, le cas échéant
target.user.userid Mappé à partir de event_data.abx_body.user.email, le cas échéant
target.user.email_addresses Mappé à partir de event_data.abx_body.user.email, le cas échéant
event.abx_body.abnormal_message_id event.idm.read_only_udm.metadata.product_log_id Mappé à partir du journal des modifications
event.abx_body.email_label_or_location event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
event.abx_body.not_analyzed event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
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 Mappé à partir du journal des modifications
event_data.abx_body.severity security_result.severity Mappé à partir du journal des modifications
event_data.abx_body.trigger_event" and "event_data.abx_body.entity.entity_type additional.fields Mappé à partir du journal des modifications
event_data.abx_body.entity.identifier principal.user.email_addresses Mappé à partir du journal des modifications
event_data.abx_body.case_id metadata.product_log_id Mappé à partir du journal des modifications
sourcetype", "event.folder_locations additional.fields Mappé à partir du journal des modifications
event.abx_message_id metadata.product_log_id Mappé à partir du journal des modifications

Journal des modifications

Afficher le journal des modifications de cet analyseur

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.