Recomendaciones de seguridad para recursos de Google Cloud Platform (GCP)

En este artículo se enumeran todas las recomendaciones que puede ver en Microsoft Defender for Cloud si conecta una cuenta de Google Cloud Platform (GCP) mediante la página Configuración del entorno. Las recomendaciones que aparecen en el entorno se basan en los recursos que está protegiendo y en la configuración personalizada.

Para obtener información sobre las acciones que puede realizar en respuesta a estas recomendaciones, consulte Corrección de recomendaciones en Defender for Cloud.

La puntuación de seguridad se basa en el número de recomendaciones de seguridad que ha completado. Para decidir qué recomendaciones resolver primero, examine la gravedad de cada recomendación y su posible efecto en la puntuación segura.

Recomendaciones de proceso de GCP

Las máquinas virtuales de Compute Engine deben usar el sistema operativo optimizado para contenedores.

Descripción: esta recomendación evalúa la propiedad config de un grupo de nodos para el par clave-valor, "imageType": "COS".

Gravedad: baja

Los problemas de configuración de EDR deben resolverse en máquinas virtuales de GCP

Descripción: para proteger las máquinas virtuales frente a las amenazas y vulnerabilidades más recientes, resuelva todos los problemas de configuración identificados con la solución de detección y respuesta de puntos de conexión (EDR) instalada.
Nota: Actualmente, esta recomendación solo se aplica a los recursos con Microsoft Defender para punto de conexión (MDE) habilitado.

Gravedad: alta

La solución EDR debe instalarse en máquinas virtuales de GCP

Descripción: para proteger las máquinas virtuales, instale una solución de detección y respuesta de puntos de conexión (EDR). Las EDR ayudan a evitar, detectar, investigar y responder a amenazas avanzadas. Use Microsoft Defender para servidores para implementar Microsoft Defender para punto de conexión. Si el recurso se clasifica como "Incorrecto", no tiene instalada una solución EDR compatible [Vínculo de marcador de posición - Obtener más información]. Si tiene instalada una solución EDR que esta recomendación no puede reconocer, puede excluirla.

Gravedad: alta

Asegúrese de que la opción "Bloquear claves SSH para todo el proyecto" esté habilitada para las instancias de máquina virtual.

Descripción: se recomienda usar claves SSH específicas de instancia en lugar de usar claves SSH comunes o compartidas para acceder a instancias. Las claves SSH para todo el proyecto se almacenan en Compute/Project-meta-data. Las claves SSH para todo el proyecto se pueden usar para iniciar sesión en todas las instancias del proyecto. El uso de claves SSH para todo el proyecto facilita la administración de claves SSH, pero si se pone en peligro, supone el riesgo de seguridad que puede afectar a todas las instancias del proyecto. Se recomienda usar claves SSH específicas de instancia que pueden limitar la superficie expuesta a ataques si las claves SSH están en peligro.

Gravedad: media

Asegúrese de que las instancias de Compute se lanzan con la protección de VM habilitada

Descripción: para defenderse frente a amenazas avanzadas y asegurarse de que el cargador de arranque y el firmware de las máquinas virtuales están firmados y no registrados, se recomienda que las instancias de proceso se inicien con la máquina virtual blindada habilitada. Las máquinas virtuales blindadas son máquinas virtuales de Google Cloud Platform protegidas por un conjunto de controles de seguridad que ayudan a defenderse contra rootkits y bootkits. La máquina virtual blindada ofrece integridad verificable de las instancias de máquina virtual de Compute Engine, por lo que puede estar seguro de que las instancias no se han puesto en peligro mediante malware o rootkits de nivel de kernel o de arranque. La integridad verificable de la máquina virtual blindada se logra mediante el uso del arranque seguro, el arranque medido habilitado por el módulo de plataforma de confianza virtual (vTPM) y la supervisión de la integridad. Las instancias de máquina virtual blindada ejecutan el firmware firmado y comprobado mediante la entidad de certificación de Google, lo que garantiza que el firmware de la instancia no está modificado y establece la raíz de confianza para el arranque seguro. La supervisión de la integridad le ayuda a comprender y tomar decisiones sobre el estado de las instancias de máquina virtual y el vTPM de la máquina virtual blindada habilita el arranque medido mediante la realización de las medidas necesarias para crear una línea base de arranque correcto conocida, llamada línea base de la directiva de integridad. La línea base de la directiva de integridad se usa para comparar con las medidas de los posteriores arranques de la máquina virtual para determinar si ha cambiado algo. El arranque seguro ayuda a garantizar que el sistema solo ejecute software auténtico comprobando la firma digital de todos los componentes de arranque y deteniendo el proceso de arranque si se produce un error en la comprobación de la firma.

Gravedad: alta

Asegúrese de que la opción "Habilitar la conexión a puertos serie" no esté habilitada para la instancia de máquina virtual.

Descripción: la interacción con un puerto serie se conoce a menudo como consola serie, que es similar al uso de una ventana de terminal, en esa entrada y salida está completamente en modo de texto y no hay ninguna interfaz gráfica ni compatibilidad con el mouse. Si habilita la consola serie interactiva en una instancia, los clientes pueden intentar conectarse a esa instancia desde cualquier dirección IP. Por lo tanto, se debe deshabilitar la compatibilidad con la consola serie interactiva. Una instancia de máquina virtual tiene cuatro puertos serie virtuales. La interacción con un puerto serie es similar al uso de una ventana de terminal, en ese modo de entrada y salida está completamente en modo de texto y no hay ninguna interfaz gráfica ni compatibilidad con el mouse. El sistema operativo de la instancia, el BIOS y otras entidades de nivel de sistema suelen escribir la salida en los puertos serie y pueden aceptar entradas como comandos o respuestas a mensajes. Normalmente, estas entidades de nivel de sistema usan el primer puerto serie (puerto 1) y el puerto serie 1 a menudo se conoce como consola serie. La consola serie interactiva no admite restricciones de acceso basadas en IP, como listas de direcciones IP permitidas. Si habilita la consola serie interactiva en una instancia, los clientes pueden intentar conectarse a esa instancia desde cualquier dirección IP. Esto permite a cualquier usuario conectarse a esa instancia si conoce la clave SSH, el nombre de usuario, el identificador del proyecto, la zona y el nombre de instancia correctos. Por lo tanto, se debe deshabilitar la compatibilidad con la consola serie interactiva.

Gravedad: media

Asegúrese de que la marca de base de datos "log_duration" de la instancia de PostgreSQL de Cloud SQL esté establecida en "activada".

Descripción: habilitar la configuración de log_hostname hace que se registre la duración de cada instrucción completada. Esto no registra el texto de la consulta y, por tanto, se comporta diferente de la marca log_min_duration_statement. Este parámetro no se puede cambiar después del inicio de sesión. La supervisión del tiempo necesario para ejecutar las consultas puede ser fundamental para identificar cualquier consulta que acapare recursos y evaluar el rendimiento del servidor. Se pueden tomar pasos adicionales, como el equilibrio de carga y el uso de consultas optimizadas, para garantizar el rendimiento y la estabilidad del servidor. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que la marca de base de datos "log_executor_stats" de la instancia de PostgreSQL de Cloud SQL esté establecida en "desactivada".

Descripción: el ejecutor de PostgreSQL es responsable de ejecutar el plan entregado por el planificador de PostgreSQL. El ejecutor procesa el plan de forma recursiva para extraer el conjunto necesario de filas. La marca "log_executor_stats" controla la inclusión de las estadísticas de rendimiento del ejecutor de PostgreSQL en los registros de PostgreSQL para cada consulta. La marca "log_executor_stats" permite un método de generación de perfiles bruto para registrar estadísticas de rendimiento del ejecutor de PostgreSQL, lo que, aunque puede ser útil para solucionar problemas, puede aumentar significativamente la cantidad de registros y tener una sobrecarga de rendimiento. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que la marca de base de datos "log_min_error_statement" de la instancia de PostgreSQL de Cloud SQL esté establecida en "Error" o más estricta.

Descripción: la marca "log_min_error_statement" define el nivel mínimo de gravedad del mensaje que se considera una instrucción de error. Los mensajes de las instrucciones de error se registran con la instrucción SQL. Los valores válidos incluyen "DEBUG5", "DEBUG4", "DEBUG3", "DEBUG2", "DEBUG1", "INFO", "NOTICE", "WARNING", "ERROR", "LOG", "FATAL" y "PANIC". Cada nivel de gravedad incluye los niveles posteriores mencionados anteriormente. Asegúrese de que se establezca un valor de ERROR o más estricto. La auditoría ayuda a solucionar problemas operativos y también permite el análisis forense. Si "log_min_error_statement" no está establecido en el valor correcto, es posible que los mensajes no se clasifiquen como mensajes de error correctamente. Teniendo en cuenta los mensajes de registro generales como mensajes de error sería difícil encontrar errores reales y considerar solo los niveles de gravedad más estrictos, ya que los mensajes de error podrían omitir los errores reales para registrar sus instrucciones SQL. La marca "log_min_error_statement" se debe establecer en "ERROR" o más estricta. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que la marca de base de datos "log_parser_stats" de la instancia de PostgreSQL de Cloud SQL esté establecida en "desactivada".

Descripción: el planificador o optimizador de PostgreSQL es responsable de analizar y comprobar la sintaxis de cada consulta recibida por el servidor. Si la sintaxis es correcta, se genera un "árbol de análisis"; de lo contrario, se genera un error. La marca "log_parser_stats" controla la inclusión de las estadísticas de rendimiento del analizador en los registros de PostgreSQL para cada consulta. La marca "log_parser_stats" permite un método de generación de perfiles crudo para registrar estadísticas de rendimiento del analizador, que aunque pueden ser útiles para solucionar problemas, puede aumentar significativamente la cantidad de registros y tener una sobrecarga de rendimiento. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que la marca de base de datos "log_planner_stats" para la instancia de PostgreSQL de Cloud SQL esté establecida como "desactivada".

Descripción: la misma consulta SQL se puede ejecutar de varias maneras y seguir produciendo resultados diferentes. El planificador u optimizador de PostgreSQL es responsable de crear un plan de ejecución óptimo para cada consulta. La marca "log_planner_stats" controla la inclusión de las estadísticas de rendimiento del planificador de PostgreSQL en los registros de PostgreSQL para cada consulta. La marca "log_planner_stats" permite un método de generación de perfiles crudo para registrar estadísticas de rendimiento de PostgreSQL Planner, lo que, aunque puede ser útil para solucionar problemas, podría aumentar significativamente la cantidad de registros y tener una sobrecarga de rendimiento. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que la marca de base de datos "log_statement_stats" para la instancia de PostgreSQL de Cloud SQL esté establecida como "desactivada".

Descripción: la marca "log_statement_stats" controla la inclusión de estadísticas de rendimiento de un extremo a otro de una consulta SQL en los registros de PostgreSQL para cada consulta. No se puede habilitar con otras estadísticas de módulo (log_parser_stats, log_planner_stats, log_executor_stats). La marca "log_statement_stats" permite un método de generación de perfiles en bruto para registrar las estadísticas de rendimiento completas de una consulta SQL. Esto puede ser útil para solucionar problemas, pero puede aumentar significativamente la cantidad de registros y tener una sobrecarga de rendimiento. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que las instancias de Compute no tengan direcciones IP públicas.

Descripción: las instancias de proceso no deben configurarse para tener direcciones IP externas. Para reducir la superficie expuesta a ataques, las instancias de proceso no deben tener direcciones IP públicas. En su lugar, las instancias se deben configurar detrás de equilibradores de carga para minimizar la exposición de la instancia a Internet. Las instancias creadas por GKE deben excluirse porque algunas de ellas tienen direcciones IP externas y no se pueden cambiar editando la configuración de la instancia. Estas máquinas virtuales tienen nombres que empiezan por gke- y se etiquetan como goog-gke-node.

Gravedad: alta

Asegúrese de que las instancias no estén configuradas para usar la cuenta de servicio predeterminada.

Descripción: se recomienda configurar la instancia para que no use la cuenta de servicio predeterminada del motor de proceso porque tiene el rol Editor en el proyecto. La cuenta de servicio predeterminada de Compute Engine tiene el rol Editor en el proyecto, lo que permite el acceso de lectura y escritura a la mayoría de los servicios en la nube de Google. Para defenderse contra las escalaciones de privilegios si la máquina virtual está en peligro y evitar que un atacante obtenga acceso a todo el proyecto, se recomienda no usar la cuenta de servicio predeterminada del motor de proceso. En su lugar, debe crear una nueva cuenta de servicio y asignar solo los permisos necesarios para la instancia. La cuenta de servicio predeterminada del motor de proceso se denomina [PROJECT_NUMBER]- compute@developer.gserviceaccount.com. Se deben excluir las máquinas virtuales creadas por GKE. Estas máquinas virtuales tienen nombres que empiezan por gke- y se etiquetan como goog-gke-node.

Gravedad: alta

Asegúrese de que las instancias no estén configuradas para usar la cuenta de servicio predeterminada con acceso completo a todas las API de Cloud.

