취약점 진단 가이드/DBMS 취약점 진단 가이드

D-15(상) 응용프로그램 또는 DBA 계정의 Role이 Public으로 설정되지 않도록 설정

H.J.World 2021. 7. 26. 17:50
728x90
반응형

※ 해당 가이드는 2021년 기준입니다.

주요정보통신기반시설 관리기관은 -정보통신기반 보호법- 제9조에 따라, 주요정보통신기반시설로 신규 지정된 후 6개월이내, 그리고 매년 취약점 분석/평가를 실시하여야 한다. 취약점 분석/평가는 453개의 관리적/물리적/기술적 점검항목에 대한 주요정보통신기반시설의 취약여부를 점검하여, 악성코드 유포, 해킹 등 사이버 위협 대응을 위한 종합적 개선과정이다.


주요정보통신기반시설 취약점 네트워크 장비 점검 항목

■ 취약점 개요

○ 점검개요 : 응용프로그램 또는 DBA 계정의 RolePublic으로 설정했는지를 점검

○ 점검목적 : 응용프로그램 또는 DBA 계정의 Role을 점검하여 일반계정으로 응용프로그램 테이블이나 DBA 테이블의 접근을 차단

○ 보안위협 : 응용프로그램 또는 DBA 계정의 RolePublic으로 설정되어 있으면, 일반 계정에서도 응용프로그램 테이블 및 DBA 테이블로 접근할 수 있어 주요 정보 유출이 발생

○ 점검대상 : Oracle, MSSQL, ALTIBASE, TIBERO

○ 판단기준

- 양호 : DBA 계정의 RolePublic으로 설정되어있지 않은 경우

- 취약 : DBA 계정의 RolePublic으로 설정되어있는 경우

 

■ 점검방법 및 조치방안

Oracle

Step 1 DBA Role 설정 확인(SQL*Plus)
 
SQL> Select granted_role from dba_role_privs where grantee=‘PUBLIC’;
위와 같이 롤(Role)이 설정되어 있는 경우 취약
Step 2 public 그룹의 권한 취소(SQL*Plus)
 
SQL> Revoke role from public;

○ MSSQL

Step 1 Object의 사용 권한이 불필요하게 Public, Guest에 부여된 경우 권한 제거
Use database name
 
권한 제거
REVOKE <권한> on <object> FROM public | guest;
권한 부여
GRANT <권한> on <object> TO public | guest;
 
() syscolumns 테이블에 대한 SELECT 권한 제거
USE master
REVOKE select on sys.syscolumns FROM public;

Object 사용 권한이 Public에 부여된 경우, 사용 권한이 없는 모든 계정이 Object에 접근 가능하여 Object의 정보를 획득할 수 있으므로 Object 사용 권한을 Public에 부여하는 것을 제한하여야 한다.

Altibase

Step 1 사용자 정보를 조회하여 객체 권한, 시스템 권한이 public 또는 guest 에게 부여되어 있는지 확인
 
select * from system_.sys_users_;
select * from system_.sys_grant_object_;
select * from system_.sys_grant_system_;
 
GRANTOR_ID : 권한을 부여한 사용자의 식별자로, SYS_USERS_ 메타 테이블의 한 USER_ID 값과 동일
GRANTEE_ID : 권한을 부여받은 사용자의 식별자로, SYS_USERS_ 메타 테이블의 한 USER_ID 값과 동일(, 객체 권한을 public 에게 부여한 경우, SYS_USERS_ 메타 테이블에 존재하지 않는 USER_ID 값인 ”0”이 칼럼에 나타난다.)
Step 2 불필요 권한 회수
revoke 권한 on 객체 from 유저

Tibero

Step 1 사용자 정보를 조회하여 role 부여가 적절한지 확인
 
select * from dba_role_privs;
select * from user_role_privs;
Step 2 불필요 권한 회수
revoke 권한 from 유저;

 

■ 조치 시 영향

일반적으로 무관



Role

사용자에게 허가 할 수 있는 권한들의 집합

 

728x90
반응형