21
Joxean Koret Oracle Database Vault: El mundo no es de color rosa y soy root! Oracle Database Vault: Fallas de diseño

Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Embed Size (px)

Citation preview

Page 1: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Oracle Database Vault: Fallas de diseño

Page 2: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

¿Qué es Database Vault?● Una forma de evitar que el DBA vea y/o 

manipule datos financieros, fiscales, privados, etc...

● Obligatorio para cumplir ciertas leyes (como la L.O.P.D.)

● Una declaración de guerra para muchos profesionales...

● Un “se abre la veda” para los investigadores de seguridad

Page 3: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas de Diseño

● Administrador y auditor de “Audit Vault”● Sistema Operativo● Sistema de archivos● Sistema gestor de base de datos● El protocol TNS

Page 4: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Administrador y Auditor de Database Vault

● La falla más simple y obvia– ¿Quién controla a la policía?– ¿Quiénes son aquí asuntos internos?

● ¿Y quién controlaría a un hipotético departamento de control del departamento de control?

● ¿Otro departamento de control del departamento de control del departamento de control..., y así “n” veces?

Page 5: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: Sistema Operativo

● El sistema de base de datos continúa ejecutándose como un único usuario real en el sistema operativo– Oracle (Unix/Linux)– Local System (Win32)

● El auditor, el administrador de database vault, el administrador de sistemas y los usuarios se encuentran en el mismo espacio de proceso

Page 6: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: Sistema Operativo

● El administrador de la base de datos puede troyanizar el sistema operativo– Una versión troyanizada de la librería libclntsh.so (o 

.dll)– Una versión troyanizada del TNS Listener o un 

proxy justo delante del TNS Listener– Una versión troyanizada de la librería OCI– Una versión troyanizada de cualquier otro 

componente Oracle

Page 7: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: Sistema Operativo

● El administrador de sistemas tiene el usuario Oracle o Local System en el sistema operativo– Puede “attacharse” al proceso Oracle y grabar un 

registro de sus operaciones– Puede poner breakpoints en funciones así como 

modificar el comportamiento de la base de datos– Puede cambiar valores de variables globales y 

locales, así como el UID de una sesión SQL, etc...– Puede hacer lo que le dé la gana...

Page 8: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: Sistema de Archivos

● El DBA tiene acceso al sistema de archivos– Puede leer y modificar los datafiles “en crudo”– Existen múltiples herramientas y librerías

● Data Unloader– Herramienta de la propia Oracle

● DUDE (Database Unloading by Data Extraction)– http://www.ora600.nl/introduction.htm

Page 9: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: Sistema de archivos

● Puede copiarse la base de datos al completo– RMAN– ALTER TABLESPACE XXX BEGIN BACKUP

● Puede reimportarse la base de datos– EXP/IMP ya no le valen siempre, pero...– Puede usar RMAN o fastidiar a posta un datafile y 

poner su versión manipulada● Después un “RECOVER UNTIL CANCEL” y ya está :)

Page 10: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: Sistema de archivos

● Problemas– La modificación de datos en crudo y posterior 

recuperación (fundamental) llamaría la atención de cualquiera

– Los datos pueden ir encriptados directamente en los datafiles

Page 11: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: Sistema de archivos

● Soluciones– Si el mecanismo de encriptado está en la base de 

datos se troyaniza la base de datos o el sistema operativo

– Se espera a una falla del sistema real para no levantar sospechas

● Siempre las hay, por suerte y por desgracia● Siempre hay soluciones a este tipo de 

problemas :)

Page 12: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: Sistema gestor de base de datos

● Una vez instalada la opción Database Vault se hace un coñazo troyanizar PL/SQL

● Mejor poner el troyano antes de implantar Database Vault :)– Durante la fase de pruebas o test

● Donde se intenta poner Database Vault suelen tener entorno de pruebas y test, así que no es un problema ;)

● Pero... ¿Qué troyanizar?

