Como proteger tu información con "Oracle Database Vault"

Por Joel Perez , Anar Qocayev (OCE) & Jorge Zorrilla (OCE)
Publicado en Marzo 2015

Las medidas de seguridad que se desean ser implementadas en una empresa deben considerarse a nivel de base de datos de igual manera que a nivel de Hardware, Red y Operación.  Generalmente, las empresas piensan que pueden resolver su problema de seguridad con solo adquirir un “Firewall”, con el mismo es posible tomar medidas de seguridad contra ataques externos, sin embargo, no es suficiente cuando se trata de ataques internos.  No se tiene protección sobre el servidor donde opera la base de datos. También hay que tener en cuenta que los usuarios, con permisos de DBA sobre la base de datos, tienen acceso completo a las mismas sin importar desde donde se puedan conectar.  Esto es considerado una brecha de seguridad muy importante ya que ponen en riesgo la información de la aplicación.  “Oracle Database Vault” es una solución de seguridad para base de datos Oracle que se recomienda para poder resolver este tipo de brechas de seguridad.

¿Qué es “Oracle Database Vault”?
“Oracle Database Vault” una poderosa herramienta de control de acceso que ayuda a proteger la información en la base de datos contra accesos no autorizados. Los controles de seguridad tienen como función bloquear el acceso a la información a cuentas privilegiadas y controlar operaciones sensibles dentro de la base de datos utilizando autorización multi-factor.  La seguridad de las aplicaciones puede mejorar a través del análisis de privilegios y roles.
“Oracle Database Vault” protege los entornos de base de datos Oracle  de manera transparente, eliminando costosos cambios de seguridad en las aplicaciones. Permite generar controles de comunicación dinámicos y flexibles sobre seguridad, mediante informes ya generados en la base de datos.  Debido a que la configuración de seguridad se aplica a nivel del Kernel de la base de datos, es mucho más eficiente que medidas de seguridad a través de PL/SQL. 
“Oracle Database Vault” puede ser exitosamente desplegado y configurado en una base de datos Single-Instance o en arquitectura RAC. En ambas arquitecturas evita los accesos, a los administradores de bases de datos, a la información crítica de la aplicación (tarjetas de crédito, información personal de clientes, detalle de cuentas, información personal de salario,  cálculos, gastos y detalle de conversaciones)

  • Previene cambios no autorizados en la base de datos.
  • Permite agregar, alterar o rastrear un controlador temporal en tiempo real.
  • Es sencillo de crear, configurar y administrar.  Además, el rendimiento del sistema casi no se ve afectado.
  • Database Vault es parte de la base de datos, por lo que hace sencilla la configuración.  Se maneja mediante secciones de dominio o “Realms”,  conjunto de reglas de comando, factores e informes.
  • Asegura una completa y segura configuración para proteger la información de las aplicaciones.
  • Permite restringir el acceso a usuarios autorizados (con el permiso SELECT ANY TABLE). Inclusive puede restringir accesos a usuarios con el rol DBA, a pesar de ser un rol tan poderoso.
  • Cualquier cambio sobre los objetos de la base de datos (alter, drop, truncate, etc) o sobre la data (insert, update, delete,etc) puede ser restringido.  Es necesario determinar cómo, cuándo y porque motivo se debe restringir.
  • Protege el entorno de la base de datos. Puede proteger la base de datos de ataques no deseados.
  • Puede tomar la separación de tareas como un principio de seguridad.

Controles para cuentas de alto privilegio
Las cuentas de alto privilegio son las vías de acceso más comunes a la información sensible dentro de la base de datos. Si bien los accesos amplios y sin restricciones facilitan el mantenimiento de la base de datos, estos accesos facilitan ataques hacia gran cantidad de información.  “Oracle Database Vault” Realms se establecen sobre los esquemas de aplicaciones, tablas, unidades de programas y mas. Estos representan controles para prevenir que las cuentas privilegiadas sean utilizadas por hackers o personal interno para acceder a información de las aplicaciones.


