Limita la autorización solo a aquellos que lo necesiten y elimina los roles de superusuario de gran alcance con Oracle Database Vault.
Tycho, es el responsable de arquitectura de bases de datos en el banco de Braavos, hoy es día de reuniones “tensas”. En
vista de varias leyes, reglamentos y mandatos como:
- LOPD
- ENS
- GDPR
- PCI/DSS
Y en menor medida:
- Sarbanes-Oxley
- HIPAA
- GLBA
Cersei, el auditor de TI del
banco, quiere asegurarse de que los privilegios asignados a las personas se
limiten a lo que realmente necesitan: nada más. Por ejemplo, los DBA de soporte
de producción que administran la infraestructura de la base de datos, toman
copias de seguridad, etc., deberían tener privilegios para hacer todo eso pero
no tener acceso a datos como la información de la cuenta.
El rol de la base de datos
"DBA", que se otorga a los DBA de Braavos para administrar la
infraestructura de la base de datos, también incluye otros privilegios
poderosos como la capacidad de seleccionar y eliminar de cualquier esquema
cualquier esquema, incluidos los rastros de auditoría de estas actividades.
Esos privilegios no pueden despojarse de ese rol; son partes integrales de la
misma. Cersei quiere que los DBA pierdan esos privilegios, pero los DBA no
pueden hacer su trabajo sin el rol de DBA, explica Petyr, gerente de DBA. No es
que los DBA realmente usen esos privilegios para seleccionar de tablas
sensibles o eliminarlos de los rastros de auditoría, por lo que tener esos
privilegios no hace ninguna diferencia, argumenta Petyr.
Ha habido muchas instancias de un
atacante malintencionado que usa privilegios de DBA para robar datos
confidenciales e incluso de DBA falsos que roban datos y borran los rastros de
auditoría, usando los privilegios de rol de DBA todopoderosos. ¿Y no suelen ser
los DBA los que tienen más probabilidades de ser investigados cuando ocurre una
violación de datos? le pregunta a Cersei. Sin esos privilegios, explica, su
responsabilidad se reducirá drásticamente. Petyr considera esta lógica y ve de
inmediato el valor de la solicitud de Cersei, pero explica que sin el rol de
DBA, los DBA no pueden hacer su trabajo. Así que aquí están,
preguntándose si el sabio Tycho tiene una solución.
Sí, asegura Tycho, las
necesidades de Petyr y Cersei se pueden cumplir con una opción de costo
adicional llamada Oracle Database Vault en Oracle Database 12c.
Separación de tareas
Es necesario abordar varios tipos
de usuarios y actividades. Nuestra auditora de TI identifica cinco tipos
distintos de usuarios de bases de datos y sus actividades:
- DBA. Usuario que realiza la gestión de la infraestructura de la base de datos, como inicio / apagado, copia de seguridad, etc.
- Gestor de seguridad: Usuario que realiza actividades como crear usuarios y cambiar contraseñas. Actualmente, los DBA realizan la administración de cuentas, y Cersei desea que alguien en seguridad de TI, no un DBA, la administre.
- Auditor: Usuario que establece la separación de funciones y controles de las actividades realizadas por varios usuarios. Esto debería ser realizado por el departamento de cumplimiento de TI, insiste Cersei.
- Usuario del esquema empresarial. Cuenta de usuario que contiene tablas de datos reales y otros objetos que son compatibles con la empresa.
- Usuario regular Cuenta de usuario conectada a la base de datos desde aplicaciones o un usuario humano especificado que permite ver y manipular datos en esquemas, pero no los posee.
Es vital, insiste Cersei, que los
privilegios que disfrutan estos usuarios no se solapan. Por ejemplo, el usuario
de DBA debería poder iniciar y detener la base de datos, pero no crear usuarios
ni seleccionarlos de ninguna tabla en los esquemas comerciales. De manera
similar, el usuario del administrador de la cuenta debería poder crear
usuarios, pero no iniciar y detener la base de datos y no seleccionar ningún
dato de una tabla (a menos que, por supuesto, se lo autorice explícitamente).
El usuario del auditor debe ser el único que vea los datos de auditoría pero no
pueda crear usuarios. En otras palabras, a todos se les deben otorgar precisamente
los privilegios que necesitan para hacer su trabajo y no un poco más, sea o no
sea su intención usar los privilegios.
Configuración
Es muy fácil separar los usuarios
y las actividades con Oracle Database Vault, asegura Tycho, mientras comienza a
configurar una demostración para los visitantes de su oficina. Primero, elige a
los usuarios para diversos tipos de actividades. Para la primera categoría, los
usuarios de DBA como SYS, SYSTEM y otros DBA nombrados ya están presentes. Para
crear los tipos de usuario 4 y 5, el esquema empresarial y los usuarios
normales, ejecuta el script en setup.sql. El esquema que contiene todos los
datos de usuario del banco se denomina BRAAVOS. El usuario que se conecta a la
base de datos para realizar transacciones es WEBAPP1. La tabla CUENTAS en el
esquema BRAAVOS almacena los datos en las cuentas de ahorro. Tycho rompe la
configuración restante en nueve pasos, para cubrir situaciones en las que
Oracle Database Vault puede o no estar actualmente instalado o configurado y
donde puede usarse en bases de datos convencionales y conectables.
- Paso 1. Para las otras dos categorías de usuarios, administrador de cuentas y auditor, Tycho crea dos usuarios especiales para su uso por Oracle Database Vault, denominados DVACCMGR y DVADMIN, respectivamente. El usuario de DVADMIN administrará la instalación completa de Oracle Database Vault.
-- Como SYSDBA
create user dvadmin identified by dvadmin;
create user dvaccmgr identified by dvaccmgr;
grant create session to dvaccmgr, dvadmin;
create user dvadmin identified by dvadmin;
create user dvaccmgr identified by dvaccmgr;
grant create session to dvaccmgr, dvadmin;
- Paso 2 En caso de que Oracle Database Vault no se haya configurado, Tycho comprueba mediante el siguiente SQL:
-- Como SYSDBA
SQL> select * from dba_dv_status;
SQL> select * from dba_dv_status;
- Paso 3. La salida confirma que la opción no se ha configurado. Durante la instalación de algunas bases de datos, es posible que los DBA hayan instalado la opción Oracle Database Vault pero nunca la hayan configurado. Para aquellas bases de datos en las que Oracle Database Vault nunca estuvo instalado, Tycho usa el siguiente comando para instalar no solo la opción Oracle Database Vault sino también para configurarla en un solo paso.
dbca -silent -configureDatabase -sourceDB ACMEDB
-addDBOption OMS,DV -olsConfiguration true -dvConfiguration true
-dvUserName dvadmin -dvUserPassword dvadmin -dvAccountManagerName
dvaccmgr -dvAccountManagerPassword dvaccmgr
Tycho realiza los cambios apropiados a las opciones, como el nombre de la base de datos en las bases de datos en las que ejecuta este comando. Aquí está el resultado:
Preparing to Configure Database
1% complete
3% complete
18% complete
Adding Oracle Label Security
19% complete
20% complete
21% complete
54% complete
Adding Oracle Database Vault
90% complete Completing Database Configuration
100% complete
Look at the log file "C:\app\oracle\cfgtoollogs\dbca\ACMEDB\ ACMEDB.log" for further details.
1% complete
3% complete
18% complete
Adding Oracle Label Security
19% complete
20% complete
21% complete
54% complete
Adding Oracle Database Vault
90% complete Completing Database Configuration
100% complete
Look at the log file "C:\app\oracle\cfgtoollogs\dbca\ACMEDB\ ACMEDB.log" for further details.
La última línea muestra la ubicación del archivo donde se registrarán los detalles de la salida. Si la opción ya estaba instalada en la base de datos, explica Tycho, el comando habría salido sin hacer nada y la salida lo habría hecho referencia.
- Paso 4. Algunas bases de datos ya tenían Oracle Database Vault instalado pero no configurado. Para ellos, Tycho configura los dos usuarios especiales para administrar Oracle Database Vault y las cuentas de usuario DVADMIN y DVACCMGR, ejecutando el siguiente SQL como usuario de SYS:
begin
dvsys.configure_dv (
dvowner_uname => 'dvadmin',
dvacctmgr_uname => 'dvaccmgr'
);
end;
/
- Paso 5. A continuación, Tycho ejecuta el script utlrp.sql en el directorio rdbms / admin bajo Oracle Home como SYS.
SQL> @ utlrp.sql
- Paso 6. Para aquellas bases de datos en las que Oracle Database Vault se instaló pero no se configuró, Tycho se conecta como usuario de DVADMIN y habilita Oracle Database Vault.
SQL> exec dbms_macadm.enable_dv
- Paso 7. Tycho reinicia cada base de datos.
- Paso 8. Confirma que la opción Oracle Database Vault está configurada y habilitada, ejecutando el siguiente SQL:
SQL> select * from dba_dv_status;
- Paso 9. Para las bases de datos multitenant, Tycho ejecuta todos los pasos anteriores en el contenedor raíz (la base de datos del contenedor). Ejecuta los pasos 4, 5 y 6 en cada base de datos conectable donde se necesita Oracle Database Vault, y cierra y vuelve a abrir todas las bases de datos conectables habilitadas para Oracle Database Vault.
Gestión de usuarios
Con Oracle Database Vault habilitado, Tycho demuestra el primer efecto para Cersei y Petyr. Como el usuario SYS (Tycho enfatiza que SYS debe usarse solo cuando se demuestran los controles, no en el día a día), intenta crear un usuario llamado TEST:
create user test identified by test;
*
ERROR at line 1:
ORA-01031: insufficient privileges
El usuario SYS, que tenía todos los privilegios para crear un nuevo usuario antes, falla con un error ORA-1031. SYS ahora puede realizar actividades típicas de administración de bases de datos pero no administrar ningún usuario. Para administrar a los usuarios, Tycho inicia sesión como el usuario de Oracle Database Vault para la gestión de cuentas-DVACCMGR-y ejecuta este SQL:
SQL> conn dvaccmgr/dvaccmgr
SQL> create user test identified by test;
User created.
Además, el usuario de DVACCMGR puede realizar otras funciones de administración de usuarios, como cambiar contraseñas y otorgar privilegios de CREATE SESSION. Sin embargo, DVACCMGR no puede seleccionar de ninguna tabla ni cerrar la base de datos. Este usuario de DVACCMGR debe ser controlado por el equipo del administrador de cuentas y no por el equipo de DBA, por lo que los DBA no pueden administrar a los usuarios, exactamente lo que Cersei quería. Un requisito satisfecho, quedan más por abordar, en nuestra segunda parte del artículo: