Seguridad - Javeriana Caliatlas.puj.edu.co/.../cursos/cc100/files/clases/Seguridad.pdf ·...
Transcript of Seguridad - Javeriana Caliatlas.puj.edu.co/.../cursos/cc100/files/clases/Seguridad.pdf ·...
Seguridad
Carlos A. OlarteBases de Datos II
Carlos A. Olarte Bases de Datos II Seguridad
Contenido
1 Introduccion
2 Niveles de proteccion en la BD
3 Ejemplos
Carlos A. Olarte Bases de Datos II Seguridad
Motivacion
Por que es importante la seguridad?
Valor de la informacion en las empresas
Nuevos retos: Redes de computo integradas
Vulnerabilidad de los sistemas
Oportunidades de empleo
Carlos A. Olarte Bases de Datos II Seguridad
Perdida accidental de la consistencia
Caıdas durante el procesamiento de las transacciones
Anomalıas causadas por el acceso concurrente
Anomalıas causadas por la distribucion de los datos
Errores logicos del programador
Carlos A. Olarte Bases de Datos II Seguridad
Accesos malintencionados a las base de datos
Lecturas no autorizadas (robo de informacion)
Modificaciones no autorizadas (sabotaje)
Destruccion no autorizada de los datos (sabotaje)
Carlos A. Olarte Bases de Datos II Seguridad
Algunas Definiciones
Seguridad en la base de datos: Proteccion contra los accesosmalintencionados
Integridad en la base de datos: Proteccion contra las perdidasaccidentales de la consistencia
Carlos A. Olarte Bases de Datos II Seguridad
Niveles de proteccion en la BD
Fısico: Los nodos de computo deben estar protegidos contrael ingreso de extranos (data centros)
Humano: Los encargados del nodo deben ser calificados y deconfianza (sobornos)
Sistema Operativo: Mantener actulizados los parches del S.O,proteger las cuentas de usuario asi como los archivos de la BDy sus backups, cerrar los puertos, etc
Red: Protecciones contra el ingreso por la red. Proteccion enel envio de datos, polıticas de firewall
SGBD: La base de datos debe ser configurada con los roles ypermisos adecuados para evitar los accesos malintencionados.Las aplicaciones sobre la BD tambien deben protegerse.
Carlos A. Olarte Bases de Datos II Seguridad
Auntenticacion
Cuentas de usuario de la aplicacion, S.O y base de datos
Quien ingresa, dice ser quien es
Carlos A. Olarte Bases de Datos II Seguridad
Autorizaciones
Privilegios sobre los recursos.
Autorizaciones de DML:
Permisos de LecturaPermisos de EscrituraPermisos de ActualizacionPermisos de Borrado
Carlos A. Olarte Bases de Datos II Seguridad
Continuacion
Autorizaciones de DDL:
Permisos para crear/borrar indicesPermisos para crear/borrar tablasPermisos para modificar parametros de la base de datosPermisos para crear vistas, sinonimos, snpashots, etcPermisos para modificar objetos del sistema
Carlos A. Olarte Bases de Datos II Seguridad
Autorizacion y Vistas
Hacer uso de vistas para ocultar relaciones y/o tuplas adeterminados usuarios
Cada usuario solo ve lo que le corresponde
Ej: Un vendedor no puede ver los negocios de otro, pero eljefe de departamento puede ver y modificar la informacion detodos
Carlos A. Olarte Bases de Datos II Seguridad
Grafo de autorizacion
Es un grafo que muestra la concesion de cierta autorizacionsobre un recurso
Solo se tiene la autorizacion si existe un camino desde el DBAhasta el usuario
Un usuario puede conceder autorizaciones a otros si ası lodetermina el DBA
Carlos A. Olarte Bases de Datos II Seguridad
Ejemplo
Carlos A. Olarte Bases de Datos II Seguridad
Cifrado
Los datos realmente crıticos (passords, No tarjeta, etc) debenser cifrados para impedir su lectura no autorizada
Los algoritmos de cifrado deben garantizar:
Facilidad de cifrar y decodificar para los usuarios autorizadosNo importa la desconocido que sea el algoritmo, sino elparametro (llave) del mismoDebe ser extremadamente complejo para un intruso decodificarla llave
Carlos A. Olarte Bases de Datos II Seguridad
Algunos algoritmos
MD5: No tiene reversa. Genera un numero de 128 bits dadala llave.
DES (Data encription Standard): Reordenacion de loscaracteres dada una llave que solo puede ser conocida por losusuarios autorizados
Cifrado de Clave publica: Existe una llave publica y una claveprivada que permite “abrir” el mensaje. P1 y P2 primosextremadamente grandes y su producto dificilmentefactorizable
Carlos A. Olarte Bases de Datos II Seguridad
Extraccion segura de informacion
Si se van a realizar consultas estadısticas sobre la B.D, dichasconsultas no pueden brindar informacion que comprometa laseguridad:
A partir de intersecciones entre consultas saber un datoespecıficoA partir de dos consultas diferentes inferir informacion nopublica
Esquemas de solucion:
Asegur que los valores de interseccion sean lo sificientementegrandes para evitar la inferencia de informacion“Contaminar” la informacion dificultando la labor del usuariomal intencionado
Carlos A. Olarte Bases de Datos II Seguridad
Algunos EjemplosPassword Seguro
Debe utilizarse un algoritmo sin reversa (MD5 por ejemplo)
java.security y una implementacion
md5() en mysql y PHP
Carlos A. Olarte Bases de Datos II Seguridad
Roles/Usuarios Oracle
Comandos SQL para conceder/eliminar permisos (ejemplo conuna tabla y dos usuarios)
Ejemplo de creacion de un usuarios y concesion de losprivilegios connect y resource
Herramienta Tora, una forma mas sencilla de concederprivilegios
Carlos A. Olarte Bases de Datos II Seguridad
Auditorıas en Oracle
Por que auditar objetos de la base de datos?
Como se puede auditar?
AUDIT TRAIL=OSAUDIT FILE DEST=/ora01/...AUDIT ALL ON <OBJ>
Ejemplo de auditorıa sobre una tabla
Carlos A. Olarte Bases de Datos II Seguridad
Sniffer
El problema de la seguridad de la red
Visualizacion de los contenidos de la red
Ejemplo de descubrir el password cuando se utiliza telnet
Solucion con SSL (SSH)
Carlos A. Olarte Bases de Datos II Seguridad
Algoritmo RSA
Algoritmo de clave publicaSe calcula n = p ∗ q con p y q primos suficientemente grandes(entre 100 y 300 dıgitos) y σ = (p − 1) ∗ (q − 1). Se busca etalque no tenga primos comunes con σ. Se calcula d = e−1modσn es la llave publica y d la privadaSe requieren 5 meses y casi 300 computadores para romper unallave de 512 bits
Carlos A. Olarte Bases de Datos II Seguridad
Tomcat Seguro
Certificados: Una manera de saber que la persona (servidor)es quien dice ser
Configuracion del Tomcat Seguro
keytool -genkey -alias tomcat -keyalg RSA -keystore ./.keystoreConfiguracion de Server.xml para habilitar el puerto seguroPrueba con una JSP o HTML
Carlos A. Olarte Bases de Datos II Seguridad