Recopila registros de Abnormal Security

Versión del analizador: 6.0

Compatible con:

En este documento, se explica cómo transferir registros de Abnormal Security a Google Security Operations. El analizador controla los registros de correo electrónico en los formatos JSON y Syslog. Primero, intenta procesar la entrada como JSON y, si no lo logra, usa patrones de Grok para extraer datos del formato Syslog. Luego, los campos extraídos se asignan al modelo de datos unificado (UDM), lo que enriquece los datos con contexto de seguridad pertinente y estandariza el formato para su posterior análisis.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Acceso con privilegios a Abnormal Security

Obtén el ID de cliente de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Obtén credenciales de Google SecOps

Para autenticar Abnormal Security en Google SecOps, elige uno de los siguientes métodos:

  • Implementaciones nuevas: Usa la API de Chronicle (opción 1).
  • Implementaciones heredadas: Sigue usando el archivo de autenticación de transferencia (opción 2) hasta que se descontinúe la API de Ingestion el 20 de julio de 2027.
  1. Accede a la consola deGoogle Cloud y selecciona el proyecto de Google Cloud que está vinculado a tu instancia de Google SecOps.
  2. Ve a IAM y administración > Cuentas de servicio.
  3. Haga clic en Crear cuenta de servicio.
  4. Proporciona los siguientes detalles de configuración:
    • Nombre de la cuenta de servicio: Ingresa un nombre para la cuenta (por ejemplo, abnormal-security-ingest).
    • Descripción de la cuenta de servicio: Ingresa una descripción (por ejemplo, Abnormal Security log ingestion).
  5. Haz clic en Crear y continuar.
  6. En la sección Otorga a esta cuenta de servicio acceso al proyecto, haz clic en Seleccionar un rol y, luego, en Editor de Chronicle.
  7. Haz clic en Continuar y, luego, en Listo.
  8. Haz clic en la cuenta de servicio que creaste y, luego, ve a la pestaña Claves.
  9. Haz clic en Agregar clave > Crear clave nueva.
  10. Selecciona JSON y haz clic en Crear. El archivo de claves se descargará en tu computadora.
  11. Guarda el archivo de claves de forma segura para usarlo en la configuración de Abnormal Security.

Opción 2: Descarga el archivo de autenticación de transferencia (heredado)

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recopilación.
  3. Descarga el archivo de autenticación de transferencia.
  4. Guarda el archivo de forma segura para usarlo en la configuración de Abnormal Security.

Configura Abnormal Security para enviar registros a Google SecOps

  1. Accede a la IU web de Abnormal Security.
  2. Haz clic en Configuración > Integraciones.
  3. Busca el ícono de Google Chronicle y haz clic en Conectar.
  4. Ingresa tu ID de cliente de Google SecOps.
  5. Ingresa la dirección del extremo de tu instancia de Google SecOps. En los siguientes extremos, se muestra la API de Ingestion moderna. Si usas el método heredado, debes usar las APIs heredadas.
  6. Si usas la opción 1, sube el archivo de claves JSON de la cuenta de servicio que descargaste antes como la cuenta de servicio de Google.
  7. Si usas la opción 2, sube el archivo de autenticación de transferencia que descargaste antes como la cuenta de servicio de Google.
  8. Haz clic en Guardar > Confirmar.

Formatos de registro de Abnormal Security admitidos

El analizador de Abnormal Security admite registros en formatos SYSLOG y JSON.

