Ejercicio Individual #2. Seguridad de Base de Datos - CIS SO
Ejercicio Individual #2. Seguridad de Base de Datos - CIS SO
Ejercicio Individual #2. Seguridad de Base de Datos - CIS SO
8-1009-963
Tabla Contenido
Tabla Contenido.................................................................................................................................1
Introducción.......................................................................................................................................2
CIS_MariaDB_10.6_Benchmark_v1.0.0..............................................................................................3
CIS_Microsoft_SQL_Server_2022_Benchmark_v1.0.0.......................................................................5
CIS Oracle Database 19c Benchmark v1.1.0.......................................................................................6
CIS_Oracle_MySQL_Enterprise_Edition_8.0_Benchmark_v1.3.0.......................................................9
CIS_PostgreSQL_15_Benchmark_v1.0.0...........................................................................................11
Conclusión.......................................................................................................................................13
Bibliografía.......................................................................................................................................14
Introducción
La seguridad de las bases de datos es un aspecto crítico en la protección de la información
en las organizaciones modernas. Las bases de datos almacenan grandes volúmenes de
datos confidenciales, desde información de clientes hasta secretos comerciales, por lo que
su compromiso puede tener graves consecuencias. Por ello, es esencial implementar
controles y medidas de seguridad sólidas para prevenir accesos no autorizados, proteger la
integridad de los datos, y asegurar la disponibilidad y continuidad del servicio.
Audita los intentos fallidos de inicio de sesión para detectar ataques de fuerza bruta y
acceso no autorizado.
Elimina cuentas vulnerables y perfiles de acceso con amplios privilegios que vienen
configurados por defecto.
Asigna solo los privilegios necesarios a cada usuario mediante roles predefinidos en lugar
de acceso irrestricto.
Restringe los amplios privilegios de cuentas críticas como sys y system solo al acceso
necesario.
Limita el tráfico entrante hacia los puertos de la base de datos desde direcciones IP
específicas.
Crea copias de seguridad regulares de los datos críticos con fines de recuperación ante
desastres.
Cifra los archivos de copias de seguridad para prevenir acceso no autorizado a los datos
confidenciales.
12. Restringir cuenta LOCAL (Restrict LOCAL Account)
Limita el acceso de la cuenta LOCAL interna usada por Database Vault solo a las funciones
necesarias.
CIS_Microsoft_SQL_Server_2022_Benchmark_v1.0.0
4. Política de seguridad física: establece los requisitos mínimos de seguridad física para
proteger los activos informáticos de amenazas externas o internas que puedan causar
daños o pérdidas.
11. Política de seguridad de las políticas públicas: establece las medidas de seguridad para
proteger la confidencialidad, integridad y disponibilidad de la información relacionada
con las políticas públicas, así como para prevenir y mitigar los riesgos asociados.
1. Establecer una contraseña segura para el usuario SYS y el usuario SYSTEM. Esta política busca
proteger el acceso a la base de datos Oracle, ya que estos dos usuarios tienen privilegios
especiales para administrarla. Una contraseña segura debe tener al menos 12 caracteres,
incluyendo letras, números y símbolos, y no debe ser fácil de adivinar o relacionada con el
nombre del usuario o de la base de datos.
2. Deshabilitar o eliminar los usuarios predeterminados que no se necesiten. Esta política busca
reducir el riesgo de que un atacante pueda acceder a la base de datos usando un usuario que
no se usa o que tiene una contraseña débil. Oracle Database 19c crea varios usuarios
predeterminados durante la instalación, pero no todos son necesarios para el funcionamiento
normal de la base de datos. Por ejemplo, el usuario ANONYMOUS se puede deshabilitar si no
se usa el protocolo HTTP para conectarse a la base de datos.
3. Asignar los privilegios mínimos necesarios a cada usuario o rol. Esta política busca limitar el
alcance de las acciones que puede realizar cada usuario o rol en la base de datos, evitando que
puedan acceder, modificar o eliminar datos o recursos que no les corresponden. Los privilegios
son los permisos que se otorgan a los usuarios o roles para realizar ciertas operaciones en la
base de datos, como crear tablas, ejecutar consultas o hacer copias de seguridad. Los
privilegios se pueden asignar de forma individual o mediante roles, que son conjuntos de
privilegios relacionados con una función específica.
4. Aplicar el principio de mínimo privilegio a los objetos de la base de datos. Esta política busca
restringir el acceso a los objetos de la base de datos, como tablas, vistas, procedimientos o
secuencias, a los usuarios o roles que los necesiten para realizar su trabajo. Los objetos de la
base de datos son las entidades que almacenan o manipulan los datos en la base de datos.
Cada objeto tiene un propietario, que es el usuario que lo creó o que tiene el privilegio de
crearlo, y un conjunto de permisos, que determinan qué operaciones se pueden realizar sobre
el objeto, como leer, escribir o ejecutar.
5. Proteger los archivos de configuración y los archivos de datos contra accesos no autorizados.
Esta política busca evitar que un atacante pueda leer, modificar o borrar los archivos que
contienen la información o los parámetros de la base de datos, comprometiendo su integridad,
disponibilidad o confidencialidad. Los archivos de configuración son los que almacenan las
opciones y los valores que definen el comportamiento de la base de datos, como el nombre, el
modo de operación o los límites de recursos. Los archivos de datos son los que almacenan los
datos propiamente dichos, como las tablas, los índices o los registros de transacciones. Estos
archivos se deben ubicar en directorios seguros, con permisos restringidos y con medidas de
cifrado o control de acceso.
6. Habilitar la auditoría de las actividades de los usuarios y los administradores. Esta política
busca registrar y supervisar las acciones que se realizan en la base de datos, tanto por parte de
los usuarios normales como de los administradores, para detectar posibles anomalías,
violaciones o amenazas a la seguridad. La auditoría consiste en guardar un registro de los
eventos que ocurren en la base de datos, como las conexiones, las consultas, las
modificaciones o los errores, con información sobre el usuario, la fecha, la hora y el resultado
de la acción. Estos registros se pueden almacenar en tablas, archivos o destinos externos, y se
pueden consultar o analizar posteriormente.
7. Configurar el cifrado de los datos en tránsito y en reposo. Esta política busca proteger los datos
de la base de datos frente a posibles interceptaciones, robos o fugas, tanto cuando se
transmiten por la red como cuando se almacenan en el disco. El cifrado consiste en
transformar los datos en un formato ilegible para quien no tenga la clave adecuada para
descifrarlos. El cifrado de los datos en tránsito se puede realizar mediante protocolos seguros,
como SSL o TLS, que garantizan la confidencialidad y la integridad de los datos que se envían o
reciben desde la base de datos. El cifrado de los datos en reposo se puede realizar mediante
algoritmos criptográficos, como AES o DES, que impiden que los datos se puedan leer o
modificar sin la clave correspondiente.
8. Implementar una política de copias de seguridad y recuperación. Esta política busca asegurar la
continuidad del servicio y la preservación de los datos en caso de que ocurra un fallo, un error
o un desastre que afecte a la base de datos. Una copia de seguridad es una copia de los datos
o de los archivos de la base de datos que se guarda en un medio externo, como un disco, una
cinta o una nube, y que se puede restaurar en caso de necesidad. Una política de copias de
seguridad y recuperación define los criterios y los procedimientos para realizar, almacenar y
recuperar las copias de seguridad, como la frecuencia, el tipo, el tamaño, el formato o el
destino de las mismas.
9. Actualizar el software de la base de datos con los últimos parches de seguridad. Esta política
busca mantener el software de la base de datos al día con las últimas correcciones y mejoras
que se publican por parte del fabricante, para prevenir posibles vulnerabilidades, errores o
incompatibilidades que puedan afectar a la seguridad o al rendimiento de la base de datos. Un
parche de seguridad es un conjunto de cambios o modificaciones que se aplican al software de
la base de datos para solucionar un problema específico, como una brecha de seguridad, un
fallo de funcionamiento o una mejora de funcionalidad. Los parches de seguridad se deben
descargar e instalar siguiendo las instrucciones y las recomendaciones del fabricante, y se
deben probar antes de aplicarlos en un entorno de producción.
10. Utilizar herramientas de análisis de vulnerabilidades para evaluar el nivel de seguridad. Esta
política busca identificar y corregir las debilidades o los riesgos que pueda tener la base de
datos, tanto en su configuración como en su operación, para mejorar su seguridad y su
resistencia frente a posibles ataques. Una herramienta de análisis de vulnerabilidades es un
programa o una aplicación que examina la base de datos y sus componentes, como los
usuarios, los privilegios, los objetos o los archivos, y que genera un informe con los resultados
del análisis, indicando las vulnerabilidades encontradas, su nivel de gravedad y las posibles
soluciones o recomendaciones para mitigarlas o eliminarlas.
11. Seguir las mejores prácticas de codificación segura para prevenir ataques de inyección SQL.
Esta política busca evitar que un atacante pueda ejecutar comandos SQL maliciosos en la base
de datos, aprovechando las vulnerabilidades que pueda haber en el código de las aplicaciones
que se conectan a la base de datos. Un ataque de inyección SQL consiste en introducir una
cadena de texto con instrucciones SQL en un campo de entrada de una aplicación, como un
formulario web, que se envía a la base de datos para su procesamiento, y que puede alterar,
borrar o robar los datos de la base de datos. Las mejores prácticas de codificación segura
incluyen el uso de parámetros, la validación de las entradas, la limitación de los privilegios o la
gestión de los errores, entre otras.
12. Restringir el acceso a la red mediante listas de control de acceso y cortafuegos. Esta política
busca controlar el tráfico de datos que entra y sale de la base de datos, filtrando las conexiones
y los paquetes según unas reglas definidas, para evitar que un atacante pueda acceder a la
base de datos desde una fuente no autorizada o enviar datos maliciosos o dañinos. Una lista
de control de acceso es un mecanismo que permite o deniega el acceso a la base de datos
según la dirección IP, el puerto o el protocolo del origen o del destino de la conexión. Un
cortafuegos es un dispositivo o un software que actúa como una barrera entre la base de datos
y la red, analizando y bloqueando el tráfico sospechoso o no deseado.
CIS_Oracle_MySQL_Enterprise_Edition_8.0_Benchmark_v1.3.0
1. Instalación segura de MySQL:
Este es un script que se utiliza para mejorar la seguridad del servidor MySQL,
eliminando usuarios anónimos, bases de datos de prueba, acceso remoto al root y
otras configuraciones inseguras.
Esta es una medida que impide que el servidor MySQL acepte conexiones desde
otras máquinas que no sean la local, reduciendo así el riesgo de ataques externos.
Esta es una opción que evita que los usuarios carguen o descarguen archivos desde
el servidor MySQL, lo que podría comprometer la seguridad de los datos o del
sistema.
Esta es una función que permite guardar un historial de las consultas y las acciones
realizadas en el servidor MySQL, lo que facilita la auditoría y la detección de
anomalías.
Esta es una práctica que consiste en asignar los permisos mínimos necesarios a los
archivos y directorios que contienen los datos y la configuración de MySQL,
evitando así que usuarios no autorizados puedan acceder o modificarlos.
Esta es una precaución que implica borrar el archivo que almacena los comandos
introducidos en la consola de MySQL, para evitar que se revele información
sensible o se repitan acciones no deseadas.
8. No ejecute comandos MySQL desde la línea de comandos:
Esta es una recomendación que sugiere usar una interfaz gráfica o una aplicación
web para interactuar con el servidor MySQL, en lugar de usar la línea de comandos,
que podría exponer las contraseñas o los datos en texto plano.
9. Autenticación y autorización:
10. Encriptación:
Esta es una técnica que consiste en proteger los datos almacenados mediante el
uso de algoritmos que los hacen ilegibles para quienes no tengan la llave de
encriptación.
CIS_PostgreSQL_15_Benchmark_v1.0.0
1. Política de autenticación: Define cómo se autentican los usuarios y cómo se
manejan las contraseñas.
2. Política de autorización: Define qué permisos tienen los usuarios y cómo se
otorgan.
3. Política de encriptación: Define cómo se encriptan los datos y cómo se manejan las
claves de encriptación.
7. Política de gestión de roles: Define cómo se crean, modifican y eliminan los roles
de usuario.
10. Política de gestión de errores: Define cómo se manejan los errores y cómo se
asegura la integridad de los datos.
11. Política de gestión de logs: Define cómo se manejan los registros y cómo se
asegura su integridad.
12. Política de gestión de backups: Define cómo se realizan los backups y cómo se
asegura su integridad.
Conclusión