Oracle 보안 관리 Audit 2편 (표준감사를 통한 활동 감사)

안녕하세요 Thinking Man 입니다.

지난글에 이어서 Audit 관련 내용을 이어서 작성해보도록 하겠습니다.

이 글은 Oracle 11gR2 공식 문서를 참고하여 작성하였습니다.

 

표준 감사를 통한 활동 감사

 

표준감사 정보

표준감사

표준 감사란 ?

표준 감사는 SQL, 권한, 스키마의 객체 및 네트워크 활동을 감사할 수 있습니다.

표준 감사는 “AUDIT” SQL 문을 사용하여 구성할 수 있으며 이 구성을 제거하기 위해서는 “NOAUDIT”를 사용합니다.

감사 레코드를 데이터베이스 감사 관련 테이블이나 운영 체제 파일로 저장 할 수 있습니다.

 

누가 표준 감사를 수행할 수 있나 ?

어떤 사용자든 자신의 스키마에 있는 객체에 대한 AUDIT 문을 사용하여 감사를 구성할 수 있습니다.

이 객체에 대한 감사 구성을 취소하려면 NOAUDIT 문을 사용하여 취소 할 수 있습니다.

이 작업을 수행하려면 추가적인 권한은 필요하지 않습니다.

AUDIT_TRAIL 매개변수 설정 여부와 상관없이 사용자는 AUDIT 문을 실행하여 감사를 설정할 수 있습니다.

감사가 비활성화된 상태에서 활성화하면 Oracle 데이터베이스는 AUDIT 문으로 설정한 감사 활동을 기록합니다.

“표준 감사 트레일 활성화 또는 비활성화”에서 표준 감사를 활성화하는 방법에 대해 설명합니다.

추가정보

다른 스키마의 Object를 감사하려면 사용자는 AUDIT ANY 시스템 권한을 가지고 있어야 합니다.

시스템 권한을 감사하려면 사용자는 AUDIT SYSTEM 권한을 가져야 합니다.

– O7_DICTIONARY_ACCESSIBILITY 초기화 매개변수가 FALSE(기본값)로 설정된 경우

SYS.AUD$ 및 SYS.FGA_LOG$ 테이블의 감사 데이터에 대한 DML 작업을 수행할 수 있는 사용자는 SYSDBA 권한을 가진 사용자뿐입니다.

Oracle에서는 더 높은 보안을 위해 O7_DICTIONARY_ACCESSIBILITY 매개변수를 FALSE로 설정하여 비-SYSDBA 사용자가 SYS 객체를 감사하지 못하도록 하는것을 권고하고 있습니다.

 

언제 표준 감사 레코드가 생성되나 ?

보안 관리자로서 전체 데이터베이스에 대한 표준 감사를 활성화 또는 비활성화 할 수 있습니다.

비활성화된 경우 감사 레코드는 생성되지 않습니다.

데이터베이스에서 감사가 활성화되어 있고 감사 구성이 수행되어야 하는 동작이 발생하면 Oracle은 SQL 문의 실행 단계 중 또는 실행 이후에 감사 레코드를 생성합니다.

Oracle 데이터베이스는 PL/SQL 프로그램 단위 내에서 필요한 경우에 개별적으로 SQL 문을 감사합니다.

감사 트레일 레코드의 생성 및 Insert는 사용자 트랜잭션의 커밋과는 독립적입니다. 다시 말해 사용자 트랜잭션이 롤백되더라도 감사 트레일 레코드는 유지됩니다.

DB 사용자가 데이터베이스에 연결할 때 유효한 문장 및 권한 감사 옵션은 세션 기간 동안 유효합니다.

세션이 연결되어진 경우에서 문장 및 권한 감사 옵션을 설정하거나 변경하더라도 해당 세션에서는 적용되지 않습니다.

수정된 문장 및 권한 감사 옵션은 현재 세션이 종료되고 새 세션이 생성될 때에만 적용됩니다.

