콘텐츠로 이동

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) 정책 설정 후 감사 조건 적용

ALTER SYSTEM STOP AUDIT;
ALTER SYSTEM START AUDIT;
ALTER SYSTEM RELOAD AUDIT;

참고

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

Tibero

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

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

참고

감사를 설정하거나 해제하려면 다음 명령을 사용함 * 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 감사 설정 여부 확인

postgres=# SHOW logging_collector;
logging_collector
-------------------
on
(1 row)

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

logging_collector = on