Módulo 6. Seguridad de Base de Datos

80
M´odulo 6. Seguridad de Bases de Datos odulo 6. Seguridad de Bases de Datos Dise˜ no y Administraci´ on de Bases de Datos Francisco Medina L´ opez — [email protected] http://aulavirtual.capacitacionentics.com Facultad de Contadur´ ıa y Administraci´on Universidad Nacional Aut´onoma de M´ exico 2015-1

Transcript of Módulo 6. Seguridad de Base de Datos

Page 1: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Modulo 6. Seguridad de Bases de DatosDiseno y Administracion de Bases de Datos

Francisco Medina Lopez —[email protected]

http://aulavirtual.capacitacionentics.com

Facultad de Contadurıa y AdministracionUniversidad Nacional Autonoma de Mexico

2015-1

Page 2: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Agenda

1 SeguridadIntroduccionEsquemas de acceso a servidores de bases de datosAdministracion de usuariosAdministracion de gruposAdministracion de roles

2 Respaldos

3 Desarrollo de planes de contingencia

Page 3: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

1 SeguridadIntroduccionEsquemas de acceso a servidores de bases de datosAdministracion de usuariosAdministracion de gruposAdministracion de roles

2 Respaldos

3 Desarrollo de planes de contingencia

Page 4: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

¿Que es la seguridad en bases de datos?

Definicion

Nivel en el cual los datos estan completamente protegidos contraintentos y/o accesos no autorizados

Comprende sistemas de informacion y conceptos de seguridad de lainformacion.

Page 5: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

¿De quien nos queremos proteger? (Antes)

Wannabe lamer: “I wanna be a hacker but I can’t ‘hack’ it”(9-8 anos / Grupo / Usuario Final / Diversion)

Script-kiddie: The script kid (10-18 anos / Grupo /Organizaciones con vulnerabilidad bien conocidas / Fama)

Cracker: The destroyer (17-35 anos / Solo / Empresas /Fama, Reconocimiento)

Ethical hacker: The Hacker “par excellence” (15-50 anos /Solo (rara vez en grupo)/ Organizaciones de gran tamano /Curiosidad, Aprender, Mejorar habilidades)

Quiet: Highly specialized hacker, uncommunicative, extremelyparanoid (16-50 anos / Solo / Desconocido / Curiosidad,Aprender, Egocentrismo)

Profiling Hackers: The Science of Criminal Profiling as Applied to the World of Hacking, p 240

Page 6: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

¿De quien nos queremos proteger? (Ahora)

GobiernosRobo de propiedad intelectual (PI), datos y espionaje.Motivacion: Polıtica y nacionalismo.Metodos preferidos: Ataques dirigidos.

Crimen OrganizadoRobo de propiedad intelectual (PI), datos.Motivacion: Polıtica y nacionalismo.Metodos preferidos: Ataques dirigidos y fraude.

HacktivistasExposicion de propiedad intelectual y poner en riesgo lainfraestructura.Motivacion: Causas polıticas, ideologıa y agendas personales.Metodos preferidos: Ataques dirigidos, ataques de negacion deservicio.

Page 7: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

¿De quien nos queremos proteger? (Ahora)

Cyber warrior: The mercenary (18-50 anos / Solo /Organizaciones de prestigio / Lucro)

Industrial spy: The industrial spy (22-50 anos / Solo /Empresas multinacionales/ Lucro)

Government agent: The government agent (CIA, Mossad,FBI, etc.) (25-45 anos / Solo o en Grupo / Terroristas,profugos, industrias / Actividad profesional)

Military hacker: Recruited to fight “with a computer”(25-45anos / Solo o en Grupo (rara vez en grupo)/ Gobiernos eIndustria / Actividad profesional y por una causa)

Hacktivista: Idealistas (16-35 anos / Grupo / Gobierno,Figuras publicas / Desprestigio)

Profiling Hackers: The Science of Criminal Profiling as Applied to the World of Hacking, p 240

Page 8: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Clasificacion de los Hackers

Black-hats: Muestran sus habilidades en informaticarompiendo sistemas de seguridad de computadoras,colapsando servidores, entrando a zonas restringidas,infectando redes o apoderandose de ellas, entre otras muchascosas utilizando sus destrezas en metodos hacking.

Grey-hats: Grupo de individuos que en ocasiones penetransistema sin permiso y otras con permiso.

White-hats: Se dedican a asegurar y proteger los sistemas deTecnologıas de informacion y comunicacion. Suelen trabajarpara empresas de seguridad informatica.

