콘텐츠로 이동

D-18: 응용프로그램 또는 DBA 계정의 Role이 Public으로 설정되지 않도록 조정

분류: DBMS

중요도: 상


개요

점검 내용

응용 프로그램 또는 DBA 계정의 Role이 Public으로 설정되어 있는지 점검

점검 목적

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

보안 위협

응용 프로그램 또는 DBA 계정의 Role이 Public으로 설정된 경우 일반 계정에서도 응용 프로그램 테이블 및 DBA 테이블로 접근할 수 있으므로 중요 정보 유출의 위험이 존재함

참고

Role

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

점검 대상 및 판단 기준

대상

Oracle DB, Altibase, Tibero, Cubrid 등

판단 기준

✅ 양호: DBA 계정의 Role이 Public으로 설정되지 않은 경우

❌ 취약: DBA 계정의 Role이 Public으로 설정된 경우

조치 방법

DBA 계정의 Role 설정에서 Public 그룹 권한 취소

조치 시 영향

일반적인 경우 영향 없음

점검 및 조치 사례

Oracle DB

Step 1) DBA Role 설정 확인(SQL*Plus)

SQL> SELECT granted_role FROM dba_role_privs WHERE grantee = 'PUBLIC';

Step 2) PUBLIC 그룹의 권한 취소(SQL*Plus)

SQL> REVOKE [Role name] FROM PUBLIC;

Altibase

Step 1) 사용자 정보를 조회하여 Object 권한, 시스템 권한이 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 값과 동일함. 단, Object 권한을 Public에게 부여한 경우, SYS_USERS_메타테이블에 존재하지 않는 USER_ID 값인 "0"이 칼럼에 나타남

Step 2) 불필요 권한 회수

REVOKE <권한> ON <Object> FROM [계정명];

Tibero

Step 1) 사용자 정보를 조회하여 Role 부여가 적절한지 확인

SELECT * FROM dba_role_privs;
SELECT * FROM user_role_privs;

Step 2) 불필요 권한 회수

REVOKE <권한> FROM [계정명];