Seguridad en bases de datos: SQL Server 2005 y Oracle 10g Madrid, junio de 2009
Configuración de la plataforma
Índice Introducción a la seguridad de la información Configuración de la plataforma Confidencialidad Integridad Disponibilidad Autenticación Autorización Auditoría Integración de bases de datos con otras aplicaciones Hacking de base de datos
Configuración de la plataforma Bastionado del servidor Instalación de la base de datos Arquitectura segura de red Cortafuegos VPN Antivirus IDS/IPS NAC Bastionado de la base de datos Actualizaciones de seguridad
Bastionado Proceso mediante el cual se consigue que un sistema sea más seguro Elimina vulnerabilidades resultantes de una pobre configuración e incluso compensa vulnerabilidades causadas por bugs del fabricante Se puede crear un entorno en el que tales bugs no pueden explotarse
Proceso de bastionado 1. Bloquear el acceso a recursos importantes que podrían utilizarse mal: malintencionadamente o por error 2. Desactivar funciones no requeridas para la implementación, cuya mera existencia puede llevar a un mal uso 3. Mínimo privilegio: conceder a cada usuario o proceso los mínimos privilegios necesarios para que cumplan su función
Importancia del bastionado El bastionado es un proceso relevante para cualquier recurso de TIC Existen scripts y checklists de bastionado para cada sistema operativo y servidor La buenas prácticas de seguridad siempre empiezan asegurando el nivel físico y el SO sobre los que se ejecuta la bbdd y terminan con los permisos de los usuarios sobre los servidores de producción
Reducción de la superficie de ataque
Reducción de la superficie de ataque
Reducción de la superficie de ataque Instalar solamente aquellos componentes que se van a utilizar inmediatamente Activar solamente las características que se van a utilizar Desactivar los servicios innecesarios Utilizar una cuenta de servicio con los mínimos privilegios posibles Nunca exponer en Internet un servidor de bbdd Utilizar la Herramienta de Configuración de Superficie Configuración de superficie para características Configuración de superficie para servicios y conexiones
Arquitectura segura de red Una bbdd no es una isla Es un servidor desplegado como un nodo de red proporcionando persistencia y servicios transaccionales a aplicaciones Es un servicio de red que espera conexiones remotas, autentica las peticiones de conexión, recibe peticiones de datos u operaciones sobre los datos y las sirve Similar a cualquier otro servidor en la red Las técnicas para asegurar la bbdd deberían estar alineadas e integrarse con los métodos y procesos de la organización La seguridad debe aplicarse en toda la organización y a toda la infraestructura y aplicaciones
Defensa en profundidad No existe una capa, producto o método de seguridad perfecto Un único agujero de seguridad en un sistema puede permitir a un atacante hacerse con los datos Mejor usar múltiples capas de protección que una única perfecta Si se utilizan múltiples capas, un agujero en una de ellas no significará el compromiso de la información La seguridad de bbdd debe formar parte de una estrategia de seguridad global La política de seguridad de la organización es la piedra angular sobre la que edificar la seguridad de la información
Elementos de protección de la información Cortafuegos Redes privadas virtuales (VPN) Sistemas de detección/prevención de intrusiones (IDS/IPS) Antivirus Seguridad en las aplicaciones Infraestructuras de clave pública (PKI) Gestión de parches y actualizaciones de seguridad NAC
Cortafuegos Objetivo: Proteger el perímetro y puntos críticos: conexión a Internet, extranets, y segmentos de red Mantienen a los usuarios no autorizados fuera de la red corporativa Su uso hoy en día es absolutamente imprescindible
Oracle detrás de un cortafuegos Problema: Redirección de puerto: Oracle escucha en el puerto 1521 Ante una petición de conexión, selecciona un puerto > 1024 y escucha en él El cliente se reconecta al nuevo puerto El cortafuegos bloquea la nueva conexión Soluciones: Evitar la redirección Cortafuegos Proxy Oracle Connection Manager
Evitar la redirección Parámetro USE_SHARED_SOCKET HKLM\Software\Oracle\Home# Reconfigurar MTS en el init.ora para redirigir conexiones a un puerto fijo: dispatchers=“(address=(protocol=tcp)(host=hostname)(port=2450))(dispatchers=1)” Utilizar la opción SERVER=DEDICATED en el cliente en el archivo tnsnames.ora
Cortafuegos Proxy Deja pasar la petición en el puerto 1521 Cuando Oracle selecciona un nuevo puerto, el cortafuegos lo abre para el cliente que inició la conexión Varios fabricantes soportan proxy de SQL*Net en sus cortafuegos
Oracle Connection Manager Servidor proxy con las funciones siguientes: Multiplexión de sesiones Control de acceso Conversión de protocolos Exige configurar el servidor y el cliente No es una solución tan robusta ni eficiente como un cortafuegos proxy
Redes privadas virtuales (VPN) Enlazan redes remotos y permiten el acceso de usuarios móviles a la red interna Funcionan como extensiones de los cortafuegos proporcionando acceso remoto seguro a la red corporativa Las VPN crean agujeros a través del cortafuegos Están presentes en la mayoría de organizaciones Permiten acceso seguro a la red interna para: Trabajar desde oficinas remotas Trabajar desde casa Trabajar cuando se está de viaje La opción para conectarse remotamente a la bbdd
Sistemas de detección/prevención de intrusiones (IDS/IPS) Permiten detectar e impedir intentos de intrusión tanto dentro como fuera del perímetro Se basan en: Inspección profunda de estados Análisis de patrones de ataque Dos enfoques: Positivo: definir lo que es correcto y rechazar todo tráfico que no se ajuste a la normalidad Negativo: definir firmas/huellas de ataques y prohibir el tráfico que se ajuste a ellas
Antivirus Protegen a los usuarios de código malicioso (malware): Virus Gusanos Troyanos Se comercializan en numerosos formatos: Antivirus de red Antivirus para pasarelas de correo Antivirus de escritorio Funciones adicionales: Filtro antispam Filtro de contenidos Antispyware
Seguridad en las aplicaciones Normalmente, las bbdd no se acceden directamente sino a través de aplicaciones, especialmente aplicaciones web Una de la vías de entrada más explotadas por los hackers Problema: los desarrolladores no están concienciados ni formados en materia de seguridad Agujeros típicos: Cadenas de conexión Inyección de sql
Infraestructuras de clave pública (PKI) La criptografía es una de las herramientas más utilizadas para proteger la confidencialidad de los datos La gestión de claves secretas exige la utilización de claves públicas La gestión de claves públicas exige el uso de certificados Los certificados requieren toda una PKI
Gestión de parches y actualizaciones de seguridad Una de las técnicas fundamentales para mantener la seguridad de un servidor Los parches solucionan vulnerabilidades de seguridad conocidas, para las cuales en muchos casos existe un exploit Gestionar los parches y actualizaciones es muy difícil en grandes entornos, por lo que hay que desarrollar una buena estrategia
Gestión de parches y actualizaciones de seguridad
Evaluar Inventariar recursos existentes Evaluar amenazas/vulnerabilidades Determinar la mejor fuente de información acerca de nuevas actualizaciones Evaluar la infraestructura de distribución de software existente Evaluar la efectividad operativa
Identificar Descubrir nuevas actualizaciones Determinar si son relevantes Obtener los archivos fuente y confirmar su validez Determinar si la actualización debería considerarse un cambio normal o una emergencia
Decidir y planificar Determinar la respuesta apropiada Planificar el despliegue de la actualización Escribir los scripts de despliegue Realizar el despliegue en un entorno de pruebas
Desplegar Preparar el despliegue Desplegar la actualización en los equipos Revisión del estado final
Gestión centralizada de la seguridad Muchas soluciones de seguridad permiten gestionar el proceso de seguridad y centralizar información de seguridad Productos de Gestión de Seguridad de la Información (SIM) Agregan información de seguridad Correlan datos de incidentes Generan alertas e informes Ayudan a gestionar centralizadamente productos de seguridad variados
Gestión de vulnerabilidades Los escáneres de vulnerabilidades permiten inventariar y auditar los servidores y aplicaciones, comparando su estado con las buenas prácticas y vulnerabilidades conocidas Este proceso ayuda a mejorar las configuraciones y fortalecer la infraestructura Una vez descubiertas vulnerabilidades, la gestión de parches y actualizaciones ayudan a solucionar los problemas detectados
Tipos de vulnerabilidades Defectos de software (35%) Fallos de diseño (flaws) Errores de codificación (bugs) Errores de configuración (65%) Servicios innecesarios (y peligrosos) Errores de control de acceso
Escáneres de vulnerabilidades Generales Nessus BBDD AppDetective
Información sobre vulnerabilidades Existen numerosos sitios web donde se mantiene un registro exhaustivo de vulnerabilidades: www.cert.org cve.mitre.org www.securityfocus.com/bid www.securitytracker.com/search/search.html www.oracle.com/technology/deploy/security/alerts.htm www.microsoft.com/technet/security/prodtech/sQLserver.mspx
NAC Objetivo: asignar distintos tipos de acceso a la red no sólo en función de la identidad del usuario, sino también de la seguridad de su equipo y de su entorno de red: 1) La identidad del usuario: NAC puede realizar una autenticación del usuario de manera que sólo se permita el acceso a la red a los individuos autorizados. 2) La valoración de seguridad del extremo cliente: NAC puede valorar la postura de seguridad del cliente: antivirus, cortafuegos, actualizaciones, programas, etc. 3) El entorno de red: NAC puede tomar en consideración el entorno donde se encuentra el cliente que desea conectarse.
Escáneres de vulnerabilidades Una vez bastionada la bbdd y su entorno, conviene ejecutar escáneres de vulnerabilidades Para entornos SQL Server, una herramienta muy práctica es Microsoft Baseline Security Analyzer (MBSA): identifica actualizaciones de seguridad faltantes, carpetas con permisos inadecuados, etc.
Protección de red Los clientes que se conectan a la bbdd pueden utilizar numerosos protocolos de red Las bbdd permiten ejecutar el protocolo de comunicación con la bbdd a través de varios protocolos de red diferentes Todos aquellos protocolos de red que no sean necesarios, deberían desactivarse
Protocolos de red SQL Server Los componentes llamados netlibs ocultan los detalles de comunicaciones a través de redes Las comunicaciones dentro del mismo servidor utilizan la netlib primaria Shared Memory Las comunicaciones de red utilizan la netlig primaria Super-Socket, la cual a su vez utiliza netlibs secundarias Se pueden activar/desactivar a través de la herramienta de configuración de red Oracle funciona de manera similar Conviene desactivar todos los protocolos excepto TCP/IP
Escáneres de puertos Una elemento importante del bastionado de un servidor es cerrar todos los puertos innecesarios Las herramientas de escaneo de puertos ayudan a vigilar los puertos abiertos en un servidor SQL Server 1433, 1434 Oracle 1158, 1521, 1522-1540, 1575, 1630, 1830, 2481, 2482, 2483, 2484, 5560 Otra herramienta útil para medir la actividad de red es netstat
Seguridad en TNS Listener Proporciona conectividad a la BD Componentes: $ORACLE_HOME/bin/lsnrctl: programa de control de Listener $ORACLE_HOME/network/admin/listener.ora: archivo de configuración $ORACLE_HOME/bin/tnslnsr: proceso de Listener Modos de escucha: Database (+ usual), PLSExtProc, Executable
Vulnerabilidades en TNS Listener Administración remota de TNS Listener Filtrado de información de TNS Listener Alertas de seguridad de Oracle Registro de actividad
Proteger TNS Listener Establecer la contraseña de Listener Activar el registro de actividad ADMIN_RESTRICTIONS_<sid>=ON Mantenerse al día con los parches Bloqueo de SQL*Net en cortafuegos Proteger el directorio TNS_ADMIN Eliminar servicios no utilizados