Profiling Hackers: The Science of Criminal Profiling as Applied to the World of Hacking, p 47

Page 9: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

¿Por que es importante la seguridad en base de datos?

http://www.elfinanciero.com.mx/empresas/

hackeo-a-liverpool-podria-costarle-mas-de-100-mdp-estiman.html

Page 10: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

¿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/

Page 11: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Website defacement en Mexico

http://www.zone-h.org/archive

Page 12: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

¿Por que es importante la seguridad en base de datos?

Ejemplo de webdefacement realizado por un grupo hacktivista.

http://www.zone-h.org/archive

Page 13: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

8 of the Biggest Data Breaches Ever and How TheyHappened

http://www.entrepreneur.com/article/237098

Page 14: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

2014 Data Breach Investigations Report

http://www.verizonenterprise.com/DBIR/2014/

Page 15: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Who is the biggest threat to your organization?

Page 16: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

¿Que se necesita proteger?

Componentes de lossistemas de informacion:

Datos

Procedimientos

Hardware

Software

Red

Personas

Page 17: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Administracion de Bases de Datos

Esencial para el exito de un sistema de informacion

Funcionalidad de un DBMS:

Organiza los datosAlmancena y recupera informacion de manera eficienteManipula datos (update y delete)Cumple con integridad referencial y consistenciaCumple e implementa polıticas y procedimientos de seguridadde datosRespalda, recupera y restaura datos en caso de desastre

Page 18: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Componentes de un DBMS

Datos

Procedimientos

Hardware

Software

Red

Personas

Servidores de basesde datos

Page 19: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Seguridad de la informacion

La informacion es uno de los activos mas valioso de unaorganizacion.

Seguridad de la informacion: Procedimientos y medidastomadas para proteger los componentes de un sistema deinformacion.

Triangulo C.I.A.: Confidencialidad, Integridad y Disponibilidad

Las polıticas de seguridad deben estar balanceadas de acuerdoal triangulo C.I.A.

Page 20: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Triangulo C.I.A.

Page 21: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Confidencialidad

Trata dos aspectos de la seguridad:

Prevencion de acceso no autorizado.Revelacion de informacion con base a su clasificacion.

Clasificar la informacion de la empresa en niveles:

Cada nivel tiene sus propias medidas de seguridadGeneralmente basadas en el grado de confidencialidadnecesaria para proteger la informacion.

Page 22: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Clasificacion de la informacion vs Confidencialidad

Page 23: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Integridad

Consiste en validar los datos y procesarlos correctamentelogrando certeza en la informacion.

La informacion es integra si:

Es precisa.No ha sido falsificada.

Lectura consistente: cada usuario ve solo sus cambios yaquellos realizados (committed) por otros usuarios.

Page 24: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Degradaciones en la integridad de datos

Datos invalidos

Datos redundantes

Datos inconsistentes

Datos anomalos

Lectura de datos inconsistente

Datos no concurrentes

Page 25: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Disponibilidad

El sistema debe estar disponible para los usuarios autorizados

El sistema determina que puede hacer un usuario con lainformacion

Razones por las cuales un sistema no esta disponible:

Ataques externos o falta de proteccion del sistemaFalla de un sistema o no contar con un plan de recuperacionde desastresPolıticas de seguridad demasiado estrictasMala implementacion de procesos de autenticacion

Page 26: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Arquitectura de seguridad de la informacion

Protege la informacion producida por los datos

Modelo para proteger los activos fısicos y logicos

Diseno global para la implementacion del triangulo C.I.A.

Page 27: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Arquitectura de seguridad de la informacion

Page 28: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Componentes de la Arquitectura de seguridad de lainformacion

Polıticas y procedimientos

Seguridad del personal y administradores

Equipos de deteccion de intrusos

Programas de seguridad

Equipo de monitoreo

Aplicaciones de monitoreo

Procedimientos y herramientas de auditoria

Page 29: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

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 debases de datos debe proteger y aplicarse

Si los datos requieren un mayor nivel de proteccion, los puntosde acceso a los datos deben ser pocos y controlados

Page 30: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Seguridad en Base de Datos

Page 31: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Seguridad en Bases de Datos

Reducir los puntos de acceso reduce los riesgos de seguridad

Brechas de seguridad: puntos en los cuales se pierde laseguridad

Vulnerabilidades: fallo en un sistema que puede convertirse enamenaza

Amenaza: Riesgo que puede convertirse en una brecha deseguridad

