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

D-19(중) 인가되지 않은 GRANT OPTION 사용 제한

H.J.World 2021. 8. 3. 10:10
728x90
반응형

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

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


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

■ 취약점 개요

○ 점검개요 : 일반사용자에게 Grant OptionRole 에 의해 부여되어 있는지 점검

○ 점검목적 : 일반사용자에게 Grant OptionRole 에 의한 부여가 아닐 경우 권한을 취소함

○ 보안위협 : 일반 사용자에게 GRANT OPTION이 설정되어있는 경우, 일반 사용자가 객체소유자인 것과 같이 다른 일반 사용자에게 권한을 부여할 수 있어 WITH_GRANT_OPTIONrole에 의하여 설정되어야 함

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

○ 판단기준

- 양호 : WITH_GRANT_OPTIONROLE에 의하여 설정되어있는 경우

- 취약 : WITH_GRANT_OPTIONROLE에 의하여 설정되어있지 않은 경우

 

■ 점검방법 및 조치방안

Oracle, Tibero

Step 1 설정 확인(SQL*Plus)
SQLSelect grantee | | ‘ : ' | | owner | | ’ . ‘ | |table_name from dba_tab_privs where grantable=’YES' and owner not in ('SYS', ‘MDSYS’ , ‘ORDPLUGINS', 'ORDSYS’, ‘SYSTEM1, 'WMSYS', 'SDB', 'LBACSYS') and grantee not in (select grantee from dba_role_privs where granted_role= 'DBA') order by grantee; (계정이 나오는 경우 취약)
Step 2 권한 취소, 재부여(SQL*Plus)
SQLREVOKE Role FROM User;

○ MSSQL

Step 1 설정 확인
select object_name(id)as objectname, user_name(uid)as userid,
case action
when 193 then 'SELECT'
when 195 then 'INSERT'
when 196 then 'DELETE'
when 197 then 'UPDATE'
when 198 then 'CREATE TABLE'
when 203 then 'CREATE DATABASE’
when 207 then 'CREATE VIEW'
when 222 then 'CREATE PROCEDURE'
when 224 then 'EXECUTE'
when 228 then 'BACKUP DATABASE'
when 233 then 'CREATE DEFAULT'
when 235 then 'BACKUP RULE'
when 236 then 'CREATE LOG'
when 26 then 'REFERENCES'
when 178 then 'CREATE FUNCTION'
end as Permmision from sysprotects where protecttype = 204
(계정이 나오는 경우 취약)
Step 2 권한 회수
revoke 권한 on 객체 from 유저

○ MySQL

Step 1 설정 확인
 
SELECT user,grant_priv FROM mysql.user;
(계정이 나오는 경우 취약)
Step 2 권한 회수
REVOKE 권한종류 ON 대상 FROM 계정;

○ Altibase

Step 1 사용자 계정을 조회하여 일반사용자에게 with grant option 이 부여되어 있을 경우 취약
(with grant option 1 일 경우)
select * from system. sys_users_;
select * from system. sys_grant_object_;
select * from system. sys_privileges_;
 
사용자 조회


 
일반 사용자에 with grant option 설정 여부 확인

Step 2 권한 회수
revoke 권한 on 객체 from 유저

 

 

■ 조치 시 영향

일반적으로 무관

 

728x90
반응형