sql >> Base de Datos >  >> RDS >> Sqlserver

13 mejores prácticas de seguridad de SQL Server

Los datos son un activo fundamental de todas las organizaciones, y las bases de datos mal protegidas suelen ser las culpables de las infracciones de seguridad. Este artículo detalla las mejores prácticas de seguridad del servidor SQL, así como las consideraciones de seguridad esenciales para proteger sus bases de datos de ataques maliciosos.

La seguridad de los datos se compone de tres pilares esenciales:confidencialidad, integridad y disponibilidad (CIA) y se ocupa de procesos específicos para proteger los datos del acceso intencional y accidental. Desglosemos las diferentes áreas y los pasos a seguir al abordar la seguridad de SQL Server, una de las bases de datos relacionales más populares en uso en la actualidad.

Mejores prácticas de seguridad de SQL Server

1. Garantice la seguridad física de su SQL Server

Cuando se trata de la seguridad de SQL Server, no se puede pasar por alto la seguridad física. La seguridad física se refiere a limitar el acceso no autorizado a los centros de datos u otros componentes físicos del servidor. Por ejemplo, puede implementar una habitación cerrada con acceso restringido mediante una tarjeta inteligente, huella digital o reconocimiento facial. También puede configurar un segmento de red restringido para SQL Server.

Los centros de datos albergan la infraestructura de una organización, como enrutadores, conmutadores, servidores, firewalls y dispositivos de almacenamiento. La seguridad física se ocupa de proteger el hardware, el software y la red de cualquier acceso no autorizado o desastres naturales. Puede involucrar las siguientes áreas:

  • Asegurar el acceso a las instalaciones y al equipo solo para personal autorizado
  • Mantenimiento de los sistemas de control de acceso
  • Vigilancia las 24 horas del día, los 7 días de la semana, los 365 días del año con guardias de seguridad en el sitio o monitoreo de CCTV
  • Fuente de alimentación ininterrumpida (SAI)
  • Contar con un sistema de alarma contra incendios y un sistema de detección de humo por aspiración
  • Tener un panel detector de fugas de agua activo
  • Sistemas repelentes de roedores
  • Sistemas de extinción de incendios
  • Control y seguimiento de temperatura y humedad
  • Mantenimiento periódico del hardware

2. Proteja su sistema operativo

SQL Server se instala sobre un sistema operativo existente, como Windows o Linux. Por lo tanto, la seguridad del sistema operativo juega un papel vital en la seguridad de SQL Server. A continuación, se incluyen algunas recomendaciones para proteger su sistema operativo:

  • Aplicar periódicamente parches de seguridad y service packs del sistema operativo
  • Defina una política de parches del sistema operativo que aplique parches en entornos inferiores seguidos de parches de producción
  • Utilice siempre versiones del sistema operativo del producto estables y compatibles. Por ejemplo, Microsoft descontinuó el soporte para Windows Server 2003, por lo tanto, no debe usarlo para alojar bases de datos
  • No permita el acceso a Internet en sus servidores de base de datos
  • Debe desinstalar, detener o deshabilitar las aplicaciones y unidades no utilizadas para garantizar menos vías para posibles ataques
  • Implemente un cortafuegos con acceso restringido a los servidores de la base de datos para que solo los servidores de aplicaciones que requieran acceso al servidor de la base de datos puedan pasar el tráfico de los cortafuegos
  • Abra puertos específicos en el cortafuegos. Por ejemplo, de forma predeterminada, SQL Server se ejecuta en el puerto 1433. Por lo tanto, puede permitir el puerto TCP 1433 y 3389 para el acceso remoto al servidor si no se ejecuta ninguna otra aplicación en el servidor. Del mismo modo, el servicio de análisis utiliza el puerto predeterminado 2383 como puerto estándar. Para obtener una lista completa de puertos en SQL Server, consulte esta documentación sobre los puertos utilizados por SQL Server. También puede usar certificados SSL o TLS para asegurar el acceso a SQL Server. Estos certificados pueden cifrar la transferencia de datos entre SQL Server y las aplicaciones cliente. Se requiere la configuración de SQL Server para un certificado autofirmado o el certificado emitido por la autoridad de certificación (CA). Puede consultar el artículo: Cómo configurar y usar conexiones cifradas de SQL Server para obtener más detalles.
  • Aproveche la opción Protección ampliada para la autenticación para evitar un ataque de retransmisión de autenticación mediante el enlace del servicio y el enlace del canal. Para habilitar la protección extendida, vaya al Administrador de configuración de SQL Server, expanda la pantalla, haga clic con el botón derecho en Protocolos y luego vaya a Avanzado, Protección extendida. Tenga en cuenta que, de forma predeterminada, esto está desactivado.

