SQL Server 2008

Seguridad

Rick Byham

 

Resumen:

  • Mejoras del cifrado
  • Mejoras de la autenticación
  • Auditorías de la seguridad
  • Administración basada en directivas

SQL Server 2008 proporciona muchas mejoras y nuevas características que han sido diseñadas para mejorar la seguridad general de su entorno de base de datos. Agrega capacidades clave de autenticación y cifrado e introduce un sistema nuevo de autoría que

le ayuda a elaborar informes acerca del comportamiento de usuario y a cumplir los requisitos reglamentarios.

En este artículo, le proporcionaré información general sobre los cambios más importantes que encontrará para la seguridad de SQL Server® 2008. Una de las primeras cosas que quizás advierta es que se ha retirado la herramienta Configuración de superficie de SQL Server 2005. Las opciones de protocolo expuestas por esta herramienta están ahora disponibles en la herramienta Administrador de configuración. Sin embargo, la habilitación y deshabilitación de las características se hace ahora a través del nuevo marco de trabajo de administración basada en directivas.

Mejoras del cifrado

Hay dos mejoras principales en materia de cifrado. Primero, SQL Server ahora puede usar claves de cifrado almacenadas en un módulo externo de seguridad de hardware de terceros. En segundo lugar, los datos almacenados en SQL Server se pueden cifrar en un método que es transparente para las aplicaciones que se conectan a la base de datos. Esto significa que los administradores de bases de datos pueden cifrar fácilmente todos los datos almacenados en una base de datos entera sin tener que modificar el código de aplicación existente.

La primera mejora la hace posible la nueva característica Administración extensible de claves (EKM, Extensible Key Management), que está disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2008. EKM posibilita que los proveedores de terceros de soluciones de administración de claves empresariales y módulos de seguridad de hardware (HSM, Hardware Security Module) registren sus dispositivos en SQL Server. Una vez que estos dispositivos están registrados, los usuarios pueden usar las claves de cifrado almacenadas en estos módulos.

Estos proveedores pueden incluso exponer características de cifrado avanzadas (como el vencimiento y la rotación de las claves) en estos módulos. En algunas configuraciones, esto permite la protección de datos por parte de administradores de bases de datos que no son miembros del grupo de administradores del sistema. Las instrucciones de cifrado de T-SQL pueden entonces cifrar y descifrar los datos usando las claves almacenadas en el dispositivo EKM externo.

Otra característica nueva, el cifrado de datos transparente, le permite cifrar archivos de base de datos sin tener que alterar ninguna de sus aplicaciones. Realiza cifrado y descifrado de E/S en tiempo real de los archivos de datos y de registro. El cifrado usa una clave de cifrado de base de datos (DEK, Database Encryption Key) que se almacena en el registro de arranque de base de datos para adquirir disponibilidad durante la recuperación. La DEK está protegida mediante un certificado almacenado en la base de datos maestra del servidor. El diagrama de la Figura 1 ilustra la arquitectura que permite el cifrado de datos transparente.

Figura 1 Arquitectura del cifrado de datos transparente

Figura 1** Arquitectura del cifrado de datos transparente **(Hacer clic en la imagen para ampliarla)

Esto es útil para proteger los datos inactivos. Aunque puede tomar varias precauciones para proteger su base de datos, como cifrar los activos confidenciales y colocar un firewall alrededor de los servidores de la base de datos, los medios físicos en los que se almacena la base de datos (incluso las cintas de copia de seguridad) ofrecen una vulnerabilidad diferente. Un usuario malintencionado podría robar estos medios y obtener acceso a los datos almacenados.

El cifrado de datos transparente, sin embargo, le permite cifrar los datos confidenciales de la base de datos y proteger las claves que se usan para cifrar los datos con un certificado. Esto puede ayudar a que su organización cumpla con muchas leyes, regulaciones e instrucciones del sector con respecto a la adecuada protección de los datos.

