Recopila registros del SWG de Dope Security
En este documento, se explica cómo transferir registros del SWG de Dope Security a Google Security Operations con Amazon S3.
Dope Security dope.swg es una puerta de enlace web segura basada en endpoints que proporciona filtrado web en tiempo real, protección contra malware y control de aplicaciones en la nube. Cada dope.endpoint envía registros de transacciones web a dope.cloud cada 15 minutos, que luego se exportan automáticamente a tu bucket de AWS S3 en formato JSONL comprimido con GZIP para la integración de SIEM.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Acceso privilegiado a dope.console de Dope Security
- Acceso con privilegios a AWS (S3, IAM)
- Tu arrendatario de Dope Security debe estar en la misma región de AWS que tu bucket de S3 (verifica la región en la página Configuración > SIEM).
Configura la integración de la SIEM de Dope Security
Para configurar la integración del SIEM de Dope Security, haz lo siguiente:
- Accede a dope.console en https://console.dope.security
- Ve a Configuración > SIEM > Configuración de integración de SIEM.
- En la lista SIEM Type, selecciona AWS S3.
Ten en cuenta la región de AWS que se muestra en el lado derecho de la página (por ejemplo, US-EAST-2).
Deja esta página abierta, ya que volverás para completar la configuración después de configurar AWS S3.
Configura el bucket de AWS S3 y el IAM para Google SecOps
- Crea un bucket de Amazon S3. Para obtener más información, consulta Crea un bucket.
- Cuando crees el bucket, asegúrate de que la región coincida con la que se muestra en la página de integración del SIEM de Dope Security (por ejemplo, US East (Ohio) us-east-2).
Guarda el Nombre del bucket para consultarlo en el futuro (por ejemplo,
chronicle-dope-swg-logs).Crea un objeto User. Para obtener más información, consulta Crea un usuario de IAM.
Selecciona el usuario que creaste.
Selecciona la pestaña Credenciales de seguridad.
Haz clic en Crear clave de acceso en la sección Claves de acceso.
Selecciona Servicio de terceros como Caso de uso.
Haz clic en Siguiente.
Opcional: Agrega una etiqueta de descripción.
Haz clic en Crear clave de acceso.
Haz clic en Descargar archivo .csv para guardar la clave de acceso y la clave de acceso secreta para consultarlas en el futuro.
Haz clic en Listo.
Selecciona la pestaña Permisos.
Haz clic en Agregar permisos en la sección Políticas de permisos.
Selecciona Agregar permisos.
Selecciona Adjuntar políticas directamente.
Busca la política AmazonS3FullAccess.
Selecciona la política.
Haz clic en Siguiente.
Haz clic en Agregar permisos.
Configura la conexión de Dope Security a Amazon S3
- Regresa a dope.console en la página Configuración > SIEM > Configuración de integración de SIEM.
- En el campo Nombre del bucket de S3, ingresa el nombre de tu bucket de S3 (por ejemplo,
chronicle-dope-swg-logs). - En el panel de la derecha, verás una sección Política del bucket con una política de JSON generada previamente.
- Haz clic en Copiar junto al JSON de la política para copiarlo en el portapapeles.
- En una nueva pestaña del navegador, ve a la consola de AWS S3.
- Selecciona tu bucket de S3 (por ejemplo,
chronicle-dope-swg-logs). - Ve a la pestaña Permisos.
- Desplázate hacia abajo hasta la sección Política del bucket.
- Haz clic en Editar.
- Pega el JSON de la política que copiaste de dope.console en el área de texto Política.
- Haz clic en Guardar cambios.
- Regresa a la pestaña del navegador dope.console.
- Haz clic en Sincronizar en la parte inferior de la página Configuración de integración del SIEM.
- Espera a que se complete la sincronización.
- Verifica que aparezca una marca de verificación verde junto al campo Nombre del bucket de S3.
Verifica que la marca de tiempo de Última sincronización aparezca en la esquina superior derecha de la página.
Configura un feed en Google SecOps para transferir registros del SWG de Dope Security
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- Ingresa un nombre único para el Nombre del feed (por ejemplo,
Dope Security SWG Logs). - Selecciona Amazon S3 V2 como el Tipo de fuente.
- Selecciona DOPE_SWG como el Tipo de registro.
- Haz clic en Siguiente y, luego, en Enviar.
Especifica valores para los siguientes campos:
- URI de S3:
s3://chronicle-dope-swg-logs/(reemplaza con el nombre de tu bucket) - Opción de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.
- Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días más reciente (el valor predeterminado es 180 días).
- ID de clave de acceso: Clave de acceso del usuario con acceso al bucket de S3 (del paso 12 de la configuración de AWS)
- Clave de acceso secreta: Clave secreta del usuario con acceso al bucket de S3 (del paso 12 de la configuración de AWS)
- Espacio de nombres del recurso: Es el espacio de nombres del recurso.
- Etiquetas de transmisión: Es la etiqueta que se aplicará a los eventos de este feed.
- URI de S3:
Haz clic en Siguiente y, luego, en Enviar.
Referencia del formato de datos de registro
Dope Security exporta los registros en formato JSONL (líneas JSON) con compresión GZIP. Cada entrada de registro contiene los siguientes campos clave:
| Campo | Descripción |
|---|---|
| Marca de tiempo | Marca de tiempo ISO 8601 de cuándo se solicitó la transacción web |
| Duración | Duración de la conexión en milisegundos |
| Destino coincidente | Es el dominio con el que se correlacionó la categoría de Dope. |
| IP de destino | Dirección IP de destino de la URL solicitada |
| ID de usuario | ID único del usuario de dope.cloud del cliente |
| ID del agente | ID único del agente para dope.endpoint |
| User | Usuario que accedió a su cuenta en dope.endpoint |
| Usuario de OIDC | Dirección de correo electrónico del usuario autenticado (cuando la autenticación de OIDC está habilitada) |
| Categorías | Números de categoría de droga coincidentes (0 a 88) para la URL solicitada |
| Veredicto | Verificación de política: Permitir (0), Bloquear (1), Advertencia (2) o Omitir (3) |
| Datos enviados | Cantidad de datos enviados en la conexión (bytes) |
| Datos recibidos | Cantidad de datos recibidos en la conexión (bytes) |
| Tipo de política | Tipo de política aplicada: Web, Control de aplicaciones en la nube (CAC), categoría personalizada, omisión o software malicioso |
| Detalle del bloqueo | Para veredictos de bloqueo: Categoría de Dope, categoría personalizada, aplicación en la nube o tipo de malware |
| Nombre de archivo | Nombre de cualquier archivo descargado |
| Hash del archivo | Hash de archivos descargados |
| Nombre del proceso | Nombre del proceso que realiza la solicitud de URL |
| URL | URL solicitada completa |
| Nombre de la política | Nombre de la política aplicada |
| Protocolo | Protocolo utilizado (por ejemplo, HTTP/2, HTTP/1.1) |
| Nombre de host | Nombre de host del dispositivo |
| Método de solicitud HTTP | Método de solicitud HTTP (por ejemplo, GET, POST, PUT) |
| Árbol de llamadas de proceso | Relaciones entre procesos superiores y secundarios a partir de operaciones de generación con argumentos de comandos |
Para ver las asignaciones completas de categorías y veredictos, consulta la documentación de Dope Security Category & Verdict Mappings.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
| policy.categories, request.processTree | additional.fields | Se fusionó como una lista de policy.categories y request.processTree en JSON |
| timestamp | metadata.event_timestamp | Se analiza como una marca de tiempo ISO8601 en JSON y CSV. |
| metadata.event_type | Se establece en NETWORK_HTTP si tiene has_principal, has_target y has_http en JSON; de lo contrario, se establece en NETWORK_CONNECTION si tiene has_principal y has_target; de lo contrario, se establece en USER_UNCATEGORIZED si tiene has_user; de lo contrario, se establece en STATUS_UPDATE si tiene has_principal; de lo contrario, se establece en GENERIC_EVENT; se establece en NETWORK_HTTP en CSV. | |
| schemaVersion | metadata.product_version | Valor copiado directamente de schemaVersion en JSON |
| request.httpVersion | network.http.user_agent | Valor copiado directamente de request.httpVersion en JSON |
| bandwidth.dataReceivedInBytes, bytes_received | network.received_bytes | Se convirtió a uinteger desde bandwidth.dataReceivedInBytes en JSON o bytes_received en CSV si no está vacío y no es 0. |
| bandwidth.dataSentInBytes, bytes_sent | network.sent_bytes | Se convirtió a uinteger desde bandwidth.dataSentInBytes en JSON o bytes_sent en CSV si no está vacío y no es 0. |
| request.duration | network.session_duration.seconds | Se convirtió en un número entero a partir de request.duration en JSON |
| endpoint.agentID, endpoint_id | principal.asset.asset_id | Prefijo DS: proviene de endpoint.agentID en JSON o endpoint_id en CSV |
| endpoint.tenantID | principal.asset.attribute.cloud.project.id | Valor copiado directamente de endpoint.tenantID en JSON |
| endpoint.deviceName | principal.asset.hostname | Valor copiado directamente de endpoint.deviceName en JSON |
| endpoint.deviceName, endpoint_hostname | principal.hostname | Valor de endpoint.deviceName en JSON o endpoint_hostname en CSV |
| request.processName | principal.process.command_line | Valor copiado directamente de request.processName en JSON |
| process_name | principal.process.file.names | Valor copiado directamente de process_name en el CSV |
| sso_user, user | principal.user.account_type | Se establece en DOMAIN_ACCOUNT_TYPE si sso_user no está vacío; de lo contrario, se establece en LOCAL_ACCOUNT_TYPE en el CSV. |
| endpoint.oidcUser | principal.user.email_addresses | Se fusiona si endpoint.oidcUser coincide con la expresión regular de correo electrónico en JSON |
| endpoint.oidcUser | principal.user.user_display_name | El valor se copia directamente si endpoint.oidcUser no coincide con la regex de correo electrónico en JSON |
| endpoint.user, sso_user, user | principal.user.userid | Valor de endpoint.user en JSON; de sso_user si no está vacío, de lo contrario, de user en CSV |
| security_result | security_result | Se fusionó de security_result en JSON |
| policy.verdict, verdict | security_result.action | Se establece en BLOCK si es 1, ALLOW si es 0 y CHALLENGE si es 2, según policy.verdict en JSON o verdict en CSV. |
| categories | security_result.action_details | El valor se copia directamente de las categorías en el archivo CSV. |
| policy.policyName | security_result.rule_name | Valor copiado directamente de policy.policyName en JSON |
| policy.policyType | security_result.rule_type | Valor copiado directamente de policy.policyType en JSON |
| file_name | target.file.names | Valor copiado directamente de file_name en el CSV |
| file_hash | target.file.sha256 | Valor copiado directamente de file_hash en el CSV |
| destination.matchedDestination, domain | target.hostname | Valor de matchedDestination de destino si no es una IP en JSON; del dominio en CSV |
| destination.matchedDestination, destination.destinationIP, ip | target.ip | Valor de destination.matchedDestination o destination.destinationIP si la IP está en JSON; de ip en CSV |
| destination.url, url | target.url | Valor de destination.url en JSON; de url en CSV |
| metadata.product_name | Se establece en "DOPE_SWG" en JSON y en "SWG" en CSV. | |
| metadata.vendor_name | Se establece en "DOPE_SWG" en JSON y en "Dope Security" en CSV. |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.