D-05: 비밀번호 재사용에 대한 제약 설정
분류: DBMS
중요도: 중
개요
점검 내용
비밀번호 변경 시 이전 비밀번호를 재사용할 수 없도록 비밀번호 제약 설정이 되어있는지 점검
점검 목적
비밀번호 재사용 제약 설정 적용 여부를 점검하여 비밀번호 변경 시 이전 비밀번호 재사용을 제약하여 형식적인 비밀번호 변경을 원천적으로 차단하기 위함
보안 위협
비밀번호 재사용 제약 설정이 적용되어 있지 않을 경우 비밀번호 변경 전 사용했던 비밀번호를 재사용함으로써 비인가자의 계정 비밀번호 추측 공격에 대한 시간을 더 많이 허용하여 비밀번호 유출 위험이 증가함
참고
비밀번호 제약 설정
비밀번호 변경 시 이전에 사용했던 비밀번호를 재사용할 수 없게 하는 설정으로써 이전 암호 재사용 가능 기간(PASSWORD_REUSE_TIME), 이전 암호 재사용 가능 횟수(PASSWORD_REUSE_MAX) 등이 있음
점검 대상 및 판단 기준
대상
Oracle DB, Altibase, Tibero 등
판단 기준
✅ 양호: 비밀번호 재사용 제한 설정을 적용한 경우
❌ 취약: 비밀번호 재사용 제한 설정을 적용하지 않은 경우
조치 방법
PASSWORD_REUSE_TIME, PASSWORD_REUSE_MAX 파라미터 설정
조치 시 영향
일반적인 경우 영향 없음
점검 및 조치 사례
Oracle DB
Step 1) SQL*Plus 설정 확인
-- Check for both reuse max and reuse time not set
SELECT profile FROM DBA_PROFILES WHERE (resource_name = 'PASSWORD_REUSE_MAX' AND limit IN ('UNLIMITED', 'NULL')) OR (profile IN (SELECT profile FROM DBA_PROFILES WHERE resource_name = 'PASSWORD_REUSE_TIME') AND limit IN ('UNLIMITED', 'NULL'));
-- Check for reuse max with value that is less than allowed minimum
SELECT profile FROM DBA_PROFILES WHERE resource_name = 'PASSWORD_REUSE_MAX' AND limit NOT IN ('UNLIMITED', 'NULL') AND REGEXP_LIKE(limit, '^[0-9]+$') -- Only consider numeric values
AND TO_NUMBER(limit) < 10;
-- Check for reuse time that is less than allowed minimum
SELECT profile FROM DBA_PROFILES WHERE resource_name = 'PASSWORD_REUSE_TIME' AND limit NOT IN ('UNLIMITED', 'NULL') AND REGEXP_LIKE(limit, '^[0-9]+$') -- Only consider numeric values
AND TO_NUMBER(limit) < 365;
Step 2) PASSWORD_REUSE_TIME 및 PROFILE 파라미터 수정
SQL> ALTER PROFILE default LIMIT password_reuse_time 365 password_reuse_max 10;
SQL> ALTER PROFILE [프로파일명] LIMIT password_reuse_time DEFAULT password_reuse_max default;
Altibase
Step 1) 다음 명령어를 통해 비밀번호 정책 설정 여부 확인
Step 2) 아래 Property에 대해 비밀번호 정책 설정
CASE_SENSITIVE_PASSWORDFAILED_LOGIN_ATTEMPTSPASSWORD_LOCK_TIMEPASSWORD_LIFE_TIMEPASSWORD_GRACE_TIMEPASSWORD_REUSE_TIMEPASSWORD_REUSE_MAXPASSWORD_VERIFY_FUNCTION
정책 적용 시 다음 명령어를 사용
ALTER USER [계정명] LIMIT (Property 숫자);
-- 예시)
ALTER USER TESTUSER LIMIT (FAILED_LOGIN_ATTEMPTS 7, PASSWORD_LOCK_TIME 7);
Tibero
Step 1) 사용자별 비밀번호 PROFILE 적용 여부 확인

Step 2) 설정되어 있을 경우 PROFILE 설정 내용 확인

Step 3) 설정되어 있지 않을 경우 PROFILE 생성 또는 수정 시(ALTER PROFILE) 비밀번호 정책 설정 적용 시
다음 명령어를 사용