반면, 스키마 객체 감사 옵션을 변경하면 현재 세션에 즉시 적용됩니다.

 

AUDIT_TRAIL 초기화 매개변수를 사용한 표준 감사 구성

 

표준 감사 트레일 활성화 또는 비활성화

표준 감사 트레일을 활성화하려면 AUDIT_TRAIL 초기화 매개변수를 설정해야 합니다.

이 설정은 감사 트레일을 데이터베이스 감사 트레일에 생성할지, 운영 체제 파일에 작성할지 또는 감사를 비활성화 할지를 결정합니다.

표준 감사 트레일을 활성화 또는 비활성화하려면 관리 권한으로 SQL*Plus에 로그인하고 ALTER SYSTEM 문을 사용해야 합니다.

그런 다음 데이터베이스 인스턴스를 다시 시작해야 합니다.

AUDIT_TRAIL 매개변수의 현재 값을 확인하려면 SQL*Plus에서 SHOW PARAMETER 명령을 사용합니다.

아래 예제는 AUDIT_TRAIL 매개변수 설정을 확인하는 방법을 보여줍니다.

예제) AUDIT_TRAIL 초기화 매개변수의 현재 값 확인

SHOW PARAMETER AUDIT_TRAIL
NAME                            TYPE    VALUE
———————————— ———– ——-
audit_trail                       string      DB

 

아래 예제는 SQL*Plus에 로그인하고 표준 감사 트레일을 활성화한 다음 데이터베이스 인스턴스를 다시 시작하는 방법을 보여줍니다.

예제) 표준 감사 트레일 활성화

CONNECT SYSTEM
Enter password: password 

ALTER SYSTEM SET AUDIT_TRAIL=DB SCOPE=SPFILE;
System altered. 

CONNECT SYS/AS SYSOPER
Enter password: password 

SHUTDOWN
Database closed.
Database dismounted.
ORACLE instance shut down. 

STARTUP
ORACLE instance started.

이 예제에서는 데이터베이스 인스턴스가 서버 매개변수 파일(SPFILE)을 사용하여 시작되었기 때문에 SCOPE 절을 사용합니다.

서버 매개변수 파일을 사용하여 데이터베이스 인스턴스를 시작하는 것이 권장되는 방법입니다.

서버 매개변수 파일을 구성하는 방법에 대한 정보는 Oracle 데이터베이스 관리자 가이드를 참조하십시오.

 

AUDIT_TRAIL 초기화 매개변수 설정

아래 표 AUDIT_TRAIL 초기화 매개변수에 사용할 수 있는 설정을 나열합니다.

표) AUDIT_TRAIL 초기화 매개변수 설정

AUDIT_TRAIL 값

설명

DB 감사 레코드를 데이터베이스 감사 트레일 (SYS.AUD$ 테이블)에 작성하도록 지시합니다. 필수 및 SYS 감사 레코드를 제외한 모든 감사 활동이 운영 체제 감사 트레일로 항상 작성됩니다. AUDIT_TRAIL 매개변수의 기본 값이 DB입니다.

데이터베이스가 읽기 전용 모드로 시작되고 AUDIT_TRAIL이 DB로 설정된 경우 Oracle은 AUDIT_TRAIL을 OS로 내부적으로 설정합니다.

DB, EXTENDED AUDIT_TRAIL=DB와 동일하게 작동하지만 사용 가능한 경우 SYS.AUD$ 테이블에 SQL 바인드 값 및 SQL 텍스트를 채웁니다.

DB,EXTENDED를 사용하면 감사 대상 작업에서 사용된 SQL 문을 캡처할 수 있습니다. 감사 활동을 일으킨 SQL 문과 관련된 모든 바인드 변수를 캡처할 수 있습니다.

그러나 CHAR, NCHAR, VARCHAR, VARCHAR2, NVARCHAR2, NUMBER, FLOAT, BINARY_FLOAT, BINARY_DOUBLE, LONG, ROWID, DATE, TIMESTAMP 및 TIMESTAMP WITH TIMEZONE과 같은 다음 열 데이터 유형만 캡처할 수 있습니다.

