Recopila registros del proxy web de Cisco Umbrella
En este documento, se explica cómo recopilar registros del proxy web de Cisco Umbrella en un feed de Google Security Operations con un bucket de AWS S3. El analizador extrae campos de un registro CSV, cambia el nombre de las columnas para mayor claridad y controla las posibles variaciones en los datos de entrada. Luego, usa los archivos incluidos (umbrella_proxy_udm.include
y umbrella_handle_identities.include
) para asignar los campos extraídos al UDM y procesar la información de identidad según el campo identityType
.
Antes de comenzar
- Asegúrate de tener una instancia de Google SecOps.
- Asegúrate de tener acceso con privilegios a AWS IAM y S3.
- Asegúrate de tener acceso con privilegios a Cisco Umbrella.
Configura un bucket de Amazon S3 administrado por Cisco
- Accede al panel de Cisco Umbrella.
- Ve a Administrador > Administración de registros.
- Selecciona la opción Usar un bucket de Amazon S3 administrado por Cisco.
- Proporciona los siguientes detalles de configuración:
- Selecciona una región: Elige una región más cercana a tu ubicación para reducir la latencia.
- Selecciona una duración de retención: Selecciona el período. La duración de la retención es de 7, 14 o 30 días. Después del período seleccionado, los datos se borran y no se pueden recuperar. Si tu ciclo de transferencia es regular, usa un período más corto. Puedes cambiar la duración de la retención más adelante.
- Haz clic en Guardar.
- Haz clic en Continuar para confirmar tus selecciones y recibir la notificación de activación.
En la ventana Activation complete que aparece, se muestran los valores de Access key y Secret key. - Copia los valores de Clave de acceso y Clave secreta. Si pierdes estas claves, debes volver a generarlas.
- Haz clic en Entendido > Continuar.
- En una página de resumen, se muestran la configuración y el nombre del bucket. Puedes activar o desactivar el registro según lo requiera tu organización. Sin embargo, los registros se borran según la duración de la retención, independientemente de que se agreguen datos nuevos.
Opcional: Configura las claves de acceso del usuario para el bucket de AWS S3 autoadministrado
- Accede a la consola de administración de AWS.
- Crea un usuario siguiendo esta guía del usuario: Cómo crear un usuario de IAM.
- Selecciona el usuario creado.
- 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 el 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 usarlas más adelante.
- 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 y selecciona la política AmazonS3FullAccess.
- Haz clic en Siguiente.
- Haz clic en Agregar permisos.
Opcional: Configura un bucket de Amazon S3 autoadministrado
Accede a la consola de administración de AWS.
Ve a S3.
Haz clic en Crear bucket.
Proporciona los siguientes detalles de configuración:
- Nombre del bucket: Proporciona un nombre para el bucket de Amazon S3.
- Región: Selecciona una región.
Haz clic en Crear.
Opcional: Configura una política de bucket para el bucket de AWS S3 autoadministrado
- Haz clic en el bucket recién creado para abrirlo.
- Selecciona Propiedades > Permisos.
- En la lista Permisos, haz clic en Agregar política de bucket.
Ingresa la política del bucket preconfigurada de la siguiente manera:
{ "Version": "2008-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::BUCKET_NAME/*" }, { "Sid": "", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BUCKET_NAME/*"}, { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::BUCKET_NAME" }, { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::BUCKET_NAME" } ] }
- Reemplaza
BUCKET_NAME
por el nombre del bucket de Amazon S3 que proporcionaste.
- Reemplaza
Haz clic en Guardar.
Opcional: Verificación obligatoria para el bucket de Amazon S3 autoadministrado
- En el panel de Cisco Umbrella, selecciona Admin > Log management > Amazon S3.
- En el campo Nombre del bucket, especifica el nombre exacto de tu bucket de Amazon S3 y, luego, haz clic en Verificar.
- Como parte del proceso de verificación, se sube un archivo llamado
README_FROM_UMBRELLA.txt
desde Cisco Umbrella a tu bucket de Amazon S3. Es posible que debas actualizar el navegador para ver el archivo README cuando se suba. - Descarga el archivo
README_FROM_UMBRELLA.txt
y ábrelo con un editor de texto. - Copia y guarda el token único de Cisco Umbrella del archivo.
- Ve al panel de Cisco Umbrella.
- En el campo Número de token, especifica el token y haz clic en Guardar.
- Si se realiza correctamente, recibirás un mensaje de confirmación en tu panel que indica que el bucket se verificó correctamente. Si recibes un error que indica que no se puede verificar tu bucket, vuelve a verificar la sintaxis del nombre del bucket y revisa la configuración.
Configura un feed en Google SecOps para transferir los registros del proxy web de Cisco Umbrella
- Ve a SIEM Settings > Feeds.
- Haz clic en Agregar nueva.
- En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros del proxy web de Cisco Umbrella.
- Selecciona Amazon S3 V2 como el Tipo de fuente.
- Selecciona Cisco Umbrella Web Proxy como el Tipo de registro.
- Haz clic en Siguiente.
Especifica valores para los siguientes parámetros de entrada:
- URI de S3: Es el URI del bucket.
s3:/BUCKET_NAME
- Reemplaza
BUCKET_NAME
por el nombre real del bucket.
- Reemplaza
- Opciones de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.
- URI de S3: Es el URI del bucket.
Haz clic en Siguiente.
Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
ampDisposition |
security_result.detection_fields[].value |
Es el valor de ampDisposition del registro sin procesar. |
ampMalware |
security_result.detection_fields[].value |
Es el valor de ampMalware del registro sin procesar. |
ampScore |
security_result.detection_fields[].value |
Es el valor de ampScore del registro sin procesar. |
avDetections |
security_result.detection_fields[].value |
Es el valor de avDetections del registro sin procesar. |
blockedCategories |
security_result.threat_name |
Es el valor de blockedCategories del registro sin procesar. |
certificateErrors |
security_result.detection_fields[].value |
Es el valor de certificateErrors del registro sin procesar. |
contentType |
security_result.detection_fields[].value |
Es el valor de contentType del registro sin procesar. |
destinationIp |
target.ip |
Es el valor de destinationIp del registro sin procesar. |
destinationListID |
security_result.detection_fields[].value |
Es el valor de destinationListID del registro sin procesar. |
dlpstatus |
security_result.detection_fields[].value |
Es el valor de dlpstatus del registro sin procesar. |
externalIp |
principal.ip |
Es el valor de externalIp del registro sin procesar. |
fileAction |
security_result.detection_fields[].value |
Es el valor de fileAction del registro sin procesar. |
fileName |
target.file.names |
Es el valor de fileName del registro sin procesar. |
identitiesV8 |
principal.hostname |
Es el valor de identitiesV8 del registro sin procesar. |
identity |
principal.location.name |
Es el valor de identity del registro sin procesar. |
internalIp |
principal.ip |
Es el valor de internalIp del registro sin procesar. |
isolateAction |
security_result.detection_fields[].value |
Es el valor de isolateAction del registro sin procesar. |
referer |
network.http.referral_url |
Es el valor de referer del registro sin procesar. |
requestMethod |
network.http.method |
Es el valor de requestMethod del registro sin procesar. |
requestSize |
security_result.detection_fields[].value |
Es el valor de requestSize del registro sin procesar. |
responseBodySize |
security_result.detection_fields[].value |
Es el valor de responseBodySize del registro sin procesar. |
responseSize |
security_result.detection_fields[].value |
Es el valor de responseSize del registro sin procesar. |
ruleID |
security_result.rule_id |
Es el valor de ruleID del registro sin procesar. |
rulesetID |
security_result.detection_fields[].value |
Es el valor de rulesetID del registro sin procesar. |
sha |
security_result.about.file.sha256 |
Es el valor de sha del registro sin procesar. |
statusCode |
network.http.response_code |
Es el valor de statusCode del registro sin procesar. |
ts |
timestamp |
Es el valor de ts del registro sin procesar, analizado como una marca de tiempo. |
url |
target.url |
Es el valor de url del registro sin procesar. |
userAgent |
network.http.user_agent |
Es el valor de userAgent del registro sin procesar. |
verdict |
security_result.detection_fields[].value |
Es el valor de verdict del registro sin procesar. |
warnstatus |
security_result.detection_fields[].value |
Es el valor de warnstatus del registro sin procesar. Es el valor de collection_time del registro sin procesar. Se codificó como NETWORK_HTTP . Se codificó como Cisco . Se codificó como Umbrella . Se codificó como UMBRELLA_WEBPROXY . Se deriva del esquema del campo de URL (http o https ). Se analiza a partir del campo userAgent con una biblioteca de análisis de agentes de usuario. Es el valor de requestSize del registro sin procesar, convertido en un número entero. Es el valor de responseSize del registro sin procesar, convertido en un número entero. Se deriva del campo identity cuando identityType (o identityTypeV8 con identitiesV8 ) indica un usuario. Se analiza aún más para extraer detalles del usuario, como el nombre visible, el nombre, el apellido y la dirección de correo electrónico. Se asigna desde el campo verdict : allowed o allowed -> ALLOW , otros valores -> BLOCK . Si categories no está vacío, configúralo como NETWORK_CATEGORIZED_CONTENT . Es el valor de categories del registro sin procesar. Se basa en verdict y, posiblemente, en otros campos. Por lo general, es Traffic allowed o Traffic blocked . Si verdict no es allowed ni blocked y statusCode está presente, el resumen es Traffic %{statusCode} . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.