Descripción: para admitir el principio de privilegios mínimos y evitar la posible elevación de privilegios, se recomienda que las instancias no estén asignadas a la cuenta de servicio predeterminada "Cuenta de servicio predeterminada del motor de proceso" con ámbito "Permitir el acceso total a todas las API en la nube". Junto con la capacidad de crear, administrar y usar cuentas de servicio personalizadas administradas por el usuario, Google Compute Engine proporciona la cuenta de servicio predeterminada "Cuenta de servicio predeterminada de Compute Engine" para una instancia de para acceder a los servicios en la nube necesarios. El rol "Editor del proyecto" se asigna a la "cuenta de servicio predeterminada de Compute Engine", por lo tanto, esta cuenta de servicio tiene casi todas las funcionalidades en todos los servicios en la nube, excepto la facturación. Sin embargo, cuando "cuenta de servicio predeterminada del motor de proceso" asignada a una instancia puede funcionar en tres ámbitos.

  1. Permitir acceso predeterminado: solo permite el acceso mínimo necesario para ejecutar una instancia (privilegios mínimos).
  2. Permitir el acceso total a todas las API en la nube: permita el acceso completo a todas las API o servicios en la nube (demasiado acceso).
  3. Establecer el acceso para cada API: permite que el administrador de instancias elija solo las API necesarias para realizar funciones empresariales específicas esperadas por instancia Cuando una instancia está configurada con "Cuenta de servicio predeterminada del motor de proceso" con ámbito "Permitir el acceso completo a todas las API en la nube", en función de los roles de IAM asignados a la instancia de acceso de los usuarios, podría permitir que el usuario realice operaciones en la nube o llamadas API que el usuario no suponga que realice una escalación de privilegios correcta. Se deben excluir las máquinas virtuales creadas por GKE. Estas máquinas virtuales tienen nombres que empiezan por "gke-" y se etiquetan como "goog-gke-node".

Gravedad: media

Asegúrese de que el reenvío de IP no esté habilitado en las instancias.

Descripción: la instancia del motor de proceso no puede reenviar un paquete a menos que la dirección IP de origen del paquete coincida con la dirección IP de la instancia. Del mismo modo, GCP no entregará un paquete cuya dirección IP de destino sea diferente de la dirección IP de la instancia que recibe el paquete. Sin embargo, ambas funcionalidades son necesarias si desea usar instancias para ayudar a enrutar los paquetes. Se debe deshabilitar el reenvío de paquetes de datos para evitar la pérdida de datos o la divulgación de información. La instancia del motor de proceso no puede reenviar un paquete a menos que la dirección IP de origen del paquete coincida con la dirección IP de la instancia. Del mismo modo, GCP no entregará un paquete cuya dirección IP de destino sea diferente de la dirección IP de la instancia que recibe el paquete. Sin embargo, ambas funcionalidades son necesarias si desea usar instancias para ayudar a enrutar los paquetes. Para habilitar esta comprobación ip de origen y destino, deshabilite el campo canIpForward, que permite que una instancia envíe y reciba paquetes con direcciones IP de origen o destino no coincidentes.

Gravedad: media

Asegúrese de que la marca de la base de datos "log_checkpoints" para la instancia de PostgreSQL de Cloud SQL esté establecida en "activada".

Descripción: asegúrese de que la marca de base de datos log_checkpoints de la instancia de Sql PostgreSQL en la nube esté establecida en activado. Al habilitar log_checkpoints, los puntos de control y los puntos de reinicio se registran en el registro del servidor. Se incluyen algunas estadísticas en los mensajes de registro, incluido el número de búferes escritos y el tiempo dedicado a escribirlos. Este parámetro solo se puede configurar en el archivo postgresql.conf o en la línea de comandos del servidor. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que la marca de la base de datos "log_lock_waits" para la instancia de PostgreSQL de Cloud SQL esté establecida en "activada".

Descripción: al habilitar la marca "log_lock_waits" para una instancia de PostgreSQL se crea un registro para las esperas de sesión que tardan más tiempo que el tiempo asignado "deadlock_timeout" para adquirir un bloqueo. El tiempo de espera del interbloqueo define el tiempo de espera en un bloqueo antes de comprobar si hay condiciones. Las excesos frecuentes en el tiempo de espera del interbloqueo pueden ser un indicador de un problema subyacente. Para registrar tales esperas en bloqueos, se puede habilitar la marca de log_lock_waits para identificar un rendimiento deficiente debido a retrasos de bloqueo o si un SQL especialmente diseñado intenta estrellar recursos a través de bloqueos durante una cantidad excesiva de tiempo. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que la marca de base de datos "log_min_duration_statement" para la instancia de PostgreSQL de Cloud SQL esté establecida en "-1".

Descripción: la marca "log_min_duration_statement" define la cantidad mínima de tiempo de ejecución de una instrucción en milisegundos donde se registra la duración total de la instrucción. Asegúrese de que "log_min_duration_statement" está deshabilitado; es decir, se establece un valor de -1. Las instrucciones SQL de registro pueden incluir información confidencial que no se debe registrar en los registros. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que la marca de base de datos "log_min_messages" para la instancia de PostgreSQL de Cloud SQL esté establecida correctamente.

Descripción: la marca "log_min_error_statement" define el nivel mínimo de gravedad del mensaje que se considera una instrucción de error. Los mensajes de las instrucciones de error se registran con la instrucción SQL. Los valores válidos incluyen "DEBUG5", "DEBUG4", "DEBUG3", "DEBUG2", "DEBUG1", "INFO", "NOTICE", "WARNING", "ERROR", "LOG", "FATAL" y "PANIC". Cada nivel de gravedad incluye los niveles posteriores mencionados anteriormente. Nota: Para desactivar eficazmente el registro de las instrucciones con errores, establezca este parámetro en PANIC. La configuración ERROR se considera el procedimiento recomendado. Solo se deben realizar cambios de acuerdo con la directiva de registro de la organización. La auditoría ayuda a solucionar problemas operativos y también permite el análisis forense. Si "log_min_error_statement" no está establecido en el valor correcto, es posible que los mensajes no se clasifiquen como mensajes de error correctamente. Teniendo en cuenta los mensajes de registro generales como mensajes de error, sería difícil encontrar errores reales, mientras que considerar solo los niveles de gravedad más estrictos, ya que los mensajes de error podrían omitir los errores reales para registrar sus instrucciones SQL. La marca "log_min_error_statement" se debe establecer de acuerdo con la directiva de registro de la organización. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que la marca de base de datos "log_temp_files" para la instancia de SQL PostgreSQL en la nube esté establecida en "0".

Descripción: PostgreSQL puede crear un archivo temporal para acciones como la ordenación, el hash y los resultados de consultas temporales cuando estas operaciones superan "work_mem". La marca "log_temp_files" controla los nombres de registro y el tamaño del archivo cuando se elimina. La configuración de "log_temp_files" en 0 hace que se registre toda la información del archivo temporal, mientras que los valores positivos registran solo los archivos cuyo tamaño es mayor o igual que el número especificado de kilobytes. Un valor de "-1" deshabilita el registro de la información de los archivos temporales. Si no se registran todos los archivos temporales, puede ser más difícil identificar posibles problemas de rendimiento que podrían deberse a errores de codificación de aplicaciones deficientes o intentos deliberados de colapso de recursos.

Gravedad: baja

Asegúrese de que los discos de VM de las VM críticas estén cifrados con claves de cifrado suministradas por el cliente.

Descripción: Las claves de cifrado proporcionadas por el cliente (CSEK) son una característica de Google Cloud Storage y Google Compute Engine. Si proporciona sus propias claves de cifrado, Google usa esas claves para proteger las claves generadas por Google que se usan para cifrar y descifrar los datos. De manera predeterminada, Google Compute Engine cifra todos los datos en reposo. Compute Engine controla y administra este cifrado automáticamente sin ninguna acción adicional por su parte. Sin embargo, si desea controlar y administrar este cifrado usted mismo, puede proporcionar sus propias claves de cifrado. De manera predeterminada, Google Compute Engine cifra todos los datos en reposo. Compute Engine controla y administra este cifrado automáticamente sin ninguna acción adicional por su parte. Sin embargo, si desea controlar y administrar este cifrado usted mismo, puede proporcionar sus propias claves de cifrado. Si proporciona sus propias claves de cifrado, Compute Engine usa esas claves para proteger las claves generadas por Google que se usan para cifrar y descifrar los datos. Solo los usuarios que puedan proporcionar la clave correcta pueden usar los recursos protegidos por una clave de cifrado proporcionada por el cliente. Google no almacena las claves en sus servidores y no puede acceder a los datos protegidos a menos que proporcione la clave. Esto también significa que si olvidas o pierdes tu clave, no hay forma de que Google recupere la clave o recupere los datos cifrados con la clave perdida. Al menos las máquinas virtuales críticas para la empresa deben tener discos de máquina virtual cifrados con CSEK.

Gravedad: media

Los proyectos de GCP deben tener habilitado el aprovisionamiento automático de Azure Arc.

Descripción: para obtener visibilidad completa del contenido de seguridad de Microsoft Defender para servidores, las instancias de máquina virtual de GCP deben estar conectadas a Azure Arc. Para asegurarse de que todas las instancias de máquina virtual aptas reciban automáticamente Azure Arc, habilite el aprovisionamiento automático desde Defender for Cloud en el nivel de proyecto de GCP. Obtenga más información sobre Azure Arc y Microsoft Defender para servidores.

Gravedad: alta

Las instancias de máquina virtual de GCP deben estar conectadas a Azure Arc.

Descripción: Conectar las máquinas virtuales de GCP a Azure Arc con el fin de tener visibilidad completa del contenido de seguridad de Microsoft Defender para servidores. Obtenga más información sobre Azure Arc y Microsoft Defender para servidores en un entorno híbrido.

Gravedad: alta

Las instancias de máquina virtual de GCP deben tener instalado el agente de configuración del sistema operativo.

Descripción: para recibir las funcionalidades completas de Defender for Servers mediante el aprovisionamiento automático de Azure Arc, las máquinas virtuales de GCP deben tener habilitado el agente de configuración del sistema operativo.

Gravedad: alta

La característica de reparación automática del clúster de GKE debe estar habilitada.

Descripción: esta recomendación evalúa la propiedad de administración de un grupo de nodos para el par clave-valor, "key": "autoRepair", "value": true.

Gravedad: media

La característica de actualización automática del clúster de GKE debe estar habilitada.

Descripción: esta recomendación evalúa la propiedad de administración de un grupo de nodos para el par clave-valor, "clave": "autoUpgrade", "value": true.

Gravedad: alta

La supervisión en los clústeres de GKE debe estar habilitada.

Descripción: esta recomendación evalúa si la propiedad monitoringService de un clúster contiene la ubicación que la supervisión en la nube debe usar para escribir métricas.

Gravedad: media

Recomendaciones de contenedor de GCP

[Versión preliminar] Las imágenes de contenedor en el registro de GCP deben tener resueltos los resultados de vulnerabilidades

Descripción: Defender for Cloud examina las imágenes del registro en busca de vulnerabilidades conocidas (CVE) y proporciona conclusiones detalladas para cada imagen escaneada. El examen y la corrección de vulnerabilidades de imágenes de contenedor en el registro ayudan a mantener una cadena de suministro de software segura y confiable, reduce el riesgo de incidentes de seguridad y garantiza el cumplimiento de los estándares del sector.

Gravedad: alta

Tipo: Evaluación de vulnerabilidades

[Versión preliminar] Los contenedores que se ejecutan en GCP deben tener resueltos los resultados de vulnerabilidad

Descripción: Defender for Cloud crea un inventario de todas las cargas de trabajo de contenedor que se ejecutan actualmente en los clústeres de Kubernetes y proporciona informes de vulnerabilidades para esas cargas de trabajo mediante la coincidencia de las imágenes que se usan y los informes de vulnerabilidades creados para las imágenes del Registro. El examen y la corrección de vulnerabilidades de las cargas de trabajo de contenedor es fundamental para garantizar una cadena de suministro de software sólida y segura, reducir el riesgo de incidentes de seguridad y garantizar el cumplimiento de los estándares del sector.

Gravedad: alta

Tipo: Evaluación de vulnerabilidades

La configuración avanzada de Defender para contenedores debe estar habilitada en los conectores de GCP.

Descripción: Microsoft Defender para contenedores proporciona funcionalidades de seguridad de Kubernetes nativas de la nube, como la protección del entorno, la protección de cargas de trabajo y la protección en tiempo de ejecución. Para asegurarse de que la solución esté aprovisionada correctamente y que el conjunto completo de funcionalidades esté disponible, habilite todas las opciones de configuración avanzadas.

Gravedad: alta

Los clústeres de GKE deben tener instalada la extensión de Microsoft Defender para Azure Arc.

Descripción: la extensión de clúster de Microsoft Defender proporciona funcionalidades de seguridad para los clústeres de GKE. La extensión recopila datos de un clúster y sus nodos para identificar amenazas y vulnerabilidades de seguridad. La extensión funciona con Kubernetes habilitado para Azure Arc. Obtenga más información sobre las características de seguridad de Microsoft Defender for Cloud para los entornos contenedorizados.

Gravedad: alta

Los clústeres de GKE deben tener instalada la extensión de Azure Policy.

Descripción: la extensión de Azure Policy para Kubernetes amplía Gatekeeper v3, un webhook de controlador de admisión para open Policy Agent (OPA), para aplicar medidas de seguridad y cumplimiento a escala en los clústeres de una manera centralizada y coherente. La extensión funciona con Kubernetes habilitado para Azure Arc.

