문서유형ㅣ기술정보
분야ㅣ보안
적용제품버전ㅣTibero6, Tibero7
문서번호ㅣTSETI013
개요
| 분류 | 점검 항목 | 중요도 | 코드 |
|---|---|---|---|
| 계정 관리 | 기본 계정의 패스워드, 권한 등을 변경하여 사용 | 상 | D-01 |
| 데이터베이스의 불필요 계정을 제거하거나, 잠금설정 후 사용 | 상 | D-02 | |
| 패스워드의 사용기간 및 복잡도를 기관 정책에 맞도록 설정 | 상 | D-03 | |
| 데이터베이스 관리자 권한을 꼭 필요한 계정 및 그룹에 허용 | 상 | D-04 | |
| 패스워드 재사용에 대한 제약 설정 | 중 | D-12 | |
| DB 사용자 계정을 개별적으로 부여하여 사용 | 중 | D-13 |
본 문서에서는 "계정관리-패스워드의 사용기간 및 복잡도를 기관 정책에 맞도록 설정(D-03)" 항목에 대한 보안취약점 조치 방안에 대해 기술하였습니다.
점검 내용 및 목적
- 기관 정책에 맞게 패스워드 시용기간 및 복잡도 설정이 적용되어 있는지 점검합니다.
- 패스워드 사용기간 및 복잡도 설정 유무를 점검하여 비인가자의 패스워드 추측 공격(무작위 대입 공격, 사전 대입 공격 등)에 대한 대비가 되어있는지 확인하기 위함입니다.
점검 판단 기준
| 기준 | 내용 |
|---|---|
| 양호 | 기관 정책에 맞게 패스워드 사용기간 및 복잡도 설정이 적용되어 있는 경우 |
| 취약 | 기관 정책에 맞게 패스워드 사용기간 및 복잡도 설정이 적용되어 있지 않은 경우 |
조치 전 주의사항
기본 계정 리스트 확인
Tibero 설치 시 생성되는 기본 계정은 다음과 같습니다. DB 버전에 따라 추가/삭제된 계정이 존재합니다.
| 계정명 | 비밀번호 | 비고 |
| SYS | tibero | 계정 삭제 불가능 |
| SYSCAT | syscat | 계정 삭제 불가능 |
| SYSGIS | sysgis | 계정 삭제 불가능 |
| OUTLN | outln | 계정 삭제 불가능 |
| TIBERO | tmax | 계정 삭제 가능 |
| TIBERO1 | tmax | 계정 삭제 가능 T7 버전 이상부터 존재하지 않음 |
| SYSBACKUP | tibero | 계정 삭제 불가능 T6FS07 일부 버전(301647 패치 존재) 및 T7 버전 이상부터 존재 |
| LBACSYS | lbacsys | 계정 삭제 불가능 T7 버전 이상부터 존재 |
주기적인 패스워드 변경
패스워드 사용 기간을 설정할 경우 주기적으로 비밀번호를 변경해야 합니다. 사전에 연계 시스템에서 사용 중인 DB 계정에 대해 확인하여 연계 시스템에서도 접속 비밀번호 변경이 필요합니다.
패스워드 사용기간 및 복잡도
패스워드 사용기간 및 복잡도 관련 설정값입니다.
| 구분 | 설명 | ||||||||
| FAILED_LOGIN_ATTEMPTS | 설정 값 이상 비밀번호를 잘못 기입한 경우 해당 계정 LOCK | ||||||||
| PASSWORD_LOCK_TIME | 계정 LOCK 걸린 후 N 시간 후 해제 ex) 1/1440 설정 시, 1분 후 자동으로 잠금 상태 해제 | ||||||||
| PASSWORD_LIFE_TIME | 패스워드 만료 기간 설정. 설정한 날 이후에 패스워드 만료 ex) 30 설정 시, 30일 후 만료 ex) 1/1440 설정 시, 1분 후 만료 | ||||||||
| PASSWORD_REUSE_TIME | 패스워드 재사용 금지 기간 설정 ex) 30 설정 시, 30일 동안 동일 패스워드로 다시 변경 불가 | ||||||||
| PASSWORD_REUSE_MAX | 설정된 갯수만큼 최근 변경한 패스워드를 재사용 금지 설정 ex) 10 설정 시, 10회 동안 동일 패스워드 재사용 불가. 다른 값으로 사용 | ||||||||
| PASSWORD_GRACE_TIME | 패스워드 만료 후 경고를 보내는 기간 설정. 패스워드 만료 경고는 tbsql에서만 동작하며, 다른 방식으로 접속하는 경우(OCI, JDBC 등) 패스워드 만료 에러 반환함 ex) PASSWORD_LIFE_TIME 30, PASSWORD_GRACE_TIME 3 설정 시 30일이 지난 후 첫 접속 3일간 패스워드 만료 경고 발생 | ||||||||
| PASSWORD_VERIFY_FUNCTION | 패스워드를 변경할 때 패스워드 문자열을 검사하여 유효성을 확인하는 함수 지정 기본적으로 NULL_VERIFY_FUNCTION 함수 적용
| ||||||||
| LOGIN_PERIOD | 값이 설정되어 있을 경우 마지막 로그인 후 지정된 시간이 지나면 계정이 잠김 마지막 로그인 후 지정된 시간이 지나면 계정이 잠김 |
방법
설정
- 프로파일 확인
set lines 400 col profile for a20 col resource_name for a30 col resource_type for a20 col limit for a20 select * from dba_profiles where RESOURCE_TYPE = 'PASSWORD'; PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT -------------------- ------------------------------ -------------------- -------------------- DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL_VERIFY_FUNCTION DEFAULT PASSWORD_LOCK_TIME PASSWORD 1 DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED DEFAULT LOGIN_PERIOD PASSWORD UNLIMITED 8 rows selected.
- 프로파일 생성
CREATE PROFILE [프로파일명] LIMIT FAILED_LOGIN_ATTEMPTS [설정값] PASSWORD_LOCK_TIME [설정값] PASSWORD_LIFE_TIME [설정값] PASSWORD_REUSE_TIME [설정값] PASSWORD_REUSE_MAX [설정값] PASSWORD_GRACE_TIME [설정값] PASSWORD_VERIFY_FUNCTION [설정값]; ex) 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;
- 프로파일 확인
set lines 400 col profile for a20 col resource_name for a30 col resource_type for a20 col limit for a50 select * from dba_profiles where RESOURCE_TYPE = 'PASSWORD'; PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT -------------------- ------------------------------ -------------------- -------------------- DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL_VERIFY_FUNCTION DEFAULT PASSWORD_LOCK_TIME PASSWORD 1 DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED DEFAULT LOGIN_PERIOD PASSWORD UNLIMITED PROF FAILED_LOGIN_ATTEMPTS PASSWORD 3 PROF PASSWORD_LIFE_TIME PASSWORD 90 PROF PASSWORD_REUSE_TIME PASSWORD UNLIMITED PROF PASSWORD_REUSE_MAX PASSWORD 10 PROF PASSWORD_VERIFY_FUNCTION PASSWORD VERIFY_FUNCTION PROF PASSWORD_LOCK_TIME PASSWORD .000694444444444444444444444444444444444 444 PROF PASSWORD_GRACE_TIME PASSWORD 10 PROF LOGIN_PERIOD PASSWORD UNLIMITED 16 rows selected.
- 계정 별 프로파일 확인
set lines 400 col username for a30 col profile for a30 SELECT USERNAME,PROFILE FROM DBA_USERS; USERNAME PROFILE ------------------------------ ------------------------------ SYS TIBERO SYSCAT SYSGIS OUTLN TIBERO1 P_TEST PROSYNC 8 rows selected.
- 계정 별 프로파일 설정
ALTER USER [USERNAME] PROFILE [PROFILE 명]; ex) alter user sys profile prof;
- 계정 별 프로파일 설정 확인
SELECT USERNAME,PROFILE FROM DBA_USERS; USERNAME PROFILE ------------------------------ ------------------------------ SYS PROF TIBERO PROF SYSCAT PROF SYSGIS PROF OUTLN PROF TIBERO1 PROF P_TEST PROF PROSYNC PROF 8 rows selected.
원복
- 계정 별 프로파일 원복
default 프로파일 설정을 바꾸지 않았다면, 해당 프로파일로 지정합니다.
ALTER USER [USERNAME] PROFILE [PROFILE 명]; ex) alter user sys profile default;
- 특정 RESOURCE 정보만 원복
ALTER PROFILE [PROFILE 명] LIMIT [RESOURCE NAME] [설정값]; ex) ALTER PROFILE prof LIMIT PASSWORD_VERIFY_FUNCTION NULL_VERIFY_FUNCTION;