arrow_back

Analiza los registros de auditoría con BigQuery

Acceder Unirse
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Analiza los registros de auditoría con BigQuery

Lab 1 hora 30 minutos universal_currency_alt 2 créditos show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses
ícono de información importante IMPORTANTE:

ícono de computadora de escritorio/laptop Asegúrate de completar este lab práctico únicamente en una computadora de escritorio o laptop.

ícono de verificación Se permiten solo 5 intentos por lab.

ícono de diana del cuestionario A modo de recordatorio, es habitual no responder de forma correcta a todas las preguntas en el primer intento o incluso tener que volver a realizar una tarea; esto forma parte del proceso de aprendizaje.

ícono de cronómetro Una vez comenzado el lab, no se puede detener el cronómetro. Después de 1 hora y 30 minutos, el lab terminará y tendrás que volver a empezar.

ícono de sugerencia Para obtener más información, consulta la lectura Sugerencias técnicas para el lab.

Descripción general de la actividad

Los servicios de Google Cloud escriben registros de auditoría que registran actividades y accesos administrativos dentro de tus recursos de Google Cloud. Las entradas de registro de auditoría te ayudan a responder las preguntas “¿Quién hizo qué, dónde y cuándo?” en tus proyectos de Google Cloud. Habilitar registros de auditoría ayuda a las entidades de seguridad, auditoría y cumplimiento a supervisar los datos y sistemas de Google Cloud en busca de posibles vulnerabilidades o el uso inadecuado datos externos.

En este lab, investigarás registros de auditoría para identificar patrones de actividad sospechosa que involucren recursos de nube.

Situación

Cymbal Bank oficialmente migró sus recursos a su solución de nube híbrida e implementó con éxito sus flujos de trabajo en el nuevo entorno de nube. Desafortunadamente, se notificó al equipo de Ingeniería de Seguridad sobre una alerta de gravedad alta que involucra el acceso no autorizado a varios de sus recursos de nube. Esto es alarmante, puesto que agentes maliciosos pueden usar recursos de nube vulnerados para exfiltrar datos y lanzar ataques contra otros sistemas. Es la primera vez que te enfrentas a un incidente de seguridad. Chloe, la líder de tu equipo, reconoce que esta es una valiosa oportunidad para que aprendas los procesos y procedimientos relacionados con la respuesta ante incidentes. Te pidieron que fueras aprendiz de Ana, quien forma parte del Equipo de Respuesta ante Incidentes, una unidad del departamento de Ingeniería de Seguridad. Ana te proporcionó acceso a los registros de la alerta, que usarás para investigar la actividad maliciosa. Para obtener una mejor comprensión del incidente de seguridad, configuras un entorno de pruebas para recrear el incidente y analizar los artefactos. Usarás dos cuentas de usuario separadas: una generará la actividad maliciosa y la otra se usará para investigar la actividad.

A continuación, se detalla cómo harás esta tarea. Primero, generarás actividad desde la primera cuenta de usuario para recrear el incidente de seguridad. A continuación, exportarás los registros para ahondar en el análisis. Luego, seguirás recreando el incidente y generarás actividad de usuario adicional. Finalmente, utilizarás BigQuery para analizar los registros.

Configuración

Antes de hacer clic en Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

En este lab práctico, puedes realizar las actividades por tu cuenta en un entorno de nube real, en lugar de una simulación o un entorno de demostración. Para ello, se te proporcionan credenciales temporales nuevas que usarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana del navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haz clic en el botón Comenzar lab. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • Tiempo restante
    • El botón Abrir la consola de Google
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
    Nota: Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago.
  2. Haz clic en Abrir la consola de Google (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito) si ejecutas el navegador Chrome. La página Acceder se abre en una pestaña del navegador nueva.

    Sugerencia: Puedes organizar las pestañas de manera independiente (una ventana al lado de la otra) para alternar fácilmente entre ellas.

    Nota: Si aparece el diálogo Elige una cuenta, haz clic en Usar otra cuenta.
  3. Si es necesario, copia el nombre de usuario de Google Cloud a continuación, y pégalo en el diálogo Ingresar. Haz clic en Siguiente.

{{{user_0.username | "nombre de usuario de Google Cloud"}}}

