문서유형ㅣ기술 정보
분야ㅣ보안
적용제품버전ㅣTibero6, Tibero7
문서번호ㅣTSETI017
개요
| 분류 | 점검 항목 | 중요도 | 코드 |
|---|---|---|---|
| 옵션 관리 | 응용프로그램 또는 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 |
본 문서에서는 "옵션관리-인가되지 않은 Object Owner의 제한(D-20)" 항목에 대한 보안취약점 조치 방안에 대해 기술하였습니다.
점검 내용 및 목적
- Object Owner가 인가된 계정에게만 존재하는지 점검합니다.
- Object Owner가 비인기자에게 존재하고 있을 경우 이를 제거하기 위함입니다.
점검 판단 기준
| 기준 | 내용 |
|---|---|
| 양호 | Object Owner가 SYS, SYSTEM, 관리자 계정 등으로 제한된 경우 |
| 취약 | Object Owner가 일반 사용자에게도 존재하는 경우 |
조치 전 주의사항
기본 계정 리스트 확인
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 계정에 대한 확인이 필요합니다.
방법
설정
- 작업 전 인가되지 않은 object owner 존재 유무 확인
set pages 999
set lines 400
col grantee for a20
col owner for a20
col table_name for a30
col grantor for a20
col privilege for a20
col grantable for a30
select * from dba_tbl_privs where GRANTEE not in ('PUBLIC','SYS','SYSCAT','SYSGIS','OUTLN','SYSBACKUP','LBACSYS','HS_ADMIN_ROLE','SELECT_CATALOG_ROLE');
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE
-------------------- -------------------- ------------------------------ -------------------- -------------------- ------------------------------
P_TEST SYS V$SQLTEXT SYS SELECT NO
1 row selected.
- 권한 회수
REVOKE [PRIVILEGE] on [OWNER].[TABLE_NAME] FROM [GRANTEE]; ex) REVOKE SELECT ON SYS.V$SQLTEXT FROM P_TEST;
- 작업 후 인가되지 않은 object owner 존재 유무 확인
set pages 999
set lines 400
col grantee for a20
col owner for a20
col table_name for a30
col grantor for a20
col privilege for a20
col grantable for a30
select * from dba_tbl_privs where GRANTEE not in ('PUBLIC','SYS','SYSCAT','SYSGIS','OUTLN','SYSBACKUP','LBACSYS','HS_ADMIN_ROLE','SELECT_CATALOG_ROLE');
0 row selected.
원복
- 권한 부여
GRANT [PRIVILEGE] on [OWNER].[TABLE_NAME] TO [GRANTEE]; ex) grant select on sys.v$sqltext to p_test;