En este documento, se describe un tipo de hallazgo de amenazas de Security Command Center. Los detectores de amenazas generan hallazgos de amenazas cuando identifican una posible amenaza en tus recursos de Cloud. Para obtener una lista completa de los hallazgos de amenazas disponibles, consulta el Índice de hallazgos de amenazas.
Descripción general
La cuenta de superusuario de la base de datos de Cloud SQL (postgres para PostgreSQL y root para MySQL) escribió en las tablas de usuarios. En general, no se debe usar el superusuario (un rol con acceso muy amplio) para escribir en las tablas de usuarios. Para las actividades diarias comunes, se debe usar una cuenta de usuario con acceso más limitado. Cuando un superusuario escribe en una tabla de usuarios, esto podría indicar que un atacante elevó sus privilegios o comprometió al usuario predeterminado de la base de datos y está modificando datos. También podría indicar prácticas normales, pero inseguras.
Event Threat Detection es la fuente de este hallazgo.
Cómo se debe responder
Para responder a este hallazgo, sigue los pasos que se indican a continuación:
Paso 1: Revisa los detalles del hallazgo
- Abre un hallazgo de
Initial Access: Database Superuser Writes to User Tables, como se indica en Revisa los hallazgos. En la pestaña Resumen del panel de detalles del hallazgo, revisa la información de las secciones siguientes:
- Qué se detectó, en especial, los campos siguientes:
- Nombre visible de la base de datos: Es el nombre de la base de datos en la instancia de Cloud SQL PostgreSQL o MySQL que se vio afectada.
- Nombre de usuario de la base de datos: Es el superusuario.
- Consulta de base de datos: Es la consulta en SQL que se ejecuta mientras se escriben datos en las tablas de usuarios.
- Recurso afectado, en especial, los campos siguientes:
- Nombre completo del recurso: Es el nombre del recurso de la instancia de Cloud SQL que se vio afectada.
- Nombre completo principal: Es el nombre del recurso de la instancia de Cloud SQL.
- Nombre completo del proyecto: Es el proyecto de Google Cloud que contiene la instancia de Cloud SQL.
- Vínculos relacionados, en especial los siguientes campos:
- URI de Cloud Logging: Es el vínculo a las entradas de Logging.
- Método MITRE ATT&CK: Es el vínculo a la documentación de MITRE ATT&CK.
- Hallazgos relacionados: Son los vínculos a los hallazgos relacionados.
- Qué se detectó, en especial, los campos siguientes:
Para ver el archivo JSON completo del hallazgo, haz clic en la pestaña JSON.
Paso 2: Revisa los registros
- En la consola de Google Cloud , accede al Explorador de registros. Para ello, haz clic
en el vínculo en
cloudLoggingQueryURI(del paso 1). En la página Explorador de registros, se incluyen todos los registros relacionados con la instancia de Cloud SQL pertinente. - Revisa los registros de pgaudit de PostgreSQL o los registros de auditoría de Cloud SQL para MySQL, que contienen las consultas que ejecutó el superusuario, con los siguientes filtros:
protoPayload.request.user="SUPERUSER"
Paso 3: Investiga los métodos de ataque y respuesta
- Revisa la entrada del framework MITRE ATT&CK para este tipo de hallazgo: Robo de datos en el servicio web.
- Para determinar si se necesitan pasos de solución adicionales, combina los resultados del análisis con la investigación de MITRE.
Paso 4: Implementa la respuesta
El siguiente plan de respuesta podría ser adecuado para este hallazgo, pero también podría afectar las operaciones. Evalúa con cuidado la información que recopilas durante la investigación para determinar la mejor manera de resolver los hallazgos.
Revisa los usuarios que tienen permiso para conectarse a la base de datos.
- En el caso de PostgreSQL, consulta Crea y administra usuarios.
- En el caso de MySQL, consulta Administra usuarios con autenticación integrada.
Considera cambiar la contraseña del superusuario.
- En el caso de PostgreSQL, consulta Establece la contraseña para el usuario predeterminado.
- En el caso de MySQL, consulta Establece la contraseña para el usuario predeterminado.
Considera crear un usuario nuevo con acceso limitado para los diferentes tipos de consultas que se usan en la instancia.
Otorga al usuario nuevo solo los permisos necesarios para ejecutar sus consultas.
- En el caso de PostgreSQL, consulta Grant (comando).
- En el caso de MySQL, consulta Control de acceso y administración de cuentas.
Actualiza las credenciales de los clientes que se conectan a la instancia de Cloud SQL
Ejemplo de JSON de hallazgo
A continuación, se muestra un ejemplo del JSON del hallazgo.
{ "finding": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID", "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID", "resource_name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "state": "ACTIVE", "category": "Initial Access: Database Superuser Writes to User Tables", "sourceProperties": { "sourceId": { "projectNumber": "PROJECT_NUMBER", "customerOrganizationNumber": "ORGANIZATION_ID" }, "detectionCategory": { "ruleName": "cloudsql_superuser_writes_to_user_tables", }, "detectionPriority": "LOW", "affectedResources": [ { "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER" }, { "gcpResourceName": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME" } ], "evidence": [{ "sourceLogId": { "projectId": "PROJECT_ID", "resourceContainer": "projects/PROJECT_ID", "timestamp": { "seconds": "0", "nanos": 0.0 }, "insertId": "INSERT_ID" } }], "findingId": "FINDING_ID", "contextUris": { "mitreUri": { "displayName": "MITRE Link", "url": "https://attack.mitre.org/techniques/T1567/002/" }, "cloudLoggingQueryUri": [{ "displayName": "Cloud Logging Query Link", "url": "LOGGING_LINK" }], "relatedFindingUri": { "displayName": "Related CloudSQL Exfiltration findings", "url": "RELATED_FINDINGS_LINK" } } }, "eventTime": "2022-01-19T21:36:07.901Z", "createTime": "2022-01-19T21:36:08.695Z", "severity": "LOW", "workflowState": "NEW", "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID" "mute": "UNDEFINED", "findingClass": "THREAT", "mitreAttack": { "primaryTactic": "INITIAL_ACCESS", "primaryTechniques": ["DEFAULT_ACCOUNTS"] }, "database": { "displayName": "DATABASE_NAME", "userName": "USER_NAME", "query": "QUERY", }, "access": { "serviceName": "cloudsql.googleapis.com", "methodName": "cloudsql.instances.query" } }, "resource": { "name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parentName": "//cloudsql.googleapis.com/projects/PROJECT_NUMBER", "parentDisplayName": "PROJECT_ID", "type": "google.cloud.sql.Instance", "folders": [{ "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_NUMBER", "resourceFolderDisplayName": "FOLDER_ID" }], "displayName": "INSTANCE_NAME" } }
¿Qué sigue?
- Aprende a trabajar con los hallazgos de amenazas en Security Command Center.
- Consulta el Índice de hallazgos de amenazas.
- Aprende a revisar un hallazgo con la consola de Google Cloud .
- Obtén información sobre los servicios que generan hallazgos de amenazas.