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

Comprensión del bloqueo de SQL Server para un entorno de base de datos seguro

La seguridad es la principal preocupación en estos días en todos los sectores. La seguridad de la base de datos también es una gran preocupación para cualquier cliente. SQL Server está diseñado para proteger todos sus datos almacenados en las bases de datos, pero a veces no aplicamos el conjunto correcto de configuraciones y dejamos un agujero en nuestro sistema. Los piratas informáticos y los extranjeros no autorizados pueden usar estas lagunas para penetrar en su sistema. Sus datos pueden verse comprometidos o difamados, los recursos de su sistema pueden eliminarse para crear una interrupción que detenga sus actividades comerciales, los datos de sus clientes pueden estar expuestos a los competidores, etc.

Bloqueo o endurecimiento del servidor SQL

Todo el proceso para proteger su entorno de base de datos se conoce como bloqueo de base de datos \ SQL Server. Describiré varios parámetros y detalles de configuración que puede aplicar para proteger el entorno de su base de datos.

Instalar solo los componentes necesarios

Comencemos las prácticas de bloqueo con la instalación de SQL Server. SQL Server ofrece varios componentes y características que los DBA eligen para varios requisitos. Algunos de estos componentes y características se dan a continuación:

  1. Motor de base de datos
  2. Servicios de informes
  3. Servicios de integración
  4. Motor de servicios de análisis
  5. Servicios de notificación
  6. Documentación y muestras (bases de datos y códigos de muestra)
  7. Búsqueda de texto completo
  8. Otras características como replicación, servicios de aprendizaje automático, servicios de calidad de datos, etc.

Es una buena práctica instalar solo las funciones necesarias porque, al hacerlo, está reduciendo o limitando las posibilidades de un ataque superficial. Además, tendrá una baja utilización de recursos del sistema.

Instalar las últimas actualizaciones

Asegúrese de actualizar sus sistemas a tiempo. Si se descubren nuevas vulnerabilidades, los proveedores de productos las publican en los boletines de seguridad.

No estoy hablando de actualizar solo los parches de SQL Server, sino todo lo que se ejecuta en su sistema, desde el sistema operativo hasta cualquier otra aplicación que esté instalada en su máquina. Siempre aplique parches para mantener su software actualizado para evitar amenazas o ataques externos.

Usar el modo de autenticación de Windows

Elija siempre el modo de autenticación de Windows para las conexiones de usuario si no tiene ninguna dependencia para usar el modo de autenticación de SQL Server. Es más seguro y autentica el inicio de sesión de Windows con el directorio activo de Windows durante cada intento de inicio de sesión. SQL Server tiene dos tipos de modos de autenticación.

  • Autenticación de Windows
  • Modo mixto (Windows + SQL Server)

Modo de autenticación de Windows: Este es un modo de autenticación predeterminado para SQL Server. El modo de autenticación de Windows aprovecha las cuentas locales, las cuentas de usuario del directorio activo y los grupos al otorgar acceso a SQL Server. En este modo, usted, como administrador de la base de datos, puede otorgar a los usuarios del dominio o del servidor local acceso al servidor de la base de datos sin crear ni administrar una cuenta de SQL Server separada.

Modo mixto: El modo de autenticación mixta tiene ambas opciones. Puede utilizar la autenticación basada en Windows, así como las autenticaciones basadas en inicio de sesión de SQL Server. El mecanismo de autenticación de SQL Server se basa en cuentas que se administran dentro de SQL Server, incluida la política de contraseñas. Es posible que se requiera autenticación mixta si tiene algunas dependencias para admitir aplicaciones heredadas.

