본문 바로가기
  • (개인)정보보호/최신ICT 정보 공유 블로그
(부제) 나는 CISO 이다/ISMS-P 인증심사

(ISMS-P) (Oracle) Database Audit Log 관리 방법

by 노벰버맨 2021. 6. 24.

1. Database Audit의 개요
가. Database Audit의 정의
-Database 사용자가 권한을 부여받아 Database를 이용할 경우, 승인되지 않은 작업을 수행하거나 적절한 권한이 없는 사용자가 계정을 도용하여 접근할 수 있으므로 추후 책임추적성을 확보하기 위해 제공하는 기법

나. Database Audit의 특징
-(Database 감시), 사용자가 데이터를 조작하거나 조회 시 관련 로그 저장
-(책임추적성), 내부감사 또는 사고 발생 시 저장된 로그를 검토하여 조치 가능
-(Database 성능 저하), 운영 서비스에서 상세한 로그를 저장할 경우 성능 저하의 원인이 될 수 있어 DBA가 설정 가능
-(Audit Trail), Database의 이벤트에 대한 정보를 저장 가능

-(Audit Log 저장), OS, DB, XML 등에 감사 로그 저장

2. Database Audit의 종류 및 관리

가. Database Audit의 종류 (ORACLE)

구분 설명 명령어
Statement Auditing -CREATE TABLE, DROP USER등의 SQL문장에 대해서 Audit 가능 AUDIT statment[,statement]..
     [BY user[,user]]
     [BY {SESSION | ACCESS}]
     [WHENEVER [NOT] SUCCESSFUL]
Priviledge Auditing -시스템 권한을 부여받은 사용자가 그 권한으로 사용한 모든 문장 감사 AUDIT privilege [,privilege]..
     [BY user[,user]]
     [BY {SESSION|ACCESS}]
     [WHENEVER [NOT] SUCCESSFUL]
Object Auditing -특정스키마 오브젝트에 수행되는 명령문을 감사 AUDIT statment[,statement]..
  ON {[schema.]object|DEFAULT}
     [BY {SESSION|ACCESS}]
     [WHENEVER [NOT] SUCCESSFUL]

-Database에 영향을 끼치는 작업을 감시하거나 특정 Database 작업에 모니터링 정보 수집

나. Database Audit의 관리

구분 설명 명령어
Audit 파라미터 보기 audit_sys_operations 값을 true로 변경
audit_trail은 Audit 저장 위치 지정
show parameter audit
(결과)
NAME                                     TYPE        VALUE
------------------------------------ ----------- ------------------
audit_file_dest                       string       .../adump
audit_sys_operations             boolean   FALSE
audit_syslog_level                  string
audit_trail                               string       DB
unified_audit_sga_queue_size         integer     1048576
Audit 활성화 Audit 기록을 db에 저장하도록 설정한 예시 - init<ORACLE_SID>.ora 파일
alter system set AUDIT_TRAIL=db scope=spfile;
Audit 결과 보기 Audit를 통해 생성된 정보는 아래의Audit Trail Data Dictionary 뷰를 통해 확인 가능 STMT_AUDIT_OPTION_MAP
AUDIT_ACTIONS
ALL_DEF_AUDIT_OPTS
DBA_STMT_AUDIT_OPTS
DBA_PRIV_AUDIT_OPTS
DBA_OBJ_AUDIT_OPTS
USER_OBJ_AUDIT_OPTS
DBA_AUDIT_TRAIL
USER_AUDIT_TRAIL
DBA_AUDIT_OBJECT
USER_AUDIT_OBJECT
DBA_AUDIT_SESSION USER_AUDIT_SESSION
DBA_AUDIT_STATEMENT USER_AUDIT_STATEMENT
DBA_AUDIT_EXISTS
Audit 설정 예 sys 사용자가 수행하는 작업 추적 관리 alter system set audit_sys_operations=true scope=spfile
로그인 기록 추적 관리 audit session whenever successful
로그인 실패한 기록 추적 관리
audit session whenever not successful; 
Audit 확인 예 추적 관리되는 작업 정보 select * from dba_audit_trail;
로그인 시도 정보 select username from dba_audit_trail
where action_name = 'LOGON'
group by username having max(timestamp) < sysdate - 180;
패스워드 문제로 로그인 실패한 정보 select * from dba_audit_trail
where returncode=1017 AND timestamp > sysdate -7

-본문에 기술된 Database의 명령문은 실제 실행 여부에 대한 검증은 되지 않았습니다. (관련 명령어의 옵션 중심으로 작성)

댓글