El cifrado de datos transparente permite que los desarrolladores de software cifren los datos usando los algoritmos de cifrado Estándar de cifrado avanzado (AES, Advanced Encryption Standard) y Triple Estándar de cifrado de datos (3DES, Triple Data Encryption Standard). El cifrado del archivo de base de datos se realiza en el nivel de página, cifrando las páginas antes de que se escriban en el disco y descifrándolas al leerlas en la memoria. Los archivos de copia de seguridad de las bases de datos que tienen habilitado el cifrado de datos transparente también se cifran con la clave de cifrado de base de datos.

Para restaurar una base de datos cifrada, debe tener acceso al certificado o a la clave asimétrica que se usó para cifrar la base de datos. Sin el certificado o la clave asimétrica, no se puede restaurar la base de datos. De modo que debe retener todas las claves siempre que necesite tener acceso a las copias de seguridad relacionadas.

Mejoras de la autenticación

Como probablemente sepa, Kerberos es un protocolo de autenticación de redes que proporciona un medio sumamente seguro para autenticar mutuamente las entidades cliente y servidor (o las entidades principales de seguridad) en una red. Kerberos ayuda a los usuarios a mitigar vulnerabilidades de seguridad como los ataques por seducción o de tipo "man-in-the-middle". En relación con la autenticación NTLM de Windows®, Kerberos es más seguro, más robusto y ofrece un mejor rendimiento.

Para autenticar una conexión mutuamente con Kerberos, los nombres principales de servicio (SPN, Service Principal Names) de una instancia de SQL Server deben registrarse en Active Directory®, y un controlador de cliente debe proporcionar un SPN registrado durante la conexión. En SQL Server 2008, la autenticación Kerberos se ha ampliado a todos los protocolos de red, incluidos TCP, Canalización con nombre, Memoria compartida y Adaptador de interfaz virtual (VIA). De forma predeterminada, el controlador de cliente infiere automáticamente un SPN correcto para una instancia de SQL Server a la que se conecta. También puede especificar explícitamente un SPN en el parámetro de cadena de conexión para mejorar la seguridad, el control y la solución de problemas.

Internet Information Services (IIS) ya no proporciona acceso a ASP.NET, Administrador de informes o al servicio web del servidor de informes. En SQL Server 2008, Reporting Services administra todas las solicitudes de autenticación a través de un nuevo subsistema de autenticación que es compatible con la autenticación basada en el Windows y personalizada.

Ahora, Reporting Services hospeda las tecnologías de Microsoft® .NET Framework y ASP.NET incorporadas en el Common Language Runtime (CLR) de SQL Server y usa las capacidades del sistema operativo. El servidor de informes incluye un escucha HTTP que acepta las solicitudes y las dirige a la dirección URL y al puerto definidos durante la configuración del servidor. Ahora las reservas y el registro de direcciones URL se administran directamente por el servidor de informes a través de HTTP.SYS.

Auditorías de la seguridad

SQL Server Audit es una característica nueva que le permitirá crear auditorías personalizadas de eventos de motor de base de datos. Esta característica usa eventos aumentados para registrar información para las auditorías y proporciona las herramientas y procesos necesarios para habilitar, almacenar y visualizar las auditorías en varios objetos de servidor y base de datos.

Además, SQL Server Audit es más rápido que SQL Server Trace y SQL Server Management Studio facilita la creación y supervisión de los registros de auditoría. Ahora puede auditar a un nivel más granular, capturando instrucciones SELECT, INSERT, UPDATE, DELETE, REFERENCES y EXECUTE para usuarios individuales. Además, SQL Server Audit se puede incluir totalmente en scripts con las instrucciones de T-SQL CREATE SERVER AUDIT y CREATE SERVER AUDIT SPECIFICATION y sus instrucciones relacionadas ALTER y DROP.

