Académique Documents
Professionnel Documents
Culture Documents
Presentado por:
Edith Campos Forrest
Sonia De León
Ambar Martínez
Giancarlo Remón
Humberto Williams
Agenda
• Historia MySQL
• Características
• Conclusión
Sonia De León
Introducción
Internet es actualmente la mayor fuente de información que existe y más del 90% de ella
ha sido generada desde el año 2010. Todavía existen muchos datos que necesitan
almacenarse para que los usuarios puedan acceder a ellos.
Sonia De León
Historia MySQL
• MySQL fue creado en 1996 y sigue siendo desarrollado en la actualidad por MYSQL
AB, una compañía radicada en Suecia.
• Fue creado porque se necesitaba una base de datos relacional capaz de manejar
grandes cantidades de datos en equipos relativamente baratos.
Sonia De León
Historia MySQL
Sonia De León
Características MySQL
• Soporta gran cantidad de tipos de datos para las columnas.
• Dispone de API’s en gran cantidad de lenguajes (C, C++, Java, PHP, etc.).
• Soporta hasta 32 índices por tabla.
• Gestión de usuarios y contraseñas, manteniendo un muy buen nivel de seguridad en los
datos.
• Condición de open source de MySQL hace que la utilización sea gratuita y se puede
modificar con total libertad.
• Se puede descargar su código fuente. Esto ha favorecido muy positivamente en su
desarrollo y continuas actualizaciones.
• Es una de las herramientas más utilizadas por los programadores orientados a Internet.
• Infinidad de librerías y otras herramientas que permiten su uso a través de gran
cantidad de lenguajes de programación. 6
Sonia De León
Abusos por privilegios excesivos
Cuando a alguien se le otorgan privilegios de bases de datos que exceden los
requerimientos de su puesto de trabajo se crea un riesgo innecesario. Los
mecanismos de control de privilegios de los roles de trabajo han de ser bien
definidos o mantenidos.
MySQL usa seguridad basada en listas de control de acceso (ACL) para todas las
conexiones, consultas y otras operaciones que un usuario puede intentar realizar.
Oracle MySQL for Microsoft Windows FILE Privilege Abuse
Exploit/Windows/mysql/mysql_Start_up
Este módulo aprovecha un problema de configuración incorrecta de privilegios de
archivos específicamente contra servidores MySQL de Windows. Este módulo
abusa del privilegio de archivo para escribir una carga útil para todos los usuarios
de Microsoft Start Up, el cual es un directorio que se ejecutará cada vez que un
7
usuario inicie sesión.
Sonia De León
Abusos por privilegios excesivos
Opciones del módulo
Para mostrar las opciones disponibles, cargue el módulo dentro de la consola
Metasploit y ejecute los comandos 'show options' o 'show advanced':
Sonia De León
Abusos por privilegios excesivos
¿Cómo mitigar?
Sonia De León
Abuso de privilegios legítimos
Los usuarios pueden llegar a abusar de los privilegios legítimos de bases de datos
para fines no autorizados, por ejemplo, sustraer información confidencial. Una vez
que los registros de información alcanzan una máquina cliente, los datos se exponen
a diversos escenarios de violación.
El sistema de privilegios de MySQL garantiza que todos los usuarios puedan hacer
exactamente las cosas que se supone que pueden hacer. Cuando se conecta a un
servidor MySQL, su identidad está determinada por el host desde el que se
conecta y el nombre de usuario que especifique. El sistema otorga privilegios según
su identidad y lo que desea hacer.
10
Ambar Martínez
Abuso de privilegios legítimos
¿Cómo mitigar?
11
Ambar Martínez
Abuso de privilegios legítimos
No otorgar privilegios de File a todos los usuarios. Cualquier usuario que tenga este
privilegio puede escribir un archivo en cualquier lugar del sistema de archivos con
los privilegios del daemon mysqld. Para que esto sea un poco más seguro, todos los
archivos generados con SELECT ... INTO OUTFILE son legibles para todos, y no puede
sobrescribir los archivos existentes. El privilegio de archivo también se puede usar
para leer cualquier archivo accesible para el usuario de Unix con el que se ejecuta el
servidor. Esto podría ser abusado, por ejemplo, usando LOAD DATA para cargar
/etc/passwden una tabla, que luego puede leerse con SELECT .
12
Ambar Martínez
Elevación de privilegios
Los atacantes pueden aprovechar las vulnerabilidades en el software de gestión en las
bases de datos para convertir los privilegios de acceso de bajo nivel de privilegios, a
acceso de alto nivel. Por ejemplo, sin seguridad de bases de datos, un atacante podría
aprovechar una vulnerabilidad de desbordamiento de búfer de base de datos para
obtener privilegios administrativos.
Ambar Martínez
Elevación de privilegios
¿Cómo mitigar?
Ambar Martínez
Elevación de privilegios
• Utilización de herramientas de monitorización host ids, seguridad endpoints y
elementos de red para la detección de patrones de escalada de privilegios y
explotación hacia otros sistemas.
15
Ambar Martínez
Vulnerabilidades de las plataformas
Las vulnerabilidades en los sistemas operativos pueden conducir al acceso no
autorizado y a la corrupción de datos.
Las herramientas de IPS son una buena manera de identificar y/o bloquear ataques
diseñados para aprovechar las vulnerabilidades de la plataforma de base de datos.
16
Ambar Martínez
Vulnerabilidades de las plataformas
¿Cómo mitigar?
Ambar Martínez
Vulnerabilidades de las plataformas
• Escanear sus puertos desde Internet utilizando una herramienta como nmap.
MySQL usa el puerto 3306 por defecto. Este puerto no debería ser accesible desde
hosts que no sean de confianza.
18
Ambar Martínez
Inyección de SQL
La inyección de SQL es un tipo de ataque informático que consiste en la infiltración de
código intruso dentro de las sentencias/consultas a ejecutar en la base de datos. Esta
infiltración suele ocurrir a través de los parámetros pasados por los usuarios a un
programa o a través de un formulario web.
19
Edith Campos
Inyección de SQL
Las sentencias dinámicas son sentencias SQL que se crean como cadenas de texto
(strings) y en las que se insertan/concatenan valores obtenidos de alguna fuente
(normalmente proveniente del usuario), lo que puede hacer que sean vulnerables a
inyección SQL si no se revisan y corrigen las entradas, como por ejemplo:
$id_usuario = $_POST["id"];
20
Edith Campos
Inyección de SQL
Eso es un ejemplo de una vulnerabilidad grave en la seguridad de una aplicación
(web o no) porque si el usuario introduce un valor como 1; DROP TABLE usuarios;
nos encontraríamos con que la sentencia ejecutada sería:
21
Edith Campos
Inyección de SQL
¿Cómo mitigar?
• EVITAR los SQL dinámicos. Son el error más común a la hora de ejecutar sentencias a la
base de datos y es lo que aprovechan los usuarios maliciosos para atacar el código. La
solución es fácil: no concatenar la consulta SQL con las entradas del usuario. 22
Edith Campos
Inyección de SQL
¿Cómo mitigar?
• UTILIZAR sentencias preparadas (también llamadas parametrizadas). Ofrecen una
estrategia más eficiente y menos propensa a errores. Además, los principales sistemas
de bases de datos modernos soportan sentencias preparadas con variables vinculadas.
• LIMITAR el acceso a la base de datos. No utilizar superusuarios (root), sino usuarios con
acceso personalizado o limitado a la base de datos (aunque esto no siempre está al
alcance de todos los desarrolladores).
• MODERNIZAR el código. Mantener el código al día en materia de seguridad, no utilizar
métodos obsoletos o no recomendados. Hay motivos por los que están obsoletos.
• Por ejemplo, un error relacionado con la modernización que se ve frecuentemente en
StackOverflow es el caso particular de PHP y las funciones mysql_*, que deberían
evitarse y usar MySQLi (mysqli_*) o PDO en su lugar.
23
Edith Campos
Pistas de auditorías débiles
Las pistas de auditoría débiles de una base de datos representan riesgos en términos de
cumplimiento, disuasión, detección, análisis forense y recuperación.
El sistema de gestión de bases de datos nativas (DBMS) audita las capacidades que dan
lugar a una degradación del rendimiento inaceptable y son vulnerables a los ataques
relacionados con el privilegio, es decir, los desarrolladores o administradores de bases de
datos (DBA) pueden desactivar los registros de auditoría de las base de datos.
24
Humberto Williams
Pistas de auditorías débiles
Las soluciones de auditoría para una base de datos, basados en la red son una
buena opción. Tales soluciones de auditoría de base de datos no deben tener
ningún impacto en el rendimiento de bases de datos, operan de forma
independiente de todos los usuarios y ofrecen la recopilación de datos a detalle.
25
Humberto Williams
Pistas de auditorías débiles
¿Cómo mitigar?
Humberto Williams
Pistas de auditorías débiles
¿Cómo mitigar?
27
Humberto Williams
Pistas de auditorías débiles
• Revisar la tabla de usuarios para comprobar que no existe ningún nuevo usuario
creado con privilegios excesivos. De la tabla INFORMATION_SCHEMA se podría
realizar la consulta de qué usuarios tienen el privilegio de crear nuevos usuarios.
SELECT create_user FROM user_privileges WHERE
is_grantable=’yes’;
Humberto Williams
Pistas de auditorías débiles
Los archivos de estado de MySQL son:
Tanto en Windows como en Unix, estos archivos se encuentran por defecto en la carpeta
DATA. Deben ser localizados y observar si ha habido algún movimiento extraño que
quedase almacenado en el log.
29
Humberto Williams
Negación de servicios
En internet, un ataque de denegación de servicios (DDoS) es el que se realiza cuando una
cantidad considerable de sistemas atacan a un objetivo único, provocando la
indisponibilidad de un servicio. Las técnicas más comunes de DoS incluyen
desbordamientos de búfer, corrupción de datos, la inundación de la red y el consumo de
recursos.
La prevención de ataques DoS debería ocurrir en múltiples capas incluyendo las de red,
aplicaciones y bases de datos según recomendaciones de cursos de seguridad de bases de
datos y seguridad web.
30
Humberto Williams
Negación de servicios
31
Humberto Williams
Negación de servicios
¿Cómo mitigar?
• Revisar la configuración de routers y firewalls para detener IPs inválidas, así como
también el filtrado de protocolos que no sean necesarios.
Algunos firewalls y routers proveen la opción de prevenir inundaciones (floods) en
los protocolos TCP y UDP. Es aconsejable habilitar la opción de logs para llevar un
control adecuado de las conexiones que existen con dichos routers.
32
Humberto Williams
Negación de servicios
• Contar con IDS e IPS, estos pueden detectar el mal uso de protocolos válidos como
posibles vectores de ataque. Se debe tener en cuenta también, la configuración de
estas herramientas. Esto debe realizarse con el tiempo necesario y
mediante personal capacitado, intentando en lo posible mantener actualizadas las
firmas de estos dispositivos.
33
Humberto Williams
Vulnerabilidad en protocolos de
comunicación de las bases de datos
Existe una constante preocupación por la seguridad de la base de datos: Muchas
veces la seguridad se ve afectada por la configuración de los procesos de
conexión. Las vulnerabilidades en los protocolos de bases de datos pueden
permitir el acceso no autorizado a datos, la corrupción o la disponibilidad.
34
Giancarlo Remón
Vulnerabilidad en protocolos de
comunicación de las bases de datos
¿Cómo mitigar?
Giancarlo Remón
Autenticaciones débiles
La autenticación basada en contraseña es probablemente una de las funciones más
importantes que se usan todos los días, sin embargo no se ha evolucionado mucho
desde los primeros sistemas informáticos de usuarios múltiples, incluso cuando se
desarrollan métodos más seguros.
36
Giancarlo Remón
Autenticaciones débiles
37
Giancarlo Remón
Autenticaciones débiles
¿Cómo mitigar?
38
Giancarlo Remón
Autenticaciones débiles
Giancarlo Remón
Exposición de datos de
copias de respaldo
El robo de información y la filtración de datos confidenciales son noticias del día a día,
Algunos ataques recientes de alto perfil han involucrado el robo de cintas de backup de
base de datos y discos duros.
Es importante que todas las copias de seguridad deben ser cifradas. En el futuro, no se
debe admitir la creación de copias de seguridad sin cifrar. El cifrado de base de datos
en línea es un pobre sustituto de controles granulares de privilegios de acuerdo a
expertos de seguridad de base de datos.
40
Giancarlo Remón
Exposición de datos de
copias de respaldo
El método más utilizado para crear copias de seguridad de MySQL se basa en el uso del
comando mysqldump. Este comando se incluye dentro de las utilidades del propio
servidor MySQL, cuando se instala MySQL. Para comprobar que dispones de
mysqldump, abre una consola de comandos y se debe ejecutar lo siguiente:
$ mysqldump
41
Giancarlo Remón
Exposición de datos de
copias de respaldo
¿Cómo mitigar?
42
Giancarlo Remón
Exposición de datos de
copias de respaldo
Grant SELECT, SHOW DATABASES, LOCK TABLES On *.* To 'backupin'@'%'; Con estos
tres permisos estaremos permitiendo que se vea las bases de datos, bloquee las
tablas para hacer el select y las lea, que serán permisos suficientes para hacer
backups, y en caso de algún problema de seguridad o robo de contraseña no podrán
modificar nuestras bases de datos aunque sí leerlas (para eso podemos configurar
MySQL para que no permita conexiones externas por ejemplo o solo desde una IP en
concreto).
43
Giancarlo Remón
Herramientas MySQL
MySQL Workbench
Es una herramienta visual unificada para arquitectos de bases de datos,
desarrolladores y DBA. MySQL Workbench proporciona modelado de datos,
desarrollo SQL y herramientas integrales de administración para la configuración del
servidor, administración de usuarios, respaldo y mucho más.
Diseño
MySQL Workbench permite a un DBA, desarrollador o arquitecto de datos diseñar
visualmente, modelar, generar y administrar bases de datos. Incluye todo lo que un
modelador de datos necesita para crear modelos ER complejos, ingeniería directa e
inversa, y también ofrece funciones clave para realizar tareas difíciles de
administración y documentación de cambios que normalmente requieren mucho
tiempo y esfuerzo.
44
Giancarlo Remón
Herramientas MySQL
Desarrollar
MySQL Workbench ofrece herramientas visuales para crear, ejecutar y optimizar
consultas SQL. El Editor de SQL proporciona resaltado de sintaxis de color,
autocompletado, reutilización de fragmentos de SQL e historial de ejecución de SQL. El
panel de conexiones de bases de datos permite a los desarrolladores administrar
fácilmente las conexiones de bases de datos estándar, incluido MySQL Fabric. El
buscador de objetos proporciona acceso instantáneo a los objetos y el esquema de la
base de datos.
Administrar
MySQL Workbench proporciona una consola visual para administrar fácilmente los
entornos de MySQL y obtener una mejor visibilidad de las bases de datos. Los
desarrolladores y DBA pueden usar las herramientas visuales para configurar
servidores, administrar usuarios, realizar copias de seguridad y recuperación,
inspeccionar datos de auditoría y ver el estado de la base de datos. 45
Giancarlo Remón
Herramientas MySQL
Tablero de rendimiento visual
MySQL Workbench proporciona un conjunto de herramientas para mejorar el
rendimiento de las aplicaciones MySQL. Los DBA pueden ver rápidamente los indicadores
clave de rendimiento utilizando el Tablero de rendimiento. Los informes de rendimiento
brindan una fácil identificación y acceso a puntos de conexión IO, declaraciones SQL de
alto costo y más. Además, con 1 clic, los desarrolladores pueden ver dónde optimizar su
consulta con el Plan Visual Explain mejorado y fácil de usar.
Migración de base de datos
MySQL Workbench ahora proporciona una solución completa y fácil de usar para migrar
Microsoft SQL Server, Microsoft Access, Sybase ASE, PostgreSQL y otras tablas, objetos y
datos de RDBMS a MySQL. Los desarrolladores y DBA pueden convertir rápida y
fácilmente aplicaciones existentes para ejecutar en MySQL tanto en Windows como en
otras plataformas. La migración también admite la migración de versiones anteriores de
46
MySQL a las últimas versiones.
Giancarlo Remón
Herramientas MySQL
MySQL Workbench
47
Giancarlo Remón
Ejemplo de amenazas en
base de datos
48
Giancarlo Remón
Ejemplo de amenazas en
base de datos
49
Giancarlo Remón
Ejemplo de amenazas en
base de datos
50
Giancarlo Remón
Ejemplo de amenazas en
bases de datos
51
Giancarlo Remón
Conclusión
La base de datos ha hecho avances significativos en el manejo de la seguridad
contras amenazas y vulnerabilidades en varias aplicaciones que requieren
confidencialidad, integridad y autenticidad como: Entidades bancarias,
médicas, departamentos gubernamentales, inteligencia militar, etc. Aunque la
implementación de seguridad más sofisticada no es tarea fácil, debemos hacer
el esfuerzo por lograr que nuestros datos estén completamente seguros.
53