D-02 데이터베이스의 불필요 계정을 제거하거나, 잠금설정 후 사용
■ 점검영역 : 계정관리
■ 항목 중요도 : 상
■ 점검내용
DBMS에 존재하는 계정 중 DB 관리나 운용에 사용하지 않는 불필요한 계정이 존재하는지 점검
■ 점검목적
불필요한 계정 존재 유무를 점검하여 불필요한 계정 정보(패스워드)의 유출 시 발생할 수 있는 비인가자의 DB 접근에 대비되어 있는지 확인하기 위함
■ 보안위협
DB 관리나 운용에 사용하지 않는 불필요한 계정이 존재할 경우 비인가자가 불필요한 계정을 이용하여 DB에 접근하여 데이터를 열람, 삭제, 수정할 위험이 존재함
■ 참고
※ 불필요한 계정: SCOTT, PM, ADAMS, CLARK 등의 Demonstration 계정 및 퇴사나 직무 변경 등으로 더 이상 사용하지 않는 계정
점검대상 및 판단기준(데이터베이스/dbms 취약점 진단)
■ 대상 : Oracle, MSSQL, MySQL, ALTIBASE, TIBERO, PostgreSQL 등
양호
계정 정보를 확인하여 불필요한 계정이 없는 경우
취약
인가되지 않은 계정, 퇴직자 계정, 테스트 계정 등 불필요한 계정이 존재하는 경우
■ 조치방법
계정별 용도를 파악한 후 불필요한 계정 삭제
점검 및 조치 방법(oracle, mssql, mysql 등)
■ Oracle
Step 1) 불필요한 Demonstration 계정 및 오브젝트 삭제
SQL> DROP USER ‘삭제할 계정’;
Step 2) 계정 잠금/만료
SQL> ALTER USER ‘잠금/만료 계정' ACCOUNT LOCK PASSWORD EXPIRE;
■ MSSQL
Step 1) 불필요한 계정 삭제
Exec sp_droplogin ‘삭제할 계정';
■ MySQL
Step 1) 불필요한 계정 삭제
mysql> Delete from user where user=’삭제할 계정’;
■ Altibase
Step 1) 모든 사용자 확인
select * from system_.sys_users_;
Step 2) 불필요한 계정 삭제
DROP USER user_name CASCADE;
■ Tibero
Step 1) 모든 사용자 확인
Tibero에서는 사용자의 정보를 제공하기 위해 아래 나열된 정적 뷰를 제공하고 있으며, DBA나 일반 사용자 모두 사용할 수 있다
정적 뷰 | 설명 |
ALL_USERS | 데이터베이스의 모든 사용자의 기본적인 정보를 조회하는 뷰 |
DBA_USERS | 데이터베이스의 모든 사용자의 자세한 정보를 조회하는 뷰 |
USER_USERS | 현재 사용자의 정보를 조회하는 뷰 |
select * from all_users;
select * from dba_users;
select * from user_users;
Step 2) 불필요한 계정 삭제
DROP USER user_name CASCADE;
■ PostgreSQL
Step 1) 모든 사용자 확인
쿼리문 조회 : select *from pg_shadow;
명령어 조회 : \du
Step 2) 불필요 계정 삭제
DROP ROLE ‘삭제할 계정’;
■ 조치 시 영향 : Demonstration 계정 / 오브젝트 사용 불가 / 삭제된 계정 사용 불가