Para establecer la auditoría, debe crear una auditoría y especificar la ubicación en la que se registrarán los eventos auditados . Las auditorías se pueden guardar en el registro de seguridad de Windows, el registro de aplicaciones de Windows o en un archivo situado en la ubicación que especifique. A continuación, le da un nombre a la auditoría y configura sus características, como la ruta de acceso al archivo de auditoría y su tamaño máximo. También puede seleccionar que se cierre SQL Server si la auditoría genera errores. Y si necesita registrar los eventos auditados en más de una ubicación, sólo tiene que crear más de una auditoría.

El siguiente paso consiste en crear una o más especificaciones de auditoría. Una especificación de auditoría de servidor recopila información acerca de la instancia de SQL Server e incluye objetos de ámbito de servidor, como los inicios de sesión y la pertenencia a funciones de servidor. Incluye también información de base de datos que se administra en la base de datos maestra, como el derecho de acceso a una base de datos. Al definir una especificación de auditoría, también indica qué auditoría recibirá los eventos supervisados. Puede definir varias auditorías de servidor y múltiples especificaciones de auditoría de servidor, pero cada auditoría de servidor puede incluir sólo una especificación de auditoría de servidor habilitada a la vez.

También puede crear especificaciones de auditoría de base de datos que supervisen los eventos de una sola base de datos. Puede agregar varias especificaciones de auditoría de base de datos a una auditoría, pero una auditoría de servidor sólo puede habilitar una especificación de auditoría de base de datos por cada base de datos a la vez.

Los eventos de acción de auditoría de SQL Server que se usan para las especificaciones de auditoría de servidor se agrupan en colecciones de eventos de acción de auditoría relacionados. Éstos se exponen como grupos de acción de auditoría. Al agregar un grupo a la especificación de auditoría, podrá supervisar todos los eventos incluidos en ese grupo. Por ejemplo, hay un grupo de acción de auditoría llamado DBCC_GROUP que expone los comandos DBCC. Sin embargo, los comandos DBCC no están disponibles para auditorías individuales.

Hay 35 grupos de acción de auditoría disponibles para el servidor, algunos de los cuales están estrechamente relacionados entre sí. Por ejemplo, hay un SUCCESSFUL_LOGIN_GROUP, un FAILED_LOGIN_GROUP y un LOGOUT_GROUP. Hay también un tipo de acción de auditoría AUDIT_ CHANGE_GROUP que puede usar para auditar el proceso de auditoría.

Las especificaciones de auditoría de base de datos también pueden especificar grupos de eventos de acción de auditoría reunidos en grupos de acción de auditoría a nivel de base de datos. Además de los grupos de acción de auditoría, la especificación de auditoría de base de datos puede incluir eventos de acción de auditoría individuales para auditar instrucciones de lenguaje de manipulación de datos. Estos eventos se pueden configurar para supervisar toda la base de datos o algunos objetos específicos de base de datos. La acción de auditoría SELECT, por ejemplo, se puede usar para auditar consultas SELECT para una sola tabla o un esquema entero. Estos eventos también se pueden configurar para supervisar las acciones por funciones o usuarios específicos, como todo db_writers.

Por ejemplo, puede usar la acción de auditoría SELECT para auditar las consultas SELECT de una sola tabla por el nombre de usuario María y la función de base de datos FINANCE_DEPT o base de datos pública. Claramente, esto ofrece mucho control y flexibilidad para crear las auditorías que necesita.

Informes de dependencia

Los informes de dependencia se han mejorado con una nueva vista de catálogo y nuevas funciones del sistema. Si usa sys.sql_expression_dependencies, sys.dm_sql_referencing_entities y sys.dm_sql_referenced_entities, puede generar informes de dependencias SQL de bases de datos, entre servidores y entre bases de datos para objetos enlazados a esquema y no enlazados a esquema.

Nuevas funciones de base de datos