Page 13: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: (Sistema gestor de base de datos) ¿Qué troyanizar?

● DBMS_OBFUSCATION_TOOLKIT– Todo lo que se encripte con este paquete puede 

ser grabado en otro sitio...● Vistas *_USERS, *_PRIVS

– Así los administradores y auditores de database vault no se darán cuenta de nada

– Solo verán lo que le dejemos nosotros● DBMS_STANDARD, por ejemplo...

Page 14: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: (Sistema gestor de base de datos) Puertas Traseras

● Un paquete PL/SQL “wrapped” antes de la instalación de Database Vault– Que nos de los privilegios que querramos...– Que borre huellas de SYS.AUD$ o que cree huellas 

falsas en función de nuestras necesidades...● En definitiva: Que nos devuelva el poder que 

era nuestro ;)

Page 15: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: Sistema gestor de base de datos

● Siempre podemos troyanizar la base de datos– Como ya se ha comentado antes

● libclntsh.(so|dll)● oracle[.exe]● libocci.[so|dll]● libnnz11.[so|dll]● extjob[.exe]● sqlplus[.exe]

Page 16: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: (Sistema gestor de base de datos) Hooks

● El problema de parchear/troyanizar librerías, binarios y PL/SQL es que hay que hacerlo cada vez que se aplique un parche

● Mejor hacernos una herramienta que “hookee” ciertas llamadas– oci_prepare_stmt– Todas las funciones kk* de la base de datos

● No es broma, las funciones del kernel tienen ese prefijo

Page 17: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: El protocol TNS

● Algunos “rule set” se basan en ciertos atributos de la conexión establecida para determinar si se tiene o no privilegio para realizar algo:– Dirección IP, nombre de usuario, usuario del 

sistema operativo, nombre de la máquina cliente, programa cliente, etc...

● Los datos vienen de campos del protocolo TNS– Nunca han sido fiables y, cambiar esta falla de 

diseño con decenas de años no es trivial

Page 18: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fallas: El protocol TNS● Un paquete TNS de ejemplo:

– (CONNECT_DATA=(CID=(PROGRAM=)(HOST=192.168.1.5)(USER=oracle))(COMMAND=connect)(ARGUMENTS=64)(SERVICE=LISTENER)(PROGRAM=java)(VERSION=169869568))

● El usuario del sistema operativo lo marcamos como “oracle”, el programa como “java” y la dirección IP como 192.168.1.5– Son campos de un paquete TNS, fácilmente 

manipulables

Page 19: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Conclusiones

● Políticamente correctas– Aún es un tanto inmaduro– Recomiendo prudencia

● Políticamente incorrectas– Es una gilipollez– Siempre existirán mil un modos de que el DBA o el 

administrador de la máquina se pasen los mecanismos por el arco del triunfo

Page 20: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Soluciones a las fallas de diseño● Para que esto fuese así el root o el administrador no debería tener 

privilegios para hacer lo que quisiera en el sistema operativo

● El kernel tendría que estar más cerca del usuario final para que él lo pudiera acomodar y parametrizar a sus requisitos de seguridad (espera, que me meo...)

● Sistemas operativos como Plan9 (donde sería más fácil hacer este tipo de cosas) no son muy conocidos y Oracle, que yo sepa, no tiene visos de portar su software a dicha plataforma nunca

● La solución menos drástica es un módulo del kernel, no un programa de “usuario”, y una separación de usuarios y privilegios por usuario real, como mínimo

● De todos modos, siempre existirán otros modos de saltarse todo esto

Page 21: Oracle Database Vault: Fallas de diseño - Inguma - A Free …inguma.sourceforge.net/docs/oracle_database_vault_es.pdf · 2007-10-28 · Soluciones a las fallas de diseño ... pudiera

Joxean KoretOracle Database Vault: El mundo no es de color rosa y soy root!

Fin

Pues eso ;) Cualquier duda, sugerencia o comentario a mi cuenta de correo:

[email protected]