[DBMS/데이터베이스/dbms] 인가되지 않은 Object Owner의 제한

 

 

D-20 인가되지 않은 Object Owner의 제한

 

■ 점검영역 : 옵션관리

 

■ 항목 중요도 :

 

■ 점검내용

 

Object Owner가 인가된 계정에게만 존재하는지 점검

 

■ 점검목적

 

Object Owner가 비인가자에게 존재하고 있을 경우 이를 제거하기 위함

 

■ 보안위협

 

Object Owner는 SYS, SYSTEM과 같은 데이터베이스 관리자 계정과 응용프로그램의 관리자 계정에만 존재하여야 하며, 일반 계정이 존재할 경우 공격자가 이를 이용하여 Object의 수정, 삭제가 가능함

 

■ 참고

 

※ Object(객체): ALTER, DELETE, EXECUTE, INDEX, INSERT, SELECT 등을 말함

 

 

점검대상 및 판단기준(데이터베이스/dbms 취약점 진단)

 

■ 대상 : Oracle, MSSQL, MySQL, ALTIBASE, TIBERO, PostgreSQL 등

 

양호

Object Owner가 SYS, SYSTEM, 관리자 계정 등으로 제한된 경우

 

취약

Object Owner가 일반 사용자에게도 존재하는 경우

 

■ 조치방법

 

Object Owner를 SYS, SYSTEM, 관리자 계정으로 제한 설정

 

 

점검 및 조치 방법(oracle, mssql, mysql 등)

 

■ Oracle


Step 1) 설정 확인(SQL*Plus)
SQL> Select distinct owner from dba_objects where owner not in ('SYS','SYSTEM', 'MDSYS','CTXSYS',‘ORDSYS','ORDPLUGINS', 'AURORA$JIS$UTILITY$','HR','ODM','ODM_ MTR','OE','OLAPDBA','OLAPSYS','OSE$HTTP$ADMIN','OUTLN','LBACSYS','MTSYS','PM','PUBLIC','QS','QS_ADM',’QS_CB','QS_CBADM',‘DBSNMP','QS_CS','QS_ES','QS_OS','QS_WS','RMAN', 'SH', 'WKSYS', 'WMSYS','XDB') and owner not in (select grantee from dba_role_privs where granted_role='DBA');


Step 2) 권한 취소(SQL*Plus)
SQL> REVOKE 권한 on 객체 FROM User;


■ Altibase


Step 1) 사용자에게 부여된 객체 권한 정보를 확인
select * from system_.sys_grant_object_;
selcet * from system_.sys_privileges_;


Step 2) 부여된 권한 ID를 확인하여 불필요 권한은 회수
revoke 권한 on 객체 from 유저

 

■ Tibero


Step 1) 데이터베이스 내 모든 스키마 객체 특권의 정보를 조회하여 인가받지 않은 객체 권한 소유자가 있는지 확인
select * from dba_tbl_privs;


Step 2) 잘못된 객체 권한 소유자 발견 시 해제


■ PostgreSQL


Step 1) 객체 권한 정보 확인
postgres=# select distinct relowner from pgclass where relowner not exists
(select usename from pg_user where usesuper=TRUE);


Step 2) 잘못된 객체 권한 소유자 발견 시 해제

 

 

조치 시 영향 : 일반적인 경우 영향 없음

 

댓글

Designed by JB FACTORY