Prácticas recomendadas para auditar el acceso SSH


En este documento, se describen las prácticas recomendadas para auditar el acceso SSH a instancias de máquina virtual (VM) de Linux.

Los Registros de auditoría de Cloud te permiten analizar la actividad anterior y pueden ser una fuente importante de información cuando investigas la actividad sospechosa que afecta tus recursos de Google Cloud.

En las siguientes secciones, se incluyen prácticas recomendadas que pueden ayudarte a mantener un registro de auditoría que no se pueda rechazar:

En este documento, nos enfocamos en las prácticas que son específicas de Google Cloud o de particular relevancia cuando se usa SSH en Google Cloud. En el documento, no se abarcan las prácticas recomendadas para implementaciones específicas de clientes o servidores SSH.

Habilita los registros de acceso a los datos para IAP

Para asegurarte de que IAP agregue una entrada a los Registros de auditoría de Cloud cada vez que un usuario intente establecer una conexión SSH, habilita los registros de acceso a los datos para la API de Cloud Identity-Aware Proxy. Los registros de acceso a los datos están inhabilitados de forma predeterminada. A menos que tengas dudas sobre el volumen de registros, habilita los registros de acceso a los datos para todos los proyectos que contengan instancias de VM.

Supervisa las entradas de registro de auditoría relacionadas con el uso de SSH

El uso de SSH puede afectar la seguridad de las VMs y sus cargas de trabajo, por lo que es importante mantener un registro de auditoría para los intentos de conexión exitosos y los intentos de acceso fallidos. Esto es especialmente importante en entornos de producción, en los que el uso de SSH debe considerarse una acción sensible.

Para hacer un seguimiento del acceso SSH y, posiblemente, detectar comportamientos sospechosos, asegúrate de supervisar las entradas de registro relacionadas con SSH, incluidas las siguientes:

Servicio Método Descripción
IAP AuthorizeUser Indica un intento de conexión a través del reenvío de TCP de IAP. Las entradas de registro contienen detalles sobre el dispositivo del usuario, los niveles de acceso satisfechos y los niveles de acceso no satisfechos.
Acceso a SO google.cloud.oslogin.v1.OsLoginService.CheckPolicy Indica un intento de acceso.
Acceso a SO google.cloud.oslogin.OsLoginService.v1.StartSession Indica el inicio de un desafío de 2FA de Acceso al SO
Acceso a SO google.cloud.oslogin.OsLoginService.v1.ContinueSession Indica que se completó el desafío de 2FA de Acceso al SO
Compute Engine v1.compute.projects.setCommonInstanceMetadata Si el campo projectMetadataDelta contiene una entrada para “ssh-keys”, esta entrada de registro indica que se agregó, quitó o modificó una clave SSH en los metadatos del proyecto.
Compute Engine v1.compute.instances.setMetadata Si el campo projectMetadataDelta contiene una entrada para “ssh-keys” o “sshKeys”, esta entrada de registro indica que se agregó, quitó o modificó una clave SSH en los metadatos de la instancia.
Compute Engine google.ssh-serialport.v1.connect Indica un intento de conexión a la consola en serie
IAM beta.compute.instances.setIamPolicy, v1.compute.instances.setIamPolicy Indica un cambio en la política de IAM de una instancia de VM. Un cambio en la política de IAM podría afectar la capacidad de los usuarios de modificar los metadatos de la instancia.
IAM SetIamPolicy Indica un cambio en la política de IAM de un proyecto. Un cambio en la política de IAM podría afectar la capacidad de los usuarios de modificar los metadatos del proyecto y la configuración de los registros de auditoría de acceso a los datos del proyecto.

Todos los registros de auditoría contienen un campo principalEmail que identifica la principal que inició la actividad.

Para obtener un panorama completo de la actividad en tus VMs, configúralas para que exporten /var/log/messages y los registros del servidor SSH a Cloud Logging, por ejemplo, con el Agente de operaciones.

Ten en cuenta que, según la distribución de Linux que uses, los registros del servidor SSH pueden escribirse en diferentes archivos de registro (por lo general, /var/log/auth.log o /var/log/secure) y que estos archivos de registro no están cubiertos por la configuración predeterminada que usa el Agente de operaciones.