Page 32: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Seguridad en Base de Datos

Page 33: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Compromiso de la integridad de datos

Page 34: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Niveles de Seguridad en Bases de Datos

1 Base de datos relacional: Conjunto de archivos de datosrelacionados

2 Archivo de datos: Conjunto de tablas relacionadas

3 Tablas: Conjunto de renglones relacionados (registros)

4 Renglones. Conjunto de columnas relacionadas (campos)

Page 35: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Niveles de Seguridad en Bases de Datos

Page 36: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Introduccion

Anatomıa de un ataque de inyeccion SQL

Fuente: Pentest Magazine, p. 49, Junio 2012

Page 37: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Esquemas de acceso a servidores de bases de datos

1 SeguridadIntroduccionEsquemas de acceso a servidores de bases de datosAdministracion de usuariosAdministracion de gruposAdministracion de roles

2 Respaldos

3 Desarrollo de planes de contingencia

Page 38: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Esquemas de acceso a servidores de bases de datos

Arquitectura de Sistemas de Informacion

Cliente-Servidor

Basado en un modelo de negocioPuede ser implementado por niveless: un nivel; dos niveles; nnivelesFormado por tres capas (layer)

Capa: Plataforma fısica o logica

Sistema manejador de bases de datos (DBMS): Conjunto deprogramas que administran bases de datos

Page 39: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Esquemas de acceso a servidores de bases de datos

Ejemplos de arquitectura cliente-servidor

Page 40: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

1 SeguridadIntroduccionEsquemas de acceso a servidores de bases de datosAdministracion de usuariosAdministracion de gruposAdministracion de roles

2 Respaldos

3 Desarrollo de planes de contingencia

Page 41: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Ciclo de vida en la administracion de usuarios

Fuente: Pentest Magazine, p. 82, Septiembre 2012

Page 42: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Caso de Estudio:MySQL/MariaDB

Page 43: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

¿Que es MySQL?

Definicion

MySQL es el sistema manejador de bases de datos relacionales,multihilos, multiusuario y robusto mas popular hoy en dıa,desarrollado y proporcionado por MySQL AB.

Cuenta con mas de seis millones de instalaciones 1

MySQL AB es una empresa cuyo negocio consiste enproporcionar servicios en torno al servidor de bases de datosMySQL.

desde enero de 2008 una subsidiaria de Sun Microsystems, estaa su vez de Oracle Coportation desde abril del 2009.

1http://dev.mysql.com/tech-resources/articles/dispelling-the-myths.html

Page 44: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Licenciamiento

Liberado bajo una doble licencia:

Software Libre bajo los terminos de la licencia GNU GeneralPublic License

Denominacion del software que respeta la libertad de losusuarios sobre su producto adquirido y, por tanto, una vezobtenido puede ser usado, copiado, estudiado, modificado yredistribuido libremente. 2

Licencia comercial estandar de MySQL AB. 3

2http://www.fsf.org/licenses/

3http://www.mysql.com/company/legal/licensing/

Page 45: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Historia

Los origines de MySQL4 se remontan a 1985, cuando Michael“Monty” Widenius5, un egresado de 23 anos de “HelsinkiUniversity of Technology”, creo la base de datos UNIREGpara TcX DataKonsult AB 6.

UNIREG carecıa de un lenguaje estructurado de acceso adatos (SQL) por lo que en 1994, TcX comenzo a buscaralternativas. Una de sus opciones fue mSQL7 creado porDavid Hughes, pero carecıa de ciertas caracterısticas que paraTcX eran necesarias.

“Monty” comenzo a desarrollar un nuevo servidor al que hoyconocemos como MySQL.

4http://www.linuxjournal.com/article/3609

5http://en.wikipedia.org/wiki/Michael_Widenius

6Empresa Sueca de Datawarehousing fundada por Monty, Allan Larsson y David Axmark

7http://www.hughes.com.au/

Page 46: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Historia II

En 1995, David Axmark8 comenzo a animar a TcX para quehiciera publico MySQL.

MySQL 3.11.1 fue entregado al mundo en 1996 en forma dedistribucion binaria para GNU/Linux9 y Solaris10.

Hoy en dıa, MySQL funciona en muchas mas plataformas yesta disponible tanto en forma binaria como en codigo fuente.

8http://www.oreillynet.com/pub/au/828

9Sistema 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 informatica de Silicon Valley)desde 1992 como sucesor de SunOS.

Page 47: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Creadores de MySQL