Gravedad: alta

Microsoft Defender para contenedores debe estar habilitado en los conectores de GCP.

Descripción: Microsoft Defender para contenedores proporciona funcionalidades de seguridad de Kubernetes nativas de la nube, como la protección del entorno, la protección de cargas de trabajo y la protección en tiempo de ejecución. Habilite el plan de contenedores en el conector de GCP para proteger la seguridad de los clústeres de Kubernetes y corregir los problemas de seguridad. Más información sobre Microsoft Defender for Containers

Gravedad: alta

La característica de reparación automática del clúster de GKE debe estar habilitada.

Descripción: esta recomendación evalúa la propiedad de administración de un grupo de nodos para el par clave-valor, "key": "autoRepair", "value": true.

Gravedad: media

La característica de actualización automática del clúster de GKE debe estar habilitada.

Descripción: esta recomendación evalúa la propiedad de administración de un grupo de nodos para el par clave-valor, "clave": "autoUpgrade", "value": true.

Gravedad: alta

La supervisión en los clústeres de GKE debe estar habilitada.

Descripción: esta recomendación evalúa si la propiedad monitoringService de un clúster contiene la ubicación que la supervisión en la nube debe usar para escribir métricas.

Gravedad: media

El registro de clústeres de GKE debe estar habilitado.

Descripción: esta recomendación evalúa si la propiedad loggingService de un clúster contiene la ubicación que el registro en la nube debe usar para escribir registros.

Gravedad: alta

El panel web de GKE debe estar deshabilitado.

Descripción: esta recomendación evalúa el campo kubernetesDashboard de la propiedad addonsConfig para el par clave-valor, "disabled": false.

Gravedad: alta

La autorización heredada debe estar deshabilitada en los clústeres de GKE.

Descripción: esta recomendación evalúa la propiedad legacyAbac de un clúster para el par clave-valor, "enabled": true.

Gravedad: alta

Las redes autorizadas del plano de control deben estar habilitadas en los clústeres de GKE.

Descripción: esta recomendación evalúa la propiedad masterAuthorizedNetworksConfig de un clúster para el par clave-valor, "enabled": false.

Gravedad: alta

Los clústeres de GKE deben tener habilitados los intervalos IP de alias.

Descripción: esta recomendación evalúa si el campo useIPAliases de ipAllocationPolicy en un clúster está establecido en false.

Gravedad: baja

Los clústeres de GKE deben tener habilitados los clústeres privados.

Descripción: esta recomendación evalúa si el campo enablePrivateNodes de la propiedad privateClusterConfig está establecido en false.

Gravedad: alta

La directiva de red debe estar habilitada en los clústeres de GKE.

Descripción: esta recomendación evalúa el campo networkPolicy de la propiedad addonsConfig para el par clave-valor, "disabled": true.

Gravedad: media

Recomendaciones del plano de datos

Todas las recomendaciones de seguridad del plano de datos de Kubernetes se admiten para GCP después de habilitar Azure Policy para Kubernetes.

Recomendaciones de datos de GCP

Asegúrese de que la marca de base de datos "3625 (marca de seguimiento)" de la instancia de SQL Server de Cloud SQL esté establecida en "desactivada".

Descripción: se recomienda establecer la marca de base de datos "3625 (marca de seguimiento)" para la instancia de SQL Server en la nube en "desactivado". Las marcas de seguimiento se usan con frecuencia para diagnosticar problemas de rendimiento o para depurar procedimientos almacenados o sistemas informáticos complejos, pero también pueden recomendarse por Soporte técnico de Microsoft para abordar el comportamiento que afecta negativamente a una carga de trabajo específica. Todas las marcas de seguimiento documentadas y las recomendadas por Soporte técnico de Microsoft son totalmente compatibles en un entorno de producción cuando se usan como se indica. "3625(registro de seguimiento)" Limita la cantidad de información devuelta a los usuarios que no son miembros del rol fijo de servidor sysadmin, enmascarando los parámetros de algunos mensajes de error mediante "******". Esto puede ayudar a evitar la divulgación de información confidencial. Por lo tanto, se recomienda deshabilitar esta marca. Esta recomendación es aplicable a las instancias de base de datos SQL Server.

Gravedad: media

Asegúrese de que la marca de base de datos "scripts externos habilitados" de la instancia de SQL Server de Cloud SQL esté establecida en "desactivada".

Descripción: se recomienda establecer la marca de base de datos "scripts externos habilitados" para que la instancia de SQL Server en la nube se desactive. La marca "scripts externos habilitados" permite la ejecución de scripts con determinadas extensiones de lenguaje remoto. Esta propiedad está DESACTIVADA de forma predeterminada. El programa de instalación, opcionalmente, puede establecer esta propiedad en true si Advanced Analytics Services (Servicios de análisis avanzado) está instalado. Dado que la característica "Scripts externos habilitados" permite ejecutar scripts externos a SQL, como archivos ubicados en una biblioteca de R, lo que podría afectar negativamente a la seguridad del sistema, está opción se debe deshabilitar. Esta recomendación es aplicable a las instancias de base de datos SQL Server.

Gravedad: alta

Asegúrese de que la marca de base de datos "acceso remoto" de la instancia de SQL Server de Cloud SQL esté establecida en "desactivada".

Descripción: se recomienda establecer la marca de base de datos "acceso remoto" para la instancia de SQL Server en la nube en "desactivado". La opción "acceso remoto" controla la ejecución de procedimientos almacenados desde servidores locales o remotos en los que se ejecutan instancias de SQL Server. El valor predeterminado para esta opción es 1. Este valor concede el permiso para ejecutar los procedimientos almacenados locales desde servidores remotos o los procedimientos almacenados remotos desde el servidor local. Para evitar que los procedimientos almacenados locales se ejecuten desde un servidor remoto o que los procedimientos almacenados remotos se ejecuten en el servidor local, se debe deshabilitar esta opción. La opción Acceso remoto controla la ejecución de los procedimientos almacenados locales en servidores remotos o procedimientos almacenados remotos en el servidor local. Sería posible abusar de la funcionalidad "Acceso remoto" para iniciar un ataque por denegación de servicio (DoS) en servidores remotos mediante la descarga del procesamiento de consultas en un destino, por lo que se debe deshabilitar esta opción. Esta recomendación es aplicable a las instancias de base de datos SQL Server.

Gravedad: alta

Asegúrese de que la marca de base de datos "skip_show_database" de la instancia de Mysql de Cloud SQL esté establecida en "activado".

Descripción: se recomienda establecer la marca de base de datos "skip_show_database" para la instancia de Mysql de SQL en "activado". La marca de base de datos "skip_show_database" impide que las personas usen la instrucción SHOW DATABASES si no tienen el privilegio SHOW DATABASES. Esto puede mejorar la seguridad si tiene dudas sobre si los usuarios pueden ver las bases de datos que pertenecen a otros usuarios. Su efecto depende del privilegio SHOW DATABASES: si el valor de la variable es ON, la instrucción SHOW DATABASES solo se permite a los usuarios que tienen el privilegio SHOW DATABASES y la instrucción muestra todos los nombres de base de datos. Si el valor es OFF, se permite la instrucción SHOW DATABASES a todos los usuarios, pero muestra los nombres solo de las bases de datos para las que el usuario tiene el privilegio SHOW DATABASES u otros privilegios. Esta recomendación es aplicable a las instancias de base de datos Mysql.

Gravedad: baja

Asegúrese de que se especifique una clave de cifrado administrada por el cliente (CMEK) predeterminada para todos los conjuntos de datos de BigQuery.

Descripción: BigQuery cifra de forma predeterminada los datos como reposo mediante el uso del cifrado de sobre mediante claves criptográficas administradas por Google. Los datos se cifran mediante las claves de cifrado de datos y las claves de cifrado de datos se cifran aún más mediante claves de cifrado de claves. Esto no supone problemas y no requiere ninguna entrada adicional del usuario. Sin embargo, si desea tener un mayor control, se pueden usar las claves de cifrado administradas por el cliente (CMEK) como solución de administración de claves de cifrado para conjuntos de datos de BigQuery. BigQuery cifra de manera predeterminada los datos en reposo mediante Envelope Encryption con claves criptográficas administradas por Google. Esto es sin problemas y no requiere ninguna entrada adicional del usuario. Para tener un mayor control sobre el cifrado, se pueden usar las claves de cifrado administradas por el cliente (CMEK) como solución de administración de claves de cifrado para conjuntos de datos de BigQuery. Al establecer una clave de cifrado administrada por el cliente (CMEK) predeterminada para un conjunto de datos, asegúrese de que las tablas creadas en el futuro usarán la clave CMEK especificada si no se proporciona ninguna otra. Nota: Google no almacena las claves en sus servidores y no puede acceder a los datos protegidos a menos que proporcione la clave. Esto también significa que si olvidas o pierdes tu clave, no hay forma de que Google recupere la clave o recupere los datos cifrados con la clave perdida.

Gravedad: media

Asegúrese de que todas las tablas BigQuery estén cifradas con la clave de cifrado administrada por el cliente (CMEK).

Descripción: BigQuery cifra de forma predeterminada los datos como reposo mediante el uso del cifrado de sobre mediante claves criptográficas administradas por Google. Los datos se cifran mediante las claves de cifrado de datos y las claves de cifrado de datos se cifran aún más mediante claves de cifrado de claves. Esto no supone problemas y no requiere ninguna entrada adicional del usuario. Sin embargo, si desea tener un mayor control, se pueden usar las claves de cifrado administradas por el cliente (CMEK) como solución de administración de claves de cifrado para conjuntos de datos de BigQuery. Si se usa CMEK, CMEK se usa para cifrar las claves de cifrado de datos en lugar de usar claves de cifrado administradas por Google. BigQuery cifra de manera predeterminada los datos en reposo mediante Envelope Encryption con claves criptográficas administradas por Google. Esto es sin problemas y no requiere ninguna entrada adicional del usuario. Para tener un mayor control sobre el cifrado, se pueden usar las claves de cifrado administradas por el cliente (CMEK) como solución de administración de claves de cifrado para las tablas de BigQuery. CMEK se usa para cifrar las claves de cifrado de datos en lugar de usar claves de cifrado administradas por Google. BigQuery almacena la tabla y la asociación de CMEK, y el cifrado y el descifrado se realizan automáticamente. La aplicación de las claves administradas por el cliente predeterminadas en conjuntos de datos de BigQuery garantiza que todas las tablas nuevas creadas en el futuro se cifrarán mediante CMEK, pero las tablas existentes se deben actualizar para usar CMEK individualmente. Nota: Google no almacena las claves en sus servidores y no puede acceder a los datos protegidos a menos que proporcione la clave. Esto también significa que si olvidas o pierdes tu clave, no hay forma de que Google recupere la clave o recupere los datos cifrados con la clave perdida.

Gravedad: media

Asegúrese de que los conjuntos de datos de BigQuery no sean accesibles de forma anónima o pública.

Descripción: se recomienda que la directiva de IAM en conjuntos de datos de BigQuery no permita el acceso anónimo o público. Conceder permisos a allUsers o a allAuthenticatedUsers permite a cualquier usuario acceder al conjunto de datos. Es posible que este acceso no sea deseable si se almacenan datos confidenciales en el conjunto de datos. Por lo tanto, asegúrese de que no se permite el acceso anónimo o público a un conjunto de datos.

Gravedad: alta

Asegúrese de que las instancias de base de datos de Cloud SQL estén configuradas con copias de seguridad automatizadas.

Descripción: se recomienda tener todas las instancias de SQL Database establecidas para habilitar copias de seguridad automatizadas. Las copias de seguridad proporcionan una manera de restaurar una instancia de Cloud SQL para recuperar los datos perdidos o recuperarse de un problema con esa instancia. Se deben establecer las copias de seguridad automatizadas para cualquier instancia que contenga datos que se deben proteger frente a pérdidas o daños. Esta recomendación es aplicable a las instancias de SQL Server, PostgreSql, MySql generation 1 y MySql generation 2.

Gravedad: alta

Asegúrese de que las instancias de base de datos de Cloud SQL no estén abiertas públicamente.

Descripción: El servidor de bases de datos solo debe aceptar conexiones de redes de confianza/direcciones IP y restringir el acceso del mundo. Para minimizar la superficie expuesta a ataques en una instancia del servidor de base de datos, solo se deben aprobar direcciones IP de confianza o conocidas y necesarias para conectarse a ella. Una red autorizada no debe tener direcciones IP/redes configuradas en "0.0.0.0.0/0", lo que permitirá el acceso a la instancia desde cualquier lugar del mundo. Tenga en cuenta que las redes autorizadas solo se aplican a instancias con direcciones IP públicas.

Gravedad: alta

Asegúrese de que las instancias de base de datos de Cloud SQL no tengan direcciones IP públicas.

Descripción: se recomienda configurar la instancia de Sql de segunda generación para usar direcciones IP privadas en lugar de direcciones IP públicas. Para reducir la superficie expuesta a ataques de la organización, las bases de datos SQL en la nube no deben tener direcciones IP públicas. Las direcciones IP privadas proporcionan una seguridad de red mejorada y una menor latencia para la aplicación.

Gravedad: alta

Asegúrese de que el cubo de Cloud Storage no sea accesible de forma anónima o pública.

