문서유형ㅣ기술 정보
분야ㅣ보안
적용제품버전ㅣTibero6, Tibero7
문서번호ㅣTSETI019
개요
| 분류 | 점검 항목 | 중요도 | 코드 |
|---|---|---|---|
| 옵션 관리 | 응용프로그램 또는 DBA 계정의 Role이 Public으로 설정되지 않도록 조정 | 상 | D-08 |
| OS ROLES, REMOTE_OS_AUTENTICATION, REMOTE_OS_ROLES를 FALSE로 설정 | 상 | D-09 | |
| 패스워드 확인 함수가 설정되어 적용 | 중 | D-19 | |
| 인가되지 않은 Object Owner의 제한 | 하 | D-20 | |
| 인가되지 않은 GRANT OPTION 사용 제한 | 중 | D-21 | |
| 데이터베이스의 자원 제한 기능을 TRUE로 설정 | 하 | D-22 |
본 문서에서는 "옵션관리-패스워드 확인함수가 설정되어 적용(D-19)" 항목에 대한 보안취약점 조치 방안에 대해 기술하였습니다.
점검 내용 및 목적
- 패스워드 복잡도를 확인하는 PASSWORD_VERIFY_FUNCTION 값이 설정되어 있는지를 점검합니다.
- PASSWORD_VERIFY_FUNCTION 값을 설정하여 기본적인 패스워드 정책을 적용하고 이를 통해 로그인에 대한 보안성을 강화하여 저장중인 데이터의 안정성을 높이고자 합니다.
점검 판단 기준
| 기준 | 내용 |
|---|---|
| 양호 | 패스워드 검증 함수로 검증이 진행되는 경우 |
| 취약 | 패스워드 검증 함수가 설정되지 않은 경우 |
조치 전 주의사항
기본 계정 리스트 확인
Tibero 설치 시 생성되는 기본 계정은 다음과 같습니다. DB 버전에 따라 추가/삭제된 계정이 존재합니다.
| 계정명 | 비밀번호 | 비고 |
| SYS | tibero | 계정 삭제 불가능 DBA 권한 필요 |
| SYSCAT | syscat | 계정 삭제 불가능 |
| SYSGIS | sysgis | 계정 삭제 불가능 |
| OUTLN | outln | 계정 삭제 불가능 |
| TIBERO | tmax | 계정 삭제 가능 |
| TIBERO1 | tmax | 계정 삭제 가능 T7 버전 이상부터 존재하지 않음 |
| SYSBACKUP | tibero | 계정 삭제 불가능 T6FS07 일부 버전(301647 패치 존재) 및 T7 버전 이상부터 존재 |
| LBACSYS | lbacsys | 계정 삭제 불가능 T7 버전 이상부터 존재 |
연계 시스템 확인
사전에 연계 시스템에서 사용 중인 DB 계정에 대한 확인이 필요합니다.
패스워드 검증 함수
패스워드 검증 관련 함수입니다. 패스워드 검증은 VERIFY_FUNCTION, VERIFY_FUNCTION2, NULL_VERIFY_FUNCTION이 존재합니다. VERIFY_FUNCTION2와 같은 경우 특정 패치가 적용되어 있을 경우 사용 가능하오니 참고해주시기 바랍니다.
| 구분 | 설명 | ||||||||
| PASSWORD_VERIFY_FUNCTION | 패스워드를 변경할 때 패스워드 문자열을 검사하여 유효성을 확인하는 함수 지정 기본적으로 NULL_VERIFY_FUNCTION 함수 적용
|
방법
설정
- 작업 전 프로파일 확인
set lines 400 col profile for a20 col resource_name for a30 col resource_type for a20 col limit for a40 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 0 DEFAULT LOGIN_PERIOD PASSWORD UNLIMITED
- PASSWORD_VERIFY_FUNCTION 값 수정
ALTER PROFILE [PROFILE 명] LIMIT [RESOURCE NAME] [설정값]; ex) ALTER PROFILE DEFAULT LIMIT 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 a40 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 VERIFY_FUNCTION DEFAULT PASSWORD_LOCK_TIME PASSWORD 1 DEFAULT PASSWORD_GRACE_TIME PASSWORD 0 DEFAULT LOGIN_PERIOD PASSWORD UNLIMITED
원복
- 프로파일 원복
ALTER PROFILE [PROFILE 명] LIMIT [RESOURCE NAME] [설정값]; ex) ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL_VERIFY_FUNCTION;