Académique Documents
Professionnel Documents
Culture Documents
TALLER 1
REVISANDO CONFIGURACIONES DE
SEGURIDAD RECOMENDADAS EN ORACLE
Revisando configuraciones de seguridad recomendadas en
Asignatura
Seguridad de Auditoria en Base de Datos
DESCRIPCIÓN:
• Taller # 1
• Nombre: Revisando Configuraciones de Seguridad recomendadas en una Instalación ORACLE.
• Profesor: Ing. Henry Hernández Rendón, MSIG
• Objetivos: Aprender a revisar las configuraciones de seguridad de un motor de base de datos (en
este caso Oracle).
PRELIMINARES
1. Iniciar el Oracle SQL Developer:
Vaya a la carpeta donde del programa y ejecute el archivo sqldeveloper.exe:
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
SELECT USERNAME
FROM DBA_USERS_WITH_DEFPWD
WHERE USERNAME NOT LIKE '%XS$NULL%';
2. En el Query Editor ejecute el siguiente query para cambiar el password de cada uno de los usuarios
que vinieron con default password con la instalación:
3. Vuelva a ejecutar el query de consulta de passwords por default para comprobar que el usuario cuyo
password cambió ya no aparece en la lista:
SELECT USERNAME
FROM DBA_USERS_WITH_DEFPWD
WHERE USERNAME NOT LIKE '%XS$NULL%';
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
4. Ejecute este proceso hasta eliminar los usuarios con passwords predeterminados.
EJERCICIO #2 (Verificando que todos los usuarios y data de prueba hayan sido removidos) 1.
SELECT USERNAME
FROM ALL_USERS
WHERE USERNAME IN ('BI','HR','IX','OE','PM','SCOTT','SH');
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
NOTA: No ejecute el paso 2, debido a que los objetos creados en el usuario HR pueden ser utilizados
en algún taller posteriormente.
Antes:
Después:
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
2. Busque el parámetro extproc que permite que las librerías del sistema operativo puedan ser
accedidas desde Oracle. Para esto puede abrir el archivo listener.ora y buscar el parámetro para
removerlo o puede buscarlo mediante la línea de comandos de Windows con el comando find /i
ADMIN_RESTRICTIONS_ListenerName=on
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME) = 'AUDIT_SYS_OPERATIONS';
2. Al salir el resultado FALSE, quiere decir que no está habilitada la opción para auditar todas las
acciones de los usuarios SYSTEM en el motor, y que únicamente acciones de Startup y Shutdown
serán auditadas. En el Query Editor ejecute el siguiente query para cambiar este parámetro a TRUE:
3. Reinicie el Servicio (OracleService), recuerde que los parámetros modificados son almacenados en el
init.ora que es cargado al momento de iniciar el servicio del motor de base de datos:
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
4. Vuelva a ejecutar el query de consulta del parámetro para verificar que el mismo haya sido cambiado:
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME) = 'AUDIT_SYS_OPERATIONS';
5.
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME) = 'AUDIT_TRAIL';
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
2. Al salir el resultado NONE, quiere decir que no está habilitada la auditoría básica del motor, para
habilitarla hay indicar a través del siguiente query el repositorio de la auditoría básica que puede ser:
(OS: Operating System file, dbo: los registros de auditoría van a la tabla SYS.AUD$, xml: graba los
registros en un xml):
3. Reinicie el Servicio (OracleService), recuerde que los parámetros modificados son almacenados en el
init.ora que es cargado al momento de iniciar el servicio del motor de base de datos:
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
4. Vuelva a ejecutar el query de consulta del parámetro para verificar que el mismo haya sido cambiado:
SELECT UPPER(VALUE)
5.
FROM V$PARAMETER WHERE UPPER(NAME) = 'AUDIT_TRAIL';
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME) = 'LOCAL_LISTENER';
2. Al salir el resultado en NULL podría producirse un ataque por envenenamiento, que permite redirigir
el tráfico de red TNS a otro sistema al registrar un listener (oyente) en el listener (oyente) TNS. Este
ataque puede ser realizado por usuarios no autorizados con acceso a la red. Al especificar el
protocolo IPC, ya no es posible registrar oyentes a través de TCP/IP. Ejecute la siguiente sentencia:
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
3. Vuelva a ejecutar el query de consulta del parámetro para verificar que el mismo haya sido cambiado:
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME) = 'LOCAL_LISTENER';
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME) = 'O7_DICTIONARY_ACCESSIBILITY';
2. Este parámetro permite ejecutar cualquier procedimiento y seleccionar cualquier diccionario en los
objetos del esquema SYS. Esta funcionalidad fue creada para facilitar la migración desde bases de
datos Oracle en versión 7. Por defecto está deshabilitada como la vemos, pero si estuviera habilitada
habría que ejecutar el siguiente query:
3. Reinicie el Servicio (OracleService), recuerde que los parámetros modificados son almacenados en
el init.ora que es cargado al momento de iniciar el servicio del motor de base de datos:
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
4. Vuelva a ejecutar el query de consulta del parámetro para verificar que el mismo haya sido
cambiado:
SELECT UPPER(VALUE)
FROM V$PARAMETER
5.
WHERE UPPER(NAME) = 'AUDIT_SYS_OPERATIONS';
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME) = 'OS_ROLES';
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
3. Reinicie el Servicio (OracleService), recuerde que los parámetros modificados son almacenados en
el init.ora que es cargado al momento de iniciar el servicio del motor de base de datos:
4. Vuelva a ejecutar el query de consulta del parámetro para verificar que el mismo haya sido
cambiado:
SELECT UPPER(VALUE)
FROM V$PARAMETER
5.
WHERE UPPER(NAME) = 'OS_ROLES;
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
Ejecute los pasos del punto 2.2.7 Ensure ‘REMOTE_LISTENER’ Is Empty (Scored)
del documento CIS Oracle Database 12c Benchmark del Center for Intenet
Security disponible en la Ruta SEGURIDAD Y AUDITORIA DE BASE DE DATOS
/Sesion1/MaterialesDidacticos/BibliografiaComplementaria/
Descripción:
La configuración de remote_listener determina si se puede establecer o no una escucha válida en un sistema
separado de la instancia de la base de datos.
Razón fundamental:
Como permitir un escucha remoto para las conexiones a la instancia de la base de datos puede permitir la
falsificación potencial de las conexiones y puede comprometer la confidencialidad y la integridad de los
datos, este valor se debe desactivar / restringir de acuerdo con las necesidades de la organización.
Auditoría:
Para evaluar esta recomendación, ejecute la siguiente instrucción SQL.
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME)='REMOTE_LISTENER';
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
Descripción:
La configuración remote_login_passwordfile especifica si Oracle comprueba o no un archivo de contraseña
durante el inicio de sesión y cuántas bases de datos pueden usar el archivo de contraseña.
Razón fundamental:
Como el uso de este tipo de archivo de inicio de sesión de contraseña podría permitir conexiones no
seguras y privilegiadas a la base de datos, este valor debe establecerse de acuerdo con las necesidades de
la organización.
Auditoría:
Para evaluar esta recomendación, ejecute la siguiente instrucción SQL.
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME)='REMOTE_LOGIN_PASSWORDFILE';
Remediación
Para corregir esta configuración, ejecute la siguiente instrucción SQL
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = 'NONE' SCOPE = SPFILE;
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
Descripción:
La configuración remote_os_authent determina si se permiten o no las "funciones" del sistema operativo
con los privilegios de asistente para las conexiones de clientes remotos.
Razón fundamental:
Dado que permitir roles de SO para conexiones de base de datos puede permitir la suplantación de
conexiones y permitir la concesión de privilegios de un rol de OS a usuarios no autorizados para realizar
conexiones, este valor debe restringirse según las necesidades de la organización.
Auditoría:
Para evaluar esta recomendación, ejecute la siguiente instrucción SQL.
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME)='REMOTE_OS_AUTHENT';
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
Descripción:
La información de SEC_CASE_SENSITIVE_LOGON determina si se requieren o no mayúsculas y minúsculas
para las contraseñas durante el inicio de sesión.
Si el parche no se aplicó, se recomienda establecer este parámetro en FALSO para evitar que se pueda
abusar de la vulnerabilidad.
Razón fundamental:
Las bases de datos Oracle 11g sin CPU Octubre 2012 parche o posterior son vulnerables a CVE2012-3137 si
se usan hashes de contraseña SHA-1 que distinguen entre mayúsculas y minúsculas. Para evitar este tipo
de ataque, se deben utilizar los antiguos hashes DES
Auditoría:
Para evaluar esta recomendación, ejecute la siguiente instrucción SQL.
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME)='SEC_CASE_SENSITIVE_LOGON';
MAESTRÍA EN AUDITORÍA Taller #1
DE TECNOLOGÍAS DE LA Revisando configuraciones de seguridad
INFORMACIÓN recomendadas en ORACLE
Descripción:
El parámetro SEC_MAX_FAILED_LOGIN_ATTEMPTS determina cuántos intentos fallidos de inicio de sesión
se permiten antes de que Oracle cierre la conexión de inicio de sesión.
Razón fundamental:
Dado que permitir un número ilimitado de intentos de inicio de sesión para una conexión de usuario puede
facilitar los ataques de inicio de sesión de fuerza bruta y la ocurrencia de la denegación de servicio, este
valor (10) debe configurarse de acuerdo con las necesidades de la organización.
Auditoría:
Para evaluar esta recomendación, ejecute la siguiente instrucción SQL.
SELECT UPPER(VALUE)
FROM V$PARAMETER
WHERE UPPER(NAME)='SEC_CASE_SENSITIVE_LOGON';