D-13 DB 사용자 계정을 개별적으로 부여하여 사용
■ 점검영역 : 계정관리
■ 항목 중요도 : 중
■ 점검내용
DB 접근 시 사용자별로 서로 다른 계정을 사용하여 접근하는지 점검
■ 점검목적
사용자별 별도 DBMS 계정을 사용하여 DB에 접근하는지 점검하여 DB 계정 공유 사용으로 발생할 수 있는 로그 감사 추적 문제를 대비하고자 함
■ 보안위협
DB 계정을 공유하여 사용할 경우 비인가자의 DB 접근 발생 시 계정 공유 사용으로 인해 로그 감사 추적의 어려움이 발생할 위험이 존재함
■ 참고
-
점검대상 및 판단기준(데이터베이스/dbms 취약점 진단)
■ 대상 : Oracle, MSSQL, MySQL, ALTIBASE, TIBERO, PostgreSQL 등
양호
사용자별 계정을 사용하고 있는 경우
취약
공용 계정을 사용하고 있는 경우
■ 조치방법
사용자별 계정 생성 및 권한 부여
점검 및 조치 방법(oracle, mssql, mysql 등)
■ 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) DB에 생성된 계정 확인
select * from system_.sys_users_;
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 (계정 생성 및 권한 확인)
■ 조치 시 영향 : 일반적인 경우 영향 없음