Recopila registros de Abnormal Security
Versión del analizador: 6.0
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 formatos JSON y Syslog. Primero, intenta procesar la entrada como JSON y, si no tiene éxito, 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 relevante y estandariza el formato para su análisis posterior.
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
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia.
Configura Abnormal Security para enviar registros a Google SecOps
- Accede a la IU web de Abnormal Security.
- Haz clic en Configuración > Integraciones.
- Busca el ícono de Google Chronicle y haz clic en Conectar.
- Ingresa tu ID de cliente de Google SecOps.
- Ingresa la dirección del extremo de la instancia de Google SecOps.
- Canadá: https://northamerica-northeast2-malachiteingestion-pa.googleapis.com
- Dammam: https://me-central2-malachiteingestion-pa.googleapis.com
- Europa (varias regiones): https://europe-malachiteingestion-pa.googleapis.com
- Fráncfort: https://europe-west3-malachiteingestion-pa.googleapis.com
- Londres: https://europe-west2-malachiteingestion-pa.googleapis.com
- Bombay: https://asia-south1-malachiteingestion-pa.googleapis.com
- Singapur: https://asia-southeast1-malachiteingestion-pa.googleapis.com
- Sídney: https://australia-southeast1-malachiteingestion-pa.googleapis.com
- Tel Aviv: https://me-west1-malachiteingestion-pa.googleapis.com
- Tokio: https://asia-northeast1-malachiteingestion-pa.googleapis.com
- Estados Unidos (varias regiones): https://malachiteingestion-pa.googleapis.com
- Zúrich: https://europe-west6-malachiteingestion-pa.googleapis.com
- Sube el archivo de autenticación de transferencia que descargaste anteriormente como cuenta de servicio de Google.
- Haz clic en Guardar > Confirmar.
Formatos de registro de Abnormal Security compatibles
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 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 (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"
}
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
| attachmentCount | additional.fields.attachmentCount.value.number_value | Se asignó directamente |
| attachmentNames | additional.fields.attachmentNames.value | Se concatenó en una cadena separada por comas |
| attackStrategy | security_result.detection_fields.attackStrategy.value | Se asignó directamente |
| attackType | security_result.threat_name | Se asignó directamente |
| attackVector | security_result.detection_fields.attackVector.value | Se asignó directamente |
| attackedParty | security_result.detection_fields.attackedParty.value | Se asignó directamente |
| autoRemediated | No se asignó al objeto IDM | |
| ccEmails | network.email.cc | Se extrae cada dirección de correo electrónico y se agrega al array |
| fromAddress | network.email.from | Se extrae la dirección de correo electrónico y se asigna directamente |
| fromName | principal.user.user_display_name | Se asignó directamente |
| 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 | Se extrae la primera dirección de correo electrónico y se asigna directamente |
| returnPath | additional.fields.returnPath.value.string_value | Se asignó directamente |
| senderDomain | principal.administrative_domain | Se asignó directamente |
| senderIpAddress | principal.ip, principal.asset.ip | Se extrae la dirección IP y se asigna a ambos campos |
| sentTime | additional.fields.mailSentTime.value.string_value | Se asignó directamente |
| subject | network.email.subject | Se asignó directamente |
| summaryInsights | security_result.summary | Se concatenó en una cadena separada por comas |
| threatId | security_result.threat_id | Se asignó directamente |
| toAddresses | network.email.to | Se extrae cada dirección de correo electrónico y se agrega al array |
| urlCount | additional.fields.urlCount.value.number_value | Se asignó directamente |
| URLs | additional.fields.detectedUrls.value | Se concatenó en una cadena separada por comas |
| additional.fields.campaign_id.value.string_value | Se asignó desde event_data.abx_body.campaign_id si está presente | |
| additional.fields.trace_id.value.string_value | Se asignó desde event_data.abx_metadata.trace_id si está presente | |
| additional.fields.messageReportedTime.value.string_value | Se asignó 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 asignó 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 en función de 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 asignó desde event_data.abx_body.reported si está presente | |
| security_result.detection_fields.judgement.value | Se asignó desde event_data.abx_body.judgement si está presente | |
| target.url | Se asignó desde event_data.abx_body.details.request_url si está presente | |
| target.user.userid | Se asignó desde event_data.abx_body.user.email si está presente | |
| target.user.email_addresses | Se asignó 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 |
Se asignó 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.