Se han realizado cambios a las funciones de base de datos incluidas en la base de datos msdb. El nombre de la función db_dtsadmin ha cambiado a db_ssisadmin, el de la función db_dtsltduser pasa a ser db_ssisltduser y, por último, la función db_dtsoperator pasa a llamarse db_ssisoperator. Para ofrecer compatibilidad con versiones anteriores, las funciones antiguas se agregan como miembros de las nuevas funciones al actualizar los servidores.

Además de estos cambios, se han agregado nuevas funciones de base de datos para admitir las nuevas características de SQL Server 2008. Concretamente, la base de datos msdb incluye nuevas funciones para grupos de servidores (ServerGroupAdministratorRole y ServerGroupReaderRole), administración basada en directivas (PolicyAdministratorRole) y el recopilador de datos (dc_admin, dc_operator y dc_proxy). Además, la base de datos de almacenamiento de datos de administración incluye nuevas funciones para el recopilador de datos (mdw_admin, mdw_writer y mdw_reader).

Seguridad de FILESTREAM

Ahora SQL Server incluye compatibilidad con el almacenamiento de FILESTREAM, lo que permite que las aplicaciones de SQL Server almacenen datos desestructurados, como documentos e imágenes, en el sistema de archivos. En cambio, esto significa que las aplicaciones cliente se pueden beneficiar de las API de transmisión por secuencias y del rendimiento del sistema de archivos al tiempo que mantienen la consistencia transaccional entre los datos desestructurados y los correspondiente datos estructurados.

Los datos de FILESTREAM se deben almacenar en grupos de archivos de FILESTREAM, que es un grupo de archivos especial que contiene directorios de sistema de archivos en lugar de archivos. Estos directorios, denominados contenedores de datos, proporcionan la interfaz entre el almacenamiento de motor de base de datos y el almacenamiento de sistema de archivos.

En términos de seguridad, los datos de FILESTREAM se protegen como cualquier otro tipo de datos (los permisos se conceden en los niveles de tabla o columna). La única cuenta a la que se concede permisos NTFS para el contenedor de FILESTREAM es la cuenta en la que se ejecuta el servicio de SQL Server . Al abrir una base de datos, SQL Server restringe el acceso a los contenedores de datos de FILESTREAM, salvo cuando el acceso se realiza mediante transacciones del T-SQL y API de OpenSqlFilestream.

Administración basada en directivas

La administración basada en directivas de SQL Server 2008 proporciona un sistema nuevo para administrar SQL Server. Puede crear directivas para probar y generar informes sobre muchos aspectos de SQL Server. Las directivas pueden aplicarse a una sola base de datos, una sola instancia de SQL Server o a todos los servidores SQL Server que usted administra.

Mediante la administración basada en directivas, puede probar las opciones de configuración de SQL Server y una gran parte de las configuraciones de seguridad. Además, con algunas configuraciones de seguridad puede crear directivas para detectar servidores de base de datos que no reúnan los requisitos de cumplimiento y adoptar las medidas necesarias para invertir esta situación.

En SQL Server 2008, se deshabilitan de forma predeterminada varias características que no son esenciales para minimizar la exposición a posibles ataques. Puede usar la administración basada en directivas para habilitar selectivamente las característica que necesite. Entonces puede evaluar su configuración sobre una base programada, obteniendo alertas si se detecta que los valores de la configuración están fuera de la directiva.

La administración basada en directivas agrupa las propiedades relacionadas y las expone en componentes denominados facetas. Por ejemplo, la faceta Configuración de superficie contiene propiedades para consultas ad hoc remotas, integración de CLR, correo electrónico de base de datos, automatización OLE, DAC remota, SQL Mail, ayudante de web y xp_cmdshell. Puede crear una directiva que habilite la integración de CLR, pero deshabilitando todas las demás características. La directiva puede incluir instrucciones de condición complejas, como deshabilitar el correo electrónico de base de datos en todas las instancias de SQL Server a menos que se llamen Customer_Response.

