D-07: root 권한으로 서비스 구동 제한
분류: DBMS
중요도: 중
개요
점검 내용
서비스 구동 시 root 계정 또는 root 권한으로 구동되는지 점검
점검 목적
root 권한을 제한적으로 사용함으로써 시스템의 손상, 데이터의 유출 및 변조 등을 차단하여 보안 위협을 방지하기 위함
보안 위협
root 권한으로 서비스를 구동할 경우 시스템 손상, 데이터 유출 및 변조, 감사 및 추적의 어려움 등으로 인해 서비스 공격의 표적이 될 위험이 존재함
참고
-
점검 대상 및 판단 기준
대상
Oracle DB, MySQL, Altibase, Cubrid 등
판단 기준
✅ 양호: DBMS가 root 계정 또는 root 권한이 아닌 별도의 계정 및 권한으로 구동되고 있는 경우
❌ 취약: DBMS가 root 계정 또는 root 권한으로 구동되고 있는 경우
조치 방법
DBMS 구동 계정 변경
조치 시 영향
일반적인 경우 영향 없음
점검 및 조치 사례
Oracle DB
Step 1) 실행 중인 프로세스를 통한 확인
Step 2) Oracle Listener 프로세스 사용자 확인
Step 3) 사용자 계정을 'Oracle'로 전환
$ su – oracle
# 현재 사용자/관리자 계정에서 'Oracle' 사용자로 전환
$ lsnrctl stop
# Oracle Listener 중지
$ sqlplus / as sysdba
# SQL*Plus 유틸리티를 이용하여 시스템 관리자(SYSDBA) 권한으로 로그인
$ shutdown immediate
# 데이터베이스 종료
Step 4) Oracle 서비스 재시작
$ lsnrctl start
# Oracle Listener 시작
$ sqlplus / as sysdba
# SQL*Plus 유틸리티를 이용하여 시스템 관리자(SYSDBA) 권한으로 로그인
$ startup
# 데이터베이스 시작
MySQL
Step 1) 실행 중인 프로세스를 통한 확인
Step 2) mysql server configuration 파일에서 [mysqld] 그룹의 'user' 지시자의 설정값 확인
Step 3) mysql server configuration 파일에서 [mysqld] 그룹의 'user' 지시자 설정
참고
user = [mysqld를 구동할 시스템의 일반 사용자 계정]
Altibase
Step 1) 실행 중인 프로세스를 통한 확인
Step 2) Altibase 디렉터리 및 파일을 Altibase 전용 계정으로 소유자 변경
Step 3) Altibase 전용 계정으로 DB 구동
Cubrid
Step 1) 실행 중인 프로세스를 통한 확인
# ps –ef | egrep 'cub_master|cub_broker|cub_manager' | grep –v grep
-- cub_master, cub_broker, cub_manager 데몬이 root 또는 root 권한으로 구동되었는지 확인
Step 2) 삭제 후 cubrid 계정으로 재설치 또는 같은 DB를 생성 후에 언로드/로드를 통해 기존 데이터 이관