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
...
M´odulo 6. Seguridad de Bases de Datos
Agenda
1 Seguridad
Introducci´on
Esquemas de acceso a servidores de bases de datos
...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
1 Seguridad
Introducci´on
Esquemas de acceso a servidores d...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Qu´e es la seguridad en bases de datos?
Definici´on
Nivel e...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿De quien nos queremos proteger? (Antes)
Wannabe lamer: “I ...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿De quien nos queremos proteger? (Ahora)
Gobiernos
Robo de ...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿De quien nos queremos proteger? (Ahora)
Cyber warrior: The...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Clasificaci´on de los Hackers
Black-hats: Muestran sus habil...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Por que es importante la seguridad en base de datos?
http:...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Por que es importante la seguridad en base de datos?
http:...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Website defacement en M´exico
http://www.zone-h.org/archive
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Por que es importante la seguridad en base de datos?
Ejemp...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
8 of the Biggest Data Breaches Ever and How They
Happened
h...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
2014 Data Breach Investigations Report
http://www.verizonen...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Who is the biggest threat to your organization?
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
¿Qu´e se necesita proteger?
Componentes de los
sistemas de ...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Administraci´on de Bases de Datos
Esencial para el ´exito d...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Componentes de un DBMS
Datos
Procedimientos
Hardware
Softwa...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad de la informaci´on
La informaci´on es uno de los ...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Tri´angulo C.I.A.
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Confidencialidad
Trata dos aspectos de la seguridad:
Prevenc...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Clasificaci´on de la informaci´on vs Confidencialidad
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Integridad
Consiste en validar los datos y procesarlos corr...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Degradaciones en la integridad de datos
Datos inv´alidos
Da...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Disponibilidad
El sistema debe estar disponible para los us...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Arquitectura de seguridad de la informaci´on
Protege la inf...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Arquitectura de seguridad de la informaci´on
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Componentes de la Arquitectura de seguridad de la
informaci...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad en Bases de Datos
Aplica la seguridad en todos lo...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad en Base de Datos
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad en Bases de Datos
Reducir los puntos de acceso re...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Seguridad en Base de Datos
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Compromiso de la integridad de datos
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Niveles de Seguridad en Bases de Datos
1 Base de datos rela...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Niveles de Seguridad en Bases de Datos
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Introducci´on
Anatom´ıa de un ataque de inyecci´on SQL
Fuente: Pentest Ma...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Esquemas de acceso a servidores de bases de datos
1 Seguridad
Introducci´...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Esquemas de acceso a servidores de bases de datos
Arquitectura de Sistema...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Esquemas de acceso a servidores de bases de datos
Ejemplos de arquitectur...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
1 Seguridad
Introducci´on
Esquemas de acceso ...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Ciclo de vida en la administraci´on de usuari...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caso de Estudio:
MySQL/MariaDB
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
¿Qu´e es MySQL?
Definici´on
MySQL es el sistem...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Licenciamiento
Liberado bajo una doble licenc...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Historia
Los origines de MySQL4 se remontan a...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Historia II
En 1995, David Axmark8 comenz´o a...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Creadores de MySQL
David Axmark y “Monty” Wid...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Nombre de MySQL
El origen del nombre MySQL no...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Sakila
El nombre del delf´ın de MySQL (el act...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Soporte ACID
MySQL ya no es m´as un juguete p...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Soporte ACID II
Transacci´on
Serie de instruc...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
¿Por qu´e elegir MySQL?
Velocidad. MySQL es r...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caracter´ısticas II
Escalabilidad. MySQL sopo...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caracter´ısticas III
Distribuci´on abierta. L...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caracter´ısticas IV
Conectividad y Seguridad....
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Caracter´ısticas V
Estabilidad. Todos los bug...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Portada Oracle Magazine Enero 2011
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Productos de la Comunidad
MySQL Community Ser...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Productos de la Comunidad
MySQL Enterprise Ed...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Server
Este es el producto principal, u...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Cluster
Versi´on de MySQL que se usa pa...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Proxy
MySQL Proxy es un servidor que ac...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Workbench
Herramienta completa para la ...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MySQL Drivers and Connectors
Aqu´ı se incluye...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
¿Donde se puede ejecutar MySQL?
MySQL se pued...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Arquitectura L´ogica
MySQL funciona en una ar...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Capas Arquitectura L´ogica
1 La capa superior...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Introducci´on a los motores de almacenamiento...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Introducci´on a los motores de almacenamiento...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Arquitectura modular del servidor MySQL
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
MyISAM
Motor de almacenamiento por defecto en...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
InnoDB
Caracter´ısticas del motor InnoDB:
Mot...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
InnoDB II
Los datos se guardan en disco: un a...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
HEAP
Los datos se guardan en memoria, utiliza...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
NDB
Es el motor de almacenamiento de los cl´u...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de usuarios
Resumen
Motor de almacenamiento MyISAM InnoDB...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de grupos
1 Seguridad
Introducci´on
Esquemas de acceso a ...
M´odulo 6. Seguridad de Bases de Datos
Seguridad
Administraci´on de roles
1 Seguridad
Introducci´on
Esquemas de acceso a s...
M´odulo 6. Seguridad de Bases de Datos
Referencias bibliogr´aficas
Referencias bibliogr´aficas I
C. Wilson.
Computer Attack ...
M´odulo 6. Seguridad de Bases de Datos
Referencias bibliogr´aficas
Referencias bibliogr´aficas II
K. O’Shea
Examining the RP...
Próxima SlideShare
Cargando en…5
×

Módulo 6. Seguridad de Base de Datos

980 visualizaciones

Publicado el

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

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
980
En SlideShare
0
De insertados
0
Número de insertados
104
Acciones
Compartido
0
Descargas
61
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Módulo 6. Seguridad de Base de Datos

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 11. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on Website defacement en M´exico http://www.zone-h.org/archive
  12. 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. 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. 14. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on 2014 Data Breach Investigations Report http://www.verizonenterprise.com/DBIR/2014/
  15. 15. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on Who is the biggest threat to your organization?
  16. 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. 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. 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. 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. 20. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on Tri´angulo C.I.A.
  21. 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. 22. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on Clasificaci´on de la informaci´on vs Confidencialidad
  23. 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. 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. 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. 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. 27. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on Arquitectura de seguridad de la informaci´on
  28. 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. 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. 30. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on Seguridad en Base de Datos
  31. 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. 32. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on Seguridad en Base de Datos
  33. 33. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on Compromiso de la integridad de datos
  34. 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. 35. M´odulo 6. Seguridad de Bases de Datos Seguridad Introducci´on Niveles de Seguridad en Bases de Datos
  36. 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. 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. 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. 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. 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. 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. 42. M´odulo 6. Seguridad de Bases de Datos Seguridad Administraci´on de usuarios Caso de Estudio: MySQL/MariaDB
  43. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 57. M´odulo 6. Seguridad de Bases de Datos Seguridad Administraci´on de usuarios Portada Oracle Magazine Enero 2011
  58. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 70. M´odulo 6. Seguridad de Bases de Datos Seguridad Administraci´on de usuarios Arquitectura modular del servidor MySQL
  71. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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).

×