Criar um profile de política de senhas e atribuí-lo a usuários
OracleSegurançaComando
-- Hardened profile for application/human users:
CREATE PROFILE app_user_prf LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1/24 -- 1 hour lock
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX 10
INACTIVE_ACCOUNT_TIME 60 -- accounts unused for 60 days are locked
PASSWORD_VERIFY_FUNCTION ora12c_strong_verify_function;
-- Service accounts: password never expires, gradual password rollover enabled:
CREATE PROFILE service_account_prf LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_ROLLOVER_TIME 1; -- old and new password both valid for 1 day
ALTER USER customer_app PROFILE app_user_prf;
-- Check:
SELECT username, profile, account_status,
TO_CHAR(expiry_date,'YYYY-MM-DD') AS expiry_date, lock_date
FROM dba_users
WHERE profile IN ('APP_USER_PRF', 'SERVICE_ACCOUNT_PRF');
SELECT profile, resource_name, limit
FROM dba_profiles
WHERE profile = 'APP_USER_PRF' AND resource_type = 'PASSWORD'
ORDER BY resource_name;O que faz
Um profile aplica a um grupo de usuários regras de bloqueio por falhas de login, tempo de vida da senha, reutilização, complexidade (verify function) e bloqueio de contas inativas. PASSWORD_ROLLOVER_TIME permite que as aplicações migrem sem indisponibilidade enquanto a senha de uma conta de serviço é alterada.
Quando usar
Para requisitos de auditoria de segurança/CIS benchmark, ao criar novos usuários de aplicação e para separar por grupo de usuários os valores frouxos do profile DEFAULT.
Atenção
Sem licença extra. Um limite FAILED_LOGIN_ATTEMPTS em uma conta de serviço permite que um único servidor de aplicação com a senha errada bloqueie a conta e cause indisponibilidade em produção. PASSWORD_LIFE_TIME em contas de aplicação pode causar status EXPIRED inesperado. A verify function deve existir sob o SYS (senão @?/rdbms/admin/utlpwdmg.sql; esse script também modifica o profile DEFAULT). Mudar o profile não revalida as senhas existentes.
Relacionados
- Criar, abrir, definir a master key e fazer backup de um keystore TDE (19c+)
- Criptografar tablespaces com TDE (novos e existentes, online/offline)
- Criar uma política de Unified Auditing, habilitá-la com condição, revisar os registros e removê-la
- Adicionar uma política de acesso em nível de linha com VPD (DBMS_RLS)
- Encontrar privilégios não utilizados com privilege analysis