[DBMS/데이터베이스/dbms] 데이터베이스의 접근, 변경, 삭제 등의 감사기록이 기관의 감사기록 정책에 적합하도록 설정

 

 

D-11 데이터베이스의 접근, 변경, 삭제 등의 감사기록이 기관의 감사기록 정책에 적합하도록 설정

 

■ 점검영역 : 패치관리

 

■ 항목 중요도 :

 

■ 점검내용

 

감사기록 정책 설정이 기관 정책에 적합하게 설정되어 있는지 점검

 

■ 점검목적

 

데이터, 로그, 응용프로그램에 대한 감사 기록 정책을 수립하고 적용하여 데이터베이스에 문제 발생 시 원활하게 대응하고자 함

 

■ 보안위협

 

감사기록 정책이 설정되어 있지 않을 경우, 데이터베이스에 문제 발생 시 원인을 규명할 수 있는 자료가 존재하지 않아 이에 대한 대처 및 개선방안 수립이 어려움

 

■ 참고

 

-

 

 

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

 

■ 대상 : Oracle, MSSQL, MySQL, ALTIBASE, TIBERO, PostgreSQL 등

 

양호

DBMS의 감사 로그 저장 정책이 수립되어 있으며, 정책 설정이 적용되어 있는 경우

 

취약

DBMS에 대한 감사 로그 저장을 하지 않거나, 정책 설정이 적용되어 있지 않은 경우

 

■ 조치방법

 

DBMS에 대한 감사 로그 저장 정책 수립, 적용

 

 

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

 

■ Oracle


Step 1) 데이터베이스 감사 기록 정책 및 백업 정책 수립


Step 2) * DBMS에 대한 기본적인 감사를 설정함
* 아래와 같은 명령어를 통해 로그인 실패, 권한, 객체 등에 대한 감사 설정
SQL> connect sys as sysdba
Enter password: ******
Connected.
SQL> alter system set audit_trail=DB scope=spfile ;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup ;
ORACLE instance started.
SQL> audit session whenever not successful ;
Audit succeeded.

 

■ MSSQL

 

Step 1) 데이터베이스 감사 기록 정책 및 백업 정책 수립


MSSQL 2000
DB 접근에 대한 보안 감사를 할 수 있도록 보안 감사 설정
[SQL SERVER]> [등록정보]> [보안]탭> [감사수준]에서 ‘모두’ 선택

 

MSSQL 2005
[MSSQL2005]> [오른쪽 마우스 클릭]> [속성]> [보안탭]> [로그인 감사] 옵션> ’실패한 로그인과 성공한 로그인 모두’ 선택

 

MSSQL 2008 / 2012
[시스템 이름]> [오른쪽 마우스 클릭]> [속성]> [보안탭]> [로그인 감사] 옵션> ’실패한 로그인과 성공한 로그인 모두’ 선택

 

 

■ Altibase

 

Altibase HDB 서버 내에서 실행되고 있는 특정 구문 또는 모든 구문을 실시간으로 추적하고, 로그를 남기는 것을 감사(Audit)라고 함. SYS 사용자만이 이 구문을 사용해서 감사 조건을 설정할 수 있음


Step 1) AUDIT 구문으로 감사 정책을 설정


Step 2) 정책 설정 후 감사 조건 적용
ALTER SYSTEM STOP AUDIT;
ALTER SYSTEM START AUDIT;
ALTER SYSTEM RELOAD AUDIT;


■ Tibero

 

감사 기능은 감사의 대상에 따라 두 종류로 구분됨


1. 스키마 객체에 대한 감사
지정된 스키마 객체에 수행되는 모든 동작을 기록할 수 있음


2. 시스템 특권에 대한 감사
지정된 시스템 특권을 사용하는 모든 동작을 기록할 수 있음


※ 감사를 설정하거나 해제하려면 다음 명령을 사용함
- audit (감사 설정)
- noaudit (감사 해제)


[감사 설정]

 

Step 1) 스키마 객체에 대한 감사
다른 사용자가 소유한 스키마의 객체 또는 디렉터리 객체를 감사하기 위해서는 AUDIT ANY 시스템 특권을 부여받아야함


< 감사 설정 예시 >
- AUDIT delete ON t BY SESSION WHENEVER SUCCESSFUL;
- 테이블에 수행되는 모든 delete 문이 성공하는 경우에만 감사 기록을 남김


Step 2) 시스템 특권에 대한 감사
시스템 특권을 감사하기 위해서는 AUDIT SYSTEM 시스템 특권을 부여받아야함


< 감사 설정 예시 >
- AUDIT create table BY Tibero;
- Tibero라는 사용자가 테이블을 생성하려고 할 때 그것이 성공하든 실패하든 관계없이 감사 기록을 남김

 

[감사 해제]

 

Step 1) 스키마 객체에 대한 감사 해제
다른 사용자가 소유한 스키마의 객체 또는 디렉터리 객체의 감사를 해제하기 위해서는 AUDIT ANY 시스템 특권을 부여받아야함


< 감사 해제 예시 >
- NOAUDIT delete ON t BY SESSION WHENEVER SUCCESSFUL;
- 테이블에 수행되는 모든 delete 문에 대해 더 이상 감사 기록을 남기지 않음


Step 2) 시스템 특권에 대한 감사 해제
시스템 특권의 감사를 해제하기 위해서는 AUDIT SYSTEM 시스템 특권을 부여받아야함


< 감사 해제 예시 >
- NOAUDIT create table BY Tibero;
- Tibero라는 사용자가 테이블을 생성할 때 더 이상 감사 기록을 남기지 않음
※ SYS 사용자 감사 설정 방법


Step 1) <$TB_SID.tip> 파일을 아래 내용처럼 입력 또는 수정
< SYS 사용자 감사 설정 예시 >
- AUDIT_SYS_OPERATIONS=Y
- AUDIT_FILE_DEST=/home/Tibero/audit/audit_trail.log
- AUDIT_FILE_SIZE=10M
SYS 사용자의 명령을 감사하도록 설정하면 수행한 모든 동작이 OS 파일에 기록되며 보안상의 이유로 데이터베이스에는 기록되지 않음


■ PostgreSQL

 

Step 1) Log 감사 설정 여부 확인방법(쿼리문)
postgres=# show logging_collector;
logging_collector
-------------------
         on             (1 row)


Step 2) postgresql.conf 파일 내 logging_collector을 on으로설정
logging_collector = on

 

 

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

 

댓글

Designed by JB FACTORY