Registros de muestra de Abnormal Security compatibles

  • 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 de 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 de 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 de 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 (caso)
{
  "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"
}

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
attachmentCount additional.fields.attachmentCount.value.number_value Asignación directa
attachmentNames additional.fields.attachmentNames.value Se concatenan en una cadena separada por comas.
attackStrategy security_result.detection_fields.attackStrategy.value Asignación directa
attackType security_result.threat_name Asignación directa
attackVector security_result.detection_fields.attackVector.value Asignación directa
attackedParty security_result.detection_fields.attackedParty.value Asignación directa
autoRemediated No asignada al objeto de IDM
ccEmails network.email.cc Cada dirección de correo electrónico se extrae y se agrega al array
fromAddress network.email.from La dirección de correo electrónico se extrae y se asigna directamente
fromName principal.user.user_display_name Asignación directa
impersonatedParty security_result.detection_fields.impersonatedParty.value Se asignó directamente
internetMessageId additional.fields.internetMessageId.value.string_value Se asignó directamente
isRead additional.fields.isRead.value.bool_value Se asignó directamente
postRemediated additional.fields.postRemediated.value.bool_value Se asignó directamente
receivedTime additional.fields.mailReceivedTime.value.string_value Se asignó directamente
remediationStatus additional.fields.remediationStatus.value.string_value Se asignó directamente
remediationTimestamp additional.fields.mailRemediationTimestamp.value.string_value Se asignó directamente
replyToEmails network.email.reply_to La primera dirección de correo electrónico se extrae y se asigna directamente.
returnPath additional.fields.returnPath.value.string_value Asignación directa
senderDomain principal.administrative_domain Se asignó directamente
senderIpAddress principal.ip, principal.asset.ip La dirección IP se extrae y se asigna a ambos campos
sentTime additional.fields.mailSentTime.value.string_value Asignación directa
asunto network.email.subject Se asignó directamente
summaryInsights security_result.summary Se concatenan en una cadena separada por comas.
threatId security_result.threat_id Se asignó directamente
toAddresses network.email.to Cada dirección de correo electrónico se extrae y se agrega al array.
urlCount additional.fields.urlCount.value.number_value Se asignó directamente
URL additional.fields.detectedUrls.value Se concatenan en una cadena separada por comas.
additional.fields.campaign_id.value.string_value Se asigna desde event_data.abx_body.campaign_id si está presente.
additional.fields.trace_id.value.string_value Se asigna desde event_data.abx_metadata.trace_id si está presente
additional.fields.messageReportedTime.value.string_value Se asigna desde event_data.abx_body.message_reported_time si está presente
metadata.event_type Se establece en EMAIL_TRANSACTION si el array de mensajes está presente; de lo contrario, se determina en función de otros campos y puede ser USER_LOGIN, STATUS_UPDATE o GENERIC_EVENT.
metadata.product_name Siempre se establece en ABNORMAL_SECURITY.
metadata.vendor_name Siempre se establece en ABNORMAL_SECURITY.
metadata.product_event_type Se asigna desde event_data.abx_metadata.event_type si está presente
extensions.auth.type Se establece en AUTHTYPE_UNSPECIFIED si event_type es USER_LOGIN
security_result.category Se establece en MAIL_SPAM y MAIL_PHISHING si el array de mensajes está presente; de lo contrario, se establece en MAIL_PHISHING o MAIL_SPAM según otros campos
security_result.category_details Se establece en ABUSE_MAILBOX si abx_metadata.event_type es ABUSE_MAILBOX; de lo contrario, se establece en login si abx_body.category es login.
security_result.detection_fields.reported.value Se asigna desde event_data.abx_body.reported si está presente.
security_result.detection_fields.judgement.value Se asigna desde event_data.abx_body.judgement si está presente
target.url Se asigna desde event_data.abx_body.details.request_url si está presente.
target.user.userid Se asigna desde event_data.abx_body.user.email si está presente
target.user.email_addresses Se asigna desde event_data.abx_body.user.email si está presente.
event.abx_body.abnormal_message_id event.idm.read_only_udm.metadata.product_log_id Se asignó desde el registro de cambios
event.abx_body.email_label_or_location event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
event.abx_body.not_analyzed event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
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 Se asignó desde el registro de cambios
event_data.abx_body.severity security_result.severity Se asignó desde el registro de cambios
event_data.abx_body.trigger_event" and "event_data.abx_body.entity.entity_type additional.fields Se asignó desde el registro de cambios
event_data.abx_body.entity.identifier principal.user.email_addresses Se asignó desde el registro de cambios
event_data.abx_body.case_id metadata.product_log_id Se asignó desde el registro de cambios
sourcetype", "event.folder_locations additional.fields Se asignó desde el registro de cambios
event.abx_message_id metadata.product_log_id Asignado desde el registro de cambios

Registro de cambios

Consulta el registro de cambios de este analizador

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.