D-03 패스워드의 사용기간 및 복잡도를 기관 정책에 맞도록 설정
■ 점검영역 : 계정관리
■ 항목 중요도 : 상
■ 점검내용
기관 정책에 맞게 패스워드 사용기간 및 복잡도 설정이 적용되어 있는지 점검
■ 점검목적
패스워드 사용기간 및 복잡도 설정 유무를 점검하여 비인가자의 패스워드 추측 공격(무작위 대입 공격, 사전 대입 공격 등)에 대한 대비가 되어있는지 확인하기 위함
■ 보안위협
패스워드 사용기간 및 복잡도 설정이 되어있지 않을 경우 비인가자가 패스워드 추측 공격을 통해 획득한 계정의 패스워드를 이용하여 DB에 접근할 수 있는 위험이 존재함
■ 참고
※ 무작위 대입 공격(Brute Force Attack): 특정 암호를 해독하기 위해 가능한 모든 값을 대입하는 공격 방법
※ 사전 대입 공격(Dictionary Attack): 사전에 있는 단어를 입력하여 패스워드를 알아내거나 암호를 해독하는데 사용되는 컴퓨터 공격 방법
점검대상 및 판단기준(데이터베이스/dbms 취약점 진단)
■ 대상 : Oracle, MSSQL, MySQL, ALTIBASE, TIBERO, PostgreSQL 등
양호
기관 정책에 맞게 패스워드 사용기간 및 복잡도 설정이 적용되어 있는 경우
취약
기관 정책에 맞게 패스워드 사용기간 및 복잡도 설정이 적용되어 있지 않은 경우
■ 조치방법
기관 정책에 맞게 패스워드 사용기간 및 복잡도 정책 설정
점검 및 조치 방법(oracle, mssql, mysql 등)
■ Oracle
Step 1) PASSWORD_LIFE_TIME 프로파일 파라미터 변경
SQL> ALTER PROFILE LIMIT PASSWORD_LIFE_TIME xx;
Step 2) 프로파일 값과 관련된 사용자 변경
SQL> ALTER USER PROFILE;
STEP 3) 패스워드 설정 변경
SQL> CREATE PROFILE grace_5 LIMIT;
FAILED_LOGIN_ATTEMPTS 3 (패스워드 실패 3번 까지만 가능)
PASSWORD_LIFE_TIME 30 (30일 동안만 패스워드 사용 가능)
PASSWORD_REUSE_TIME 30 (사용한 패스워드 30일 후부터 재사용 가능)
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_GRACE_TIME 5 ; (life time이 끝나고 5일 동안 메시지를 보여줌)
■ MSSQL
Step 1) 패스워드 변경 주기가 60일 이내로 설정되지 않은 경우 패스워드 변경 주기 설정
MSSQL에서 ‘암호 만료 강제 적용’을 체크함으로서 주기적으로 변경할 수 있으며, 변경기간은 OS의 ‘암호정책’에서 적용받으므로 ‘암호 정책 > 최대 암호 사용 기간’ 설정도 같이 변경해야 함
Step 2) 암호 만료 강제 적용
[보안]> [로그인]> [각 로그인 계정]> [속성]> 암호 만료 강제 적용: 설정(체크) 확인
STEP 3) OS의 암호 정책 설정
[관리도구]> [로컬 보안 정책]> [보안 설정]> [계정 정책]> [암호 정책]> ‘최대 암호 사용 기간 : ’60일’ 설정
■ MySQL
Step 1) 패스워드 설정 규칙 적용
패스워드 설정 규칙에 맞추어 패스워드를 설정할 수 있도록 시스템 차원에서 기능 제공
Step 2) 패스워드 관리 적용
패스워드 신규 적용 및 초기화 시 설정 규칙에 맞추어 관리하고, 저장 시에는 일방향 암호 알고리즘을 통한 암호화 처리(One-Way Encryption)
STEP 3) 패스워드 변경기능 구현
사용자가 패스워드 설정 규칙 내에서 스스로 패스워드를 변경할 수 있도록 기능을 제공하며, 패스워드 설정은 다음과 같은 방법으로 가능
mysql> use mysql;
mysql> update user set password=password(‘new password’) where user=’user
name’;
mysql> flush privileges; 또는,
mysql> set password for ‘user name’@’%’=password(‘new password’);
mysql> flush privileges;
■ Altibase
조치방법 1. 사용자별 패스워드 정책 변경
Step 1) 다음 명령어를 통해 패스워드 정책 설정 여부 확인
select * from system_.sys_users_;
Step 2) 아래 프로퍼티에 대해 패스워드 정책 설정
CASE_SENSITIVE_PASSWORD
FAILED_LOGIN_ATTEMPTS
PASSWORD_LOCK_TIME
PASSWORD_LIFE_TIME
PASSWORD_GRACE_TIME
PASSWORD_REUSE_TIME
PASSWORD_REUSE_MAX
PASSWORD_VERIFY_FUNCTION
정책 적용 시 다음 명령어를 사용
ALTER USER 유저명 LIMIT (프러퍼티 숫자);
적용 예) ALTER USER TESTUSER LIMIT
(FAILED_LOGIN_ATTEMPTS 7, PASSWORD_LOCK_TIME 7);
조치방법 2. ALTIBASE HDB 프러퍼티 파일
Step 1) $ALTIBASE_HOME/conf/altibase.properties를 변경
※ ALTIBASE HDB 서버가 실행되지 않은 상태에서 할 수 있는 정적인 환경설정 방법
※ 프로퍼티 파일에서 해당 구성 요소를 특정 값으로 설정한 후 ALTIBASE HDB 서버를 재구동해야 수정된 값이 ALTIBASE HDB 서버에 반영
■ Tibero
Step 1) 사용자별 패스워드 프로파일 적용 여부 확인
select * from dba_users;
Step 2) 설정되어 있을 경우 프로파일 설정 내용 확인
select * from dba_profiles;
STEP 3) 설정되어 있지 않을 경우 프로파일 생성 시(또는 수정 시 alter profile) 패스워드 정책 설정 정책 적용 시 다음 명령어를 사용
CREATE PROFILE prof LIMIT
적용 예) CREATE PROFILE prof LIMIT
failed_login_attempts 3
password_lock_time 1/1440
password_life_time 90
password_reuse_time unlimited
password_reuse_max 10
password_grace_time 10
password_verify_function verify_function;
■ 조치 시 영향 : 주기적인 패스워드 변경 필요