Del mismo modo, puede forzar la conexión cifrada a SQL Server utilizando la siguiente opción.

También puede consultar protección ampliada para obtener más detalles.

3. Reduce tu superficie

El área de superficie de SQL Server se compone de funciones de motor de base de datos que brindan funciones adicionales, como el envío de correos electrónicos. Estos componentes pueden ser un objetivo potencial para obtener acceso a SQL Server para actividades maliciosas. Por lo tanto, debe deshabilitar el componente y las características de SQL Server que no se están utilizando, ya que esto limitará las posibilidades de un posible ataque. Los principales componentes que puede revisar y deshabilitar se enumeran a continuación.

  • Buscar procesos de inicio
  • Procedimientos de automatización OLE
  • CLR habilitado
  • Encadenamiento de propiedad de bases de datos cruzadas
  • xp_cmdshell
  • XP de correo de base de datos

Puede consultar este artículo para obtener información detallada sobre las opciones de configuración del servidor.

4. Configure un servidor para escuchar en un puerto diferente

Microsoft SQL Server usa el puerto predeterminado 1433 para todas las conexiones de bases de datos. Es un riesgo de seguridad común en muchos entornos de bases de datos porque los profesionales de las bases de datos normalmente no cambian el puerto predeterminado. Es un puerto muy conocido y los intrusos pueden aprovechar esta oportunidad para acceder a SQL Server. Por lo tanto, debe usar un puerto no predeterminado para fortalecer la seguridad de su servidor SQL. Puede modificar esto utilizando el Administrador de configuración de SQL Server.

5. Ajustar la autenticación de SQL Server

La protección de sus datos depende de la capacidad de autenticar el acceso a datos específicos. SQL Server ofrece dos opciones para la autenticación de la base de datos.

  • Autenticación de Windows
  • Autenticación de Windows y SQL (modo mixto)

Para verificar el modelo de autenticación del servidor, haga clic con el botón derecho en la instancia de SQL Server y navegue hasta Seguridad.

La autenticación de Windows utiliza cuentas de directorio activo para las autenticaciones. Puede tener un control de políticas centralizado para la complejidad de la contraseña, la caducidad de la contraseña, el bloqueo de cuentas y los grupos de directorio activo en el directorio activo. Por lo tanto, debe usar la autenticación de Windows en lugar de la autenticación de SQL Server. Aquí, el usuario se conecta con una cuenta de Windows y SQL Server valida las credenciales con el token principal de Windows. Utiliza el protocolo de seguridad Kerberos para las autenticaciones. Consulte modo de autenticación para obtener más detalles.

Sin embargo, si necesita utilizar los inicios de sesión de SQL Server, aún puede aplicar la política de contraseñas como se destaca a continuación.

6. Recuerda los permisos de la cuenta de servicio

SQL Services utiliza una cuenta de Windows para ejecutar sus servicios. No debe utilizar las cuentas integradas con privilegios elevados, como Servicio de red o Sistema local. De manera similar, para una cuenta de servicio de dominio, debe asignar privilegios apropiados para la función.

Por lo tanto, recomendaría consultar configurar cuentas y permisos de servicio de Windows para obtener más detalles sobre los permisos de las cuentas de servicio de SQL Server.

7. Aplicar parches de SQL Server en producción

Microsoft lanza paquetes de servicio regulares (SQL Server 2016 o anterior) y paquetes acumulativos (SQL Server 2017 en adelante) para solucionar problemas conocidos y problemas de seguridad. Por lo tanto, siempre debe planear implementar parches de SQL Server en las instancias de producción. Sin embargo, no aplique parches directamente en las instancias de producción. Siempre aplíquelos primero en el entorno de prueba, valide y planifique la implementación de producción.

Puede consultar las últimas actualizaciones de Microsoft SQL Server para encontrar detalles sobre los últimos paquetes de servicio y paquetes acumulativos.

8. Proteja sus copias de seguridad

Cuando se trata de la seguridad de SQL Server, proteger sus copias de seguridad es fundamental. Por lo general, los profesionales de las bases de datos no tienen en cuenta todos los requisitos para proteger las copias de seguridad de las bases de datos. La copia de seguridad de la base de datos es el proceso de crear una copia del estado operativo, la arquitectura y los datos almacenados de una base de datos. Por lo tanto, es igualmente importante protegerlo. Significa restringir el acceso a los archivos de copia de seguridad y cifrarlos correctamente. Cuando se trata de proteger las copias de seguridad, aquí hay algunos recordatorios.

  • No proporcione a todos los derechos sobre la carpeta de copia de seguridad para crear, ver, modificar y eliminar archivos de copia de seguridad
  • Utilice copias de seguridad de la base de datos con cifrado; consulte este artículo sobre cifrado de copia de seguridad para obtener más detalles