También puedes encontrar el nombre de usuario de Google Cloud en el panel Detalles del lab.

  1. Copia la contraseña de Google Cloud a continuación y pégala en el diálogo te damos la bienvenida. Haz clic en Siguiente.
{{{user_0.password | "contraseña de Google Cloud"}}}

También puedes encontrar la contraseña de Google Cloud en el panel Detalles del lab.

Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud podría generar cargos adicionales.
  1. Haz clic para avanzar por las páginas siguientes:
    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para las pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Menú de la consola de Google Cloud con el ícono de menú de navegación destacado

Activa Cloud Shell

Cloud Shell es un entorno de desarrollo y operaciones en línea al que puedes acceder desde cualquier lugar con tu navegador. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell (Ícono de Activar Cloud Shell) en la esquina superior derecha de la consola de Google Cloud. Es posible que debas hacer clic en Continuar.

Luego de que inicie Cloud Shell, verás un mensaje en el ID del proyecto de Google Cloud para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

La herramienta de línea de comandos de Google Cloud, gcloud, está preinstalada en Cloud Shell y es compatible con la función de completado de línea de comando. Para acceder a Google Cloud, primero deberás autorizar gcloud.

  1. Solicita el nombre de la cuenta activa con este comando:
gcloud auth list
  1. Aparecerá una ventana emergente en la que se te pedirá Autorizar Cloud Shell. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Solicita el ID del proyecto con este comando:
gcloud config list project

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.

Tarea 1: Genera actividad de la cuenta

Nota: Asegúrate de estar en la cuenta username 1: en la consola de Google Cloud.

En esta tarea, crearás y borrarás recursos de nube para generar actividad de la cuenta, a la que accederás en forma de Registros de auditoría de Cloud.

  1. Copia los siguientes comandos en la terminal de Cloud Shell:
gcloud storage buckets create gs://$DEVSHELL_PROJECT_ID echo "this is a sample file" > sample.txt gcloud storage cp sample.txt gs://$DEVSHELL_PROJECT_ID gcloud compute networks create mynetwork --subnet-mode=auto export ZONE=$(gcloud compute project-info describe \ --format="value(commonInstanceMetadata.items[google-compute-default-zone])") gcloud compute instances create default-us-vm \ --machine-type=e2-micro \ --zone=$ZONE --network=mynetwork gcloud storage rm --recursive gs://$DEVSHELL_PROJECT_ID
  1. Presiona INTRO.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente. Generar actividad de la cuenta

Tarea 2: Exporta los registros de auditoría

Nota: Asegúrate de estar en la cuenta username 1: en la consola de Google Cloud.

La actividad que generaste en la tarea anterior se asentó como registros de auditoría. En esta tarea exportarás estos registros a un conjunto de datos de BigQuery para ahondar en el análisis.

  1. En la consola de Google Cloud, en el menú de navegación (Ícono del menú de navegación) haz clic en Logging > Explorador de registros. Se abrirá la página Explorador de registros. Quizá debas hacer clic en Más productos para ampliar las opciones del menú de navegación y localizar Logging en Operaciones.
  2. Cuando exportas registros, el filtro actual se aplicará a lo que se exporte. Copia la siguiente consulta en el compilador de Consultas:
logName = ("projects/{{{project_0.project_id | Project ID}}}/logs/cloudaudit.googleapis.com%2Factivity")
  1. Haz clic en Ejecutar consulta. Los resultados de la consulta se mostrarán en el panel Resultados de la consulta. Esta consulta filtra en función de los Registros de auditoría de Cloud en tu proyecto.
  2. En el campo Editor de consultas, haz clic en Más acciones > Crear un receptor. Se abrirá el diálogo Crear receptor de enrutamiento de registros.
Nota: Si la ventana de tu navegador es estrecha, la IU podría mostrar Más en lugar de Más acciones.
  1. En el diálogo Crear receptor de enrutamiento de registros, especifica los siguientes valores y deja lo demás en su configuración predeterminada:
Sección Campo: valores
Detalles del receptor Nombre del receptor: AuditLogsExport
Haz clic en Siguiente.
Destino del receptor Selecciona el servicio del receptor: Conjunto de datos de BigQuery
Selecciona un conjunto de datos de BigQuery: Crear nuevo conjunto de datos de BigQuery.
Se abrirá el diálogo Crear un conjunto de datos.
Crea un conjunto de datos ID de conjunto de datos: auditlogs_dataset
Haz clic en Crear conjunto de datos.
Se cerrará el diálogo Crear conjunto de datos y regresarás al diálogo Receptor destino.
Destino del receptor Haz clic en Siguiente.
Desmarca la casilla de verificación Usar tablas particionadas, si ya está seleccionada, y haz clic en Siguiente.
Elige registros para incluirlos en el receptor Observa el campo Crea un filtro de inclusión prellenado: logName=("projects/[ID DE PROYECTO]/logs/cloudaudit.googleapis.com%2Factivity")
Haz clic en Siguiente.
Haz clic en Crear un receptor.
Regresa a la página Explorador de registros.
  1. En el panel de navegación Logging, haz clic en Enrutador de registros para ver el receptor AuditLogsExport en la lista Receptores de enrutadores de registros.
  2. Intercalado con el receptor AuditLogsExport, haz clic en Más acciones (Ícono Más) > Ver detalles del receptor para ver información sobre el receptor AuditLogsExport que creaste. Se abrirá el diálogo Detalles del receptor.
  3. Haz clic en Cancelar para cerrar el diálogo Detalles del receptor cuando termines de ver la información correspondiente.

Todos los registros futuros se exportarán ahora a BigQuery y las herramientas de BigQuery podrán usarse para realizar análisis de los datos del registro de auditoría. La exportación no exporta las entradas de registro existentes.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente. Exportar los registros de auditoría

Tarea 3: Genera más actividad de la cuenta

Nota: Asegúrate de estar en la cuenta username 1: en la consola de Google Cloud.

En esta tarea, crearás y borrarás recursos de nube para generar actividad adicional de la cuenta, a la que luego accederás en BigQuery para extraer estadísticas adicionales a partir de los registros.

  1. Copia los siguientes comandos en la terminal de Cloud Shell:
gcloud storage buckets create gs://$DEVSHELL_PROJECT_ID gcloud storage buckets create gs://$DEVSHELL_PROJECT_ID-test echo "this is another sample file" > sample2.txt gcloud storage cp sample.txt gs://$DEVSHELL_PROJECT_ID-test export ZONE=$(gcloud compute project-info describe \ --format="value(commonInstanceMetadata.items[google-compute-default-zone])") gcloud compute instances delete --zone=$ZONE \ --delete-disks=all default-us-vm

Estos comandos generan más actividad para ver en los registros de auditoría exportados a BigQuery.

  1. Presiona INTRO.

Cuando se te solicite, escribe Y; luego, presiona INTRO. Observa que creaste dos buckets y borraste una instancia de Compute Engine.

  1. Cuando aparezca el prompt después de unos minutos, ingresa los siguientes comandos en la terminal de Cloud Shell:
gcloud storage rm --recursive gs://$DEVSHELL_PROJECT_ID gcloud storage rm --recursive gs://$DEVSHELL_PROJECT_ID-test
  1. Presiona INTRO.

Observa que borraste ambos buckets.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente. Generar más actividad de la cuenta

Tarea 4. Accede como el segundo usuario

Tendrás que alternar cuentas de Google Cloud; para ello, accederás a la consola de Google Cloud con la segunda cuenta de usuario que se proporciona en el panel Detalles del lab. Usarás esta cuenta de usuario para analizar los registros.

  1. En la consola de Google Cloud, haz clic en el ícono de usuario ubicado en la esquina superior derecha de la pantalla y, a continuación, haz clic en Agregar cuenta.
  2. Regresa al panel Detalles del lab, copia el nombre de usuario 2 de Google Cloud: y la contraseña. Luego, pega el nombre de usuario y la contraseña en el diálogo Acceder de la consola de Google Cloud.

Tarea 5. Analiza los registros de actividad del administrador

Nota: Asegúrate de estar en la cuenta username 2: en la consola de Google Cloud.

En esta tarea, revisarás los registros de actividad del administrador que generaste en la tarea anterior. Tu objetivo es identificar y aplicar filtros para aislar registros que podrían indicar actividad sospechosa. Esto te permitirá exportar este subconjunto de registros y agilizar el proceso de análisis en busca de problemas potenciales.

Los registros de actividad del administrador contienen las entradas de registro de las llamadas a la API o las otras acciones administrativas que modifican la configuración o los metadatos de los recursos. Por ejemplo, los registros inspeccionan cuándo se crean las instancias de VM y las aplicaciones de App Engine cuando se cambian los permisos.

