[DBMS/데이터베이스/dbms] 데이터베이스의 주요 설정파일, 패스워드 파일 등과 같은 주요 파일들의 접근 권한이 적절하게 설정

 

 

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

 

■ 점검영역 : 접근관리

 

■ 항목 중요도 :

 

■ 점검내용

 

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

 

■ 점검목적

 

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

 

■ 보안위협

 

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

 

■ 참고

 

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

 

 

점검대상 및 판단기준(데이터베이스/dbms 취약점 진단)

 

■ 대상 : Unix OS, Windows OS

 

양호

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

 

취약

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

 

■ 조치방법

 

주요 설정 파일 및 디렉터리의 퍼미션 설정 변경

 

 

점검 및 조치 방법(oracle, mssql, mysql 등)

 

■ 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

 

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


Windows OS

 

초기화 파일의 접근 권한은 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

 

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

 

 

조치 시 영향 : 일반적인 경우 영향 없음

 

댓글

Designed by JB FACTORY