본문 바로가기
Database/Oracle

[ORACLE] DBA_AUDIT_TRAIL 완벽 가이드 : 오라클 감사 로그의 핵심 구조와 활용법

by Papa Martino V 2025. 10. 13.
728x90

DBA_AUDIT_TRAIL
[ORACLE] DBA_AUDIT_TRAIL

 

Oracle Database는 데이터의 무결성과 보안을 보장하기 위해 Audit(감사) 기능을 제공합니다. 그중에서도 DBA_AUDIT_TRAIL 뷰는 전체 감사 이벤트의 중심 저장소로, 데이터베이스 내에서 발생한 모든 감사 관련 활동(세션, 객체, 문장, 시스템 이벤트 등)을 통합 관리할 수 있도록 설계된 핵심 구성요소입니다. 이 글에서는 DBA_AUDIT_TRAIL의 구조, 주요 컬럼, 감사 활성화 방법, 실무 활용 전략 등을 전문가 관점에서 체계적으로 정리합니다.


1. DBA_AUDIT_TRAIL이란?

DBA_AUDIT_TRAIL은 Oracle 데이터베이스의 감사(Audit) 시스템이 기록한 모든 감사 이벤트를 조회할 수 있는 통합 뷰(View)입니다. 즉, 사용자가 수행한 로그인/로그오프, 객체 접근, SQL 명령 실행 등 모든 행위가 감사 설정(AUDIT 명령)에 따라 이 뷰에 기록됩니다. 감사 정보는 내부적으로 SYS.AUD$ 테이블에 저장되며, DBA_AUDIT_TRAIL은 이 테이블을 조회하기 위한 관리용 인터페이스 역할을 합니다. Oracle 12c 이후에는 UNIFIED_AUDIT_TRAIL이 도입되어 통합 감사 방식으로 전환되었으나, 기존 DBA_AUDIT_TRAIL은 여전히 레거시 환경이나 세밀한 감사 로그 확인 시 유용하게 사용됩니다.


2. DBA_AUDIT_TRAIL의 데이터 구조

컬럼명 데이터 타입 설명
USERNAME VARCHAR2(30) 감사를 발생시킨 사용자 이름
OS_USERNAME VARCHAR2(255) 운영체제 사용자 이름
USERHOST VARCHAR2(128) 접속 호스트명 또는 클라이언트 주소
TERMINAL VARCHAR2(255) 세션이 시작된 터미널 정보
TIMESTAMP DATE 감사 이벤트 발생 시간
OWNER VARCHAR2(30) 객체의 소유자 이름
OBJ_NAME VARCHAR2(128) 감사된 객체 이름 (테이블, 뷰, 프로시저 등)
ACTION_NAME VARCHAR2(40) 수행된 명령 이름 (‘SELECT’, ‘INSERT’, ‘ALTER SYSTEM’ 등)
RETURNCODE NUMBER 성공(0) 또는 오류 발생 시 오류 코드
PRIV_USED VARCHAR2(40) 명령 수행에 사용된 권한
COMMENT_TEXT VARCHAR2(4000) 감사 이벤트에 대한 추가 설명
SESSIONID NUMBER 세션 식별자
STATEMENTID NUMBER 트랜잭션 내 명령문 ID
LOGOFF_TIME DATE 세션 종료 시각
LOGOFF_LREAD NUMBER 세션 종료 시점의 논리적 읽기(Logical Read) 횟수
LOGOFF_PREAD NUMBER 세션 종료 시점의 물리적 읽기(Physical Read) 횟수
LOGOFF_LWRITE NUMBER 세션 종료 시점의 쓰기(Write) 횟수

3. DBA_AUDIT_TRAIL의 주요 특징

  • 통합 감사 기록: 세션, 객체, 명령문, 시스템 이벤트 등 모든 감사 정보를 단일 뷰에서 확인 가능
  • 이력 기반 분석: 사용자의 접근 패턴, 오류 발생 빈도, 권한 남용 탐지에 활용
  • 보안 감시 중심: 누가 언제 어떤 객체를 다루었는지 추적하여 내부 위협 대응 가능
  • 성능 지표 포함: LOGOFF 관련 통계 컬럼을 통해 세션별 리소스 사용량 분석 가능

4. DBA_AUDIT_TRAIL과 관련된 주요 뷰 비교

뷰 이름 설명 주요 목적 비교 요약
DBA_AUDIT_TRAIL 전체 감사 이벤트 기록 모든 감사 로그 통합 조회 감사의 중심 뷰
DBA_AUDIT_OBJECT 객체 접근 감사 로그 테이블, 뷰 등 객체 단위 감사 세밀한 객체 감사
DBA_AUDIT_SESSION 세션 로그인/로그오프 감사 사용자 세션 추적 접속 중심 감사
DBA_AUDIT_STATEMENT SQL 문 단위 감사 DDL/DML 명령 감사 명령 중심 감사
DBA_FGA_AUDIT_TRAIL 세밀한 정책 기반 감사(FGA) 조건부 감사 정책 관리 고급 보안 정책