또한 DB, EXTENDED는 신용 카드 정보와 같은 민감한 데이터를 캡처할 수 있음을 염두에 두십시오.

데이터베이스가 읽기 전용 모드로 시작되고 AUDIT_TRAIL이 DB, EXTENDED로 설정된 경우 Oracle 데이터베이스는 AUDIT_TRAIL을 OS로 내부적으로 설정합니다.

다음 중 하나의 방법으로 DB, EXTENDED를 지정할 수 있습니다:

ALTER SYSTEM SET AUDIT_TRAIL=DB,EXTENDED SCOPE=SPFILE;

ALTER SYSTEM SET AUDIT_TRAIL=DB, EXTENDED SCOPE=SPFILE;

ALTER SYSTEM SET AUDIT_TRAIL=’DB’,’EXTENDED’ SCOPE=SPFILE;

ALTER SYSTEM SET AUDIT_TRAIL=EXTENDED,DB SCOPE=SPFILE;

ALTER SYSTEM SET AUDIT_TRAIL=EXTENDED, DB SCOPE=SPFILE;

그러나 DB, EXTENDED를 따옴표로 둘러싸지 마십시오.

예를 들어 다음과 같이 DB, EXTENDED를 따옴표로 둘러싸지 마십시오:

ALTER SYSTEM SET AUDIT_TRAIL=’DB, EXTENDED’ SCOPE=SPFILE;

OS 모든 감사 레코드를 운영 체제 파일로 지시합니다.

Oracle은 특히 초안 보안 데이터베이스 구성을 사용하는 경우 OS 설정을 사용하도록 권장합니다. 자세한 내용은 “운영 체제 감사 트레일의 장점”을 참조하십시오. 예제 9-3 “텍스트 파일 운영 체제 감사 트레일”도 참조하십시오.

AUDIT_TRAIL을 OS로 설정한 경우 다음 추가 초기화 매개변수를 설정해야 합니다.

AUDIT_FILE_DEST: 운영 체제 감사 레코드 파일의 위치를 지정합니다. UNIX 시스템에서는 기본 위치가 $ORACLE_BASE/admin/$ORACLE_SID/adump입니다. UNIX 시스템에서는 성능을 향상시키기 위해 AUDIT_FILE_DEST 매개변수를 Oracle 데이터베이스 인스턴스를 실행하는 호스트에 로컬로 연결된 디스크의 디렉터리로 설정하십시오. Windows에서는 OS 설정이 Windows 이벤트 뷰어의 Application 영역에 감사 트레일을 작성합니다.

AUDIT_SYS_OPERATIONS: SYSDBA 또는 SYSOPER 권한으로 연결한 사용자가 직접 발행한 최상위 SQL 문을 감사하려면 AUDIT_SYS_OPERATIONS를 TRUE로 설정하십시오. 이 감사를 활성화하려면 AUDIT_SYS_OPERATIONS를 TRUE로 설정하십시오.

AUDIT_SYS_OPERATIONS를 TRUE로 설정하고 AUDIT_TRAIL을 XML 또는 XML,EXTENDED로 설정한 경우 Oracle 데이터베이스는 SYS 감사 레코드를 운영 체제 XML 파일로 작성합니다.

AUDIT_SYSLOG_LEVEL: SYS 및 표준 OS 감사 레코드를 SYSLOG 유틸리티를 사용하여 시스템 감사 로그에 작성합니다. 이 옵션은 UNIX 환경에만 적용됩니다. 자세한 내용은 “Syslog 감사 구성”을 참조하십시오.

운영 체제 감사 트레일 관리를 참조하십시오.

