728x90
반응형
※ 해당 가이드는 2017년 기준입니다.
주요정보통신기반시설 관리기관은 -정보통신기반 보호법- 제9조에 따라, 주요정보통신기반시설로 신규 지정된 후 6개월이내, 그리고 매년 취약점 분석/평가를 실시하여야 한다. 취약점 분석/평가는 453개의 관리적/물리적/기술적 점검항목에 대한 주요정보통신기반시설의 취약여부를 점검하여, 악성코드 유포, 해킹 등 사이버 위협 대응을 위한 종합적 개선과정이다.
주요정보통신기반시설 취약점 네트워크 장비 점검 항목
■ 취약점 개요
○ 점검개요 : 관리자 권한이 필요한 계정 및 그룹에만 관리자 권한을 부여하였는지 점검
○ 점검목적 : 관리자 권한이 필요한 계정과 그룹에만 관리자 권한을 부여하였는지 점검하여 관리자 권한의 남용을 방지하여 계정 유출로 인한 비인가자의 DB 접근 가능성을 최소화
○ 보안위협 : 관리자 권한이 필요한 계정 및 그룹에만 관리자 권한을 부여하지 않을 경우 관리자 권한이 부여된 계정이 비인가자에게 유출될 경우 DB에 접근 할 수 있는 위험이 존재
○ 점검대상 : Oracle, MSSQL, MySQL, ALTIBASE, TIBERO 등
○ 판단기준
- 양호 : 관리자 권한이 필요한 계정 및 그룹에만 관리자 권한이 부여된 경우
- 취약 : 관리자 권한이 필요 없는 계정 및 그룹에 권한이 부여된 경우
■ 점검방법 및 조치방안
○ ORACLE
Step 1 | SYSDBA 권한 점검 SQL〉SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME NOT IN (SELECT GRANTEE FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE='DBA') and USERNAME !=‘INTERNAL’ and sysdba=‘TRUE’; (어떠한 계정이 라도 나오는 경우 취약) |
Step 2 | Admin에 부적합 계정 존재 여부 점검 SQL> select grantee, privilege from dba_sys_privs where grantee not in (‘SYS’, ‘SYSTEM’, ‘AQ_ADMINISTRATOR_ROLE’, ‘DBA’, ‘MDSYS’, ‘LBACSYS’, ‘ SCHEDULER_ADMIN’, ‘WMSYS’) and admin_option=‘YES’ and grantee not in (select grantee from dba_role_privs where granted_role=‘DBA’); (어떠한 계정이라도 나오 는 경우 취약) |
Step 3 | 관리자 권한이 불필요한 계정에서 관련 권한을 제거 ㆍ불필요하게 시스템 권한을 부여한 계정의 권한 변경 필요 ㆍ시스템 권한 부여가 필요한 경우 필요한 테이블별 권한 부여 ㆍ인가된 사용자는 관리자 권한에 role을 grant 한 후, 시스템 권한을 grant 하고 role을 인가된 사용자에게 grant |
○ MSSQL
Step 1 | sysadmin 서버 역할의 계정 목록을 확인 후 해당 서버 역할에 불필요한 계정이 있는 경우 서버 역할에서 삭제 sysadmin 서버 역할에서 불필요한 계정 삭제 (명령어)Exec sp_droprolemember ‘user_name’, ‘sysadmin’; (예)Exec sp_dropsrvrolemember ‘user01’, ‘sysadmin’; (user01 계정을 sysadmin 서버 역할에서 삭제) |
○ MySQL
Step 1 | mysql.user 테이블에 적용된 권한은 모든 데이터베이스에 적용되므로 host, user, password를 제외한 나머지 권한은 허용하지 않음('N')으로 설정 ㆍ사용자 등록 mysql> insert into mysql.user (host, name, password) values (‘%’, ‘user name’, password (‘password’); 디폴트로 모든 권한 ‘N’ 설정 ㆍ권한 변경 mysql> update mysql.user set <권한>=‘N’ where user=‘user namer’; |
Step 2 | 각 사용자는 접근하고자 하는 DB를 mysql.db에 등록 후 접근 권한을 부여하여 사용 ㆍDB등록 시 권한 부여 mysql〉insert into mysql.db values (‘%’, ‘DB name’, ‘username’ , ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’); mysql> flush privileges; ㆍDB권한 업데이트 mysql> update mysql.db set <권한>=‘Y’ where db=<DB name> and user=‘user name’; mysql> flush privileges; |
○ Altibase
Step 1 | 계정별 부여된 시스템 권한 목록 확인 후, 아래 명령어 모두 입력 select * from system_.sys_grant_system_; select * from system_.sys_users_; select * from system_.sys_privileges_; |
Step 2 | sys_users_ 결과값에서 user_id 확인 |
Step 3 | sys_grant_system_ 결과값에서 user_id와 동일한 grantee_id 확인하여 priv_id 확인 |
Step 4 | 일반사용자 계정 생성 시 시스템에 의해 부여되는 기본 권한 외 입력되어 있을 경우 해당 권한 삭제 |
○ Tibero
Step 1 | 계정별 부여된 시스템 권한 목록 확인 후, 아래 명령어 모두 입력 select * from dba_users; select * from dba_sys_privs; |
Step 2 | dbs.users 결과값에서 시스템 계정, 일반 계정 확인 |
Step 3 | dba_sys_privs 결과값에서 일반 계정임에도 시스템 권한을 불필요하게 부여받고 있는지 확인 |
Step 4 | 일반 계정에 불필요한 시스템 권한이 부여되어 있을 경우 권한 삭제 |
■ 조치 시 영향
일반적으로 무관
728x90
반응형
'취약점 진단 가이드 > DBMS 취약점 진단 가이드' 카테고리의 다른 글
D-06(중) DB 사용자 계정의 개별적 부여 및 사용 (0) | 2021.07.20 |
---|---|
D-05(중) 패스워드 재사용에 대한 제약 설정 (0) | 2021.07.20 |
D-03(상) 패스워드의 사용기간 및 복잡도를 기관 정책에 맞도록 설정 (0) | 2021.07.19 |
D-02(상) scott 등의 Demonstration 및 불필요 계정을 제거하거나 잠금 설정 후 사용 (0) | 2021.07.18 |
D-01(상) 기본 계정의 패스워드, 정책 등을 변경하여 사용 (0) | 2021.07.17 |