Con cada nueva versión de base de datos, Oracle mejora varios aspectos relacionados con la seguridad. En esta línea, con la versión 12.2 incorporó un nuevo perfil de usuario llamado ORA_STIG_PROFILE para cumplir con el estándar de configuración STIG (Security Technical Implementation Guide).
Este perfil aborda varios requisitos de STIG, como la necesidad de una función de complejidad de contraseña, tiempo de reutilización de las mismas, número máximo de intentos fallidos de login y algunos otros más.
La configuración de ORA_STIG_PROFILE en las versiones 12.2, 18c y 19c es la siguiente:
SQL> SELECT profile,resource_name,limit
FROM dba_profiles
WHERE profile='ORA_STIG_PROFILE'
ORDER BY resource_name;
PROFILE RESOURCE_NAME LIMIT
---------------------------- ------------------------------ --------
ORA_STIG_PROFILE COMPOSITE_LIMIT DEFAULT
ORA_STIG_PROFILE CONNECT_TIME DEFAULT
ORA_STIG_PROFILE CPU_PER_CALL DEFAULT
ORA_STIG_PROFILE CPU_PER_SESSION DEFAULT
ORA_STIG_PROFILE FAILED_LOGIN_ATTEMPTS 3
ORA_STIG_PROFILE IDLE_TIME 15
ORA_STIG_PROFILE INACTIVE_ACCOUNT_TIME 35
ORA_STIG_PROFILE LOGICAL_READS_PER_CALL DEFAULT
ORA_STIG_PROFILE LOGICAL_READS_PER_SESSION DEFAULT
ORA_STIG_PROFILE PASSWORD_GRACE_TIME 5
ORA_STIG_PROFILE PASSWORD_LIFE_TIME 60
ORA_STIG_PROFILE PASSWORD_LOCK_TIME UNLIMITED
ORA_STIG_PROFILE PASSWORD_REUSE_MAX 10
ORA_STIG_PROFILE PASSWORD_REUSE_TIME 365
ORA_STIG_PROFILE PASSWORD_VERIFY_FUNCTION ORA12C_STIG_VERIFY_FUNCTION
ORA_STIG_PROFILE PRIVATE_SGA DEFAULT
ORA_STIG_PROFILE SESSIONS_PER_USER DEFAULT
17 rows selected.
Se diferencia del profile “DEFAULT” en las siguientes definiciones:
password_life_time 60
password_grace_time 5
password_reuse_time 365
password_reuse_max 10
failed_login_attempts 3
password_lock_time unlimited
inactive_account_time 35
idle_time 15
password_verify_function ora12c_stig_verify_function
La función de verificación de contraseña ora12c_stig_verify_function, fue creada específicamente para exigir una mayor complejidad de las mismas, tomando en cuenta las recomendaciones de la guía STIG v1 r2 publicada el 22 de enero de 2016.
En el nuevo release 21c, liberado los primeros días de diciembre, encontramos algunas modificaciones en este profile para mejorar y reforzar los controles de seguridad.
SQL> SELECT profile,resource_name,limit
FROM dba_profiles
WHERE profile='ORA_STIG_PROFILE'
ORDER BY resource_name;
PROFILE RESOURCE_NAME LIMIT
---------------- ------------------------- ---------------------------
ORA_STIG_PROFILE COMPOSITE_LIMIT DEFAULT
ORA_STIG_PROFILE CONNECT_TIME DEFAULT
ORA_STIG_PROFILE CPU_PER_CALL DEFAULT
ORA_STIG_PROFILE CPU_PER_SESSION DEFAULT
ORA_STIG_PROFILE FAILED_LOGIN_ATTEMPTS 3
ORA_STIG_PROFILE IDLE_TIME 15
ORA_STIG_PROFILE INACTIVE_ACCOUNT_TIME 35
ORA_STIG_PROFILE LOGICAL_READS_PER_CALL DEFAULT
ORA_STIG_PROFILE LOGICAL_READS_PER_SESSION DEFAULT
ORA_STIG_PROFILE PASSWORD_GRACE_TIME 0
ORA_STIG_PROFILE PASSWORD_LIFE_TIME 35
ORA_STIG_PROFILE PASSWORD_LOCK_TIME UNLIMITED
ORA_STIG_PROFILE PASSWORD_REUSE_MAX 5
ORA_STIG_PROFILE PASSWORD_REUSE_TIME 175
ORA_STIG_PROFILE PASSWORD_ROLLOVER_TIME DEFAULT
ORA_STIG_PROFILE PASSWORD_VERIFY_FUNCTION ORA12C_STIG_VERIFY_FUNCTION
ORA_STIG_PROFILE PRIVATE_SGA DEFAULT
ORA_STIG_PROFILE SESSIONS_PER_USER DEFAULT
18 rows selected.
Los parámetros que fueron actualizados son los siguientes:
PASSWORD_GRACE_TIME
PASSWORD_LIFE_TIME
PASSWORD_REUSE_MAX
PASSWORD_REUSE_TIME
Se incorporó además un nuevo parámetro llamado PASSWORD_ROLLOVER_TIME relacionado con la nueva funcionalidad “Gradual Database Password Rollover”.
Este parámetro indica la cantidad de tiempo, especificado en días, en que un usuario al cambiar la contraseña podrá iniciar sesión indistintamente con la nueva contraseña o con la antigua. Esta funcionalidad la veremos más en detalle en un futuro artículo.
Cabe aclarar que este parámetro fue incorporado también en el profile DEFAULT.
Además de la actualización del perfil ORA_STIG_PROFILE, la versión 21c incorpora también un nuevo perfil de usuario llamado ORA_CIS_PROFILE, que en este caso apunta a cumplir con los lineamientos del estándar de referencia “CIS Benchmark para bases de datos Oracle”.
CIS (Center for Internet Security) es una organización sin fines de lucro formada en octubre de 2000 cuya misión es identificar, desarrollar, validar, promover y mantener soluciones de mejores prácticas enfocadas en la ciberdefensa y ciberseguridad. CIS viene publicando desde el año 2009 su “Benchmark para bases de datos Oracle”, y en octubre de este año fue liberado el estándar para la versión 19c.
La configuración del nuevo profile ORA_CIS_PROFILE es la siguiente:
SQL> SELECT profile,resource_name,limit
FROM dba_profiles
WHERE profile='ORA_STIG_PROFILE'
ORDER BY resource_name;
PROFILE RESOURCE_NAME LIMIT
--------------- ------------------------- ----------------------
ORA_CIS_PROFILE COMPOSITE_LIMIT DEFAULT
ORA_CIS_PROFILE CONNECT_TIME DEFAULT
ORA_CIS_PROFILE CPU_PER_CALL DEFAULT
ORA_CIS_PROFILE CPU_PER_SESSION DEFAULT
ORA_CIS_PROFILE FAILED_LOGIN_ATTEMPTS 5
ORA_CIS_PROFILE IDLE_TIME DEFAULT
ORA_CIS_PROFILE INACTIVE_ACCOUNT_TIME 120
ORA_CIS_PROFILE LOGICAL_READS_PER_CALL DEFAULT
ORA_CIS_PROFILE LOGICAL_READS_PER_SESSION DEFAULT
ORA_CIS_PROFILE PASSWORD_GRACE_TIME 5
ORA_CIS_PROFILE PASSWORD_LIFE_TIME 90
ORA_CIS_PROFILE PASSWORD_LOCK_TIME 1
ORA_CIS_PROFILE PASSWORD_REUSE_MAX 20
ORA_CIS_PROFILE PASSWORD_REUSE_TIME 365
ORA_CIS_PROFILE PASSWORD_ROLLOVER_TIME DEFAULT
ORA_CIS_PROFILE PASSWORD_VERIFY_FUNCTION ORA12C_VERIFY_FUNCTION
ORA_CIS_PROFILE PRIVATE_SGA DEFAULT
ORA_CIS_PROFILE SESSIONS_PER_USER 10
La siguiente salida muestra una comparación de los profiles DEFAULT, STIG y CIS en el release 21c para tener una idea a simple vista de los límites que impone cada uno.
PROFILE RESOURCE_NAME LIMIT
---------------- ------------------------- ---------------------------
DEFAULT COMPOSITE_LIMIT UNLIMITED
ORA_CIS_PROFILE COMPOSITE_LIMIT DEFAULT
ORA_STIG_PROFILE COMPOSITE_LIMIT DEFAULT
DEFAULT CONNECT_TIME UNLIMITED
ORA_CIS_PROFILE CONNECT_TIME DEFAULT
ORA_STIG_PROFILE CONNECT_TIME DEFAULT
DEFAULT CPU_PER_CALL UNLIMITED
ORA_CIS_PROFILE CPU_PER_CALL DEFAULT
ORA_STIG_PROFILE CPU_PER_CALL DEFAULT
DEFAULT CPU_PER_SESSION UNLIMITED
ORA_CIS_PROFILE CPU_PER_SESSION DEFAULT
ORA_STIG_PROFILE CPU_PER_SESSION DEFAULT
DEFAULT FAILED_LOGIN_ATTEMPTS 10
ORA_CIS_PROFILE FAILED_LOGIN_ATTEMPTS 5
ORA_STIG_PROFILE FAILED_LOGIN_ATTEMPTS 3
DEFAULT IDLE_TIME UNLIMITED
ORA_CIS_PROFILE IDLE_TIME DEFAULT
ORA_STIG_PROFILE IDLE_TIME 15
DEFAULT INACTIVE_ACCOUNT_TIME UNLIMITED
ORA_CIS_PROFILE INACTIVE_ACCOUNT_TIME 120
ORA_STIG_PROFILE INACTIVE_ACCOUNT_TIME 35
DEFAULT LOGICAL_READS_PER_CALL UNLIMITED
ORA_CIS_PROFILE LOGICAL_READS_PER_CALL DEFAULT
ORA_STIG_PROFILE LOGICAL_READS_PER_CALL DEFAULT
DEFAULT LOGICAL_READS_PER_SESSION UNLIMITED
ORA_CIS_PROFILE LOGICAL_READS_PER_SESSION DEFAULT
ORA_STIG_PROFILE LOGICAL_READS_PER_SESSION DEFAULT
DEFAULT PASSWORD_GRACE_TIME 30
ORA_CIS_PROFILE PASSWORD_GRACE_TIME 5
ORA_STIG_PROFILE PASSWORD_GRACE_TIME 0
DEFAULT PASSWORD_LIFE_TIME 360
ORA_CIS_PROFILE PASSWORD_LIFE_TIME 90
ORA_STIG_PROFILE PASSWORD_LIFE_TIME 35
DEFAULT PASSWORD_LOCK_TIME 1
ORA_CIS_PROFILE PASSWORD_LOCK_TIME 1
ORA_STIG_PROFILE PASSWORD_LOCK_TIME UNLIMITED
DEFAULT PASSWORD_REUSE_MAX 4
ORA_CIS_PROFILE PASSWORD_REUSE_MAX 20
ORA_STIG_PROFILE PASSWORD_REUSE_MAX 5
DEFAULT PASSWORD_REUSE_TIME 1
ORA_CIS_PROFILE PASSWORD_REUSE_TIME 365
ORA_STIG_PROFILE PASSWORD_REUSE_TIME 175
DEFAULT PASSWORD_ROLLOVER_TIME 0
ORA_CIS_PROFILE PASSWORD_ROLLOVER_TIME DEFAULT
ORA_STIG_PROFILE PASSWORD_ROLLOVER_TIME DEFAULT
DEFAULT PASSWORD_VERIFY_FUNCTION CLOUD_VERIFY_FUNCTION
ORA_CIS_PROFILE PASSWORD_VERIFY_FUNCTION ORA12C_VERIFY_FUNCTION
ORA_STIG_PROFILE PASSWORD_VERIFY_FUNCTION ORA12C_STIG_VERIFY_FUNCTION
DEFAULT PRIVATE_SGA UNLIMITED
ORA_CIS_PROFILE PRIVATE_SGA DEFAULT
ORA_STIG_PROFILE PRIVATE_SGA DEFAULT
DEFAULT SESSIONS_PER_USER UNLIMITED
ORA_CIS_PROFILE SESSIONS_PER_USER 10
ORA_STIG_PROFILE SESSIONS_PER_USER DEFAULT
Conclusión:
Estos perfiles, especialmente diseñados, permiten una rápida implementación de algunos de los requerimientos indicados por dos de los principales estándares de seguridad para bases de datos Oracle.
Pueden ser utilizados directamente con los usuarios de la base de datos o como parte de profiles propios.
Oracle los mantiene actualizados para facilitar la implementación de políticas de contraseñas acordes con los lineamientos de STIG y CIS.
No hay comentarios:
Publicar un comentario