David Axmark y “Monty” Widenius Michael fundadores de MySQLAB

Page 48: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Nombre de MySQL

El origen del nombre MySQL no es claro.

El directorio base y un gran numero de bibliotecas yherramientas han tenido el prefijo “my” por mas de 10 anos.

Sin embargo, la hija del co-fundador Monty Widenius tambiense llama My.

Cual de los dos dio su nombre a MySQL es un misterio

Page 49: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Sakila

El nombre del delfın de MySQL (el actual logo del proyecto) es“Sakila”, que fue elegido por los fundadores de MySQL AB de unagran lista de nombres sugerida por los usuarios en el concurso“Name the Dolphin11 ” (ponle nombre al delfın).

11http://www.mysql.com/news-and-events/generate-article.php?id=116

Page 50: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Soporte ACID

MySQL ya no es mas un juguete para su uso en sitios Web.

Se ha convertido en una solucion viable para sistemas demision critica.

MySQL conserva su gran velocidad sin sacrificarcompatibilidad con ACID (Acronimo de Atomicity,Consistency, Isolation and Durability12).

Atomicidad, Consistencia, Aislamiento y Durabilidad

Conjunto de caracterısticas necesarias para que una serie deinstrucciones puedan ser consideradas como una transaccion.

12http://databases.about.com/od/specificproducts/a/acid.htm

Page 51: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Soporte ACID II

Transaccion

Serie de instrucciones SQL que son tratados como una sola(atomicas).

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;

Page 52: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

¿Por que elegir MySQL?

Velocidad. MySQL es rapido. Los desarrolles de MySQL afirmanque es el manejador de bases de datos relaciones masrapido que se puede obtener13.

Facilidad de uso. A pesar de ser un pontente manejador de basesde datos es relativamente simple de administrar yutilizar.

Soporte de SQL. MySQL tiene completo soporte a SQL, lenguajeestandar en todos los manejadores de bases de datosrelaciones modernos. Las funciones SQL estanimplementadas usando una bilbioteca altamenteoptimizada.

13http://www.mysql.com/why-mysql/benchmarks/

Page 53: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Caracterısticas II

Escalabilidad. MySQL soporta grandes bases de datos. Por grandeentendemos a aquellas que contienen 50 millones deregistros 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 opartes de columnas. El maximo ancho de lımite son1000 bytes (500 antes de MySQL 4.1.2).Un ındicepuede usar prefijos de una columna para los tipos decolumna CHAR, VARCHAR, BLOB, o TEXT.

Portabilidad. Al estar escrito en C y en C++ funciona endiferentes plataformas14 .

14Por plataformas entendemos servidores con diferentes tipos de procesador: CISC y RISC

Page 54: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Caracterısticas III

Distribucion abierta. La licencia GNU GPL de MySQL obliga a quela distribucion de cualquier producto derivado(aplicacion) se haga bajo esa misma licencia. Si undesarrollador desea incorporar MySQL en su productopero desea distribuirlo bajo otra licencia que no seala GNU GPL, puede adquirir una licencia comercialde MySQL.

Page 55: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Caracterısticas IV

Conectividad y Seguridad. MySQL cuenta con un sistema deprivilegios y contrasenas que es muy flexible y seguro,permite la verficacion basada en el servidor origen.Por otra lado las contrasenas son seguras porquetanto en transito por la red, como en sualmacenamiento se hace uso de la criptografıa paraprotegerlas. Los clientes se pueden conectar con elservidor MySQL usando sockets15 TCP/IP encualquier plataforma. Existe un un conector ODBC16

(MyODBC) que proporciona a MySQL soporte paraprogramas clientes que usen conexiones ODBC.

15Forma de comunicarse con otros programas usando descriptores de archivo estandar de Unix.

http://www.arrakis.es/~dmrq/beej/theory.html16

Open Database Connectivity (ODBC) es un estandar de acceso a Bases de datos desarrollado por MicrosoftCorporation, el objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicacion, sinimportar que Sistema Manejador de Bases de Datos (DBMS por sus siglas en ingles) almacene los datos

Page 56: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Caracterısticas V

Estabilidad. Todos los bugs reportados y conocidos se arreglan enla ultima version, con las excepciones listadas en lassecciones de bugs y que estan relacionados conproblemas de diseno17. Un estudio sobre el codigo deMySQL realizado por Reasonig, Inc.18 concluyo quees 6 veces mejor comparado con su equivalentecomercial.

