Universidad Nacional Autónoma de México
Facultad de Contaduría y Administración
Diplomado Diseño, Construcción y Administración de Redes de Datos
Módulo 6. Seguridad de Bases de Datos
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
Módulo 6. Seguridad de Base de Datos
1. M´odulo 6. Seguridad de Bases de Datos
M´odulo 6. Seguridad de Bases de Datos
Dise˜no y Administraci´on de Bases de Datos
Francisco Medina L´opez —
paco.medina@comunidad.unam.mx
http://aulavirtual.capacitacionentics.com
Facultad de Contadur´ıa y Administraci´on
Universidad Nacional Aut´onoma de M´exico
2015-1
2. M´odulo 6. Seguridad de Bases de Datos
Agenda
1 Seguridad
Introducci´on
Esquemas de acceso a servidores de bases de datos
Administraci´on de usuarios
Administraci´on de grupos
Administraci´on de roles
2 Respaldos
3 Desarrollo de planes de contingencia
3. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
1 Seguridad
Introducci´on
Esquemas de acceso a servidores de bases de datos
Administraci´on de usuarios
Administraci´on de grupos
Administraci´on de roles
2 Respaldos
3 Desarrollo de planes de contingencia
4. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Qu´e es la seguridad en bases de datos?
Definici´on
Nivel en el cual los datos est´an completamente protegidos contra
intentos y/o accesos no autorizados
Comprende sistemas de informaci´on y conceptos de seguridad de la
informaci´on.
5. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿De quien nos queremos proteger? (Antes)
Wannabe lamer: “I wanna be a hacker but I can’t ‘hack’ it”
(9-8 a˜nos / Grupo / Usuario Final / Diversi´on)
Script-kiddie: The script kid (10-18 a˜nos / Grupo /
Organizaciones con vulnerabilidad bien conocidas / Fama)
Cracker: The destroyer (17-35 a˜nos / Solo / Empresas /
Fama, Reconocimiento)
Ethical hacker: The Hacker “par excellence” (15-50 a˜nos /
Solo (rara vez en grupo)/ Organizaciones de gran tama˜no /
Curiosidad, Aprender, Mejorar habilidades)
Quiet: Highly specialized hacker, uncommunicative, extremely
paranoid (16-50 a˜nos / Solo / Desconocido / Curiosidad,
Aprender, Egocentrismo)
Profiling Hackers: The Science of Criminal Profiling as Applied to the World of Hacking, p 240
6. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿De quien nos queremos proteger? (Ahora)
Gobiernos
Robo de propiedad intelectual (PI), datos y espionaje.
Motivaci´on: Pol´ıtica y nacionalismo.
M´etodos preferidos: Ataques dirigidos.
Crimen Organizado
Robo de propiedad intelectual (PI), datos.
Motivaci´on: Pol´ıtica y nacionalismo.
M´etodos preferidos: Ataques dirigidos y fraude.
Hacktivistas
Exposici´on de propiedad intelectual y poner en riesgo la
infraestructura.
Motivaci´on: Causas pol´ıticas, ideolog´ıa y agendas personales.
M´etodos preferidos: Ataques dirigidos, ataques de negaci´on de
servicio.
7. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿De quien nos queremos proteger? (Ahora)
Cyber warrior: The mercenary (18-50 a˜nos / Solo /
Organizaciones de prestigio / Lucro)
Industrial spy: The industrial spy (22-50 a˜nos / Solo /
Empresas multinacionales/ Lucro)
Government agent: The government agent (CIA, Mossad,
FBI, etc.) (25-45 a˜nos / Solo o en Grupo / Terroristas,
pr´ofugos, industrias / Actividad profesional)
Military hacker: Recruited to fight “with a computer”(25-45
a˜nos / Solo o en Grupo (rara vez en grupo)/ Gobiernos e
Industria / Actividad profesional y por una causa)
Hacktivista: Idealistas (16-35 a˜nos / Grupo / Gobierno,
Figuras p´ublicas / Desprestigio)
Profiling Hackers: The Science of Criminal Profiling as Applied to the World of Hacking, p 240
8. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Clasificaci´on de los Hackers
Black-hats: Muestran sus habilidades en inform´atica
rompiendo sistemas de seguridad de computadoras,
colapsando servidores, entrando a zonas restringidas,
infectando redes o apoder´andose de ellas, entre otras muchas
cosas utilizando sus destrezas en m´etodos hacking.
Grey-hats: Grupo de individuos que en ocasiones penetran
sistema sin permiso y otras con permiso.
White-hats: Se dedican a asegurar y proteger los sistemas de
Tecnolog´ıas de informaci´on y comunicaci´on. Suelen trabajar
para empresas de seguridad inform´atica.
Profiling Hackers: The Science of Criminal Profiling as Applied to the World of Hacking, p 47
9. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Por que es importante la seguridad en base de datos?
http://www.elfinanciero.com.mx/empresas/
10. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Por que es importante la seguridad en base de datos?
http://protecciondatos.mx/2013/10/
esmultas-sanciones-impuestas-por-el-ifai-enfines-sanctions-imposed-ifai/
11. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Website defacement en M´exico
http://www.zone-h.org/archive
12. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Por que es importante la seguridad en base de datos?
Ejemplo de webdefacement realizado por un grupo hacktivista.
http://www.zone-h.org/archive
13. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
8 of the Biggest Data Breaches Ever and How They
Happened
http://www.entrepreneur.com/article/237098
14. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
2014 Data Breach Investigations Report
http://www.verizonenterprise.com/DBIR/2014/
15. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Who is the biggest threat to your organization?
16. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Qu´e se necesita proteger?
Componentes de los
sistemas de informaci´on:
Datos
Procedimientos
Hardware
Software
Red
Personas
17. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Administraci´on de Bases de Datos
Esencial para el ´exito de un sistema de informaci´on
Funcionalidad de un DBMS:
Organiza los datos
Almancena y recupera informaci´on de manera eficiente
Manipula datos (update y delete)
Cumple con integridad referencial y consistencia
Cumple e implementa pol´ıticas y procedimientos de seguridad
de datos
Respalda, recupera y restaura datos en caso de desastre
18. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Componentes de un DBMS
Datos
Procedimientos
Hardware
Software
Red
Personas
Servidores de bases
de datos
19. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad de la informaci´on
La informaci´on es uno de los activos m´as valioso de una
organizaci´on.
Seguridad de la informaci´on: Procedimientos y medidas
tomadas para proteger los componentes de un sistema de
informaci´on.
Tri´angulo C.I.A.: Confidencialidad, Integridad y Disponibilidad
Las pol´ıticas de seguridad deben estar balanceadas de acuerdo
al tri´angulo C.I.A.
20. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Tri´angulo C.I.A.
21. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Confidencialidad
Trata dos aspectos de la seguridad:
Prevenci´on de acceso no autorizado.
Revelaci´on de informaci´on con base a su clasificaci´on.
Clasificar la informaci´on de la empresa en niveles:
Cada nivel tiene sus propias medidas de seguridad
Generalmente basadas en el grado de confidencialidad
necesaria para proteger la informaci´on.
22. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Clasificaci´on de la informaci´on vs Confidencialidad
23. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Integridad
Consiste en validar los datos y procesarlos correctamente
logrando certeza en la informaci´on.
La informaci´on es integra si:
Es precisa.
No ha sido falsificada.
Lectura consistente: cada usuario ve solo sus cambios y
aquellos realizados (committed) por otros usuarios.
24. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Degradaciones en la integridad de datos
Datos inv´alidos
Datos redundantes
Datos inconsistentes
Datos an´omalos
Lectura de datos inconsistente
Datos no concurrentes
25. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Disponibilidad
El sistema debe estar disponible para los usuarios autorizados
El sistema determina que puede hacer un usuario con la
informaci´on
Razones por las cuales un sistema no esta disponible:
Ataques externos o falta de protecci´on del sistema
Falla de un sistema o no contar con un plan de recuperaci´on
de desastres
Pol´ıticas de seguridad demasiado estrictas
Mala implementaci´on de procesos de autenticaci´on
26. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Arquitectura de seguridad de la informaci´on
Protege la informaci´on producida por los datos
Modelo para proteger los activos f´ısicos y l´ogicos
Dise˜no global para la implementaci´on del tri´angulo C.I.A.
27. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Arquitectura de seguridad de la informaci´on
28. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Componentes de la Arquitectura de seguridad de la
informaci´on
Pol´ıticas y procedimientos
Seguridad del personal y administradores
Equipos de detecci´on de intrusos
Programas de seguridad
Equipo de monitoreo
Aplicaciones de monitoreo
Procedimientos y herramientas de auditoria
29. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad en Bases de Datos
Aplica la seguridad en todos los niveles de la base de datos
Asegurar los puntos de acceso: lugar donde la seguridad de
bases de datos debe proteger y aplicarse
Si los datos requieren un mayor nivel de protecci´on, los puntos
de acceso a los datos deben ser pocos y controlados
30. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad en Base de Datos
31. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad en Bases de Datos
Reducir los puntos de acceso reduce los riesgos de seguridad
Brechas de seguridad: puntos en los cuales se pierde la
seguridad
Vulnerabilidades: fallo en un sistema que puede convertirse en
amenaza
Amenaza: Riesgo que puede convertirse en una brecha de
seguridad
32. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad en Base de Datos
33. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Compromiso de la integridad de datos
34. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Niveles de Seguridad en Bases de Datos
1 Base de datos relacional: Conjunto de archivos de datos
relacionados
2 Archivo de datos: Conjunto de tablas relacionadas
3 Tablas: Conjunto de renglones relacionados (registros)
4 Renglones. Conjunto de columnas relacionadas (campos)
35. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Niveles de Seguridad en Bases de Datos
36. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Anatom´ıa de un ataque de inyecci´on SQL
Fuente: Pentest Magazine, p. 49, Junio 2012
37. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Esquemas de acceso a servidores de bases de datos
1 Seguridad
Introducci´on
Esquemas de acceso a servidores de bases de datos
Administraci´on de usuarios
Administraci´on de grupos
Administraci´on de roles
2 Respaldos
3 Desarrollo de planes de contingencia
38. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Esquemas de acceso a servidores de bases de datos
Arquitectura de Sistemas de Informaci´on
Cliente-Servidor
Basado en un modelo de negocio
Puede ser implementado por niveless: un nivel; dos niveles; n
niveles
Formado por tres capas (layer)
Capa: Plataforma f´ısica o l´ogica
Sistema manejador de bases de datos (DBMS): Conjunto de
programas que administran bases de datos
39. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Esquemas de acceso a servidores de bases de datos
Ejemplos de arquitectura cliente-servidor
40. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
1 Seguridad
Introducci´on
Esquemas de acceso a servidores de bases de datos
Administraci´on de usuarios
Administraci´on de grupos
Administraci´on de roles
2 Respaldos
3 Desarrollo de planes de contingencia
41. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Ciclo de vida en la administraci´on de usuarios
Fuente: Pentest Magazine, p. 82, Septiembre 2012
42. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caso de Estudio:
MySQL/MariaDB
43. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
¿Qu´e es MySQL?
Definici´on
MySQL es el sistema manejador de bases de datos relacionales,
multihilos, multiusuario y robusto m´as popular hoy en d´ıa,
desarrollado y proporcionado por MySQL AB.
Cuenta con m´as de seis millones de instalaciones 1
MySQL AB es una empresa cuyo negocio consiste en
proporcionar servicios en torno al servidor de bases de datos
MySQL.
desde enero de 2008 una subsidiaria de Sun Microsystems, esta
a su vez de Oracle Coportation desde abril del 2009.
1
http://dev.mysql.com/tech-resources/articles/dispelling-the-myths.html
44. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Licenciamiento
Liberado bajo una doble licencia:
Software Libre bajo los t´erminos de la licencia GNU General
Public License
Denominaci´on del software que respeta la libertad de los
usuarios sobre su producto adquirido y, por tanto, una vez
obtenido puede ser usado, copiado, estudiado, modificado y
redistribuido libremente. 2
Licencia comercial est´andar de MySQL AB. 3
2
http://www.fsf.org/licenses/
3
http://www.mysql.com/company/legal/licensing/
45. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Historia
Los origines de MySQL4 se remontan a 1985, cuando Michael
“Monty” Widenius5, un egresado de 23 a˜nos de “Helsinki
University of Technology”, cre´o la base de datos UNIREG
para TcX DataKonsult AB 6.
UNIREG carec´ıa de un lenguaje estructurado de acceso a
datos (SQL) por lo que en 1994, TcX comenz´o a buscar
alternativas. Una de sus opciones fue mSQL7 creado por
David Hughes, pero carec´ıa de ciertas caracter´ısticas que para
TcX eran necesarias.
“Monty” comenz´o a desarrollar un nuevo servidor al que hoy
conocemos como MySQL.
4
http://www.linuxjournal.com/article/3609
5
http://en.wikipedia.org/wiki/Michael_Widenius
6
Empresa Sueca de Datawarehousing fundada por Monty, Allan Larsson y David Axmark
7
http://www.hughes.com.au/
46. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Historia II
En 1995, David Axmark8 comenz´o a animar a TcX para que
hiciera p´ublico MySQL.
MySQL 3.11.1 fue entregado al mundo en 1996 en forma de
distribuci´on binaria para GNU/Linux9 y Solaris10.
Hoy en d´ıa, MySQL funciona en muchas m´as plataformas y
est´a disponible tanto en forma binaria como en c´odigo fuente.
8
http://www.oreillynet.com/pub/au/828
9
Sistema operativo software libre clon de Unix cuyo kernel fue desarrollado inicialmente por Linus Torlvals en
1991.
10
Sistema operativo de tipo Unix desarrollado por Sun Microsystems (empresa inform´atica de Silicon Valley)
desde 1992 como sucesor de SunOS.
47. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Creadores de MySQL
David Axmark y “Monty” Widenius Michael fundadores de MySQL
AB
48. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Nombre de MySQL
El origen del nombre MySQL no es claro.
El directorio base y un gran n´umero de bibliotecas y
herramientas han tenido el prefijo “my” por m´as de 10 a˜nos.
Sin embargo, la hija del co-fundador Monty Widenius tambi´en
se llama My.
Cu´al de los dos di´o su nombre a MySQL es un misterio
49. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Sakila
El nombre del delf´ın de MySQL (el actual logo del proyecto) es
“Sakila”, que fu´e elegido por los fundadores de MySQL AB de una
gran lista de nombres sugerida por los usuarios en el concurso
“Name the Dolphin11 ” (ponle nombre al delf´ın).
11
http://www.mysql.com/news-and-events/generate-article.php?id=116
50. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Soporte ACID
MySQL ya no es m´as un juguete para su uso en sitios Web.
Se ha convertido en una soluci´on viable para sistemas de
misi´on critica.
MySQL conserva su gran velocidad sin sacrificar
compatibilidad con ACID (Acr´onimo de Atomicity,
Consistency, Isolation and Durability12).
Atomicidad, Consistencia, Aislamiento y Durabilidad
Conjunto de caracter´ısticas necesarias para que una serie de
instrucciones puedan ser consideradas como una transacci´on.
12
http://databases.about.com/od/specificproducts/a/acid.htm
51. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Soporte ACID II
Transacci´on
Serie de instrucciones SQL que son tratados como una sola
(at´omicas).
START TRANSACTION;
SELECT balance FROM checking WHERE customer_id = 10233276;
UPDATE checking SET balance = balance - 200.00
WHERE customer_id = 10233276;
UPDATE savings SET balance = balance + 200.00
WHERE customer_id = 10233276;
COMMIT;
52. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
¿Por qu´e elegir MySQL?
Velocidad. MySQL es r´apido. Los desarrolles de MySQL afirman
que es el manejador de bases de datos relaciones m´as
r´apido que se puede obtener13.
Facilidad de uso. A pesar de ser un pontente manejador de bases
de datos es relativamente simple de administrar y
utilizar.
Soporte de SQL. MySQL tiene completo soporte a SQL, lenguaje
est´andar en todos los manejadores de bases de datos
relaciones modernos. Las funciones SQL est´an
implementadas usando una bilbioteca altamente
optimizada.
13
http://www.mysql.com/why-mysql/benchmarks/
53. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caracter´ısticas II
Escalabilidad. MySQL soporta grandes bases de datos. Por grande
entendemos a aquellas que contienen 50 millones de
registros y 60.000 tablas. Se permiten hasta 64
´ındices por tabla (32 antes de MySQL 4.1.2). Cada
´ındice puede consistir desde 1 hasta 16 columnas o
partes de columnas. El m´aximo ancho de l´ımite son
1000 bytes (500 antes de MySQL 4.1.2).Un ´ındice
puede usar prefijos de una columna para los tipos de
columna CHAR, VARCHAR, BLOB, o TEXT.
Portabilidad. Al estar escrito en C y en C++ funciona en
diferentes plataformas14 .
14
Por plataformas entendemos servidores con diferentes tipos de procesador: CISC y RISC
54. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caracter´ısticas III
Distribuci´on abierta. La licencia GNU GPL de MySQL obliga a que
la distribuci´on de cualquier producto derivado
(aplicaci´on) se haga bajo esa misma licencia. Si un
desarrollador desea incorporar MySQL en su producto
pero desea distribuirlo bajo otra licencia que no sea
la GNU GPL, puede adquirir una licencia comercial
de MySQL.
55. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caracter´ısticas IV
Conectividad y Seguridad. MySQL cuenta con un sistema de
privilegios y contrase˜nas que es muy flexible y seguro,
permite la verficaci´on basada en el servidor origen.
Por otra lado las contrase˜nas son seguras porque
tanto en tr´ansito por la red, como en su
almacenamiento se hace uso de la criptograf´ıa para
protegerlas. Los clientes se pueden conectar con el
servidor MySQL usando sockets15 TCP/IP en
cualquier plataforma. Existe un un conector ODBC16
(MyODBC) que proporciona a MySQL soporte para
programas clientes que usen conexiones ODBC.
15
Forma de comunicarse con otros programas usando descriptores de archivo est´andar de Unix.
http://www.arrakis.es/~dmrq/beej/theory.html
16
Open Database Connectivity (ODBC) es un est´andar de acceso a Bases de datos desarrollado por Microsoft
Corporation, el objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicaci´on, sin
importar qu´e Sistema Manejador de Bases de Datos (DBMS por sus siglas en ingl´es) almacene los datos
56. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caracter´ısticas V
Estabilidad. Todos los bugs reportados y conocidos se arreglan en
la ´ultima versi´on, con las excepciones listadas en las
secciones de bugs y que est´an relacionados con
problemas de dise˜no17. Un estudio sobre el c´odigo de
MySQL realizado por Reasonig, Inc.18 concluyo que
es 6 veces mejor comparado con su equivalente
comercial.
17
http://dev.mysql.com/doc/refman/5.0/es/bugs.html
18
Empresa dedicada al an´alisis de c´odigo http://www.reasoning.com/aboutus.html
57. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Portada Oracle Magazine Enero 2011
58. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Productos de la Comunidad
MySQL Community Server
MySQL Cluster
MySQL Proxy
MySQL Workbench
MySQL Embedded Server
MySQL Drivers and Connectors
C, C++, Java, Perl, PHP, Python, Ruby, JDBC, ODBC y
.NET.
59. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Productos de la Comunidad
MySQL Enterprise Edition
MySQL Database
MySQL Enterprise Backup
MySQL Enterprise Monitor
MySQL Workbench Standard Edition
MySQL Cluster CGE
MySQL Cluster
MySQL Cluster Manager
MySQL Enterprise Backup
MySQL Enterprise Monitor
MySQL Workbench Standard Edition
60. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Server
Este es el producto principal, un servidor de base de datos de
alto rendimiento, responsable de la creaci´on y mantenimiento
de las base de datos, ejecuci´on de consultas y aseguramiento
de la informaci´on.
Incluye, adem´as del servidor, varias herramientas cliente como
mysql y mysqladmin usados para la administraci´on de la base
de datos y usuarios as´ı como otras para la importaci´on y
exportaci´on de datos, reparar bases de datos, etc.
61. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Cluster
Versi´on de MySQL que se usa para implementar un cluster19,
tecnolog´ıa que permite de manera transparente distribuir los
datos en dos o mas servidores logrando redundancia.
La tecnolog´ıa de clustering juega un papel importante en las
aplicaciones de alta disponibilidad, asegura la continuidad de
los datos aun cuando un nodo del cluster llegara a fallar.
Al momento de escribir esta presentaci´on, MySQL Cluster
soporta hasta 255 nodos por cluster.
19
http://searchexchange.techtarget.com/dictionary/definition/what-is-cluster.html
62. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Proxy
MySQL Proxy es un servidor que act´ua como intermediario
entre el servidor de bases de datos y la conexi´on con los
clientes.
Puede interceptar y reescribir las consultas, modificar los
resultados, implementar colas de consultas, analizar el tr´afico
generado por las consultas con fines de reporteo y realizar
labores de balanceo de cargas.
63. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Workbench
Herramienta completa para la administraci´on, dise˜no y
validaci´on de bases de datos MySQL,
Permite al DBA monitorizar el estado del servidor en tiempo
real.
Es una herramienta gr´afica que permita tambi´en realizar
respaldos, analizar la bit´acora as´ı como realizar ajustes al
rendimiento del servidor.
64. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Drivers and Connectors
Aqu´ı se incluyen controladores y conectores para diferentes
lenguajes de programaci´on tales como C, C++, Java, Perl,
PHP, Python, Ruby, JDBC, ODBC y .NET.
65. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
¿Donde se puede ejecutar MySQL?
MySQL se puede ejecutar en casi todas las plataformas
conocidas20:
Mac OS X,
Windows XP, Windows Vista, Windows Server 2003, y
Windows Server 2008,
GNU/Linux,
Solaris 2.8 en SPARC y x86,,
FreeBSD 5.x.
HP-UX 11.x
No todas las plataformas son igualmente aptas para ejecutar
MySQL, esto va a depender de la capacidad del kernel o n´ucleo del
sistema operativo y del sistema de archivos.
20
http://dev.mysql.com/doc/refman/5.5/en/supported-os.html
66. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Arquitectura L´ogica
MySQL funciona en una arquitectura cliente-servidor. El servidor
se divide en una serie de m´odulos de alguna manera
independientes.
67. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Capas Arquitectura L´ogica
1 La capa superior son servicios que no son exclusivos de
MySQL. Tienen que ver con servicios de red: manejo de
sesiones, autenticaci´on, seguridad, etc.
2 En la segunda capa se encuentra el cerebro de MySQL,
incluye m´odulos para el parseo, an´alisis y optimizaci´on de
sentencias sql, tambi´en un m´odulo para el cache y otro para
las funciones (de fecha, tiempo, matem´aticas, de cifrado, etc).
3 En la ultima capa se encuentran los motores de
almacenamiento. Estos son responsables de almacenar y
recuperar los datos en MySQL. De manera an´aloga a los
sistema de archivos de GNU/Linux o Windows cada motor de
almacenamiento tiene sus propias ventajas y ´areas de
oportunidad (para no decir desventajas). Estas diferencias son
casi transparentes para la capa superior.
68. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Introducci´on a los motores de almacenamiento
MySQL incorpora una caracter´ıstica ´unica llamada “motores
de almacenamiento” que nos permite seleccionar el tipo de
almacenamiento interno de cada tabla con base en una
situaci´on particular.
Dicha selecci´on, la hace el desarrollador a nivel de tabla, y no
afecta a la manera en que el servidor interact´ua con el cliente:
los comandos SQL ser´an los mismos sea cual sea el motor de
almacenamiento escogido
69. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Introducci´on a los motores de almacenamiento (II)
El siguiente ejemplo muestra como seleccionar el motor de
almacenamiento para una tabla:
CREATE TABLE nombre_tabla (definici´on)
ENGINE = nombre_motor;
Si deseamos modificar el motor de almacenamiento despu´es
de creada la tabla usamos la instrucci´on ALTER de la siguiente
forma:
ALTER TABLE nombre_tabla ENGINE = nombre_motor;
Ejemplos:
CREATE TABLE City (...) ENGINE=InnoDB;
ALTER TABLE City ENGINE=MyISAM;
70. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Arquitectura modular del servidor MySQL
71. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MyISAM
Motor de almacenamiento por defecto en la mayor´ıa de
instalaciones. Dentro de las principales caracter´ısticas del motor se
encuentran:
No transaccional.
Bloqueos a nivel de tabla.
Muy r´apido en lectura y escritura (excepto escrituras
simultaneas en la misma tabla).
Bajo requerimiento de espacio en disco y memoria.
Los datos se guardan en disco: diferentes archivos para la
definici´on de la tabla, los datos y los ´ındices.
Es el motor por defecto de MySQL.
Es una buena elecci´on cuando necesitamos velocidad, y
tenemos pocas modificaciones simultaneas de la tabla.
72. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
InnoDB
Caracter´ısticas del motor InnoDB:
Motor de almacenamiento por defecto desde la versi´on 5.5
Transaccional.
Multiversionado: cuando m´ultiples transacciones modifican
registros, InnoDB mantiene aisladas las transacciones
guardando para cada una de ellas un versi´on distinta de un
mismo registro, a cada transacci´on la versi´on que le
corresponde.
Bloqueos a nivel de registro.
Restricciones en claves for´aneas.
F´acil recuperaci´on de datos en caso de error.
Alta concurrencia m´as segura en escritura.
Deshacer transacciones a medias (“rollback”).
73. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
InnoDB II
Los datos se guardan en disco: un archivo para la definici´on de
la tabla, y un “tablespace” para guardar conjuntamente datos
e ´ındices.
El tablespace puede consistir en uno o m´as archivos, o incluso
una partici´on entera en disco.
74. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
HEAP
Los datos se guardan en memoria, utilizando algoritmos que
hacen un uso ´optimo de este medio.
Es muy, muy r´apido.
Es una buena elecci´on cuando necesitamos realizar
operaciones muy r´apidas sobre conjuntos peque˜nos de datos.
75. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
NDB
Es el motor de almacenamiento de los cl´uster de MySQL.
La base de datos esta repartida por los diferentes nodos del
cl´uster.
Proporciona alta disponibilidad mediante redundancia.
Proporciona alto rendimiento mediante fragmentaci´on de
datos sobre los grupos de nodos.
Proporciona alta escalabilidad mediante la combinaci´on de las
dos caracter´ısticas anteriores.
Los datos se guardan en memoria, pero los logs van a disco.
Es una buena elecci´on cuando disponiendo de varios servidores
necesitamos a la vez velocidad, transacciones y redundancia de
datos; replicaci´on s´ıncrona; y resistencia a ca´ıdas de servidores.
76. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Resumen
Motor de almacenamiento MyISAM InnoDB HEAP NDB
Multi-statement transactions,
ROLLBACK
- X - X
Foreign key constraints - X - -
Locking level table row table row
BTREE indexes X X - X
FULLTEXT indexes X - - -
HASH lookups - X X X
Other in-memory tree-based in-
dex
- - 4.1.0 -
GIS, RTREE indexes 4.1.0 - - -
Unicode 4.1.0 4.1.2 - -
Merge (union views) X - - -
Compress read-only storage X - - -
Relative disk use low high - low
77. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de grupos
1 Seguridad
Introducci´on
Esquemas de acceso a servidores de bases de datos
Administraci´on de usuarios
Administraci´on de grupos
Administraci´on de roles
2 Respaldos
3 Desarrollo de planes de contingencia
78. M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de roles
1 Seguridad
Introducci´on
Esquemas de acceso a servidores de bases de datos
Administraci´on de usuarios
Administraci´on de grupos
Administraci´on de roles
2 Respaldos
3 Desarrollo de planes de contingencia
79. M´odulo 6. Seguridad de Bases de Datos
Referencias bibliogr´aficas
Referencias bibliogr´aficas I
C. Wilson.
Computer Attack and Cyberterrorism: Vulnerabilities and
Policy Issues for Congress.
CRS Report for Congress, 2005.
E. Spafford.
Seguridad Pr´actica en Unix e Internet.
W. Preston
Backup & Recovery.
O’Reilly, 2006.
Seguridad Pr´actica en Unix e Internet.
80. M´odulo 6. Seguridad de Bases de Datos
Referencias bibliogr´aficas
Referencias bibliogr´aficas II
K. O’Shea
Examining the RPC DCOM Vulnerability: Developing a
Vulnerability-Exploit Cycle.
SANS.
S Harris.
CISSP Certification All-in-One Exam Guide, Fourth Edition.
McGraw-Hill Osborne Media; 4 edition (November 9, 2007).