XML XML 형식으로 운영 체제 감사 레코드 파일에 기록됩니다. XML 스키마에서 정의한 AuditRecord 노드의 모든 요소를 포함하지만 Sql_Text 및 Sql_Bind는 운영 체제 XML 감사 파일로 기록하지 않습니다. (.xsd 파일은 XML 감사 파일의 스키마 정의를 나타냅니다. XML 스키마는 XML 스키마 언어로 작성된 문서입니다.)

운영 체제 감사 트레일의 장점에 대한 자세한 내용은 “운영 체제 감사 트레일의 장점” 및 예제 9-4 “XML 파일 운영 체제 감사 Trail”를 참조하십시오.

XML 값을 설정하려면 AUDIT_FILE_DEST 매개변수도 설정해야 합니다. 모든 플랫폼, Windows를 포함한 모든 플랫폼에서 XML 감사 Trail 레코드의 기본 위치는 $ORACLE_BASE/admin/$ORACLE_SID/adump입니다.

XML AUDIT_TRAIL 값은 syslog 감사 파일에 영향을 주지 않습니다. 다시 말해 AUDIT_TRAIL 매개변수를 XML로 설정한 경우 syslog 감사 레코드는 여전히 텍스트 형식으로 기록됩니다. XML 파일 형식이 아닙니다.

SYS 및 의무적 감사 레코드의 출력을 다음과 같이 제어할 수 있습니다:

SYS 및 의무적 감사 파일을 XML 형식으로 운영 체제 파일에 기록하려면 AUDIT_TRAIL을 XML 또는 XML, EXTENDED로 설정하고 AUDIT_SYS_OPERATIONS를 TRUE로 설정하지만 AUDIT_SYSLOG_LEVEL 매개변수를 설정하지 마십시오.

SYS 및 의무적 감사 레코드를 syslog 감사 파일에 기록하고 표준 감사 레코드를 XML 감사 파일에 기록하려면 AUDIT_TRAIL을 XML 또는 XML, EXTENDED로 설정하고 AUDIT_SYS_OPERATIONS를 TRUE로 설정하고 AUDIT_SYSLOG_LEVEL 매개변수를 설정하십시오.

XML, EXTENDED

AUDIT_TRAIL=XML과 동일하게 작동하지만 운영 체제 XML 감사 파일에 SQL 텍스트와 SQL 바인드 정보를 포함합니다.

다음과 같이 XML, EXTENDED를 지정할 수 있습니다:

ALTER SYSTEM SET AUDIT_TRAIL=XML, EXTENDED SCOPE=SPFILE;

ALTER SYSTEM SET AUDIT_TRAIL=’XML’,’EXTENDED’ SCOPE=SPFILE;

아래와 같이 XML, EXTENDED를 따옴표로 둘러싸지 마십시오.

ALTER SYSTEM SET AUDIT_TRAIL=’XML, EXTENDED’ SCOPE=SPFILE;

다음 섹션도 참조하십시오:

“운영 체제 감사 Trail의 장점”

“민감한 정보 감사”

NONE 표준 감사를 비활성화합니다.

 

주의사항 :

AUDIT 또는 NOAUDIT 문을 실행한 후에 데이터베이스를 다시 시작할 필요가 없습니다.

AUDIT_TRAIL 초기화 매개변수를 변경한 경우와 같이 보편적인 변경을 수행한 경우에만 데이터베이스를 다시 시작해야 합니다.

상세 감사 또는 SYS 감사를 활성화하려면 AUDIT_TRAIL을 설정할 필요가 없습니다.

상세 감사의 경우 필요한 경우 상세 감사 정책을 추가하고 제거하여 모니터링하려는 특정 작업 또는 객체에 적용합니다.

SYS 감사를 활성화하려면 AUDIT_SYS_OPERATIONS 매개변수를 TRUE로 설정하십시오.

 

추가로 읽어봐야 할 글 목록

> Oracle Audit의 기본내용. Audit 이란 ?

2 thoughts on “Oracle 보안 관리 Audit 2편 (표준감사를 통한 활동 감사)”

Comments are closed.