Descripción: se recomienda que la directiva de IAM en el cubo de Almacenamiento en la nube no permita el acceso anónimo o público. Permitir el acceso anónimo o público concede permisos a cualquier persona para acceder al contenido del cubo. Es posible que no se desee este acceso si está almacenando datos confidenciales. Por lo tanto, asegúrese de que no se permite el acceso anónimo o público a un cubo.

Gravedad: alta

Asegúrese de que los cubos de Cloud Storage tengan habilitado un acceso uniforme a nivel de cubo

Descripción: se recomienda que el acceso uniforme de nivel de cubo esté habilitado en los cubos de Almacenamiento en la nube. Se recomienda usar el acceso uniforme de nivel de cubo para unificar y simplificar cómo conceder acceso a los recursos de Almacenamiento en la nube. Cloud Storage ofrece dos sistemas para conceder a los usuarios permiso para acceder a los cubos y los objetos: Cloud Identity and Access Management (Cloud IAM) y listas de control de acceso (ACL).
Estos sistemas actúan en paralelo: para que un usuario acceda a un recurso de Cloud Storage, solo es necesario que uno de los sistemas conceda el permiso de usuario. Cloud IAM se usa en Google Cloud y le permite conceder una variedad de permisos en los niveles de cubo y de proyecto. Las ACL solo se usan en Cloud Storage y tienen opciones de permisos limitadas, pero permiten conceder permisos por cada objeto.

Para admitir un sistema de permisos uniforme, Cloud Storage tiene acceso uniforme de nivel de cubo. El uso de esta característica deshabilita las ACL para todos los recursos de Cloud Storage: el acceso a los recursos de Cloud Storage se concede exclusivamente mediante Cloud IAM. La habilitación del acceso uniforme de nivel de cubo garantiza que, si un cubo de Almacenamiento no es accesible públicamente, tampoco se puede acceder públicamente a ningún objeto del cubo.

Gravedad: media

Asegúrese de que las instancias de proceso tengan habilitada la computación confidencial.

Descripción: Google Cloud cifra los datos en reposo y en tránsito, pero los datos de los clientes deben descifrarse para su procesamiento. La computación confidencial es una tecnología innovadora que cifra los datos en uso mientras se procesan. Los entornos de computación confidencial mantienen los datos cifrados en memoria y en otros lugares fuera de la unidad de procesamiento central (CPU). Las máquinas virtuales confidenciales aprovechan la característica Secure Encrypted Virtualization (SEV) de las CPU EPYC de AMD. Los datos del cliente permanecerán cifrados mientras se usan, indexan, consultan o entrenan. Las claves de cifrado se generan en hardware, por cada máquina virtual y no se pueden exportar. Gracias a las optimizaciones de hardware integradas tanto del rendimiento como de la seguridad, no hay ninguna penalización significativa del rendimiento en las cargas de trabajo de computación confidencial. La computación confidencial permite el código confidencial de los clientes y otros datos cifrados en memoria durante el procesamiento. Google no tiene acceso a las claves de cifrado. La máquina virtual confidencial puede ayudar a aliviar los problemas sobre el riesgo relacionado con la dependencia de la infraestructura de Google o el acceso de los usuarios internos de Google a los datos de los clientes sin cifrar.

Gravedad: alta

Asegúrese de que las directivas de retención de los cubos de registro se hayan configurado mediante el bloqueo del cubo.

Descripción: al habilitar las directivas de retención en los cubos de registro, se protegerán los registros almacenados en depósitos de almacenamiento en la nube para que se sobrescriban o eliminen accidentalmente. Se recomienda configurar las directivas de retención y configurar el bloqueo de depósito en todos los cubos de almacenamiento que se usan como receptores de registro. Los registros se pueden exportar mediante la creación de uno o varios receptores que incluyan un filtro de registro y un destino. A medida que el registro de Stackdriver recibe nuevas entradas de registro, se comparan con cada receptor. Si una entrada de registro coincide con el filtro de un receptor, se escribe una copia de la entrada de registro en el destino. Los receptores se pueden configurar para exportar los registros en cubos de almacenamiento. Se recomienda configurar una directiva de retención de datos para estos cubos de almacenamiento en la nube y bloquear la directiva de retención de datos; por lo tanto, impide permanentemente que la directiva se reduzca o quite. De este modo, si el sistema se ve en peligro por parte de un atacante o un usuario interno malintencionado que quiere cubrir sus pistas, los registros de actividad se conservan definitivamente para las investigaciones forenses y de seguridad.

Gravedad: baja

Asegúrese de que la instancia de base de datos de Cloud SQL requiera que todas las conexiones entrantes usen SSL.

Descripción: se recomienda aplicar todas las conexiones entrantes a la instancia de SQL Database para usar SSL. SQL conexione de base de datos si se intercepta correctamente (MITM); puede revelar datos confidenciales, como credenciales, consultas de base de datos, salidas de consulta, etc. Por motivos de seguridad, se recomienda usar siempre el cifrado SSL al conectarse a la instancia. Esta recomendación es aplicable a las instancias de Postgresql, MySql generation 1 y MySql generation 2.

Gravedad: alta

Asegúrese de que la marca de base de datos "autenticación de base de datos independiente" para Cloud SQL en la instancia de SQL Server esté establecida en "desactivada".

Descripción: se recomienda establecer la marca de base de datos "autenticación de base de datos independiente" para CLOUD SQL en la instancia de SQL Server establecida en "desactivado". Una base de datos independiente incluye toda la configuración de la base de datos y los metadatos necesarios para definir la base de datos y no tiene dependencias de configuración en la instancia de la Motor de base de datos donde está instalada la base de datos. Los usuarios pueden conectarse a la base de datos sin autenticar un inicio de sesión en el nivel de Motor de base de datos. Aislar la base de datos del Motor de base de datos permite moverla fácilmente a otra instancia de SQL Server. Las bases de datos independientes tienen algunas amenazas únicas que los administradores de Motor de base de datos de SQL Server deben comprender y mitigar. La mayoría de las amenazas están relacionadas con el proceso de autenticación de USUARIO CON CONTRASEÑA, que traslada el límite de autenticación del nivel de motor de base de datos al nivel de base de datos; por lo tanto, se recomienda deshabilitar esta marca. Esta recomendación es aplicable a las instancias de base de datos SQL Server.

Gravedad: media

Asegúrese de que la marca de base de datos "encadenamiento de propiedad entre bases de datos" para la instancia de SQL Server de Cloud SQL esté establecida en "desactivada".

Descripción: se recomienda establecer la marca de base de datos "encadenamiento de propiedad entre bases de datos" para la instancia de SQL Server de SQL Server en la nube en "desactivado". Use la opción "propiedad entre bases de datos" para encadenar para configurar el encadenamiento de propiedad entre bases de datos para una instancia de Microsoft SQL Server. Esta opción del servidor permite controlar el encadenamiento de propiedad entre bases de datos en el nivel de base de datos o permitir el encadenamiento de propiedad entre bases de datos para todas las bases de datos. No se recomienda habilitar la "propiedad entre bases de datos" a menos que todas las bases de datos hospedadas por la instancia de SQL Server deben participar en el encadenamiento de propiedad entre bases de datos y tenga en cuenta las implicaciones de seguridad de esta configuración. Esta recomendación es aplicable a las instancias de base de datos SQL Server.

Gravedad: media

Asegúrese de que la marca de base de datos "local_infile" para una instancia de MySQL de Cloud SQL esté establecida en "desactivada".

Descripción: se recomienda establecer la marca de base de datos de local_infile para una instancia de MySQL de Cloud SQL en desactivado. La marca local_infile controla la funcionalidad LOCAL del lado servidor para las instrucciones LOAD DATA. En función de la configuración local_infile, el servidor rechaza o permite la carga de datos locales por parte de los clientes que tienen LOCAL habilitado en el lado cliente. Para hacer explícitamente que el servidor rechace las instrucciones LOAD DATA LOCAL (independientemente de cómo se configuren los programas y bibliotecas cliente en tiempo de compilación o en tiempo de ejecución), inicie mysqld con la opción local_infile deshabilitada. La opción local_infile también se puede establecer en tiempo de ejecución. Debido a problemas de seguridad asociados con la marca local_infile, se recomienda deshabilitarlo. Esta recomendación es aplicable a las instancias de base de datos MySQL.

Gravedad: media

Asegúrese de que haya un filtro de métricas de registro y alertas para detectar los cambios hechos en los permisos de IAM de Cloud Storage.

Descripción: se recomienda establecer un filtro de métricas y una alarma para los cambios de IAM del cubo de almacenamiento en la nube. La supervisión de los cambios en los permisos del cubo de almacenamiento en la nube podría reducir el tiempo necesario para detectar y corregir los permisos en los cubos y objetos de almacenamiento en la nube confidenciales dentro del cubo.

Gravedad: baja

Asegúrese de que haya un filtro de métricas de registro y alertas para detectar los cambios hechos en la configuración de la instancia de SQL.

Descripción: se recomienda establecer un filtro de métricas y una alarma para los cambios de configuración de la instancia de SQL. La supervisión de los cambios en la configuración de la instancia de SQL puede reducir el tiempo necesario para detectar y corregir errores de configuración realizados en SQL Server. A continuación se muestran algunas de las opciones configurables que podrían afectar a la posición de seguridad de una instancia de SQL:

  • Habilitación de copias de seguridad automáticas y alta disponibilidad: la configuración incorrecta podría afectar negativamente a la continuidad empresarial, la recuperación ante desastres y la alta disponibilidad.
  • Autorizar redes: la configuración incorrecta podría aumentar la exposición a redes que no son de confianza

Gravedad: baja

Asegúrese de que solo haya claves de cuenta de servicio administradas por GCP para cada cuenta de servicio.

Descripción: las cuentas de servicio administradas por el usuario no deben tener claves administradas por el usuario. Cualquier persona que tenga acceso a las claves podrá acceder a los recursos mediante la cuenta de servicio. Los servicios de Cloud Platform usan claves administradas por GCP, como App Engine y Compute Engine. Estas claves no se pueden descargar. Google mantendrá las claves y las rotará automáticamente aproximadamente cada semana. Las claves administradas por el usuario se crean, descargan y administran por parte de los usuarios. Expiran 10 años a partir de la creación. En el caso de las claves administradas por el usuario, el usuario debe tomar posesión de las actividades de administración de claves, entre las que se incluyen:

  • Almacenamiento de claves
  • Distribución de las claves
  • Revocación de claves
  • Rotación de claves
  • Protección de las claves ante usuarios no autorizados
  • Recuperación de claves

Incluso con las precauciones del propietario de la clave, las claves se pueden filtrar fácilmente por errores de desarrollo comunes, como comprobar las claves en el código fuente o dejarlas en el directorio Descargas, o dejarlas accidentalmente en blogs o canales de soporte técnico. Se recomienda evitar las claves de cuenta de servicio administradas por el usuario.

Gravedad: baja

Asegúrese de que la marca de base de datos "conexiones de usuario" para la instancia de SQL Server de Cloud SQL esté establecida de forma apropiada.

Descripción: se recomienda establecer la marca de base de datos "conexiones de usuario" para la instancia de SQL Server de Cloud SQL Server según el valor definido por la organización. La opción "conexiones de usuario" especifica el número máximo de conexiones de usuario simultáneas que se permiten en una instancia de SQL Server. El número real de conexiones de usuario permitidas también depende de la versión de SQL Server que use y también de los límites de la aplicación o de las aplicaciones y el hardware. SQL Server permite un máximo de 32.767 conexiones de usuario. Dado que las conexiones de usuario son una opción dinámica (autoconfiguración), SQL Server ajusta automáticamente el número máximo de conexiones de usuario a medida que se necesitan, hasta el valor máximo permitido. Por ejemplo, si solo 10 usuarios han iniciado una sesión, se asignan 10 objetos de conexión de usuario. En la mayoría de los casos, no es necesario cambiar el valor de esta opción. El valor predeterminado es 0, lo que significa que se permite un máximo de 32 767 conexiones de usuario. Esta recomendación es aplicable a las instancias de base de datos SQL Server.

Gravedad: baja

Asegúrese de que la marca de base de datos "opciones de usuario" para la instancia de SQL Server de Cloud SQL no esté configurada.

Descripción: se recomienda que no se debe configurar la marca de base de datos "opciones de usuario" para la instancia de SQL Server de SQL Server en la nube. La opción "opciones de usuario" especifica valores predeterminados globales para todos los usuarios. Hay establecida una lista de opciones de procesamiento de consultas predeterminadas para la duración de la sesión de trabajo de un usuario. La opción de opciones de usuario permite cambiar los valores predeterminados de las opciones SET (si la configuración predeterminada del servidor no es adecuada). El usuario puede suplantar estos valores predeterminados con la instrucción SET. Puede configurar la opción user options de manera dinámica para nuevos inicios de sesión. Después de cambiar la configuración de las opciones de usuario, las nuevas sesiones de inicio de sesión usan la nueva configuración; las sesiones de inicio de sesión actuales no se ven afectadas. Esta recomendación es aplicable a las instancias de base de datos SQL Server.

Gravedad: baja

El registro de clústeres de GKE debe estar habilitado.

Descripción: esta recomendación evalúa si la propiedad loggingService de un clúster contiene la ubicación que el registro en la nube debe usar para escribir registros.