Puede seguir los pasos a continuación para seleccionar o cambiar el modo de autenticación del servidor:

  1. Inicie SQL Server Management Studio y conéctese a su instancia de destino de SQL Server.
  2. En SQL Server Management Studio, haga clic con el botón derecho en la instancia de SQL Server y luego haga clic en Propiedades .
  3. Haga clic en Seguridad en el panel del lado izquierdo, puede ver ambas opciones de autenticación en el panel del lado derecho debajo de Autenticación del servidor sección. Si desea proteger su instancia, asegúrese de cambiar al modo de autenticación de Windows. Solo necesita hacer clic en el botón de radio del modo de autenticación de Windows y luego hacer clic en Aceptar para aplicar los cambios.
  1. En el cuadro de diálogo de SQL Server Management Studio, haga clic en Aceptar para reconocer la necesidad de reiniciar SQL Server.

El modo de autenticación de Windows es una opción más segura. Sin embargo, si se requiere autenticación de modo mixto, debe proporcionar contraseñas complejas para los inicios de sesión de SQL Server y aplicar políticas de seguridad/bloqueo para una mejor seguridad. También se recomienda deshabilitar la cuenta sa de SQL Server si está utilizando el modo de autenticación mixta. Discutiré esto en la siguiente sección.

Renombrar/Deshabilitar la cuenta sa

El inicio de sesión sa se crea de forma predeterminada al instalar SQL Server, por lo que esta podría ser una de las razones potenciales para que los atacantes pirateen o tomen el control de esta cuenta. Recuerde que este inicio de sesión tiene privilegios de administración del sistema, por lo que cualquier persona que tenga acceso a esta cuenta puede administrar sus bases de datos e instancias de SQL Server.

Debe ejecutar el siguiente comando para deshabilitar la cuenta sa.

--Disable sa login
USE MASTER
GO
ALTER LOGIN sa DISABLE;
GO

Puede ver su ejecución en la siguiente figura.

Antes de cambiar el nombre o deshabilitar la cuenta sa, verifique que exista otra cuenta con privilegios administrativos en la instancia de SQL Server.

Cambiar los puertos predeterminados de SQL Server

Todos sabemos que SQL Server usa el puerto 1433 para cualquier solicitud y comunicación de los clientes. Como esta configuración es de dominio público, los piratas informáticos pueden apuntar a esta configuración para conectarse a su instancia de SQL Server.

Puede cambiar el puerto de SQL Server siguiendo los pasos a continuación.

  1. Inicie sesión en su máquina de destino donde está instalado SQL Server.
  2. Inicie el Administrador de configuración del servidor herramienta.
  3. Expanda la Configuración de red de SQL Server en el panel del lado izquierdo y seleccione Protocolos para que se configure la instancia de SQL Server.
  4. En el panel derecho, haga clic con el botón derecho en el nombre del protocolo TCP/IP y elige Propiedades .
  5. En las Propiedades de TCP/IP cuadro de diálogo, seleccione las Direcciones IP pestaña. Hay una entrada correspondiente para cada dirección IP asignada al servidor.
  6. Borrar los valores de ambos Puertos dinámicos TCP y Puerto TCP para cada dirección IP excepto para las direcciones IP en IPAll .
  7. En IPAll sección para cada instancia, ingrese un nuevo puerto en el que desee que SQL Server escuche.
  8. Haga clic en Aplicar y reinicie los servicios de SQL Server.

Deshabilitar el servicio de navegador SQL

Los servicios del navegador de SQL Server se instalan con la instalación de la instancia de SQL Server. Este servicio redirige su conexión al puerto en el que se ejecuta SQL Server. Si este servicio se está ejecutando, será un paso más fácil para los atacantes porque les permite conectarse a SQL Server sin pasar su número de puerto. Por lo tanto, es mejor deshabilitar este servicio después de cambiar el puerto.

Deshabilitar la opción xp_cmdshell

SQL Server ofrece un procedimiento almacenado extendido xp_cmdshell para ejecutar y ejecutar comandos del sistema operativo desde SQL Server. Debe desactivarse para evitar cualquier riesgo de seguridad. Puede encontrar este procedimiento almacenado extendido en las configuraciones de nivel de servidor o ejecutando el procedimiento almacenado sp_configure T-SQL. Puede ejecutar las instrucciones T-SQL a continuación para deshabilitar esta configuración.