Una vez que haya creado la directiva, podrá evaluarla en todos los servidores para generar un informe que le diga qué servidores no reúnen los requisitos de cumplimiento. Presione el botón Configurar y todas las instancias que no reúnen los requisitos de cumplimiento se configurarán con los valores de la directiva. También debe programar la directiva para que se ejecute periódicamente y supervisar así el estado de sus servidores. Las facetas de configuración de superficies se proporcionan para el motor de base de datos, los servicios de análisis y los servicios de informes.

Tenga presente, no obstante, que esta administración basada en directivas no está pensada para actuar como un mecanismo de cumplimiento de la seguridad. En la mayoría de los casos, un usuario con privilegios suficientes puede emitir instrucciones que infrinjan una directiva u omitir la directiva y realizar acciones de reconfiguración que podrían infringir su directiva de seguridad. La administración basada en directivas de SQL Server 2008 debe considerarse simplemente como una ayuda para la supervisión de su configuración de seguridad de SQL Server.

La capacidad de las facetas para implantar la configuración varía en función de si sus instrucciones DDL relacionadas se pueden ejecutar en modo de no confirmación automática. A veces una faceta puede forzar una configuración sobre una instancia del motor de base de datos, pero aún así, el administrador podrá reconfigurar los valores. Algunas facetas pueden ser implantadas por un desencadenador del servidor. Esto puede evitar que los usuarios con pocos privilegios cambien la configuración y reduce las posibilidades de que un administrador cambie accidentalmente la configuración. En este caso, el administrador tendría que deshabilitar temporalmente la directiva antes de cambiar la configuración. Otras facetas sólo pueden informar sobre el estado de una propiedad, pero no lo pueden cambiar. Este sería el caso de una directiva que comprueba la longitud de clave de una clave simétrica o asimétrica (como se muestra en la Figura 2).

Figura 2 Faceta para claves asimétricas

Figura 2** Faceta para claves asimétricas **(Hacer clic en la imagen para ampliarla)

Hay facetas para la mayoría de los tipos de objetos de base de datos, muchos de los cuales tienen usos de seguridad. Por ejemplo, la faceta de inicio de sesión puede determinar si la directiva de contraseña se aplica a cada inicio de sesión, mientras que la faceta de procedimientos almacenados puede detectar si todos los procedimientos están cifrados. Otras facetas prueban las propiedades de usuarios, esquemas, proveedores de cifrado, cumplimiento de criterios comunes y auditoría.

Windows Server 2008

SQL Server 2008 está completamente probado con Windows Server® 2008, que se comercializa con el firewall activado. Ahora es un buen momento para revisar cómo configurar el firewall. Windows Server 2008 también proporciona control de acceso de usuarios, que a lo mejor ya ha experimentado con Windows® Vista. Esto restringe los privilegios que recibe automáticamente como usuario administrativo. Estas características afectarán a todas las versiones de SQL Server.

En conclusión

La seguridad continúa siendo un área de mejora deliberada para SQL Server. Las mejoras del cifrado y la autenticación proporcionan nuevas capacidades y el nuevo sistema de auditoría y la administración basada en directivas de SQL Server 2008 le ofrecen nuevas herramientas para supervisar el estado del cumplimiento de la seguridad.

Rick Byham ingresó en Microsoft en 1995. Comenzó trabajando como ingeniero de soporte técnico de SQL Server en los servicios de soporte al cliente para unirse más tarde al equipo de SQL Server de Microsoft Learning. En 2003 pasó a formar parte del equipo de Libros en pantalla de SQL Server como escritor técnico, donde es actualmente responsable de la documentación de seguridad. Puede ponerse en contacto con Rick en rick.byham@microsoft.com.

© 2008 Microsoft Corporation and CMP Media, LLC. Reservados todos los derechos; queda prohibida la reproducción parcial o total sin previa autorización.