Guía de integración de Microsoft SQL Server

Resumen

Esta guía configura el sensor CBOM Secure Discover_DB para descubrir activos criptográficos administrados por el cifrado transparente de datos (TDE) de Microsoft SQL Server. El sensor se conecta con un inicio de sesión de solo lectura y consulta las vistas del catálogo del sistema, solo lectura:

  • Claves de cifrado de base de datos (DEK) a través de sys.dm_database_encryption_keys
  • Certificados a nivel de servidor que protegen los DEK a través de sys.certificates
  • Claves asimétricas (RSA/ECC) utilizadas para la protección DEK a través de sys.asymmetric_keys
  • Claves simétricas en el ámbito del servidor o de la base de datos mediante sys.symmetric_keys

Para cada activo, registra el nombre, el algoritmo, la huella digital, la longitud de la clave y las fechas de creación y caducidad. Nunca descifra datos, exporta material de clave ni realiza escrituras.

Requisitos previos

  1. SQL Server 2008 o posterior (cualquier edición compatible con TDE); se recomienda la versión 2019 o posterior para una cobertura completa del catálogo.
  2. Acceso a la red desde el host del sensor a la instancia en el puerto TCP 1433 (o el puerto personalizado).
  3. Autenticación de SQL Server (modo mixto) o un inicio de sesión de Windows asignado si se utiliza la autenticación de Windows.
  4. Derechos de administrador del sistema o administrador de seguridad para crear el inicio de sesión y otorgar permisos.
  5. Acceso de administrador de CBOM para crear un sensor Discover_DB.
  6. Se requiere al menos una base de datos compatible con TDE para obtener resultados DEK significativos (los certificados/claves se enumeran independientemente).

Guía paso por paso

Paso 1: Crear un inicio de sesión de solo lectura

Cree un inicio de sesión dedicado en la base de datos maestra (no reutilice las cuentas de aplicación ni de administrador):

USE master; GO CREATE LOGIN cbom_reader WITH PASSWORD = 'R3pl@ceW1thStr0ngP@ssword!', DEFAULT_DATABASE = master, CHECK_EXPIRATION = ON, CHECK_POLICY = ON; GO

Paso 2: Otorgar los tres permisos de servidor necesarios

Solo se necesitan permisos de lectura a nivel de servidor, no roles de base de datos ni acceso de lectura de datos:

USE master; GO GRANT VIEW SERVER STATE TO cbom_reader; -- sys.dm_database_encryption_keys y DMV GRANT VIEW ANY DEFINITION TO cbom_reader; -- sys.certificates, sys.asymmetric_keys, sys.symmetric_keys GRANT VIEW ANY DATABASE TO cbom_reader; -- enumerar bases de datos y estado de cifrado GO

Verifique con una consulta contra sys.server_permissions unida a sys.server_principals, espere filas GRANT para los tres permisos.

Paso 3: Verificar el acceso a la vista del catálogo.

Conectado como cbom_reader, confirme que cada vista requerida devuelve resultados (o un conjunto vacío) sin errores de permisos:

SELECT nombre, asunto, huella digital, descripción del algoritmo, fecha de caducidad FROM sys.certificates; SELECT nombre, descripción del algoritmo, huella digital FROM sys.asymmetric_keys; SELECT DB_NAME(database_id) AS nombre_base_de_datos, estado_de_encriptación, tipo_de_encriptador, algoritmo_de_clave, longitud_de_clave FROM sys.dm_database_encryption_keys; SELECT nombre, descripción del algoritmo, longitud_de_clave, fecha_de_creación FROM sys.symmetric_keys;

Paso 4: Configurar el sensor de seguridad CBOM

sensores: - nombre: mssql-tde-prod tipo: Discover_DB habilitado: verdadero programación: "0 2 * * *" conexión: controlador: mssql host: "sql-prod-01.corp.example.com" puerto: 1433 base de datos: master # consultas de catálogo de ámbito de servidor nombre de usuario: "cbom_reader" contraseña: "${CBOM_MSSQL_PASSWORD}" cifrado: verdadero # aplicar TLS certificado_servidor_confianza: falso descubrimiento: catálogos: [sys.certificates, sys.asymmetric_keys, sys.dm_database_encryption_keys, sys.symmetric_keys] incluir_bases_de_datos_del_sistema: falso salida: tipos_de_activos: [certificado, clave_asimétrica, clave_simétrica, tde_dek] etiquetas: { entorno: producción, clasificación_de_datos: confidencial } notificaciones: on_expiring_cert_days: 30

Almacene la contraseña a la que hace referencia ${CBOM_MSSQL_PASSWORD} en un administrador de secretos; nunca la codifique directamente en el código.

Paso 5: Validar

Ejecución del sensor cbom --nombre mssql-tde-prod

Confirme que la ejecución se conecta y reporta los recuentos de certificados, claves asimétricas, DEK y claves simétricas detectados. En el inventario de CBOM filtrado por origen = mssql-tde-prod, verifique que los certificados y las claves de cifrado de la base de datos TDE aparezcan con la huella digital, el algoritmo, la fecha de caducidad y el sujeto completos. Si la auditoría SQL está habilitada, confirme que cbom_reader solo emitió sentencias SELECT contra vistas de catálogo.

Errores comunes

Error al iniciar sesión para el usuario 'cbom_reader'.

Causa: El inicio de sesión no está disponible o está deshabilitado, la contraseña es incorrecta o la instancia está en modo de autenticación solo de Windows.

Solución: Habilite el modo mixto (y reinicie el servicio), confirme que el inicio de sesión no esté deshabilitado y restablezca la contraseña con ALTER LOGIN si es necesario.

El usuario no tiene permiso para realizar esta acción.

Causa: Uno de los permisos VIEW SERVER STATE / VIEW ANY DEFINITION / VIEW ANY DATABASE no fue otorgado o fue revocado.

Solución: Vuelva a ejecutar la consulta de verificación de permisos y vuelva a otorgar los permisos que falten.

Proveedor SSL: la cadena de certificados no es de confianza.

Causa: trust_server_certificate es falso, pero el certificado TLS de SQL Server es autofirmado o proviene de una CA no confiable.

Solución: Instale la CA de SQL Server en el almacén de confianza del host del sensor (opción preferida) o emita un certificado de una CA de confianza. Utilice trust_server_certificate: true únicamente como solución temporal para entornos que no sean de producción.

Recomendaciones de seguridad

  • Otorgue al usuario únicamente los tres permisos enumerados, nunca los roles de sysadmin, db_owner o acceso a datos.
  • Cambie la contraseña periódicamente (CHECK_EXPIRATION = ON) y guárdela en un gestor de secretos.
  • Aplicar cifrado: verdadero y certificado de servidor de confianza: falso; establecer Forzar cifrado = Sí en el servidor.
  • Habilite la auditoría de SQL Server para cbom_reader para registrar las consultas SELECT de solo lectura en las vistas del catálogo.
  • Restrinja el tráfico TCP/1433 entrante a la dirección IP del host del sensor mediante un firewall o grupos de seguridad de red.

Conclusión

Con un inicio de sesión de cbom_reader con privilegios mínimos y tres permisos de lectura a nivel de servidor, el sensor Discover_DB proporciona a CBOM Secure visibilidad continua y de solo lectura de los certificados TDE de SQL Server, las claves asimétricas, las claves simétricas y las claves de cifrado de la base de datos, sin exponer ni descifrar datos protegidos y, con notificaciones de caducidad, una conciencia oportuna de los eventos del ciclo de vida de los certificados.