9. Recuerde las técnicas de cifrado y enmascaramiento de datos de SQL Server

Un área clave en la seguridad de SQL Server es el cifrado. Puede utilizar varios mecanismos de cifrado para proteger los datos confidenciales en su base de datos de SQL Server. Las diferentes opciones de cifrado son las siguientes.

  • Always Encrypted:la técnica siempre cifrada ayuda a cifrar datos confidenciales dentro de las aplicaciones cliente. El controlador siempre habilitado para cifrado cifra y descifra automáticamente los datos confidenciales en las aplicaciones cliente. Las claves de cifrado nunca se revelan al motor de la base de datos de SQL Server. Protege los datos confidenciales.
  • Cifrado de datos transparente (TDE):el TDE cifra los datos en reposo. Ayuda a proteger los archivos de datos, archivos de registro y archivos de copia de seguridad.
  • Cifrado a nivel de columna:el cifrado a nivel de columna ayuda a cifrar datos de columna específicos, por ejemplo, números de tarjetas de crédito y números de seguridad social.
  • Enmascaramiento de datos estáticos:el enmascaramiento de datos estáticos reemplaza los datos confidenciales utilizando las reglas de transformación de datos definidas.
  • Enmascaramiento dinámico de datos:el enmascaramiento dinámico de datos ayuda a limitar la exposición de datos confidenciales a usuarios sin privilegios.
  • Seguridad a nivel de fila:la seguridad a nivel de fila restringe el acceso a la fila de datos.

10. Haz que la contraseña del administrador del sistema sea complicada

Si está utilizando la autenticación SQL, crea una SA de inicio de sesión con los permisos de administrador del sistema. Para proteger su SQL Server, haga lo siguiente.

  • Cambie el nombre del inicio de sesión llamado SA a un nombre diferente
  • Desactive la cuenta si no planea usarla
  • Utilice una contraseña compleja
  • No permitir que las aplicaciones usen la cuenta SA en las cadenas de conexión

11. Auditar inicios de sesión en la base de datos

La auditoría a menudo se pasa por alto cuando se trata de la seguridad de SQL Server. Debe realizar auditorías periódicas de SQL Server para inicios de sesión fallidos. Puede utilizar el mecanismo de auditoría de inicio de sesión predeterminado para revisar las cuentas. Por ejemplo, suponga que cualquier usuario intenta conectarse a SQL Server con una cuenta de privilegios altos. En ese caso, puede ver el error de inicio de sesión y la dirección IP de la solicitud entrante (cliente). Esto puede ayudarlo a capturar y eliminar actividades sospechosas.

Puede usar los eventos extendidos, el seguimiento de SQL, la captura de datos modificados, los activadores (DDL, DML o inicio de sesión), la base de datos o las especificaciones de auditoría a nivel de servidor para la auditoría de SQL Server.

12. Tenga en cuenta los permisos de la base de datos y del servidor

Los profesionales de bases de datos deben tener cuidado al asignar permisos a nivel de servidor o de base de datos. A veces, vemos que los desarrolladores obtienen permisos de administrador del sistema en el nivel del servidor o del propietario de la base de datos en el nivel de la base de datos. Estos son los permisos más altos que un usuario puede tener a nivel de instancia o base de datos, respectivamente.

  • Consulte funciones fijas de nivel de servidor para comprender las funciones fijas de nivel de servidor y sus capacidades.
  • Consulte roles a nivel de base de datos para comprender mejor los roles fijos a nivel de base de datos.

13. Apague el servicio de navegador de SQL Server

SQL Server usa el servicio de navegador para la instancia nombrada. Escucha todas las solicitudes entrantes de conexiones de SQL Server. Utiliza el puerto UDP 1434 y responde a las solicitudes con el número de puerto TCP/IP necesario para conectarse a SQL Server. Por lo tanto, puede desactivar el servicio del navegador y definir explícitamente el número de puerto en las cadenas de la aplicación. Esto evita la exposición del número de puerto a las solicitudes de conexión entrantes y ayuda con la seguridad de SQL Server.

Puede consultar el artículo Cómo funciona el navegador de SQL Server para comprender mejor el servicio del navegador de SQL Server.

Otras consideraciones de seguridad de SQL Server

Como se describe, la seguridad de SQL Server es un proceso continuo con varios factores y pasos. Debe revisar periódicamente las instancias de SQL Server, las políticas de seguridad y actualizarlas periódicamente tanto en su sistema operativo como en los niveles de SQL Server. Al aplicar estas prácticas recomendadas con regularidad, ayudará a crear un servicio de base de datos más seguro y sin interrupciones para su empresa.