Nota: Puedes ver las entradas de registro de auditoría en el visor de registros, en Cloud Logging y en el SDK de Cloud. También puedes exportar las entradas de registro de auditoría a Pub/Sub, BigQuery o Cloud Storage.
  1. En la consola de Google Cloud, haz clic en el menú de navegación (Ícono del menú de navegación).
  2. Selecciona Logging > Explorador de registros. Se abrirá la página Explorador de registros. Es posible que debas expandir el menú desplegable Más productos en el menú de navegación y localizar Logging en Operaciones.
  3. Asegúrate de que el botón Mostrar consulta esté activado. Esto abrirá el campo Compilador de consultas.
  4. Copia y pega el siguiente comando en el campo Compilador de consultas. Observa el ID de tu proyecto de Google Cloud, que aparece como “PROJECT_ID” en el comando.
logName = ("projects/{{{project_0.project_id | "PROJECT_ID"}}}/logs/cloudaudit.googleapis.com%2Factivity")
  1. Haz clic en Ejecutar consulta.
  2. En Resultados de la consulta, localiza la entrada de registro que indica que se borró un bucket de Cloud Storage, el cual contiene el campo de resumen storage.buckets.delete. Los campos de resumen se incluyen en los resultados del registro para destacar información importante acerca de la entrada de registro.

Esta entrada se refiere a storage.googleapis.com, que llama al método storage.buckets.delete para borrar un bucket. El nombre del bucket es el mismo que tu ID del proyecto: .

  1. En esta entrada, haz clic en el texto storage.googleapis.com y selecciona Mostrar entradas coincidentes. Los resultados de la consulta ahora deberían mostrar solo seis entradas relacionadas con buckets de Cloud Storage creados y borrados.
  2. En el campo Editor de consultas, observa que se agregó la línea protoPayload.serviceName="storage.googleapis.com" al Compilador de consultas. Esto filtra tu consulta según entradas que coincidan con storage.googleapis.com.
  3. En esos resultados de la consulta, haz clic en storage.buckets.delete en una de las entradas y selecciona Mostrar entradas coincidentes.

Observa que se agregó otra línea al texto del Compilador de consultas:

logName = ("projects/{{{project_0.project_id | "PROJECT_ID"}}}/logs/cloudaudit.googleapis.com%2Factivity") protoPayload.serviceName="storage.googleapis.com" protoPayload.methodName="storage.buckets.delete"

Los resultados de la consulta ahora deberían mostrar todas las entradas relacionadas con buckets de Cloud Storage borrados. Puedes usar esta técnica para localizar eventos específicos con facilidad.

  1. En los resultados de la consulta, expande un evento storage.buckets.delete haciendo clic en la flecha > junto a la línea:

buckets_delete_log

  1. Expande el campo authenticationInfo haciendo clic en la flecha > junto a la línea:

authenticationInfo

Observa el campo principalEmail, que muestra la dirección de correo electrónico de la cuenta de usuario que realizó esta acción, que es la cuenta de usuario 1 que usaste para generar la actividad del usuario.

Tarea 6. Usa BigQuery para analizar los registros de auditoría

Nota: Asegúrate de estar en la cuenta username 2: en la consola de Google Cloud.

Generaste y exportaste registros al conjunto de datos de BigQuery. En esta tarea, analizarás los registros usando el Editor de consultas.

Nota: Cuando exportas registros a un conjunto de datos de BigQuery, Cloud Logging crea tablas con fecha para contener las entradas de registro exportadas. Las entradas de registro se ubican en tablas cuyos nombres se basan en los nombres de las entradas de registro.
  1. En la consola de Google Cloud, haz clic en el menú de navegación (Ícono del menú de navegación).
  2. Haga clic en BigQuery.
Nota: Aparecerá el mensaje Te damos la bienvenida a BigQuery en la consola de Cloud, que proporciona vínculos a la guía de inicio rápido y las notas de la versión por actualizaciones de la IU. Haz clic en Listo para continuar.
  1. En el panel Explorador, haz clic en la flecha de expandir junto a tu proyecto, . Se mostrará el conjunto de datos auditlogs_dataset.
Nota: Si no se muestra auditlogs_dataset, vuelve a cargar la ventana de tu navegador.