Controles para la configuración de la base de datos
Entre los hallazgos de auditoria más comunes podemos encontrar cambios no autorizados sobre accesos a la base de datos, incluyendo accesos al role DBA, creación de nuevos usuarios y creación de objetos. 
El prevenir cambios no autorizados en un ambiente de producción es importante, no solo por temas de seguridad, sino porque también disminuye la posibilidad de posibles ataques de Hackers violando la privacidad de la información e cumplimiento de regulaciones.  “Oracle Database Vault” SQL Command Control permite a los clientes controlar las operaciones dentro de la base de datos, comandos tales como CreateTable, TruncateTable, Create user, etc. Muchos factores fuera de la base de datos como Dirección IP, Métodos de Autenticación y Nombre de Programas ayudan a implementar autorizaciones Multi-factor, de esta manera podemos controlar ataques por contraseñas robadas. Estos controles previenen también cambios accidentales de configuración, ataques de Hackers y manipulaciones de la aplicación por parte de personal interno.

Recomendaciones de Configuración para “Database Vault”
Recomendación 1: Es necesario tener definido el $ORACLE_HOME en el archivo /var/opt/oracle/oratab. De lo contrario el botón de “Opciones” no se activara cuando se ejecute el DBCA.
Recomendación 2:  El PASSWORD_VERIFY_FUNCTION en el Profile por defecto debe de ser NULL.  Caso contrario aparecerá el error ORA-29504.  Revisar la nota ID 1509963.1
Recomendación 3:  El error ORA-29504 podría aparecer muchas veces en la configuración con el DBCA. Para la versión 11g, este error no debe de ser tomado en cuenta. Para la versión 12c está solucionado.  Revisar la nota ID 1509963.1

Configuración del “Oracle Database Vault”
Nos conectamos a la base de datos a través de sqlplus como sysdba.

Connected to: Oracle Database 11g  Enterprise Edition Release 11.2.0.3.0 - 64bit Production 

En el texto inicial se observa que la opción Database Vault no se encuentra configurada.  Cuando está configurada, podemos observar el texto “Oracle Label Security, “Oracle Database Vault”

También podemos revisar la vista V$OPTION para observar si el Database Vault se encuentra configurado

SELECT * FROM  V$OPTION WHERE PARAMETER = '“Oracle Database Vault”'; 

“Oracle Database Vault” -----à FALSE (No esta deshabilitado)

Ejemplo:



Habilitar la opción Database Vault

PASO 1- Cerramos la base de datos

SQL>shutdown immediate 


PASO 2- Bajamos la consola Enterprise Manager, si estuviera arriba.

$ emctl stop dbconsole     


PASO 3- Bajamos el Listener.

lsnrctl stop listener 


PASO 4- Habilitamos la opción Database Vault con los siguientes comandos:

cd  $ORACLE_HOME/rdbms/lib 
make -f ins_rdbms.mk  dv_onlbac_onioracle 


NOTA:
Cuando una opción es habilitada en los binarios del motor de base de datos; Es posible utilizar el comando chopt en lugar del Make –f.  La configuración se puede revisar en el siguiente Link

Ejemplo:

chopt  enable lbac                                    
Writing to  /u01/app/oracle/product/11.2.0/dbhome_2/install/enable_lbac.log... 
/usr/bin/make -f  /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk lbac_on  
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 
/usr/bin/make -f  /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk ioracle  
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 

chopt enable dv

Writing to /u01/app/oracle/product/11.2.0/dbhome_2/install/enable_dv.log... 
/usr/bin/make -f  /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk dv_on  
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 
/usr/bin/make -f  /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk ioracle  
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 


PASO 5- Levantamos la base de datos y el listener. Luego Revisamos si el Database Vault ha sido habilitado correctamente.

Sqlplus> startup; 
SELECT * FROM  V$OPTION WHERE PARAMETER = '“Oracle Database Vault”'; Oracle Database 
Vault --à TRUE (Esta Habilitado) 