Gravedad: alta

El control de versiones de objetos debe estar habilitado en los cubos de almacenamiento donde se configuran los receptores.

Descripción: esta recomendación evalúa si el campo habilitado de la propiedad de control de versiones del cubo está establecido en true.

Gravedad: alta

Las identidades sobreaprovisionadas en proyectos deben investigarse para reducir el índice de autorización de permisos (PCI).

Descripción: las identidades sobreaprovisionadas en los proyectos deben investigarse para reducir el Índice de creep de permisos (PCI) y para proteger la infraestructura. Reduzca el PCI quitando las asignaciones de permisos de alto riesgo sin usar. Pci elevado refleja el riesgo asociado a las identidades con permisos que superan su uso normal o necesario.

Gravedad: media

Los proyectos que tienen claves criptográficas no deben tener usuarios con permisos de Propietario.

Descripción: esta recomendación evalúa la directiva de permiso de IAM en los metadatos del proyecto para roles asignados a entidades de seguridad o propietario.

Gravedad: media

Los cubos de almacenamiento que se usan como receptores de registros no deben ser de acceso público.

Descripción: esta recomendación evalúa la directiva de IAM de un cubo para las entidades de seguridad allUsers o allAuthenticatedUsers, que conceden acceso público.

Gravedad: alta

Recomendaciones de GCP IdentityAndAccess

Las claves criptográficas no deben tener más de tres usuarios.

Descripción: esta recomendación evalúa las directivas de IAM para anillos de claves, proyectos y organizaciones, y recupera entidades de seguridad con roles que les permiten cifrar, descifrar o firmar datos mediante claves de KMS en la nube: roles/propietario, roles/cloudkms.cryptoKeyEncrypterDecrypter, roles/cloudkms.cryptoKeyEncrypter, roles/cloudkms.cryptoKeyDecrypter, roles/cloudkms.signerVerifier.

Gravedad: media

Asegúrese de que no se creen claves de API para un proyecto.

Descripción: las claves no son seguras porque se pueden ver públicamente, como desde dentro de un explorador, o se puede acceder a ellas en un dispositivo donde reside la clave. Se recomienda usar el flujo de autenticación estándar en su lugar.

Los riesgos de seguridad que provienen del uso de claves de API aparecen a continuación:

  1. Las claves de API son cadenas cifradas simples
  2. Las claves de API no identifican al usuario ni a la aplicación que realiza la solicitud de API.
  3. Las claves de API suelen ser accesibles para los clientes, lo que facilita la detección y el robo de una clave de API.

Para evitar el riesgo de seguridad en el uso de claves de API, se recomienda usar el flujo de autenticación estándar en su lugar.

Gravedad: alta

Asegúrese de que las claves de API estén restringidas a solo las API que necesite acceso la aplicación.

Descripción: las claves de API no son seguras porque se pueden ver públicamente, como desde dentro de un explorador, o se puede acceder a ellas en un dispositivo donde reside la clave. Se recomienda restringir las claves de API para usar (llamar) solo a las API que requiere una aplicación.

Los riesgos de seguridad que provienen del uso de claves de API aparecen a continuación:

  1. Las claves de API son cadenas cifradas simples
  2. Las claves de API no identifican al usuario ni a la aplicación que realiza la solicitud de API.
  3. Las claves de API suelen ser accesibles para los clientes, lo que facilita la detección y el robo de una clave de API.

A la luz de estos posibles riesgos, Google recomienda usar el flujo de autenticación estándar en lugar de claves de API. Sin embargo, hay casos limitados en los que las claves de API son más adecuadas. Por ejemplo, si hay una aplicación móvil que necesita usar google Cloud Translation API, pero no necesita un servidor back-end, las claves de API son la manera más sencilla de autenticarse en esa API.

Para reducir las superficies expuestas a ataques proporcionando privilegios mínimos, las claves de API se pueden restringir para usar (llamar) solo a las API requeridas por una aplicación.

Gravedad: alta

Asegúrese de que las claves de API estén restringidas para que solo puedan usarlas aplicaciones y hosts especificados.

Descripción: las claves sin restricciones no son seguras porque se pueden ver públicamente, como desde dentro de un explorador, o se puede acceder a ellas en un dispositivo donde reside la clave. Se recomienda restringir el uso de claves de API a hosts de confianza, referencias HTTP y aplicaciones.

Los riesgos de seguridad que provienen del uso de claves de API aparecen a continuación:

  1. Las claves de API son cadenas cifradas simples
  2. Las claves de API no identifican al usuario ni a la aplicación que realiza la solicitud de API.
  3. Las claves de API suelen ser accesibles para los clientes, lo que facilita la detección y el robo de una clave de API.

A la luz de estos posibles riesgos, Google recomienda usar el flujo de autenticación estándar en lugar de claves de API. Sin embargo, hay casos limitados en los que las claves de API son más adecuadas. Por ejemplo, si hay una aplicación móvil que necesita usar google Cloud Translation API, pero no necesita un servidor back-end, las claves de API son la manera más sencilla de autenticarse en esa API.

Para reducir los vectores de ataque, las claves de API solo se pueden restringir a hosts de confianza, referencias HTTP y aplicaciones.

Gravedad: alta

Asegúrese de que las claves de API cambien cada 90 días.

Descripción: se recomienda rotar las claves de API cada 90 días.

Los riesgos de seguridad que provienen del uso de claves de API se enumeran a continuación:

  1. Las claves de API son cadenas cifradas simples
  2. Las claves de API no identifican al usuario ni a la aplicación que realiza la solicitud de API.
  3. Las claves de API suelen ser accesibles para los clientes, lo que facilita la detección y el robo de una clave de API.

Debido a estos posibles riesgos, Google recomienda usar el flujo de autenticación estándar en lugar de claves de API. Sin embargo, hay casos limitados en los que las claves de API son más adecuadas. Por ejemplo, si hay una aplicación móvil que necesita usar google Cloud Translation API, pero no necesita un servidor back-end, las claves de API son la manera más sencilla de autenticarse en esa API.

Una vez que se roba una clave, no tiene expiración, lo que significa que se puede usar indefinidamente a menos que el propietario del proyecto revoque o vuelva a generar la clave. La rotación de claves de API reducirá la ventana de posibilidades para que se utilice una clave de acceso asociada a una cuenta en peligro o terminada.

Las claves de API se deben rotar para asegurarse de que no se puede acceder a los datos con una clave antigua que podría haberse perdido, descifrado o robado.

Gravedad: alta

Asegúrese de que las claves de cifrado de KMS cambien en un plazo de 90 días.

Descripción: Google Cloud Servicio de administración de claves almacena claves criptográficas en una estructura jerárquica diseñada para una administración de control de acceso útil y elegante. El formato de la programación de la rotación depende de la biblioteca cliente que se use. Para la herramienta de línea de comandos de gcloud, la próxima hora de rotación debe estar en formato "ISO" o "RFC3339", y el período de rotación debe tener el formato "INTEGER[UNIT]," donde las unidades pueden ser de uno de segundos (s), minutos (m), horas (h) o días (d). Establezca un período de rotación de claves y la hora de inicio. Se puede crear una clave con un "período de rotación" especificado, que es el tiempo entre el momento en que se generan automáticamente nuevas versiones de clave. También se puede crear una clave con una hora especificada para la siguiente rotación. Una clave es un objeto con nombre que representa una "clave criptográfica" utilizada para un propósito específico. El material de clave, los bits reales usados para el "cifrado", pueden cambiar a lo largo del tiempo a medida que se crean nuevas versiones de clave. Se usa una clave para proteger algunos "corpus de datos". Una colección de archivos se podría cifrar con la misma clave y las personas con permisos de "descifrado" en esa clave podrían descifrar esos archivos. Por lo tanto, es necesario asegurarse de que el "período de rotación" esté establecido en un tiempo específico.

Gravedad: media

Asegúrese de que existan un filtro de métricas de registro y alertas para los cambios de asignaciones de propiedad del proyecto.

Descripción: para evitar asignaciones innecesarias de propiedad del proyecto a usuarios o cuentas de servicio y otros usos indebidos de proyectos y recursos, se deben supervisar todas las asignaciones de "roles/propietario". Los miembros (usuarios y cuentas de servicio) con una asignación de roles al rol primitivo "roles/propietario" son propietarios del proyecto. El propietario del proyecto tiene todos los privilegios del proyecto al que pertenece el rol. Se resumen a continuación:

  • Todos los permisos de visor en todos los servicios GCP del proyecto
  • Permisos para acciones que modifican el estado de todos los servicios de GCP dentro del proyecto
  • Administración de roles y permisos para un proyecto y todos los recursos del proyecto
  • Configurar la facturación de un proyecto Conceder el rol de propietario a un miembro (usuario/cuenta de servicio) permitirá a ese miembro modificar la directiva de administración de identidades y acceso (IAM). Por lo tanto, conceda el rol de propietario solo si el miembro tiene un propósito legítimo para administrar la directiva de IAM. Esto se debe a que la directiva de IAM del proyecto contiene datos de control de acceso confidenciales. Tener un conjunto mínimo de usuarios permitidos para administrar la directiva de IAM simplificará cualquier auditoría que pueda ser necesaria. La propiedad del proyecto tiene el nivel más alto de privilegios en un proyecto. Para evitar el uso indebido de los recursos del proyecto, las acciones de asignación o cambio de propiedad del proyecto mencionadas anteriormente se deben supervisar y alertar a los destinatarios afectados.
  • Envío de invitaciones de propiedad del proyecto
  • Aceptación o rechazo de la invitación de propiedad del proyecto por el usuario
  • Agregar role\Owner a una cuenta de usuario o servicio
  • Eliminación de una cuenta de usuario o servicio de role\Owner

Gravedad: baja

Asegúrese de que oslogin esté habilitado para un proyecto.

Descripción: al habilitar el inicio de sesión del sistema operativo, se enlazan los certificados SSH a los usuarios de IAM y se facilita la administración eficaz de certificados SSH. Al habilitar el inicio de sesión del sistema operativo, se garantiza que las claves SSH usadas para conectarse a las instancias se asignen a usuarios de IAM. Al revocar el acceso al usuario de IAM, se revocarán todas las claves SSH asociadas a ese usuario en particular. Facilita la administración centralizada y automatizada de pares de claves SSH, lo que resulta útil para controlar casos como la respuesta a pares de claves SSH en peligro o la revocación de usuarios externos, de terceros o proveedores. Para averiguar qué instancia hace que el proyecto sea incorrecto, consulte la recomendación "Asegúrese de que oslogin está habilitado para todas las instancias".

Gravedad: media

Asegúrese de que oslogin esté habilitado para todas las instancias.

Descripción: al habilitar el inicio de sesión del sistema operativo, se enlazan los certificados SSH a los usuarios de IAM y se facilita la administración eficaz de certificados SSH. Al habilitar el inicio de sesión del sistema operativo, se garantiza que las claves SSH usadas para conectarse a las instancias se asignen a usuarios de IAM. Al revocar el acceso al usuario de IAM, se revocarán todas las claves SSH asociadas a ese usuario en particular. Facilita la administración centralizada y automatizada de pares de claves SSH, lo que resulta útil para controlar casos como la respuesta a pares de claves SSH en peligro o la revocación de usuarios externos, de terceros o proveedores.

Gravedad: media

Asegúrese de que Cloud Audit Logging esté configurado correctamente en todos los servicios y en todos los usuarios de un proyecto.

Descripción: se recomienda configurar el registro de auditoría en la nube para realizar un seguimiento de todas las actividades de administrador y leer y escribir el acceso a los datos del usuario.

Cloud Audit Logging mantiene dos registros de auditoría para cada proyecto, carpeta y organización: actividad de administración y acceso a datos.

  1. El registro de actividad de administración contiene entradas de registro para llamadas API u otras acciones administrativas que modifican la configuración o los metadatos de los recursos. Administración los registros de auditoría de actividad están habilitados para todos los servicios y no se pueden configurar.
  2. Los registros de auditoría de acceso a datos registran las llamadas API que crean, modifican o leen datos proporcionados por el usuario. Están deshabilitados de manera predeterminada y se deben habilitar. Hay tres tipos de información del registro de auditoría de acceso a datos:
  • Lectura de administración: registra las operaciones que leen metadatos o información de configuración. Administración registros de auditoría de actividad registran escrituras de metadatos e información de configuración que no se pueden deshabilitar.
  • Lectura de datos: registra las operaciones que leen los datos proporcionados por el usuario.
  • Escritura de datos: registra las operaciones que escriben datos proporcionados por el usuario.

Se recomienda tener configurada una configuración de auditoría predeterminada efectiva de tal manera que:

  1. logtype esté establecido en DATA_READ (para registrar el seguimiento de la actividad de usuario) y DATA_WRITES (para registrar cambios o alteraciones en los datos del usuario).
  2. La configuración de auditoría esté habilitada para todos los servicios admitidos por la característica de registros de auditoría de acceso a datos.
  3. Los registros deben capturarse para todos los usuarios, es decir, no hay usuarios exentos en ninguna de las secciones de configuración de auditoría. Esto garantizará que la invalidación de la configuración de auditoría no contradiga el requisito.

Gravedad: media

Asegúrese de que ninguna clave criptográfica de Cloud KMS sea accesible de forma anónima o pública.