17http://dev.mysql.com/doc/refman/5.0/es/bugs.html

18Empresa dedicada al analisis de codigo http://www.reasoning.com/aboutus.html

Page 57: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Portada Oracle Magazine Enero 2011

http://www.oracle.com/technetwork/issue-archive/2011/11-jan/index-191276.html

Page 58: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion 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.

Page 59: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Productos de la Comunidad

MySQL Enterprise Edition

MySQL DatabaseMySQL Enterprise BackupMySQL Enterprise MonitorMySQL Workbench Standard Edition

MySQL Cluster CGE

MySQL ClusterMySQL Cluster ManagerMySQL Enterprise BackupMySQL Enterprise MonitorMySQL Workbench Standard Edition

Page 60: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

MySQL Server

Este es el producto principal, un servidor de base de datos dealto rendimiento, responsable de la creacion y mantenimientode las base de datos, ejecucion de consultas y aseguramientode la informacion.

Incluye, ademas del servidor, varias herramientas cliente comomysql y mysqladmin usados para la administracion de la basede datos y usuarios ası como otras para la importacion yexportacion de datos, reparar bases de datos, etc.

Page 61: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

MySQL Cluster

Version de MySQL que se usa para implementar un cluster 19,tecnologıa que permite de manera transparente distribuir losdatos en dos o mas servidores logrando redundancia.

La tecnologıa de clustering juega un papel importante en lasaplicaciones de alta disponibilidad, asegura la continuidad delos datos aun cuando un nodo del cluster llegara a fallar.

Al momento de escribir esta presentacion, MySQL Clustersoporta hasta 255 nodos por cluster.

19http://searchexchange.techtarget.com/dictionary/definition/what-is-cluster.html

Page 62: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

MySQL Proxy

MySQL Proxy es un servidor que actua como intermediarioentre el servidor de bases de datos y la conexion con losclientes.

Puede interceptar y reescribir las consultas, modificar losresultados, implementar colas de consultas, analizar el traficogenerado por las consultas con fines de reporteo y realizarlabores de balanceo de cargas.

Page 63: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

MySQL Workbench

Herramienta completa para la administracion, diseno yvalidacion de bases de datos MySQL,

Permite al DBA monitorizar el estado del servidor en tiemporeal.

Es una herramienta grafica que permita tambien realizarrespaldos, analizar la bitacora ası como realizar ajustes alrendimiento del servidor.

Page 64: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

MySQL Drivers and Connectors

Aquı se incluyen controladores y conectores para diferenteslenguajes de programacion tales como C, C++, Java, Perl,PHP, Python, Ruby, JDBC, ODBC y .NET.

Page 65: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

¿Donde se puede ejecutar MySQL?

MySQL se puede ejecutar en casi todas las plataformasconocidas20:

Mac OS X,

Windows XP, Windows Vista, Windows Server 2003, yWindows 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 ejecutarMySQL, esto va a depender de la capacidad del kernel o nucleo del

sistema operativo y del sistema de archivos.

20http://dev.mysql.com/doc/refman/5.5/en/supported-os.html

Page 66: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Arquitectura Logica

MySQL funciona en una arquitectura cliente-servidor. El servidorse divide en una serie de modulos de alguna maneraindependientes.

Page 67: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Capas Arquitectura Logica

1 La capa superior son servicios que no son exclusivos deMySQL. Tienen que ver con servicios de red: manejo desesiones, autenticacion, seguridad, etc.

2 En la segunda capa se encuentra el cerebro de MySQL,incluye modulos para el parseo, analisis y optimizacion desentencias sql, tambien un modulo para el cache y otro paralas funciones (de fecha, tiempo, matematicas, de cifrado, etc).

3 En la ultima capa se encuentran los motores dealmacenamiento. Estos son responsables de almacenar yrecuperar los datos en MySQL. De manera analoga a lossistema de archivos de GNU/Linux o Windows cada motor dealmacenamiento tiene sus propias ventajas y areas deoportunidad (para no decir desventajas). Estas diferencias soncasi transparentes para la capa superior.

Page 68: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Introduccion a los motores de almacenamiento

MySQL incorpora una caracterıstica unica llamada “motoresde almacenamiento” que nos permite seleccionar el tipo dealmacenamiento interno de cada tabla con base en unasituacion particular.

Dicha seleccion, la hace el desarrollador a nivel de tabla, y noafecta a la manera en que el servidor interactua con el cliente:los comandos SQL seran los mismos sea cual sea el motor dealmacenamiento escogido

