D-26: 데이터베이스의 접근, 변경, 삭제 등의 감사 기록이 기관의 감사 기록 정책에 적합하도록 설정
분류: DBMS
중요도: 상
개요
점검 내용
감사 기록 정책 설정이 기관 정책에 적합하게 설정되어 있는지 점검
점검 목적
데이터, 로그, 응용 프로그램에 대한 감사 기록 정책을 수립하고 적용하여 데이터베이스에 문제 발생 시 원활하게 대응하기 위함
보안 위협
감사 기록 정책이 설정되어 있지 않을 경우, 데이터베이스에 문제 발생 시 원인을 규명할 수 있는 자료가 존재하지 않아 이에 대한 대처 및 개선방안 수립이 어려워 장기적으로 심각한 보안 위험이 존재함
참고
-
점검 대상 및 판단 기준
대상
Oracle DB, MSSQL, Altibase, Tibero, PostgreSQL 등
판단 기준
✅ 양호: DBMS의 감사 로그 저장 정책이 수립되어 있으며, 정책 설정이 적용된 경우
❌ 취약: DBMS에 대한 감사 로그 저장을 하지 않거나, 정책 설정이 적용되지 않은 경우
조치 방법
DBMS에 대한 감사 로그 저장 정책 수립, 적용
조치 시 영향
일반적인 경우 영향 없음
점검 및 조치 사례
Oracle DB
Step 1) 데이터베이스 감사 기록 정책 및 백업 정책 수립
Step 2) DBMS에 대한 기본적인 감사를 설정함
아래와 같은 명령어를 통해 로그인 실패, 권한, Object 등에 대한 감사 설정
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, 2008, 2012, 2016, 2019, 2022
[SQL SERVER]>[마우스 우클릭]>[속성]>[보안]>[로그인 감사]옵션 > '실패한 로그인과 성공한 로그인 모두' 선택

Altibase
Step 1) AUDIT 구문으로 감사 정책을 설정
Step 2) 정책 설정 후 감사 조건 적용
참고
Altibase HDB 서버 내에서 실행되고 있는 특정 구문 또는 모든 구문을 실시간으로 추적하고, 로그를 남기는 것을 감사(Audit)라고 하며, SYS 사용자만이 이 구문을 사용해서 감사 조건을 설정할 수 있음
Tibero
Step 1) 감사 기능은 감사 대상에 따라 두 종류로 구분됨
- 스키마 Object에 대한 감사: 지정된 스키마 Object에 수행되는 모든 동작을 기록할 수 있음
- 시스템 특권에 대한 감사: 지정된 시스템 특권을 사용하는 모든 동작을 기록할 수 있음
참고
감사를 설정하거나 해제하려면 다음 명령을 사용함
* audit (감사 설정)
* noaudit (감사 해제)
[감사 설정]
Step 1) 스키마 Object에 대한 감사
- 다른 사용자가 소유한 스키마의 Object 또는 디렉터리 Object를 감사하기 위해서는 AUDIT ANY 시스템 특권을 부여받아야 함
- 예시)
AUDIT DELETE ON t BY SESSION WHENEVER SUCCESSFUL;- → 테이블에 수행되는 모든 DELETE 문이 성공하는 경우에만 감사 기록을 남김
Step 2) 시스템 특권에 대한 감사
- 시스템 특권을 감사하기 위해서는 AUDIT SYSTEM 시스템 특권을 부여받아야 함
- 예시)
AUDIT CREATE table BY Tibero;- → Tibero라는 사용자가 테이블을 생성하려고 할 때 그것이 성공하든 실패하든 관계없이 감사 기록을 남김
[감사 해제]
Step 1) 스키마 Object에 대한 감사 해제
- 다른 사용자가 소유한 스키마의 Object 또는 디렉터리 Object의 감사를 해제하기 위해서는 AUDIT ANY 시스템 특권을 부여받아야 함
- 예시)
NOAUDIT DELETE ON t BY SESSION WHENEVER SUCCESSFUL;- → 테이블에 수행되는 모든 DELETE문에 대해 더 이상 감사 기록을 남기지 않음
Step 2) 시스템 특권에 대한 감사 해제
- 시스템 특권의 감사를 해제하기 위해서는 AUDIT SYSTEM 시스템 특권을 부여받아야 함
- 예시)
NOAUDIT CREATE table BY Tibero;- → Tibero라는 사용자가 테이블을 생성할 때 더 이상 감사 기록을 남기지 않음
SYS 사용자 감사 설정 방법
<$TB_SID.tip> 파일을 아래 내용처럼 입력 또는 수정
예시)
AUDIT_SYS_OPERATIONS=Y
AUDIT_FILE_DEST=/home/Tibero/audit/audit_trail.log
AUDIT_FILE_SIZE=10M
SYS사용자의 명령을 감사하도록 설정하면 수행한 모든 동작이 OS 파일에 기록되며 보안상의 이유로 데이터 베이스에는 기록되지 않음
PostgreSQL
Step 1) Log 감사 설정 여부 확인
Step 2) postgresql.conf 파일 내 logging_collector을 on으로설정