-- Enable advanced options to display configure xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE

-- Disable xp_cmdshell
sp_configure 'xp_cmdshell', '0' 
RECONFIGURE
GO

Usar encriptación o enmascaramiento de datos

SQL Server ofrece varias metodologías de cifrado para proteger sus datos. Se recomienda el cifrado si sus usuarios acceden a los datos a través de la red pública. SQL Server tiene múltiples opciones para implementar el conjunto correcto de encriptaciones teniendo en cuenta las necesidades de su negocio. Esta es la lista de opciones de cifrado o enmascaramiento de datos que podemos usar para proteger nuestros datos:

  • TDE (Cifrado de datos transparente)
  • Datos seguros mediante claves de cifrado
  • Cifrar siempre
  • Enmascaramiento dinámico de datos

Eliminar BUILTIN\Administradores de SQL Server

Siempre debemos eliminar la cuenta BUILTIN\Administrators de la instancia de SQL Server para restringir el acceso no deseado a la instancia de la base de datos. La mejor manera es otorgar a los usuarios acceso a SQL Server individualmente. También puede agregar un grupo de personas en el grupo de Windows y otorgarles acceso a SQL Server. Puede usar la declaración T-SQL a continuación para eliminar este inicio de sesión de la instancia de SQL Server.

También puede eliminar este inicio de sesión mediante la GUI a través de SQL Server Management Studio. Solo necesita conectarse a su instancia de SQL Server, luego expandir la carpeta de seguridad de nivel de instancia. Aquí puede hacer clic con el botón derecho en este inicio de sesión para eliminarlo de la instancia de SQL Server.

--DROP Login
DROP LOGIN [BUILTIN\Administrators]

Contraseñas seguras y privilegios de usuario adecuados

Asigne siempre los derechos adecuados a cada usuario, deben ser mínimos, teniendo en cuenta su función al acceder a las bases de datos. Además, nunca debemos usar contraseñas débiles para ningún inicio de sesión o el mismo inicio de sesión y contraseña. Utilice siempre la política de contraseñas para cualquier inicio de sesión de SQL.

Configurar la auditoría de inicio de sesión de SQL Server

SQL Server ha proporcionado una función de auditoría para capturar detalles sobre todos los inicios de sesión fallidos y exitosos. Esta es una configuración muy útil si desea auditar quién se conecta o intenta conectarse a sus bases de datos. Podemos configurar la alerta de SQL Server que enviará una notificación por correo en cada inicio de sesión fallido y exitoso en SQL Server. Puede seguir los pasos a continuación para habilitar la auditoría de inicio de sesión.

  • Conéctese a su instancia de destino de SQL Server en SQL Server Management Studio
  • Haga clic con el botón derecho en el nombre de la instancia de SQL Server y luego haga clic en Propiedades .
  • Haga clic en Seguridad pestaña en el panel del lado izquierdo. Obtendrá auditoría de inicio de sesión en el panel del lado derecho como se muestra en la primera captura de pantalla de este artículo
  • Elija la opción deseada y cierre las Propiedades del servidor página
  • Reinicie el servicio de SQL Server para aplicar este cambio

Eliminar inicios de sesión de SQL Server no utilizados

Vigile siempre sus inicios de sesión de SQL Server. Debe estar atento a la hora de eliminar todas las cuentas de inicio de sesión que ya no estén en uso. Sé que es difícil de administrar manualmente, pero puede configurar una alerta de correo para enviar un correo electrónico sobre todos los inicios de sesión de SQL Server y sus privilegios.

Conclusión

He explicado algunas de las posibles configuraciones que podemos aplicar para proteger nuestras bases de datos de amenazas externas. Considere todos los puntos anteriores al implementar las políticas de fortalecimiento de la base de datos en el entorno.

Comparta este artículo y dé su opinión en la sección de comentarios para que podamos mejorar.