Descripción: se recomienda que la directiva de IAM en KMS en la nube "cryptokeys" restrinja el acceso anónimo o público. Conceder permisos a "allUsers" o a "allAuthenticatedUsers" permite a cualquier usuario acceder al conjunto de datos. Este acceso podría no ser deseable si se almacenan datos confidenciales en la ubicación. En este caso, asegúrese de que no se permite el acceso anónimo o público a una "cryptokey" de KMS en la nube.

Gravedad: alta

Asegúrese de que se usen las credenciales de inicio de sesión corporativas.

Descripción: use credenciales de inicio de sesión corporativo en lugar de cuentas personales, como cuentas de Gmail. Se recomienda usar cuentas corporativas de Google totalmente administradas para aumentar la visibilidad, la auditoría y controlar el acceso a los recursos de Cloud Platform. Las cuentas de Gmail basadas fuera de la organización del usuario, como las cuentas personales, no deben usarse para fines empresariales.

Gravedad: alta

Asegúrese de que los usuarios de IAM no tengan asignados los roles de usuario de cuenta de servicio o creador del token de la cuenta de servicio en el nivel de proyecto.

Descripción: se recomienda asignar los roles "Usuario de cuenta de servicio (iam.serviceAccountUser)" y "Creador de tokens de cuenta de servicio (iam.serviceAccountTokenCreator)" a un usuario para una cuenta de servicio específica en lugar de asignar el rol a un usuario en el nivel de proyecto. Una cuenta de servicio es una cuenta especial de Google que pertenece a una aplicación o a una máquina virtual, en lugar de a un usuario final individual. La aplicación o la instancia de máquina virtual usan la cuenta de servicio para llamar a la API de Google del servicio para que los usuarios no estén implicados directamente. Además de ser una identidad, una cuenta de servicio es un recurso que tiene directivas de IAM asociadas. Estas directivas determinan quién puede usar la cuenta de servicio. Los usuarios con roles de IAM para actualizar las instancias de App Engine y Compute Engine (como Implementador de App Engine o Administrador de instancias de Compute) pueden ejecutar código de forma eficaz como las cuentas de servicio usadas para ejecutar estas instancias y obtener acceso indirectamente a todos los recursos para los que las cuentas de servicio tengan acceso. Del mismo modo, el acceso SSH a una instancia de Compute Engine también puede proporcionar la capacidad de ejecutar código como esa instancia o cuenta de servicio. En función de las necesidades empresariales, podría haber varias cuentas de servicio administradas por el usuario configuradas para un proyecto. Conceder los roles "iam.serviceAccountUser" o "iam.serviceAserviceAccountTokenCreatorccountUser" a un usuario para un proyecto proporciona al usuario acceso a todas las cuentas de servicio del proyecto, incluidas las cuentas de servicio que podrían crearse en el futuro. Esto puede dar lugar a la elevación de privilegios mediante cuentas de servicio y las correspondientes "instancias del motor de proceso". Para implementar procedimientos recomendados de "privilegios mínimos", a los usuarios de IAM no se les deben asignar los roles "Usuario de cuenta de servicio" ni "Creador de tokens de cuenta de servicio" en el nivel de proyecto. En su lugar, estos roles se deben asignar a un usuario para una cuenta de servicio específica, lo que proporciona a ese usuario acceso a la cuenta de servicio. El rol "Usuario de cuenta de servicio" permite a un usuario enlazar una cuenta de servicio a un servicio de trabajo de larga duración, mientras que el rol "Creador del token de la cuenta de servicio" permite a un usuario suplantar (o realizar aserciones en su nombre) directamente la identidad de una cuenta de servicio.

Gravedad: media

Descripción: se recomienda aplicar el principio de "Separación de tareas" al asignar roles relacionados con KMS a los usuarios. El rol de IAM integrado o predefinido "Administrador de Cloud KMS" permite al usuario o la identidad crear, eliminar y administrar cuentas de servicio. El rol de IAM integrado o predefinido "Cifrador/descifrador criptográfico de Cloud KMS" permite al usuario o la identidad (con privilegios adecuados en los recursos afectados) cifrar y descifrar los datos en reposo mediante claves de cifrado. El rol de IAM integrado o predefinido "Cifrador criptográfico de Cloud KMS" permite al usuario o la identidad (con privilegios adecuados en los recursos afectados) cifrar los datos en reposo mediante claves de cifrado. El rol de IAM integrado o predefinido "Descifrador criptográfico de Cloud KMS" permite al usuario o la identidad (con privilegios adecuados en los recursos afectados) descifrar los datos en reposo mediante claves de cifrado. La separación de tareas es el concepto de garantizar que una persona no tenga todos los permisos necesarios para poder completar una acción malintencionada. En KMS en la nube, esto podría ser una acción como usar una clave para acceder a los datos y descifrar a los que un usuario no debería tener acceso normalmente. La separación de obligaciones es un control empresarial que se usa normalmente en organizaciones de mayor tamaño, diseñadas para ayudar a evitar incidentes y errores de seguridad o privacidad. Se considera un procedimiento recomendado. Ningún usuario debe tener Administración de KMS en la nube y cualquiera de los roles "Cifrador y descifrador criptográfico de KMS en la nube", "Cifrador criptográfico de KMS en la nube", "Descifrador de cryptokey de KMS en la nube" asignado al mismo tiempo.

Gravedad: alta

Descripción: se recomienda aplicar el principio de "Separación de tareas" al asignar roles relacionados con la cuenta de servicio a los usuarios. El rol de IAM integrado o predefinido "Administrador de cuenta de servicio" permite al usuario o la identidad crear, eliminar y administrar cuentas de servicio. El rol de IAM integrado o predefinido "Usuario de cuenta de servicio" permite al usuario o la identidad (con privilegios adecuados en Compute y App Engine) asignar cuentas de servicio a aplicaciones o instancias de proceso. La separación de tareas es el concepto de garantizar que una persona no tenga todos los permisos necesarios para poder completar una acción malintencionada. En IAM en la nube: cuentas de servicio, esto podría ser una acción como el uso de una cuenta de servicio para acceder a los recursos a los que normalmente el usuario no debería tener acceso. La separación de obligaciones es un control empresarial que se usa normalmente en organizaciones de mayor tamaño, diseñadas para ayudar a evitar incidentes y errores de seguridad o privacidad. Se considera un procedimiento recomendado. Ningún usuario debe tener asignados los roles "Administrador de cuenta de servicio" y "Usuario de cuenta de servicio" al mismo tiempo.

Gravedad: media

Asegúrese de que la cuenta de servicio no tenga privilegios de administrador.

Descripción: una cuenta de servicio es una cuenta especial de Google que pertenece a una aplicación o una máquina virtual, en lugar de a un usuario final individual. La aplicación usa la cuenta de servicio para llamar a la API de Google del servicio para que los usuarios no estén implicados directamente. Se recomienda no usar el acceso de administrador para la cuenta de servicio. Las cuentas de servicio representan la seguridad de nivel de servicio de los recursos (aplicación o máquina virtual), que puede venir determinado por los roles asignados a ellas. La inscripción de una cuenta de servicio con derechos de administración proporciona acceso total a la aplicación o a la máquina virtual asignadas. El titular del acceso a una cuenta de servicio puede realizar acciones críticas (como eliminar, actualizar o cambiar la configuración) sin intervención del usuario. Por este motivo, se recomienda que las cuentas de servicio no tengan derechos de administración.

Gravedad: media

Asegúrese de que haya receptores configurados para todas las entradas de registro.

Descripción: se recomienda crear un receptor que exporte copias de todas las entradas de registro. Esto puede ayudar a agregar los registros de varios proyectos y exportarlos a un sistema de Administración de eventos e información de seguridad (SIEM). Las entradas de registro se mantienen en el registro de Stackdriver. Para agregar los registros, expórtelos a un sistema SIEM. Para mantenerlos más largos, se recomienda configurar un receptor de registro. La exportación implica escribir un filtro que seleccione las entradas de registro que se van a exportar y elegir un destino en Cloud Storage, BigQuery o Cloud Pub/Sub. El filtro y el destino se mantienen en un objeto llamado receptor. Para asegurarse de que todas las entradas de registro se exportan a los receptores, asegúrese de que no haya ningún filtro configurado para un receptor. Se pueden crear receptores en proyectos, organizaciones, carpetas y cuentas de facturación.

Gravedad: baja

Asegúrese de que haya un filtro de métricas de registro y alertas para detectar los cambios hechos en la configuración de auditoría.

Descripción: los servicios de Google Cloud Platform (GCP) escriben entradas de registro de auditoría en los registros de actividad y acceso a datos de Administración para ayudar a responder a las preguntas de "¿ quién hizo qué, dónde y cuándo?" en los proyectos de GCP. Cloud Audit Logging registra información que incluye la identidad del autor de la llamada API, la hora de la llamada API, la dirección IP de origen del autor de la llamada API, los parámetros de solicitud y los elementos de respuesta devueltos por los servicios de GCP. Cloud Audit Logging proporciona un historial de las llamadas API de GCP de una cuenta, incluidas las llamadas API realizadas mediante la consola, los SDK, las herramientas de la línea de comandos y otros servicios de GCP. Los registros de actividad de administración y de acceso a datos generados por Cloud Audit Logging permiten el análisis de seguridad, el seguimiento de los cambios de los recursos y la auditoría de cumplimiento. La configuración del filtro de métricas y las alertas para los cambios de configuración de auditoría garantiza que se mantenga el estado recomendado de configuración de auditoría para que todas las actividades del proyecto sean auditadas en cualquier momento dado.

Gravedad: baja

Asegúrese de que haya un filtro de métricas de registro y alertas para detectar los cambios hechos en el rol personalizado.

Descripción: se recomienda establecer un filtro de métricas y una alarma para los cambios en la creación, eliminación y actualización de las actividades de creación, eliminación y actualización de roles de Administración de identidades y acceso (IAM). Google Cloud IAM proporciona roles predefinidos que proporcionan acceso granular a recursos específicos de Google Cloud Platform y evitan el acceso no deseado a otros recursos. Sin embargo, para satisfacer las necesidades específicas de la organización, Cloud IAM también proporciona la capacidad de crear roles personalizados. Los propietarios y administradores de proyectos con el rol Administrador de roles de la organización o el rol Administrador de roles de IAM pueden crear roles personalizados. La supervisión de las actividades de creación, eliminación y actualización de roles ayudará a identificar cualquier rol con privilegios excesivos en las primeras fases.

Gravedad: baja

Asegúrese de que las claves externas/administradas por el usuario para las cuentas de servicio se cambien cada 90 días o menos.

Descripción: las claves de cuenta de servicio constan de un identificador de clave (Private_key_Id) y una clave privada, que se usan para firmar solicitudes mediante programación que los usuarios realizan a los servicios en la nube de Google accesibles para esa cuenta de servicio concreta. Se recomienda rotar regularmente todas las claves de cuenta de servicio. La rotación de claves de las cuentas de servicio reducirá la ventana de posibilidades para que se utilice una clave de acceso asociada a una cuenta en peligro o terminada. Las claves de la cuenta de servicio deben rotarse para asegurarse de que no se pueda acceder a los datos con una clave antigua que se haya perdido, descifrado o robado. Cada cuenta de servicio está asociada a un par de claves administrado por Google Cloud Platform (GCP). Se usa para la autenticación entre servicios dentro de GCP. Google rota las claves a diario. GCP proporciona la opción de crear uno o varios pares de claves administrados por el usuario (también llamados pares de claves externos) para su uso desde fuera de GCP (por ejemplo, para su uso con credenciales predeterminadas de aplicación). Cuando se crea un nuevo par de claves, se requiere que el usuario descargue la clave privada (que no se conserva en Google).

Con las claves externas, los usuarios son responsables de mantener la clave privada segura y otras operaciones de administración, como la rotación de claves. Las claves externas se pueden administrar mediante la API de IAM, la herramienta de la línea de comandos gcloud o la página Cuentas de servicio de la consola de Google Cloud Platform.

GCP facilita hasta 10 claves de cuenta de servicio externas por cuenta de servicio para facilitar la rotación de claves.

Gravedad: media

El panel web de GKE debe estar deshabilitado.

Descripción: esta recomendación evalúa el campo kubernetesDashboard de la propiedad addonsConfig para el par clave-valor, "disabled": false.

Gravedad: alta

La autorización heredada debe estar deshabilitada en los clústeres de GKE.

Descripción: esta recomendación evalúa la propiedad legacyAbac de un clúster para el par clave-valor, "enabled": true.

Gravedad: alta

El rol IAM de Redis no debe asignarse en el nivel de organización o carpeta.

Descripción: esta recomendación evalúa la directiva de permiso de IAM en metadatos de recursos para roles asignados por entidades de seguridad/redis.admin, roles/redis.editor, roles/redis.viewer en el nivel de organización o carpeta.

Gravedad: alta

Las cuentas de servicio deben tener acceso restringido al proyecto en un clúster.

Descripción: esta recomendación evalúa la propiedad config de un grupo de nodos para comprobar si no se especifica ninguna cuenta de servicio o si se usa la cuenta de servicio predeterminada.

Gravedad: alta

Los usuarios deben tener acceso con privilegios mínimos con roles de IAM detallados.

