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

D-13(중) 데이터베이스의 주요 설정파일, 패스워드 파일 등과 같은 주요 파일들의 접근 권한이 적절하게 설정

H.J.World 2021. 7. 25. 10:10
728x90
반응형

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

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


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

■ 취약점 개요

○ 점검개요 : 데이터베이스의 주요 파일들에 대해 관리자를 제외한 일반 사용자의 파일 수정 권한을 제거하였는지 점검

○ 점검목적 : 데이터베이스의 주요 파일에 관리자를 제외한 일반 사용자의 파일 수정 권한을 제거함으로써 비인가자에 의한 DBMS 주요 파일 변경이나 삭제를 방지하고 주요 정보 유출을 방지

○ 보안위협 : 데이터베이스 주요파일에 비인가자가 접근하여 수정 및 삭제를 하면 데이터베이스 운영에 장애가 발생할 수 있으며 계정 패스워드 정보 등의 중요한 정보가 유출

○ 점검대상 : Unix OS, Windows OS

○ 판단기준

- 양호 : 주요 설정 파일 및 디렉터리의 퍼미션 설정 시 일반 사용자의 수정 권한을 제거한 경우

- 취약 : 주요 설정 파일 및 디렉터리의 퍼미션 설정 시 일반 사용자의 수정 권한을 제거하지 않은 경우

 

■ 점검방법 및 조치방안

Oracle

 - Unix OS

Step 1 디렉터리 또는 파일의 퍼미션 점검
 
$ORACLE_HOME/bin/oracle(퍼미션 755)
$ORACLE_HOME/bin/ 아래(퍼미션 755)
.sqlplus,sqlldr,sqlload,proc,oraenv,oerr,exp,imp,tkprof,tnsping,wrap
$ORACLE_HOME/bin 아래(퍼미션 750)
.svrmgrl, lsnrctl, dbsnmp
$ORACLE_HOME/network(퍼미션 755)
$ ORACLE HOME/network/admin(퍼미션 755)
.listener.ora, sqlnet.ora
$ORACLE_HOME/ lib(퍼미션 755)
$ORACLE_HOME/network/admin 아래 환경파일(퍼미션 644)
.tnsnames.ora, protocol.ora, sqlpnet.ora
$ORACLE_HOME/dbs/init.ora(퍼미션 640)
$ORACLE_HOME/dbs/init<SID>.ora(퍼미션 640)
- Find $ORACLE_HOME name init*.ora print
 
파일 및 디렉터리의 퍼미션 설정 변경
# chmod <적용 퍼미션> <file_name>
Step 2 redo 파일, 데이터베이스 설정 파일, 데이터 파일 위치 확인(SQL*Plus)
 
SQL> Select value from v$parameter where name=’spfile;
SQL> Select 'Control Files: ’||value from v$parameter where name='control_files';
SQL> select 'Control Files: ’||value from v$parameter where name=‘spfile';
SQL> select 'Logfile: '||member from v$logfile;
SQL> select 'Datafile: ‘||name from v$datafile;
 
파일 및 디렉터리의 퍼미션 설정 변경
# chmod <적용 퍼미션> <file_name>

 - Windows OS

Step 1 패스워드 파일(orapw<SID>) 접근 권한은 administrators, system group, owner group,
oracle service account, DBA에게 모든 권한 또는, 그 이하로 설정하고 다른 그룹은 제거

 

○ MySQL

 -  Unix OS

Step 1 초기화 파일(my.cnf, my.ini)의 접근 권한을 초기화 파일에 대한 보호를 위하여 600 또는, 640으로 설정
 
my.cnf 파일 디폴트 위치: /etc/my.cnf, <각 홈디렉터리>/my.cnf
chmod 600 . /my.cnf

 -  Windows OS

Step 1 초기화 파일의 접근 권한은 Adminisrators, SYSTEM, Owner에게 모든 권한 또는, 그 이하로 설정하고 다른 그룹은 제거

 

○ PostgreSQL

 -  Unix OS

Step 1 주요 설정 파일 위치 확인
 
postgresql.conf 파일 디폴트 위치: [$datadir]
DB 접속 통제 설정파일 위치: /postgres/data/pg_hba.conf
/postgres/data/pg_ident.conf
log_directory : /log_directory/pg_log
Step 2 주요 설정 파일의 권한 설정
 
환경설정 파일 (postgresql.conf)의 권한을 640 이하로 설정
# chmod 640 [$datadir]/postgresql.conf
 
DB접속 통제 설정 파일 (pg_hba.conf, pg_ident.conf)의 권한을 640 이하로 설정
# chmod 640 ./pg_hba.conf
# chmod 640 ./pg_ident.conf
 
히스토리 파일 (.psql_history)의 권한을 600 이하로 설정
$chmod 600 .psql_history
 
Log 파일(pg_log)의 권한을 640 이하로 설정
#chmod 640 [log file]

 -  Windows OS

Step 1 주요 환경설정 파일의 접근 권한은 Administrators, SYSTEM, Owner에게 모든 권한 또는 필요 권한만 부여하여 설정하고 기타 다른 그룹은 권한 제거

 

■ 조치 시 영향

일반적으로 무관



데이터베이스의 주요 파일

orapw.ora, listener.ora,init<SID>.ora, redo 파일, 데이터베이스 설정 파일, 네트워크 설정 파일 등

 

728x90
반응형