5. 감사 기능 활성화 방법

감사 로그를 기록하려면 먼저 감사 기능을 활성화해야 합니다. Oracle은 AUDIT_TRAIL 초기화 파라미터를 통해 감사 저장 위치를 지정합니다.

-- 파라미터 확인
SHOW PARAMETER audit_trail;

-- 감사 활성화 (데이터베이스 저장 방식)
ALTER SYSTEM SET audit_trail = DB, EXTENDED SCOPE=SPFILE;

-- 데이터베이스 재시작 필요
SHUTDOWN IMMEDIATE;
STARTUP;

옵션별 설정값은 다음과 같습니다.

설정값 설명
NONE 감사 비활성화
DB 감사 로그를 SYS.AUD$ 테이블에 저장
DB, EXTENDED DB 저장 + SQL 바인드 및 텍스트 포함
OS 운영체제 파일에 감사 로그 저장
XML XML 파일 형식으로 저장
DBMS DBMS_AUDIT_MGMT 패키지 활용

6. DBA_AUDIT_TRAIL 조회 예시

SELECT USERNAME, ACTION_NAME, OBJ_NAME, OWNER, TIMESTAMP, RETURNCODE
FROM DBA_AUDIT_TRAIL
WHERE TIMESTAMP > SYSDATE - 1
ORDER BY TIMESTAMP DESC;

이 쿼리는 최근 1일간 발생한 감사 로그를 최신순으로 조회합니다. RETURNCODE가 0이 아닌 경우 실패한 명령을 의미하며, 보안 이벤트로 분석할 수 있습니다.


7. 보안 운영 및 실무 활용 전략

① 비인가 접근 탐지

DBA_AUDIT_TRAIL을 이용하면 로그인 실패, 무단 접근, 권한 부족 오류 등을 신속하게 탐지할 수 있습니다. 예를 들어, 비정상적인 IP에서 반복적으로 로그인 실패 로그가 발생하면 침입 시도로 간주할 수 있습니다.

② 변경 이력 관리

DDL 명령(예: CREATE, DROP, ALTER)은 데이터베이스 구조 변경과 직결됩니다. 이 뷰를 활용하면 누가 어떤 객체를 언제 수정했는지 명확히 기록하여, 변경 추적 보고서를 자동화할 수 있습니다.

③ 성능 분석 연계

LOGOFF_* 컬럼을 사용하면 각 세션별 리소스 사용량(LREAD, PREAD, LWRITE)을 집계하여 사용자 활동 패턴과 성능 부하 지점을 파악할 수 있습니다.

④ SIEM 연동

보안관리시스템(SIEM)과 연계하여 DBA_AUDIT_TRAIL 데이터를 실시간 분석하면, 내부자 위협, 계정 도용, 시스템 명령 실행 패턴 등을 즉시 탐지할 수 있습니다.


8. 감사 로그 관리 및 성능 최적화

  • 로그 용량 관리: SYS.AUD$ 테이블은 SYSTEM 테이블스페이스에 저장되므로 주기적인 PURGE 필요
  • DBMS_AUDIT_MGMT 패키지: 감사 데이터 보존 정책 자동화 가능
  • 감사 대상 최소화: 필요 최소한의 객체/명령만 감사하여 성능 영향 최소화
  • 분리 보관: 장기 감사 데이터는 별도 저장소(예: AUDIT_ARCHIVE)로 이동
BEGIN
  DBMS_AUDIT_MGMT.INIT_CLEANUP(
    AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
    DEFAULT_CLEANUP_INTERVAL => 24
  );
END;
/

9. DBA_AUDIT_TRAIL vs UNIFIED_AUDIT_TRAIL

구분 DBA_AUDIT_TRAIL UNIFIED_AUDIT_TRAIL
감사 방식 기존 (Classic Audit) 통합 감사 (Unified Audit)
저장 위치 SYS.AUD$ 테이블 SYS.UNIFIED_AUDIT_TRAIL 뷰
성능 영향 상대적으로 높음 최적화된 내부 버퍼 기반
관리 편의성 별도 감사 정책 필요 단일 정책 관리 가능
지원 버전 모든 버전에서 사용 가능 12c 이상

Unified Audit 환경에서는 기존 DBA_AUDIT_TRAIL 로그도 자동 병합되어 관리되므로, 양 시스템을 혼합 운용할 경우 중복 감사를 피하기 위한 정책 정비가 필요합니다.


10. 결론

DBA_AUDIT_TRAIL은 Oracle 감사 체계의 중심이 되는 핵심 뷰로, 데이터베이스 내에서 발생하는 모든 이벤트를 한눈에 파악할 수 있습니다. 이를 통해 보안 위협 탐지, 데이터 무결성 보장, 규제 준수를 모두 달성할 수 있습니다. 특히, 정기적인 로그 분석과 자동화된 관리 정책을 병행하면, 운영 효율성과 보안성을 동시에 확보할 수 있는 강력한 관리 체계를 구축할 수 있습니다.


출처

728x90