D-14: 데이터베이스의 주요 설정 파일, 비밀번호 파일 등과 같은 주요 파일들의 접근 권한이 적절하게 설정
분류: DBMS
중요도: 중
개요
점검 내용
데이터베이스의 주요 파일들에 대해 관리자를 제외한 일반 사용자의 파일 수정 권한을 제거하였는지 점검
점검 목적
데이터베이스의 주요 파일에 관리자를 제외한 일반 사용자의 파일 수정 권한을 제거함으로써 비인가자에 의한 DBMS 주요 파일 변경이나 삭제를 방지하고 주요 정보 유출을 방지할 수 있음
보안 위협
데이터베이스 주요 파일에 비인가자가 접근하여 수정 및 삭제 시 데이터베이스 운영에 장애가 발생할 수 있으며 계정 비밀번호 정보 등 중요 정보의 유출 위험이 존재함
참고
데이터베이스의 주요 파일
orapw.ora, listener.ora, init<SID>.ora, redo 파일, 데이터베이스 설정 파일, 네트워크 설정 파일 등
점검 대상 및 판단 기준
대상
Oracle DB, PostgreSQL, Cubrid 등
판단 기준
✅ 양호: 주요 설정 파일 및 디렉터리의 권한 설정 시 일반 사용자의 수정 권한을 제거한 경우
❌ 취약: 주요 설정 파일 및 디렉터리의 권한 설정 시 일반 사용자의 수정 권한을 제거하지 않은 경우
조치 방법
주요 설정 파일 및 디렉터리의 권한 설정 변경
조치 시 영향
일반적인 경우 영향 없음
점검 및 조치 사례
Oracle DB
[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
- 파일 및 디렉터리의 권한 설정 변경
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;
- 파일 및 디렉터리의 권한 설정 변경
[Windows OS]
Step 1) 패스워드 파일(orapw
MySQL
[Unix OS]
Step 1) 설정 파일 (my.cnf, my.ini)의 접근 권한 설정
설정 파일 (my.cnf, my.ini)의 접근 권한을 설정 파일에 대한 보호를 위하여 600 또는 640으로 설정
- my.cnf 파일 위치:
/etc/my.cnf,<각 홈디렉터리>/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 이하로 설정 - DB접속 통제 설정 파일(
pg_hba.conf,pg_ident.conf)의 권한을 640 이하로 설정 - 히스토리 파일 (
.psql_history)의 권한을 600 이하로 설정 - Log 파일(
pg_log)의 권한을 640 이하로 설정
[Windows OS]
Step 1) 주요 환경설정 파일의 접근 권한은 Administrators, SYSTEM, Owner에게 모든 권한 또는 필요 권한만 부여하여 설정하고 기타 다른 그룹은 권한 제거
Cubrid
Step 1) cubrid.conf 파일 권한 확인
# ls –l $_CUBRID_DATABASES/conf/cubrid.conf
-- 또는
# ls –l /root/CUBRID-11.2.8.0824-bf70ab7-Linux.x86_64/conf/cubrid.conf
-- (설치경로 직접 입력)
Step 2) cubrid.conf 파일 권한 설정
참고
cubrid.conf 파일의 권한이 600 또는 640일 경우 양호함