A continuación, verifica que el conjunto de datos de BigQuery tenga los permisos adecuados para permitir que el escritor de exportación almacene entradas de registro.

  1. Haz clic en el conjunto de datos auditlogs_dataset.

  2. En la barra de herramientas de auditlogs_dataset, haz clic en el menú desplegable Uso compartido y selecciona Permisos.

  3. En la página Permiso para compartir "auditlogs_dataset", expande la sección Editor de datos de BigQuery.

  4. Confirma que la cuenta de servicio usada para las exportaciones de registros tenga permiso. La cuenta de servicio es similar a: service-xxxxxxxx@gcp-sa-logging.iam.gserviceaccount.com

    Este permiso se asigna automáticamente cuando están configuradas las exportaciones de registros, por lo que es una manera útil de verificar que se hayan configurado las exportaciones de registro.

  5. Haz clic en Cerrar para cerrar la ventana Compartir conjunto de datos.

  6. En el panel Explorador, haz clic en la flecha expandir junto al conjunto de datos auditlogs_dataset para ver la tabla cloudaudit_googleapis_com_activity. Esta tabla contiene tus registros exportados.

  7. Selecciona la tabla cloudaudit_googleapis_com_activity. Se mostrará el esquema de la tabla. Dedica un momento a revisar el esquema y los detalles de la tabla.

  8. Expande el menú desplegable Consulta y selecciona En una pestaña nueva.

query_drop_down

  1. En la pestaña Sin título del Compilador de consultas, borra el texto existente y pega el siguiente comando:
SELECT timestamp, resource.labels.instance_id, protopayload_auditlog.authenticationInfo.principalEmail, protopayload_auditlog.resourceName, protopayload_auditlog.methodName FROM `auditlogs_dataset.cloudaudit_googleapis_com_activity_*` WHERE PARSE_DATE('%Y%m%d', _TABLE_SUFFIX) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND CURRENT_DATE() AND resource.type = "gce_instance" AND operation.first IS TRUE AND protopayload_auditlog.methodName = "v1.compute.instances.delete" ORDER BY timestamp, resource.labels.instance_id LIMIT 1000;

Esta consulta devuelve los usuarios que borraron máquinas virtuales en los últimos 7 días.

  1. Haz clic en Ejecutar.

Después de un par de segundos, BigQuery devolverá cada ocasión en la que un usuario borró una máquina virtual de Compute Engine en los últimos 7 días. Deberías ver una entrada, que es la actividad que generaste en las tareas anteriores como el usuario 1. Recuerda que BigQuery solo muestra la actividad que ocurrió después de que crearas la exportación.

  1. Reemplaza la consulta anterior en la pestaña Sin título por lo siguiente:
SELECT timestamp, resource.labels.bucket_name, protopayload_auditlog.authenticationInfo.principalEmail, protopayload_auditlog.resourceName, protopayload_auditlog.methodName FROM `auditlogs_dataset.cloudaudit_googleapis_com_activity_*` WHERE PARSE_DATE('%Y%m%d', _TABLE_SUFFIX) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND CURRENT_DATE() AND resource.type = "gcs_bucket" AND protopayload_auditlog.methodName = "storage.buckets.delete" ORDER BY timestamp, resource.labels.instance_id LIMIT 1000;

Esta consulta devuelve los usuarios que borraron buckets de Cloud Storage en los últimos 7 días. Deberías ver dos entradas, que es la actividad que generaste en las tareas anteriores como el usuario 1.

  1. Haz clic en Ejecutar.

La habilidad para analizar los registros de auditoría en BigQuery es muy poderosa. En esta actividad, viste solo dos ejemplos de consultas de registros de auditoría.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente. Usar BigQuery para analizar los registros de auditoría

Conclusión

¡Muy bien! Hiciste consultas correctamente en el Explorador de registros. Luego, exportaste registros y creaste un conjunto de datos que analizaste en BigQuery.

Demostraste cómo puedes usar registros de auditoría y filtrar por tipos de actividad maliciosa para, luego, ahondar en el análisis de esos registros en BigQuery como una manera de estudiar las amenazas.

Finaliza el lab

Antes de que finalices el lab, asegúrate de estar conforme con la forma en que completaste todas las tareas. Cuando estés conforme, haz clic en Finalizar Lab y luego haz clic en Enviar.

Finalizar el lab te quitará el acceso al entorno del lab y no podrás volver a acceder al trabajo que completaste.

Copyright 2024 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.