Conceptos básicos de seguridad de SQL Server
El servidor de base de datos SQL, como otros servidores de bases de datos, es un activo clave en la mayoría de las organizaciones. Muchas violaciones de datos que ocurren hoy en día pueden atribuirse a servidores de bases de datos mal protegidos.
Sin las medidas de seguridad adecuadas, una base de datos puede servir fácilmente como puerta de entrada para ataques cibernéticos. Un solo acto de negligencia puede comprometer la seguridad de la base de datos SQL de su organización. Los atacantes pueden inyectar códigos maliciosos y comprometer la integridad, confidencialidad y disponibilidad de la base de datos.
Implementar las medidas de seguridad adecuadas contribuirá en gran medida a proteger sus servidores de bases de datos y minimizar su exposición a riesgos comerciales y de seguridad. Este artículo describe algunos conceptos básicos y mejores prácticas de seguridad de SQL Server, incluidas algunas de las principales herramientas para administrar la seguridad y el rendimiento de SQL Server.
Seguridad física
La seguridad de la información no se puede lograr por completo sin una seguridad física adecuada. La seguridad física debe ser la primera línea de defensa y debe incluir la prevención del acceso no autorizado a las instalaciones donde está alojado SQL Server. La seguridad física se ocupa de los controles de acceso a las instalaciones y al personal, los mecanismos de protección de límites externos, la detección de intrusiones y las acciones correctivas. Protege sus activos de intrusos, robos, amenazas ambientales, daños físicos, entre otros.
La seguridad física debe implementarse mediante el uso de un enfoque de defensa por niveles. La idea es que si un atacante atraviesa una capa de control, habrá muchas otras en el camino antes de que pueda obtener acceso completo. Cualquier brecha en la seguridad física de su servidor de base de datos podría resultar en una pérdida de productividad, reputación y confianza del cliente.
Para mejorar la seguridad física de SQL Server, Microsoft recomienda hacer lo siguiente:
- Coloque el servidor en una sala accesible sólo para personas autorizadas.
- Coloque las computadoras que albergan una base de datos en un lugar físicamente protegido, idealmente una sala de computadoras cerrada con llave y sistemas monitoreados de detección de inundaciones y detección o extinción de incendios.
- Instale bases de datos en la zona segura de la intranet corporativa y no conecte sus servidores SQL directamente a Internet.
- Haga una copia de seguridad de todos los datos con regularidad y asegure las copias de seguridad en una ubicación externa.
Seguridad de la red
La seguridad de la red se ocupa de la protección de la infraestructura de red subyacente de su servidor de base de datos contra el acceso no autorizado. Combina múltiples capas de defensas que implementan políticas y controles en el borde y en la red. Los usuarios autorizados obtienen acceso a la base de datos a través de la red, mientras que a los usuarios no autorizados se les niega el acceso. Una infraestructura de red diseñada teniendo en cuenta la seguridad alrededor de su servidor de base de datos protege la base de datos de pérdidas que se producen debido a incidentes de seguridad de la red.
La implementación de la seguridad de la red comienza con mantener a los usuarios no autorizados fuera de la red. Aquí es donde entran en juego los cortafuegos de red. Los firewalls juegan un papel importante en la seguridad de la aplicación SQL Server. Al colocar su base de datos detrás de un firewall, crea otra capa de seguridad que impide que el tráfico malicioso llegue a su servidor. Los firewalls también pueden ayudar a prevenir el tráfico saliente malicioso, como la filtración de datos.
Los firewalls serán más efectivos si cumple con las siguientes pautas recomendadas por Microsoft:
- Coloque un firewall entre el servidor e Internet. Habilite su firewall. Si su firewall está apagado, actívelo. Si su firewall está activado, no lo apague.
- Divida la red en zonas de seguridad separadas por firewalls. Bloquee todo el tráfico y luego admita selectivamente sólo lo necesario.
- En un entorno de varios niveles, utilice varios firewalls para crear subredes protegidas.
- Cuando instale el servidor dentro de un dominio de Windows, configure los firewalls internos para permitir la autenticación de Windows.
- Si su aplicación utiliza transacciones distribuidas, es posible que deba configurar el firewall para permitir que el tráfico del Coordinador de transacciones distribuidas de Microsoft (MS DTC) fluya entre instancias separadas de MS DTC. También deberá configurar el firewall para permitir que el tráfico fluya entre MS DTC y los administradores de recursos como SQL Server.
- Deshabilite todos los puertos y protocolos innecesarios, incluidos NetBIOS y el bloque de mensajes del servidor, en su SQL Server, servidores web y sistema de nombres de dominio (DNS) para reducir la superficie de ataque. Permita solo protocolos y puertos que sean esenciales para el funcionamiento de SQL Server, como TCP 1433 (motor de base de datos), 2383 (servicios de análisis), 4022 (agente de servicios) y UDP 1343 (acceso al navegador).
Seguridad de aplicaciones y datos
Microsoft SQL Server proporciona varias funciones integradas que permiten la seguridad de la aplicación y los datos que contiene. El administrador de la base de datos puede aprovechar estas funciones o utilizar medidas de seguridad adicionales según sea necesario para abordar las necesidades de seguridad de la aplicación y los datos SQL.
Algunas de las medidas de seguridad adicionales pueden, entre otras cosas, incluir:
- Protección contra SQL y otros ataques de inyección Tal como sugiere el nombre, la inyección SQL es un ataque en el que se inyecta código o comandos maliciosos en cadenas de consulta. Estos comandos pueden dañar o corromper la base de datos o usarse para filtrar datos confidenciales. Puede frustrar los ataques de inyección SQL desinfectando todas las entradas de la base de datos para asegurarse de que no contengan caracteres que puedan usarse para ejecutar código. Es una buena práctica utilizar procedimientos almacenados y comandos parametrizados evitando SQL dinámico y restringiendo los permisos a todos los usuarios. También debe protegerse contra ataques de inyección de cadenas de conexión que ocurren durante el inicio de sesión de SQL Server. Si no se verifica que una cadena de inicio de sesión de SQL Server tenga pares de palabras clave válidos, un atacante puede agregar caracteres adicionales que pueden realizar acciones no autorizadas en el servidor. Puede mitigar este riesgo utilizando SqlConnectionStringBuilder para crear y validar cadenas de conexión en tiempo de ejecución, o utilizar la autenticación de Windows más segura siempre que sea posible.
- Explotación de errores detallados SQL Server genera todo tipo de registros como registros de errores, registros de eventos del sistema, datos de contadores de rendimiento, entre otros. Debe encontrar una manera de asegurarse de que estos errores no caigan en las manos equivocadas. De lo contrario, los atacantes pueden utilizarlo para identificar vulnerabilidades inherentes que quieran explotar. Asegúrese de que todo el código de procedimiento utilice manejo de errores para evitar que estos mensajes de error predeterminados de SQL Server lleguen al usuario.
- Ataques de escalada de privilegios Estos ataques ocurren cuando los usuarios de alguna manera asumen los privilegios de una cuenta confiable, como el propietario de una cuenta o un administrador. Esto les permite obtener acceso no autorizado a datos y funciones de bases de datos. Para mitigar este riesgo, ejecute siempre a los usuarios como cuentas con privilegios mínimos, asigne solo los permisos necesarios y bloquee la capacidad de ejecutar código desde cuentas administrativas o de propietario. Esto limita la cantidad de daño que puede ocurrir si un ataque tiene éxito. Si un usuario requiere permisos adicionales para realizar una tarea, utilice certificados para firmar procedimientos almacenados o suplantación solo durante la duración de la tarea.
- Ataques distribuidos de denegación de servicio (DDoS) Las bases de datos de producción de SQL Server pueden estar sujetas a ataques DDoS, en los que los atacantes inundan la base de datos con consultas falsas, lo que ralentiza el rendimiento de los usuarios legítimos y, finalmente, provoca un tiempo de inactividad. Si ejecuta SQL Server en la nube, puede aprovechar los servicios de protección DDoS, que pueden capturar y desviar el tráfico malicioso de su base de datos.
Mejores prácticas de seguridad de SQL Server
Las siguientes son algunas de las mejores prácticas clave de seguridad de SQL Server que pueden mejorar la seguridad de su base de datos SQL:
- Copia de seguridad regularmente No se puede dejar de enfatizar la necesidad de realizar copias de seguridad periódicas de su base de datos. Las copias de seguridad protegen la disponibilidad de los datos y garantizan que su base de datos siga siendo resistente frente a filtraciones de datos, ransomware o ataques de denegación de servicio. Considere invertir en una buena solución de respaldo de SQL Server como parte de su estrategia de seguridad. Esto le proporciona un salvavidas para restaurar datos de misión crítica en caso de un ataque.
- Auditorías de seguridad periódicas Las auditorías de seguridad son un requisito reglamentario para la mayoría de las industrias. Pero más allá de eso, las auditorías de seguridad de SQL Server ayudan a prevenir posibles ataques y a mantener una base de datos SQL saludable. Los esfuerzos deben orientarse a identificar los objetos faltantes de la base de datos, los repetidos fallos de inicio de sesión en el servidor y los permisos o cambios de configuración. Microsoft proporciona una herramienta integrada llamada SQL Server Audit que se puede utilizar para crear auditorías a nivel de servidor y de base de datos.
- Siga el principio de privilegio mínimo Este es un principio probado que ayuda a reducir la exposición de sus activos al riesgo. El plan es otorgar a los servicios y usuarios de SQL Server sólo los derechos apropiados necesarios para realizar una tarea y nada más. Para cuentas de servicio, ejecute y asocie servicios de SQL Server utilizando los permisos y privilegios más bajos posibles.
- Tenga una política de contraseña segura Establecer una contraseña segura o, preferiblemente, una frase de contraseña que sea difícil de adivinar es esencial para la seguridad de su base de datos. Considere utilizar la autenticación Kerberos, la autenticación de Windows para conexiones a SQL Server y un administrador de contraseñas para una mejor administración de contraseñas.
- Aplicar actualizaciones periódicamente No se puede dejar de enfatizar la importancia de las actualizaciones periódicas. Las actualizaciones del sistema operativo y de SQL Server contienen importantes mejoras de seguridad que mantienen la salud y la seguridad de su base de datos. Pruebe estas actualizaciones y aplíquelas a su servidor de producción lo antes posible.
- Usar cifrado El protocolo de cifrado SSL/TLS integrado y la API de protección de datos de Windows (DPAPI) permiten el cifrado de datos en tránsito y datos en reposo, respectivamente. Esto protege la confidencialidad de su base de datos.
- Utilice herramientas de monitoreo de SQL Las herramientas de monitoreo de SQL proporcionan un medio automatizado para administrar la seguridad y el rendimiento de su servidor de base de datos. La herramienta debería ser capaz de escanear y detectar cambios en la configuración del servidor.
Las mejores herramientas para la seguridad de SQL Server
Varias herramientas en el mercado pueden automatizar la gestión de la seguridad y el rendimiento de su SQL Server. A continuación se muestra una revisión de algunas de las principales herramientas para administrar la seguridad y el rendimiento de SQL Server. Con suerte, esto le guiará en el proceso de elegir la solución adecuada para su negocio.
1. Administrador de eventos de seguridad de SolarWinds (PRUEBA GRATUITA)
Administrador de eventos de seguridad (SEM) de SolarWindspermite a los administradores de bases de datos monitorear los registros del servidor, rastrear las tasas de error de la base de datos, auditar los inicios de sesión de los usuarios de SQL, mantener la seguridad de SQL Server y detectar ataques cibernéticos. Con SEM, puede rastrear, informar y alertar sobre eventos específicos realizados en una base de datos SQL que pueden indicar amenazas potenciales y generar informes de registro de auditoría de SQL Server con fines de cumplimiento. SEM proporciona reglas de correlación de eventos listas para usar que estudian las transacciones de bases de datos, detectan amenazas conocidas y rastrean actividades maliciosas y no confiables.
SEM admite varios protocolos y aplicaciones de evaluación de seguridad para ayudarlo a defenderse contra ataques de inyección SQL y mantener una base de datos segura. SEM aprovecha sus alertas y reglas de inyección SQL prediseñadas para mantenerlo informado. Puede detectar y deshabilitar usuarios y procesos maliciosos, así como realizar otras respuestas automatizadas a amenazas para ayudar a proteger su base de datos cuando se detectan indicadores de inyección SQL. Hay una prueba gratuita disponible para descargar, para que pueda determinar si es adecuada para su negocio.
IntentarAdministrador de eventos de seguridad (SEM) de SolarWindscon una prueba gratuita de 30 días completamente funcional.
SolarWinds Security Event Manager (SEM) Descargue una prueba GRATUITA de 30 días
2. Monitor de red Paessler PRTG (PRUEBA GRATUITA)
Paessler PRTGes una herramienta de monitoreo de red sin agentes que le permite monitorear su red, enrutadores, conmutadores y servidores. Con PRTG, puede medir el tiempo que necesita una consulta SQL para toda su solicitud, incluido el establecimiento de la conexión, la ejecución de la consulta, el manejo de la transacción y la terminación de la conexión, todo lo cual se puede visualizar en el panel de control de PRTG. El modelo de licencia PRTG se basa en sensores (parámetros que se pueden monitorear en un dispositivo, como la carga de la CPU, el estado del puerto o el tráfico de la red); y viene con sensores preconfigurados para todas las bases de datos principales. Para Microsoft SQL, PRTG ofrece el sensor Microsoft SQL v2 que monitorea el tiempo de respuesta de una solicitud completa, así como el tiempo de respuesta de una consulta definida individualmente.
PRTG viene en diferentes ediciones y variantes como:
- PRTG Enterprise Monitor: dirigido a grandes redes con miles de dispositivos y sistemas en múltiples ubicaciones.
- Monitor alojado de PRTG: unopción basada en la nubeque te permite monitorear desde la nube
- PRTG Desktop: le permite administrar múltiples servidores PRTG.
- Aplicación móvil PRTG: le permite verificar su red, dispositivos y sensores mientras viaja.
Aprueba gratuita de 30 díascon acceso completo a todas las funciones está disponible para descargar.
Paessler PRTG Inicie una prueba GRATUITA de 30 días
3. Microsoft Defender para SQL
Microsoft Defender para SQLes una herramienta de seguridad de SQL Server que ayuda a detectar y mitigar posibles vulnerabilidades de bases de datos SQL y actividades anómalas que representan una amenaza para su base de datos.
Microsoft Defender para SQL consta de dos planes separados de Microsoft Defender:
- Microsoft Defender para servidores de bases de datos SQL de Azure: este plan está diseñado para proteger la base de datos SQL de Azure, la instancia administrada de SQL de Azure y el grupo de SQL dedicado en Azure Synapse.
- Microsoft Defender para servidores SQL en máquinas: este plan amplía las protecciones de sus servidores SQL nativos de Azure para admitir totalmente entornos híbridos y proteger servidores SQL alojados en Azure y otros entornos de nube, e incluso máquinas locales: incluido SQL Server en máquinas virtuales. y servidores SQL locales:
Puede habilitar estos planes en el nivel de suscripción (desde Microsoft Defender para la nube o mediante la API REST, la CLI de Azure, PowerShell o Azure Policy), o puede habilitarlo en el nivel de recursos. Cuando habilita cualquiera de estos planes, todos los recursos admitidos que existen dentro de la suscripción (incluidos los recursos futuros creados en la misma suscripción) están protegidos.
4. Perro de datos
perro de datos es un servicio de monitoreo de infraestructura en la nube y local basado en agentes para aplicaciones, servidores, bases de datos, herramientas y servicios en la nube. Datadog utiliza su servicio de descubrimiento automático para explorar e identificar aplicaciones, dispositivos y servidores en su red. Una vez que se hayan identificado todos los dispositivos y enlaces, podrá obtener una descripción general de toda la actividad desde el panel de Datadog y cualquier cambio en la red se podrá detectar automáticamente.
Datadog proporciona visibilidad de un extremo a otro del estado y el rendimiento de sus instancias de SQL Server. Proporciona herramientas y métricas clave para la supervisión de SQL Server, incluidos dos paneles listos para usar para SQL Server:
- Un panel de pantalla que le brinda una descripción general en tiempo real de sus instancias de SQL Server.
- Un cronograma muy adecuado para correlacionar métricas de SQL Server con métricas y eventos del sistema.
A prueba gratuita de 14 días con acceso completo a todas las funciones está disponible para descargar. Después de eso, el software generalmente se vende a través de planes de suscripción mensuales basados en hosts, eventos o registros.
5. Administrador de aplicaciones ManageEngine (APM)
APMes una solución de monitoreo del rendimiento de servidores y aplicaciones sin agentes que ayuda a las organizaciones a garantizar un rendimiento óptimo de sus aplicaciones críticas para el negocio, como servidores SQL, en entornos físicos, virtuales y de nube. APM ofrece descubrimiento, disponibilidad, seguimiento del estado y del rendimiento listos para usar, e informes de servidores SQL y otras aplicaciones.
Con APM, los administradores de bases de datos pueden obtener visibilidad de las aplicaciones SQL, realizar un seguimiento del uso de recursos, optimizar el rendimiento de los servidores SQL, evitar la aparición de errores y mantener el estado general de la aplicación de la base de datos.
ManageEngine APM está disponible en las siguientes ediciones:
- La edición gratuita Proporciona la mayor parte de la funcionalidad de la edición Profesional con algunas restricciones y admite hasta 5 monitores.
- La edición Profesional: incluye funciones de monitoreo, alertas e informes y está dirigida a PYMES que buscan monitorear hasta 500 aplicaciones según la carga.
- Edición Enterprise: incluye todas las capacidades de conmutación por error y monitoreo distribuido de la edición Professional + y está dirigida a grandes empresas que buscan monitorear 500 o más aplicaciones.
A Prueba gratuita de 30 días está disponible para descargar. Durante la instalación, puede elegir la edición Professional o Enterprise.