Descripción: esta recomendación evalúa la directiva de IAM en los metadatos de recursos para las entidades de seguridad asignadas a roles, propietarios, roles, escritor o lector.

Gravedad: alta

Las super identidades del entorno de GCP deben quitarse (versión preliminar)

Descripción: una super identity tiene un conjunto eficaz de permisos. Los superadministradores son identidades humanas o de carga de trabajo que tienen acceso a todos los permisos y a todos los recursos. Pueden crear y modificar opciones de configuración en un servicio, agregar o quitar identidades, así como acceder o incluso eliminar datos. Estas identidades no supervisadas presentan un riesgo significativo de uso indebido de permisos si se infringen.

Gravedad: alta

Las identidades sin usar en el entorno de GCP deben quitarse (versión preliminar)

Descripción: es imperativo identificar identidades no usadas a medida que suponen riesgos de seguridad significativos. Estas identidades suelen implicar procedimientos incorrectos, como permisos excesivos y claves no administradas que dejan a las organizaciones abiertas al uso indebido o la explotación de credenciales y aumenta la superficie expuesta a ataques del recurso. Las identidades inactivas son entidades humanas y no humanas que no han realizado ninguna acción en ningún recurso en los últimos 90 días. Las claves de cuenta de servicio pueden convertirse en un riesgo de seguridad si no se administran cuidadosamente.

Gravedad: media

Las identidades sobreaprovisionadas de GCP solo deben tener los permisos necesarios (versión preliminar)

Descripción: una identidad activa sobreaprovisionada es una identidad que tiene acceso a privilegios que no han usado. Las identidades activas sobreaprovisionadas, especialmente para las cuentas no humanas que tienen acciones y responsabilidades muy definidas, pueden aumentar el radio de explosión en caso de que un usuario, una clave o un recurso pongan en peligro El principio de privilegios mínimos indica que un recurso solo debe tener acceso a los recursos exactos que necesita para funcionar. Este principio se desarrolló para abordar el riesgo de que las identidades comprometidas concedan a un atacante acceso a una amplia gama de recursos.

Gravedad: media

Recomendaciones de redes de GCP

Los hosts de clústeres deben estar configurados con el fin de usar solo direcciones IP internas privadas para acceder a las API de Google.

Descripción: esta recomendación evalúa si la propiedad privateIpGoogleAccess de una subred está establecida en false.

Gravedad: alta

Las instancias de Compute deben usar un equilibrador de carga configurado para usar un proxy HTTPS de destino.

Descripción: esta recomendación evalúa si la propiedad selfLink del recurso targetHttpProxy coincide con el atributo de destino en la regla de reenvío y si la regla de reenvío contiene un campo loadBalancingScheme establecido en Externo.

Gravedad: media

Las redes autorizadas del plano de control deben estar habilitadas en los clústeres de GKE.

Descripción: esta recomendación evalúa la propiedad masterAuthorizedNetworksConfig de un clúster para el par clave-valor, "enabled": false.

Gravedad: alta

La regla de denegación de salida debe establecerse en un firewall para bloquear el tráfico saliente no deseado.

Descripción: esta recomendación evalúa si la propiedad destinationRanges del firewall está establecida en 0.0.0.0/0 y la propiedad denegada contiene el par clave-valor, "IPProtocol": "all"."

Gravedad: baja

Asegúrese de que las reglas de firewall para las instancias subyacentes del proxy compatible con la identidad (IAP) solo permitan el tráfico de la comprobación de estado de Google Cloud Loadbalancer (GCLB) y las direcciones de proxy.

Descripción: las reglas de firewall deben restringir el acceso a las máquinas virtuales que solo permiten el tráfico de IAP asegurándose de que solo se permiten conexiones proxy por parte del IAP. Para asegurarse de que el equilibrio de carga funcione correctamente, también se deben permitir las comprobaciones de estado. IAP garantiza que se controle el acceso a las máquinas virtuales mediante la autenticación de las solicitudes entrantes. Sin embargo, si la máquina virtual sigue siendo accesible desde direcciones IP distintas del IAP, es posible que siga siendo posible enviar solicitudes no autenticadas a la instancia. Se debe tener cuidado para asegurarse de que las comprobaciones de estado de loadblancer no estén bloqueadas, ya que esto impediría que el equilibrador de carga sepa correctamente el estado de la máquina virtual y el equilibrio de carga.

Gravedad: media

Asegúrese de que no existen redes heredadas para un proyecto.

Descripción: para evitar el uso de redes heredadas, un proyecto no debe tener configurada una red heredada. Las redes heredadas tienen un único intervalo de prefijos IPv4 de red y una única dirección IP de puerta de enlace para toda la red. La red es global en el ámbito y abarca todas las regiones de la nube. Las subredes no se pueden crear en una red heredada y no pueden cambiar de redes de subredes heredadas a personalizadas o automáticas. Las redes heredadas pueden tener un impacto en proyectos con tráfico de red elevado y están sujetas a un único punto de contención o error.

Gravedad: media

Asegúrese de que la marca de base de datos "log_hostname" para la instancia de PostgreSQL de Cloud SQL esté establecida correctamente.

Descripción: PostgreSQL registra solo la dirección IP de los hosts de conexión. La marca "log_hostname" controla el registro de los "nombres de host" además de las direcciones IP registradas. El impacto en el rendimiento depende de la configuración del entorno y de la configuración de la resolución de nombres de host. Este parámetro solo se puede establecer en el archivo "postgresql.conf" o en la línea de comandos del servidor. El registro de los nombres de host puede suponer una sobrecarga en el rendimiento del servidor, ya que para cada instrucción registrada, se requerirá la resolución DNS para convertir la dirección IP en el nombre de host. En función de la configuración, esto podría ser insignificante. Además, las direcciones IP que se registran se pueden resolver en sus nombres DNS más adelante al revisar los registros, excepto los casos en los que se usan nombres de host dinámicos. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: baja

Asegúrese de que ningún equilibrador de carga de proxy HTTPS o SSL permita directivas SSL con conjuntos de cifrado débiles.

Descripción: las directivas de capa de sockets seguros (SSL) determinan qué características de los clientes de seguridad de la capa de transporte (TLS) de puerto pueden usar al conectarse a equilibradores de carga. Para evitar el uso de características no seguras, las directivas SSL deben usar (a) al menos TLS 1.2 con el perfil MODERNO; o (b) el perfil RESTRINGIDO, ya que requiere de forma eficaz que los clientes usen TLS 1.2 independientemente de la versión mínima de TLS elegida; o (3) un perfil PERSONALIZADO que no admite ninguna de las siguientes características: TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA

Los equilibradores de carga se usan para distribuir eficazmente el tráfico entre varios servidores. Tanto el proxy SSL como los equilibradores de carga HTTPS son equilibradores de carga externos, lo que significa que distribuyen el tráfico desde Internet a una red de GCP. Los clientes de GCP pueden configurar directivas SSL del equilibrador de carga con una versión mínima de TLS (1.0, 1.1 o 1.2) que los clientes pueden usar para establecer una conexión, junto con un perfil (compatible, moderno, restringido o personalizado) que especifica los conjuntos de cifrado permitidos. Para cumplir con los usuarios que usan protocolos obsoletos, los equilibradores de carga de GCP se pueden configurar para permitir conjuntos de cifrado no seguros. De hecho, la directiva SSL predeterminada de GCP usa una versión mínima de TLS de 1.0 y un perfil compatible, que permite la gama más amplia de conjuntos de cifrado no seguros. Como resultado, es fácil que los clientes configuren un equilibrador de carga sin saber que permiten conjuntos de cifrado obsoletos.

Gravedad: media

Asegúrese de que el registro de Cloud DNS esté habilitado para todas las redes VPC.

Descripción: el registro dns en la nube registra las consultas de los servidores de nombres de la VPC en Stackdriver. Las consultas registradas pueden proceder de máquinas virtuales de Compute Engine, contenedores de GKE u otros recursos de GCP aprovisionados en la VPC. La supervisión de seguridad y los análisis forenses no pueden depender únicamente de las direcciones IP de los registros de flujo de VPC, especialmente al considerar el uso dinámico de IP de los recursos en la nube, el enrutamiento de host virtual HTTP y otra tecnología que puede ocultar el nombre DNS usado por un cliente de la dirección IP. La supervisión de los registros de Cloud DNS proporciona visibilidad sobre los nombres DNS solicitados por los clientes dentro de la VPC. Estos registros se pueden supervisar en busca de nombres de dominio anómalos, evaluarse en contra de la inteligencia sobre amenazas y nota: Para la captura completa de DNS, el firewall debe bloquear la salida UDP/53 (DNS) y TCP/443 (DNS a través de HTTPS) para evitar que el cliente use el servidor de nombres DNS externo para la resolución.

Gravedad: alta

Asegúrese de que DNSSEC esté habilitado para Cloud DNS.

Descripción: El sistema de nombres de dominio en la nube (DNS) es un sistema de nombres de dominio rápido, confiable y rentable que impulsa millones de dominios en Internet. Las extensiones de seguridad del sistema de nombres de dominio (DNSSEC) de Cloud DNS permiten a los propietarios del dominio tomar medidas fáciles para proteger sus dominios contra el secuestro de DNS, los ataques de tipo "man in the middle" y otros ataques. Las extensiones de seguridad del sistema de nombres de dominio (DNSSEC) agregan seguridad al protocolo DNS; para ello, habilitan la validación de las respuestas DNS. Tener un DNS de confianza que traduce un nombre de dominio como www.example.com en su dirección IP asociada es un bloque de creación cada vez más importante de las aplicaciones basadas en web actuales. Los atacantes pueden secuestrar este proceso de búsqueda de dominio y dirección IP, y redirigir a los usuarios a un sitio malintencionado mediante el secuestro de DNS y los ataques de tipo "man in the middle". DNSSEC ayuda a mitigar el riesgo de estos ataques mediante la firma criptográfica de los registros DNS. Como resultado, impide que los atacantes emita respuestas DNS falsas que podrían desviar de forma incorrecta los exploradores a sitios web malintenciones.

Gravedad: media

Asegúrese de que el acceso RDP esté restringido desde Internet.

Descripción: las reglas de firewall de GCP son específicas de una red de VPC. Cada regla permite o deniega el tráfico cuando se cumplen sus condiciones. Sus condiciones permiten a los usuarios especificar el tipo de tráfico, como los puertos y protocolos, y el origen o destino del tráfico, incluidas las direcciones IP, las subredes y las instancias. Las reglas de firewall se definen en el nivel de red de vpc y son específicas de la red en la que se definen. Las propias reglas no se pueden compartir entre redes. Las reglas de firewall solo admiten el tráfico IPv4. Al especificar un origen para una regla de entrada o un destino para una regla de salida por dirección, se puede usar una dirección IPv4 o un bloque IPv4 en notación CIDR. Se puede evitar el tráfico entrante genérico (0.0.0.0/0) desde Internet a una VPC o una instancia de máquina virtual mediante RDP en el puerto 3389. Reglas de firewall de GCP dentro de una red VPC. Estas reglas se aplican al tráfico saliente (salida) desde las instancias y el tráfico entrante (entrada) a las instancias de la red. Los flujos de tráfico de entrada y salida se controlan incluso si el tráfico permanece dentro de la red (por ejemplo, la comunicación de instancia a instancia). Para que una instancia tenga acceso saliente a Internet, la red debe tener una ruta válida de puerta de enlace de Internet o una ruta personalizada cuya dirección IP de destino se especifique. Esta ruta simplemente define la ruta de acceso a Internet para evitar el intervalo IP de destino más general (0.0.0.0/0) especificado desde Internet mediante RDP con el puerto predeterminado 3389. Se debe restringir el acceso genérico desde Internet a un intervalo IP específico.

Gravedad: alta

Asegúrese de que no se use RSASHA1 para la clave de firma de claves en Cloud DNS DNSSEC.

Descripción: los números de algoritmo DNSSEC de este registro se pueden usar en RR cert. La firma de zona (DNSSEC) y los mecanismos de seguridad de transacciones (SIG(0) y TSIG) usan subconjuntos específicos de estos algoritmos. El algoritmo que se usa para la firma de claves debe ser uno recomendado y debe ser seguro. Los números de algoritmo de extensiones de seguridad del sistema de nombres de dominio (DNSSEC) de este registro se pueden usar en RR cert. La firma de zona (DNSSEC) y los mecanismos de seguridad de transacciones (SIG(0) y TSIG) usan subconjuntos específicos de estos algoritmos. El algoritmo que se usa para la firma de claves debe ser uno recomendado y debe ser seguro. Al habilitar DNSSEC para una zona administrada o crear una zona administrada con DNSSEC, el usuario puede seleccionar los algoritmos de firma de DNSSEC y el tipo de denegación de existencia. El cambio de la configuración de DNSSEC solo es efectivo para una zona administrada si DNSSEC aún no está habilitado. Si es necesario cambiar la configuración de una zona administrada en la que se ha habilitado, desactive DNSSEC y vuelva a habilitarla con una configuración diferente.

Gravedad: media

Asegúrese de que no se use RSASHA1 para la clave de firma de zona en Cloud DNS DNSSEC.

