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

D-06(중) DB 사용자 계정의 개별적 부여 및 사용

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

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

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


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

■ 취약점 개요

○ 점검개요 : DB 접근 시 사용자 별로 서로 다른 계정을 사용하여 접근하는지 점검

○ 점검목적 : 사용자별 별도 DBMS 계정을 사용하여 DB에 접근하는지 점검하여 DB 계정 공유 사용으로 발생할 수 있는 로그 감사 추적 문제를 대비

○ 보안위협 : DB 계정을 공유하여 사용할 경우 비인가자의 DB 접근 발생 시 계정 공유 사용으로 인해 로그 감사 추적의 어려움이 발생할 위험이 존재

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

○ 판단기준

- 양호 : 사용자별 계정을 사용하고 있는 경우

- 취약 : 공용 계정을 사용하고 있는 경우

 

■ 점검방법 및 조치방안

ORACLE

Step 1 계정 확인(SQL*Plus)
 
SQL> select username from dba_users order by username;
(사용하지 않거나 모르는 계정 확인)
Step 2 공통으로 사용하는 계정 삭제
 
SQL> DROP USER '삭제할 계정';
Step 3 사용자별, 응용프로그램별 계정 생성
 
SQL> Create user username identified by passwd;
Step 4 권한 부여
 
SQL> grant connect, resource to username;

○ MSSQL

Step 1 불필요한 계정 삭제
 
Exec sp_droplogin ‘삭제할 계정
Step 2 사용자별, 응용프로그램별 계정 생성
 
CREATE login ‘생성 계정’ WITH password = ’패스워드
CREATE user ‘생성 계정’ FOR login ‘생성 계정’ WITH default_schema = ‘생성 계정 ’ ;
ALTER USER
EXEC sp_adduser '생성 계정’, ‘생성 계정’, ‘db_owner’
EXEC sp_adduser '생성 계정’, '생성 계정', '생성 계정'
EXEC sp_grantdbaccess ’생성 계정’, ‘생성 계정

○ MySQL

Step 1 불필요한 계정 삭제
 
mysql> Delete from user where user='삭제할 계정’;
Step 2 사용자별, 응용프로그램별 계정 생성, 권한 설정
 
mysql> insert into user (‘localhost’, ‘user’, ‘password’) values (‘localhost’, ‘생성 계정’,
‘password(’패스워드’));
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

○ Altibase

Step 1 불필요한 계정 삭제
 
mysql> Delete from user where user='삭제할 계정’;
Step 2 Step 1) 결과에서 공용계정 확인하여 삭제
 
drop user testuesr cascade;
Step 3 사용자별, 응용프로그램별 등 목적에 맞게 계정 생성
 
create user testuser2 identified by testpassword;

○ Tibero

Step 1 DB 에 생성된 계정 확인
 
select * from dba_users;
Step 2 Step 1 결과에서 공용계정 확인하여 삭제


drop user 사용자명 cascade;
Step 3 사용자별, 응용프로그램 별 등 목적에 맞게 계정 생성
 
create user 사용자명 identified by 사용자 패스워드;

○ PostgreSQL

Step 1 계정의 용도 파악 후 불필요한 계정은 삭제, 새로운 계정 생성 시 적절한 권한을 부여하여 생성
 
모든 사용자 확인
 
쿼리문 조회 : select *from pg_shadow;
명령어 조회 : \du
Step 2 불필요 계정 삭제


DROP ROLE ‘삭제할 계정’;
Step 3 계정 생성 및 권한 추가
 
create user ‘생성할 계정’;
alter role ‘계정명’ ‘권한명’ ‘권한명’ ····;
\du (계정 생성 및 권한 확인)

 

■ 조치 시 영향

일반적으로 무관

 

 

 

728x90
반응형