Cuando volvamos a conectarnos por sqlplus podemos observar que las opciones de Database Vault han sido habilitadas.

Example

 

A partir de ahora la opción “Oracle Database Vault” se mostrará como un componente a configurar durante la creación de una nueva Instancia.  Si se desea activar la opción Database Vaulten bases de datos ya creadas, es necesario realizarlo mediante el DBCA.


Cuando se configure el Database Vault, debemos de definir el nombre de usuario y password para el Database Vault Owner y la cuenta Administradora (Account Manager)


Una vez finalizada la configuración, podemos ingresar a la ruta https://<hostname/ip>:<puerto> e ingresaremos a la página de inicio del “Oracle Database Vault”


Separación de Tareas en Database Vault
Para la funcionalidad de separación de Tareas, “Oracle Database Vault” crea 3 diferentes cuentas responsables: Administrador de seguridad, Administrador de cuentas y Administrador propio de la base de datos.
El Administrador de seguridad es la persona responsable de la seguridad mediante el Database Vault.  Él se responsabiliza por las operaciones de seguridad en la base de datos. Administra los Dominios (Realms), las reglas de comando, los factores y puede generar reportes.  A pesar de su rol no tiene accesos a la información de las aplicaciones.
El Administrador de cuentas es el encargado de crear, modificar y eliminar cuentas de usuario.
El Administrador de base de datos tiene las funciones típicas de un DBA como backup/restore, aplicación de parches, Tunning de base de datos, etc.

“Oracle Database Vault” en líneas generales es un producto enormemente versátil y escalable. El objetivo de este articulo es adentrarlos de manera rápida y sencilla en el entendimiento de la concepción de uso del mismo. Esperando haya sido de su agrado el presente articulo.

Nos vemos en el próximo. Saludos!

 


Joel Pérez es un experto DBA (Oracle ACE Director, OCM Cloud Admin. & OCM11g) con más de 14 años de experiencia real en el mundo de tecnología Oracle, especializado en diseño e implementación de soluciones de: Cloud, Alta disponibilidad, Recuperación contra desastres, Upgrades, Replicación y toda área relacionada con bases de datos Oracle. Consultor Internacional con trabajos, conferencias y actividades relacionadas en más de 50 países alrededor del mundo. Habitual Orador en eventos Oracle alrededor del mundo como: OTN LAD, OTN MENA, OTN APAC y más. Joel se ha caracterizado siempre por ser un pionero en materia de tecnología Oracle desde los inicios de su carrera siendo el primer latinoamericano en ser nombrado "OTN Expert" en el año 2003, uno de los primeros Oracle ACE en el programa ACE en el año 2004, unos de los primeros OCP Cloud en el mercado en el ano 2013 y como uno de los mayores logros de su carrera, recientemente en el 2014 fue honorificado como uno de los primeros "OCM Database Cloud Administrator" del mundo.

Anar Godjaev es Oracle Certified Professional (10g, 11g, OCP, OCE / ACE Associate) con mas de 8 años de experiencia en administración de Sistemas Operativos Unix/Linux/Windows y bases de datos Oracle. Durante su carrera se ha dedicado totalmente a soluciones y herramientas de base de datos como: Oracle RAC, Data Guard, RMAN, ASM, Grid Control, Performance Tuning y seguridad ( “Oracle Database Vault”). Anar es autor del libro "Oracle 11g R2 General Concepts With Examples" en idioma turco. Actualmente Anar trabaja como DBA Sênior en el banco “YapiKredi” en Azerbaijan.

Ing. Jorge Zorrilla. Es un IT especialista de tecnología Oracle e instructor de cursos oficiales de certificación Oracle. Amplia experiencia en Base de Datos Oracle, 1soluciones de Alta Disponibilidad & Contingencia. Fue uno de los primeros especialistas en Latinoamérica con la certificación OCPOracle12c.  Cuenta con un blog sobre Oracle 12c y temas relacionados: http://oracleparatodos1.blogspot.com/

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.