Descripción: los números de algoritmo DNSSEC de este registro se pueden usar en RR cert. La firma de zona (DNSSEC) y los mecanismos de seguridad de transacciones (SIG(0) y TSIG) usan subconjuntos específicos de estos algoritmos. El algoritmo que se usa para la firma de claves debe ser uno recomendado y debe ser seguro. Los números de algoritmo DNSSEC de este registro se pueden usar en RR cert. La firma de zona (DNSSEC) y los mecanismos de seguridad de transacciones (SIG(0) y TSIG) usan subconjuntos específicos de estos algoritmos. El algoritmo que se usa para la firma de claves debe ser uno recomendado y debe ser seguro. Al habilitar DNSSEC para una zona administrada o crear una zona administrada con DNSSEC, se pueden seleccionar los algoritmos de firma DNSSEC y el tipo de denegación de existencia. El cambio de la configuración de DNSSEC solo es efectivo para una zona administrada si DNSSEC aún no está habilitado. Si la necesidad existe para cambiar la configuración de una zona administrada en la que se ha habilitado, desactive DNSSEC y vuelva a habilitarla con una configuración diferente.

Gravedad: media

Asegúrese de que esté restringido el acceso SSH desde Internet.

Descripción: las reglas de firewall de GCP son específicas de una red de VPC. Cada regla permite o deniega el tráfico cuando se cumplen sus condiciones. Sus condiciones permiten al usuario especificar el tipo de tráfico, como los puertos y protocolos, y el origen o destino del tráfico, incluidas las direcciones IP, las subredes y las instancias. Las reglas de firewall se definen en el nivel de red de vpc y son específicas de la red en la que se definen. Las propias reglas no se pueden compartir entre redes. Las reglas de firewall solo admiten el tráfico IPv4. Al especificar un origen para una regla de entrada o un destino para una regla de salida por dirección, se puede usar únicamente una dirección IPv4 o un bloque IPv4 en notación CIDR. Se puede evitar el tráfico entrante genérico (0.0.0.0/0) desde Internet a una VPC o una instancia de máquina virtual mediante SSH en el puerto 22. Las reglas de firewall de GCP dentro de una red VPC se aplican al tráfico saliente (salida) desde las instancias y el tráfico entrante (entrada) a las instancias de la red. Los flujos de tráfico de entrada y salida se controlan incluso si el tráfico permanece dentro de la red (por ejemplo, la comunicación de instancia a instancia). Para que una instancia tenga acceso saliente a Internet, la red debe tener una ruta válida de puerta de enlace de Internet o una ruta personalizada cuya dirección IP de destino se especifique. Esta ruta simplemente define la ruta de acceso a Internet para evitar el intervalo ip de destino más general (0.0.0.0/0) especificado desde Internet a través de SSH con el puerto predeterminado '22'. Se debe restringir el acceso genérico desde Internet a un intervalo IP específico.

Gravedad: alta

Asegúrese de que la red predeterminada no exista en un proyecto.

Descripción: para evitar el uso de la red "predeterminada", un proyecto no debe tener una red "predeterminada". La red predeterminada tiene una configuración de red preconfigurada y genera automáticamente las siguientes reglas de firewall no seguras:

  • default-allow-internal: permite conexiones de entrada para todos los protocolos y puertos entre instancias de la red.
  • default-allow-ssh: permite conexiones de entrada en el puerto TCP 22 (SSH) desde cualquier origen a cualquier instancia de la red.
  • default-allow-rdp: permite conexiones de entrada en el puerto TCP 3389 (RDP) desde cualquier origen a cualquier instancia de la red.
  • default-allow-icmp: permite el tráfico ICMP de entrada desde cualquier origen a cualquier instancia de la red.

Estas reglas de firewall creadas automáticamente no obtienen la auditoría registrada y no se pueden configurar para habilitar el registro de reglas de firewall. Además, la red predeterminada es una red en modo automático, lo que significa que sus subredes usan el mismo intervalo predefinido de direcciones IP y, como resultado, no es posible usar Cloud VPN ni el emparejamiento de redes VPC con la red predeterminada. En función de los requisitos de seguridad y red de la organización, la organización debe crear una nueva red y eliminar la red predeterminada.

Gravedad: media

Asegúrese de que haya un filtro de métricas de registro y alertas para detectar los cambios hechos en la red VPC.

Descripción: se recomienda establecer un filtro de métricas y una alarma para los cambios de red de la nube privada virtual (VPC). Es posible tener más de una VPC dentro de un proyecto. Además, también es posible crear una conexión del mismo nivel entre dos VPN, lo que permite que el tráfico de red se enrute entre las VPN. La supervisión de los cambios en una VPC ayudará a garantizar que el flujo de tráfico de la VPC no se vea afectado.

Gravedad: baja

Asegúrese de que haya un filtro de métricas de registro y alertas para detectar los cambios hechos en las reglas de firewall de red de VPC.

Descripción: se recomienda establecer un filtro de métricas y una alarma para los cambios en las reglas de firewall de red de la nube privada virtual (VPC). La supervisión de eventos de reglas de firewall de creación o actualización proporciona información sobre los cambios de acceso a la red y puede reducir el tiempo necesario para detectar actividades sospechosas.

Gravedad: baja

Asegúrese de que haya un filtro de métricas de registro y alertas para detectar los cambios hechos en la ruta de red VPC.

Descripción: se recomienda establecer un filtro de métricas y una alarma para los cambios de ruta de red de la nube privada virtual (VPC). Las rutas de Google Cloud Platform (GCP) definen las rutas de acceso que toma el tráfico de red de una instancia de máquina virtual a otro destino. El otro destino puede estar dentro de la red VPC de la organización (por ejemplo, otra máquina virtual) o fuera de ella. Cada ruta consta de un destino y un próximo salto. El tráfico cuya dirección IP de destino se encuentre dentro del intervalo de destino se envía al próximo salto para su entrega. La supervisión de los cambios en las tablas de enrutamiento ayudará a garantizar que todo el tráfico de VPC fluye a través de una ruta de acceso esperada.

Gravedad: baja

Asegúrese de que la marca de la base de datos "log_connections" para la instancia de PostgreSQL de Cloud SQL esté establecida en "activada".

Descripción: habilitar la configuración de log_connections hace que se registre cada conexión intentada con el servidor, junto con la finalización correcta de la autenticación de cliente. Este parámetro no se puede cambiar después de que se inicie la sesión. PostgreSQL no registra las conexiones intentadas de forma predeterminada. Al habilitar la configuración de log_connections, se crearán entradas de registro para cada conexión intentada, así como la finalización correcta de la autenticación de cliente, lo que puede resultar útil para solucionar problemas y determinar los intentos de conexión inusuales al servidor. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: media

Asegúrese de que la marca de la base de datos "log_disconnections" para la instancia de PostgreSQL de Cloud SQL esté establecida en "activada".

Descripción: habilitar la configuración de log_disconnections registra el final de cada sesión, incluida la duración de la sesión. PostgreSQL no registra los detalles de la sesión, como la duración y el final de la sesión de forma predeterminada. Al habilitar la configuración de log_disconnections, se crearán entradas de registro al final de cada sesión, lo que puede resultar útil para solucionar problemas y determinar cualquier actividad inusual durante un período de tiempo. Las opciones log_disconnections y log_connections funcionan en conjunto y, por lo general, ambas se habilitarían o deshabilitarían juntas. Esta recomendación es aplicable a las instancias de base de datos PostgreSQL.

Gravedad: media

Asegúrese de que los registros de flujo de VPC estén habilitados para todas las subredes de una red VPC.

Descripción: Los registros de flujo son una característica que permite a los usuarios capturar información sobre el tráfico IP que va a y desde interfaces de red en las subredes vpc de la organización. Una vez creado un registro de flujo, el usuario puede ver y recuperar sus datos en el registro de Stackdriver. Se recomienda habilitar los registros de flujo para cada subred de VPC crítica para la empresa. Las redes y subredes de VPC proporcionan particiones de red lógicamente aisladas y seguras donde se pueden iniciar los recursos de GCP. Cuando los registros de flujo están habilitados para una subred, las máquinas virtuales de esa subred comienzan a informar sobre todos los flujos del Protocolo de control de transmisión (TCP) y el Protocolo de datagramas de usuario (UDP). Cada máquina virtual muestrea los flujos TCP y UDP que ve, entrantes y salientes, si el flujo es hacia o desde otra máquina virtual, un host en el centro de datos local, un servicio de Google o un host en Internet. Si se comunican dos máquinas virtuales de GCP y ambas están en subredes que tienen habilitados los registros de flujo de VPC, ambas máquinas virtuales notifican los flujos. Los registros de flujo admiten los siguientes casos de uso: 1. Supervisión de la red. 2. Conocimiento del uso de la red y optimización de los gastos del tráfico de red. 3. Análisis forenses de la red. 4. Los registros de flujo de análisis de seguridad en tiempo real proporcionan visibilidad del tráfico de red para cada máquina virtual dentro de la subred y se pueden usar para detectar tráfico anómalo o información durante los flujos de trabajo de seguridad.

Gravedad: baja

El registro de reglas de firewall debe estar habilitado.

Descripción: esta recomendación evalúa la propiedad logConfig en los metadatos del firewall para ver si está vacía o contiene el par clave-valor "enable": false.

Gravedad: media

El firewall no debe configurarse para que esté abierto al acceso público.

Descripción: esta recomendación evalúa las propiedades sourceRanges y permitidas para una de estas dos configuraciones:

La propiedad sourceRanges contiene 0.0.0.0/0 y la propiedad permitida contiene una combinación de reglas que incluye cualquier protocolo o protocolo:puerto, excepto lo siguiente: icmp tcp:22 tcp:443 tcp:3389 udp:3389 sctp:22

La propiedad sourceRanges contiene una combinación de intervalos IP que incluye cualquier dirección IP no privada y la propiedad permitida contiene una combinación de reglas que permiten todos los puertos tcp o todos los puertos udp.

Gravedad: alta

El firewall no debe configurarse para tener un puerto CASSANDRA abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:7000-7001, 7199, 8888, 9042, 9160, 61620-61621.

Gravedad: baja

El firewall no debe configurarse para tener un puerto CISCOSECURE_WEBSM abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para el siguiente protocolo y puerto: TCP:9090.

Gravedad: baja

El firewall no debe configurarse para tener un puerto DIRECTORY_SERVICES abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:445 y UDP:445.

Gravedad: baja

El firewall no debe configurarse para tener un puerto DNS abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:53 y UDP:53.

Gravedad: baja

El firewall no debe configurarse para tener un puerto ELASTICSEARCH abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:9200, 9300.

Gravedad: baja

El firewall no debe configurarse para tener un puerto FTP abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para el siguiente protocolo y puerto: TCP:21.

Gravedad: baja

El firewall no debe configurarse para tener un puerto HTTP abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:80.

Gravedad: baja

El firewall no debe configurarse para tener un puerto LDAP abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:389, 636 y UDP:389.

Gravedad: baja

El firewall no debe configurarse para tener un puerto MEMCACHED abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:11211, 11214-11215 y UDP:11211, 11214-11215.

Gravedad: baja

El firewall no debe configurarse para tener un puerto MONGODB abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:27017-27019.

Gravedad: baja

El firewall no debe configurarse para tener un puerto MYSQL abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para el siguiente protocolo y puerto: TCP:3306.

Gravedad: baja

El firewall no debe configurarse para tener un puerto NETBIOS abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:137-139 y UDP:137-139.

Gravedad: baja

El firewall no debe configurarse para tener un puerto ORACLEDB abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:1521, 2483-2484 y UDP:2483-2484.

Gravedad: baja

El firewall no debe configurarse para tener un puerto POP3 abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para el siguiente protocolo y puerto: TCP:110.

Gravedad: baja

El firewall no debe configurarse para tener un puerto PostgreSQL abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa la propiedad permitida en los metadatos del firewall para los siguientes protocolos y puertos: TCP:5432 y UDP:5432.

Gravedad: baja

El firewall no debe configurarse para tener un puerto REDIS abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa si la propiedad permitida en los metadatos del firewall contiene el siguiente protocolo y puerto: TCP:6379.

Gravedad: baja

El firewall no debe configurarse para tener un puerto SMTP abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa si la propiedad permitida en los metadatos del firewall contiene el siguiente protocolo y puerto: TCP:25.

Gravedad: baja

El firewall no debe configurarse para tener un puerto SSH abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa si la propiedad permitida en los metadatos del firewall contiene los siguientes protocolos y puertos: TCP:22 y SCTP:22.

Gravedad: baja

El firewall no debe configurarse para tener un puerto TELNET abierto que permita el acceso genérico.

Descripción: esta recomendación evalúa si la propiedad permitida en los metadatos del firewall contiene el siguiente protocolo y puerto: TCP:23.

Gravedad: baja

Los clústeres de GKE deben tener habilitados los intervalos IP de alias.

Descripción: esta recomendación evalúa si el campo useIPAliases de ipAllocationPolicy en un clúster está establecido en false.

Gravedad: baja

Los clústeres de GKE deben tener habilitados los clústeres privados.

Descripción: esta recomendación evalúa si el campo enablePrivateNodes de la propiedad privateClusterConfig está establecido en false.

Gravedad: alta

La directiva de red debe estar habilitada en los clústeres de GKE.

Descripción: esta recomendación evalúa el campo networkPolicy de la propiedad addonsConfig para el par clave-valor, "disabled": true.

Gravedad: media