Oracle 보안 관리 Audit 10편 (Directory, Function, Procedure, Package, Trigger, Network Audit)

안녕하세요 Thinking Man 입니다.

이번 글에서는 기타 Object(Directory, Function, Procedure, Package)와 Network Audit을 하는 방법에 대해 알아보도록 하겠습니다.

이번 글을 읽게 되면 기타 Object 및 Network 에 대한 감사 방법과 특징, 감사를 제거하는 방법에 대해서 알 수 있습니다.

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

 

Network Audit

 

DIRECTORY AUDIT

 

DIRECTORY 감사 정보

Oracle의 Directory Object 도 감사할 수 있습니다.

사용자가 생성한 디렉토리에 파일을 읽고 쓰는 프로그램이 있을 때 해당 디렉토리를 사용하는 프로그램의 사용자를 감사할 수 있습니다.

 

DIRECTORY 감사 수행

AUDIT 문을 사용하여 디렉토리를 감사 할 수 있습니다. 아래 예제는 export 라는 디렉토리에 EXECUTE 권한을 감사하는 예제입니다.

예제) DIRECTORY 감사

AUDIT EXECUTE ON DIRECTORY export BY ACCESS;

 

DIRECTORY 감사 중지

감사 중인 디렉토리를 감사 중단하려면 아래 예제와 같이 NOAUDIT 을 사용합니다.

NOAUDIT EXECUTE ON DIRECTORY export;

 

 

FUNCTION, PROCEDURE, PACKAGE, TRIGGER AUDIT

 

FUNCTION, PROCEDURE, PACKAGE, TRIGGER 감사 정보

Oracle의 Function, Procedure, Package, Trigger 또한 감사할 수 있으며 특징은 아래와 같습니다.

  • 독립적인 함수, 독립적인 프로시져, 독립적인 PL/SQL 패키지를 개별적으로 감사 가능합니다.
  • PL/SQL 패키지를 감사할 경우에는 패키지 내부의 모든 함수와 프로시져 또한 감사합니다.
  • 모든 EXECUTE 를 감사할 경우 Oracle DB의 모든 함수, 프로시져, 패키지, 트리거를 감사합니다.
  • PL/SQL 패키지 내부에 있는 개별 함수나 프로시져만 감사하는것은 불가능합니다.

 

 Oracle Virtual Private 정책과 관련된 함수를 감사하려면 아래 내용을 참고하세요

Dynamic Policy : Oracle DB는 정책 함수를 SQL 문 구문 분석 중, 실행 중에 두 번 평가합니다. 그 결과 각 평가에 대해 두 개의 감사 레코드가 생성됩니다.

Static Policy : Oracle DB는 정책 함수를 한 번 평가한 다음 SGA에 Caching합니다. 그 결과 한 번의 감사 레코드만 생성됩니다.

Context Sensitive Policy : Oracle DB는 정책 함수를 SQL 문 구문 분석 중에 한 번 실행합니다. 그 결과 한 번의 감사 레코드만 생성됩니다.

 

FUNCTION, PROCEDURE, PACKAGE, TRIGGER Audit 설정

아래는 데이터베이스 내의 모든 사용자가 수행하는 모든 함수, 프로시져, 패키지, 트리거를 감사하는 예제입니다.

예제)

AUDIT EXECUTE PROCEDURE BY ACCESS;

 

아래는 사용자 thinker가 수행하는 함수, 프로시저, 패키지, 트리거의 성공과 실패한 실행을 모두 감사하는 예제입니다.

예제)

AUDIT EXECUTE PROCEDURE BY thinker BY ACCESS;

 

아래는 예제 9-20은 thinker 스키마 내에 있는 test_audit라는 개별 프로시저의 성공적인 수행만 감사하는 예제입니다. 아래 예제는 개별 함수, 트리거에도 동일하게 적용됩니다.

예제)

AUDIT EXECUTE ON thinker.test_audit BY ACCESS WHENEVER SUCCESSFUL;

 

FUNCTION, PROCEDURE, PACKAGE, TRIGGER Audit 제거

함수, 프로시저, 및 트리거 감사를 제거하려면 NOAUDIT 문을 사용하면 됩니다.

NOAUDIT EXECUTE PROCEDURE; 
NOAUDIT EXECUTE PROCEDURE BY thinker; 
NOAUDIT EXECUTE ON thinker.test_audit;

 

NETWORK AUDIT

 

NETWORK AUDIT의 정보

Oracle에서는 네트워크 프로토콜의 예상치 못한 오류나 네트워크의 내부적인 오류를 AUDIT을 사용하여 감사할 수 있습니다.