Page 69: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Introduccion a los motores de almacenamiento (II)

El siguiente ejemplo muestra como seleccionar el motor dealmacenamiento para una tabla:

CREATE TABLE nombre_tabla (definicion)

ENGINE = nombre_motor;

Si deseamos modificar el motor de almacenamiento despuesde creada la tabla usamos la instruccion ALTER de la siguienteforma:

ALTER TABLE nombre_tabla ENGINE = nombre_motor;

Ejemplos:

CREATE TABLE City (...) ENGINE=InnoDB;

ALTER TABLE City ENGINE=MyISAM;

Page 70: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

Arquitectura modular del servidor MySQL

Page 71: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

MyISAM

Motor de almacenamiento por defecto en la mayorıa deinstalaciones. Dentro de las principales caracterısticas del motor seencuentran:

No transaccional.

Bloqueos a nivel de tabla.

Muy rapido en lectura y escritura (excepto escriturassimultaneas en la misma tabla).

Bajo requerimiento de espacio en disco y memoria.

Los datos se guardan en disco: diferentes archivos para ladefinicion de la tabla, los datos y los ındices.

Es el motor por defecto de MySQL.

Es una buena eleccion cuando necesitamos velocidad, ytenemos pocas modificaciones simultaneas de la tabla.

Page 72: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

InnoDB

Caracterısticas del motor InnoDB:

Motor de almacenamiento por defecto desde la version 5.5

Transaccional.

Multiversionado: cuando multiples transacciones modificanregistros, InnoDB mantiene aisladas las transaccionesguardando para cada una de ellas un version distinta de unmismo registro, a cada transaccion la version que lecorresponde.

Bloqueos a nivel de registro.

Restricciones en claves foraneas.

Facil recuperacion de datos en caso de error.

Alta concurrencia mas segura en escritura.

Deshacer transacciones a medias (“rollback”).

Page 73: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

InnoDB II

Los datos se guardan en disco: un archivo para la definicion dela tabla, y un “tablespace” para guardar conjuntamente datose ındices.

El tablespace puede consistir en uno o mas archivos, o inclusouna particion entera en disco.

Page 74: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

HEAP

Los datos se guardan en memoria, utilizando algoritmos quehacen un uso optimo de este medio.

Es muy, muy rapido.

Es una buena eleccion cuando necesitamos realizaroperaciones muy rapidas sobre conjuntos pequenos de datos.

Page 75: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de usuarios

NDB

Es el motor de almacenamiento de los cluster de MySQL.

La base de datos esta repartida por los diferentes nodos delcluster.

Proporciona alta disponibilidad mediante redundancia.

Proporciona alto rendimiento mediante fragmentacion dedatos sobre los grupos de nodos.

Proporciona alta escalabilidad mediante la combinacion de lasdos caracterısticas anteriores.

Los datos se guardan en memoria, pero los logs van a disco.

Es una buena eleccion cuando disponiendo de varios servidoresnecesitamos a la vez velocidad, transacciones y redundancia dedatos; replicacion sıncrona; y resistencia a caıdas de servidores.

Page 76: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion 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

Relative memory use low high low high

Page 77: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de grupos

1 SeguridadIntroduccionEsquemas de acceso a servidores de bases de datosAdministracion de usuariosAdministracion de gruposAdministracion de roles

2 Respaldos

3 Desarrollo de planes de contingencia

Page 78: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Seguridad

Administracion de roles

1 SeguridadIntroduccionEsquemas de acceso a servidores de bases de datosAdministracion de usuariosAdministracion de gruposAdministracion de roles

2 Respaldos

3 Desarrollo de planes de contingencia

Page 79: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Referencias bibliograficas

Referencias bibliograficas I

C. Wilson.Computer Attack and Cyberterrorism: Vulnerabilities andPolicy Issues for Congress.CRS Report for Congress, 2005.

E. Spafford.Seguridad Practica en Unix e Internet.

W. PrestonBackup & Recovery.O’Reilly, 2006.Seguridad Practica en Unix e Internet.

Page 80: Módulo 6. Seguridad de Base de Datos

Modulo 6. Seguridad de Bases de Datos

Referencias bibliograficas

Referencias bibliograficas II

K. O’SheaExamining the RPC DCOM Vulnerability: Developing aVulnerability-Exploit Cycle.SANS.

S Harris.CISSP Certification All-in-One Exam Guide, Fourth Edition.McGraw-Hill Osborne Media; 4 edition (November 9, 2007).