이 네트워크 감사는 클라이언트와의 네트워크 통신 중 발생하는 오류를 파악할 수 있습니다. 이런 오류는 SQL*Net 드라이버에서 발생한 경우입니다.

네트워크 오류는 원인이 여러가지가 있을 수 있습니다.

 

예를 들어, 데이터베이스 엔지니어가 테스트 목적으로 설정한 내부 이벤트가 네트워크 오류를 발생시킬 수 있습니다.

다른 원인으로는 암호화를 위한 충돌하는 구성 설정, 예상된 암호화를 생성하거나 처리하기 위해 필요한 정보를 찾지 못한 네트워크와 같은 것이 있습니다.

 

네트워크 감사에서 DBA_AUDIT_TRAIL의 ACTION = 122 (NETWORK ERROR) 는 연결 실패가 아닙니다.

네트워크 감사는 데이터가 네트워크를 통해 전송되는 과정에 포커스 되어 있습니다.

 

네트워크의 감사 레코드는 DBA_AUDIT_TRAIL View의 COMMENT_TEXT 컬럼에 클라이언트의 인증 유형 및 SQL*Net 주소(사용 가능한 경우)를 아래와 같은 형식으로 표시됩니다.

Authenticated by: authentication_type; Client Address: SQLNetAddress_of_client

Authenticated by : DATABASE, NETWORK, PROXY 3가지 값 중 하나가 표시됩니다.

Client Address : SQLNetAddress_of_client 부분은 이 정보를 사용할 수 있는 경우에만 나타납니다.

 

아래 표는 네트워크 오류의 케이스 별 원인과 해결 방법을 나타내며 대표적인 네 가지 오류에 대해 보여주고 있습니다.

표) 감사 가능한 네트워크 오류 조건

Error Cause Action
TNS-02507
암호화 알고리즘이 설치되지 않음
알고리즘을 선택한 후 서버는 해당 알고리즘의 인덱스를 찾지 못했습니다. 이는 알고리즘이 (간접적으로) 그 목록에서 선택되었기 때문에 불가능해야 합니다. 자세한 내용은 추적을 활성화하고 작업을 다시 실행하십시오. (이 오류는 일반적으로 사용자에게 표시되지 않습니다.) 오류가 지속되면 Oracle 서비스에 문의 필요.
TNS-12648
암호화 또는 데이터 무결성 알고리즘 목록이 비어 있음
Oracle Advanced Security 알고리즘 목록 매개변수가 비어 있었습니다. 최소한 하나의 설치된 알고리즘의 이름을 포함하도록 목록을 변경하거나 모든 설치된 알고리즘을 허용하지 않는 경우 목록을 제거하십시오.
TNS-12649
알려지지 않은 암호화 또는 데이터 무결성 알고리즘
Oracle Advanced Security 알고리즘 목록에 인식되지 않는 알고리즘 이름이 포함되어 있었습니다. 해당 알고리즘 이름을 제거하거나, 철자가 틀렸다면 수정하거나, 누락된 알고리즘을 위한 드라이버를 설치하십시오.
TNS-12650
공통 암호화 또는 데이터 무결성 알고리즘이 없음
클라이언트와 서버는 암호화 또는 데이터 무결성에 대한 공통 알고리즘을 가지고 있지 않습니다. 중첩되는 알고리즘 세트를 선택하십시오. 다시 말해, 클라이언트 알고리즘 선택 중 하나를 서버 목록에 추가하거나, 서버 목록 선택 중 하나를 클라이언트 알고리즘에 추가하십시오.

 

NETWORK AUDIT 설정

AUDIT 문을 사용하여 네트워크 감사를 설정할 수 있습니다.

예제)

AUDIT NETWORK BY ACCESS;

 

NETWORK AUDIT 제거

NOAUDIT 문을 사용하여 감사중인 네트워크 감사를 제거할 수 있습니다.

예제)

NOAUDIT NETWORK;

 

같이 읽으면 좋은 글

> Oracle 보안 관리 Audit 9편 (Schema Object Audit)

> Oracle 보안 관리 Audit 8편 (SQL & Audit Privileges)

> Oracle 보안 관리 Audit 7편 (SQL Audit)

> Oracle 보안 관리 Audit 6편 (Audit 명령문)

> 다음글 (상세감사 1편)

1 thought on “Oracle 보안 관리 Audit 10편 (Directory, Function, Procedure, Package, Trigger, Network Audit)”

Comments are closed.