Oracle 보안 관리 Audit 1편 (감사란 ?)

안녕하세요 Thinking Man 입니다.

저는 현재 약 13년째 IT 업계에서 Oracle DBA로 일하고 있습니다.

DBA로 일해오면서 audit 관리는 생소하였는데 기회가 되어 audit 데이터를 Archiving & Purge 작업을 하면서 Audit 기록하는 방법 및 관리 방법에 대해서 알아보게 되었습니다.

이번 글에서는 Oracle 보안 기능 중 Audit 에 대해서 알아보려고 합니다.

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

 

 

감사 정보

audit manage

 

감사란 무엇인가?

감사는 데이터베이스 사용자와 비 데이터베이스(어플리케이션) 사용자로부터 데이터베이스 사용을 모니터링하고 기록하는 것입니다.

감사를 SQL문의 유형별로 개별적으로 수행 할 수 있고 사용자 이름, 응용 프로그램, 시간 등과 같은 데이터 조합에 기반하여 수행할 수 있습니다.

성공적인 조치와 실패한 조치 모두를 감사할 수 있습니다. 감사를 사용하려면 감사를 활성화하고 감사해야 할 내용을 구성해야 합니다.

감사한 내용은 Oracle 내의 Dictionary 테이블 또는 DB 서버의 OS 파일 중 하나에 기록됩니다.

Oracle은 감사를 활성화하고 구성하는 것을 권장합니다.

감사는 강력한 내부 통제를 시행하는 효과적인 방법이며, 이를 통해 회사가 규정 준수 요구 사항을 충족할 수 있습니다.

이를 통해 비즈니스 운영을 모니터링하고 회사 정책에서 벗어날 수 있는 활동을 찾을 수 있습니다.

이렇게 함으로써 데이터베이스 및 응용 프로그램에 대한 엄격한 접근이 제어되며 임시 변경이 방지됩니다.

감사를 기본적으로 활성화하면 감사 및 규정 준수 인원을 위한 감사 기록을 생성할 수 있습니다.

감사에 대해 선택적으로 사용하고 비즈니스 규정 준수 요구 사항을 충족시키는지 확인해 보시길 바랍니다.

 

왜 감사를 사용하는가?

일반적으로 감사는 아래와 같은 활동을 수행하기 위해 사용됩니다:

작업한 내용에 대해 책임을 활성화합니다. 특정 스키마, 테이블 또는 행에 수행한 작업 또는 특정 내용에 영향을 미치는 작업을 포함합니다.

사용자(또는 침입자와 같은 다른 사용자)가 책임을 기반으로 부적절한 행동을 취하는 것을 방지 할 수 있습니다.

의심스러운 활동을 조사할 수 있습니다.  예를 들어, 사용자가 테이블에서 데이터를 삭제하면 보안 관리자는 데이터베이스에 대한 모든 연결 및 모든 테이블에서 성공 및 실패한 삭제를 감사하기로 결정할 수 있습니다.

권한이 없는 사용자의 조치를 관리자에게 알릴 수 있습니다. 예를 들어, 권한이 없는 사용자가 데이터를 변경 또는 삭제하거나 사용자가 예상보다 더 많은 권한을 가지고 있으면 사용자 권한을 재검토 할 수 있습니다.

특정 데이터베이스 활동에 대한 데이터를 모니터링하고 수집할 수 있습니다. 데이터베이스 관리자는 어떤 테이블이 업데이트 되고 있는지, 얼마나 많은 논리 I/O가 수행되었는지 또는 얼마나 많은 사용자가 연결 하는지에 대한 통계를 수집할 수 있습니다.

권한 또는 액세스 제어 구현 문제를 감지할 수 있습니다. 예를 들어, 다른 방법으로 데이터가 보호되어 있는 경우 예상대로 감사 레코드를 생성하지 않아야 하는 감사 정책을 만들 수 있습니다. 그러나 이러한 정책이 감사 레코드를 생성하면 다른 보안 제어가 올바르게 구현되지 않았음을 알게됩니다.

규정 준수를 위한 감사 요구 사항을 해결할 수 있습니다. 다음과 같은 규정은 공통 감사 관련 요구 사항을 갖고 있습니다:

사르반스-옥슬리법 / 건강보험 이동성 및 책임법 (HIPAA) / 자본 측정 및 자본 표준의 국제 수렴: 개정된 프레임워크 (Basel II) / 일본 개인 정보 법

 

데이터베이스 감사 트레일(Audit Trail) 보호

의심스러운 데이터베이스 활동을 기록하기 때문에, Audit 레코드의 무결성을 보호해야 합니다.

오라클 데이터베이스는 데이터베이스 감사 데이터를 SYS.AUD$SYS.FGA_LOG$ 테이블에 기록합니다.

SYS.AUD$ 및 SYS.FGA_LOG$ 테이블을 위한 객체 감사 옵션으로 생성된 감사 레코드는 관리자 권한으로 연결한 사용자에 의해만 감사 트레일에서 삭제할 수 있습니다.

관리자도 권한 없는 사용으로 감사됩니다.

데이터베이스 감사 트레일을 보호하는 다른 방법은 다음과 같습니다:

O7_DICTIONARY_ACCESSIBILITY 초기화 매개변수를 FALSE(기본값)로 설정합니다.

이러면 SYSDBA 권한을 가진 사용자만 SYS.AUD$ 및 SYS.FGA_LOG$ 테이블의 감사 데이터에 DML 조치를 수행할 수 있습니다.

기본 설치 시 O7_DICTIONARY_ACCESSIBILITY는 FALSE로 설정됩니다.

 

모든 플랫폼에서 항상 감사되는 활동

오라클 데이터베이스는 항상 특정 데이터베이스 관련 조치를 감사하고 해당 조치를 운영 체제 감사 파일에 기록합니다.

이 작업은 SYSDBA 또는 SYSOPER 권한으로 로그인한 모든 사용자의 조치를 포함합니다. 이를 의무 감사라고 합니다.

데이터베이스 감사 트레일을 활성화하더라도 (즉, AUDIT_TRAIL 매개변수를 DB로 설정한 경우) 오라클 데이터베이스는 여전히 의무 레코드를 운영 체제 파일에 기록합니다.

기본적으로 UNIX 및 Windows 시스템의 경우 파일은 $ORACLE_BASE/admin/$ORACLE_SID/adump 디렉터리에 생성 됩니다.

Windows 시스템에서는 Oracle 데이터베이스가 이 정보를 Windows 이벤트 뷰어에 기록합니다.

이 디렉토리의 위치를 AUDIT_FILE_DEST 초기화 매개변수로 변경할 수 있습니다.

 

최상의 감사 실천법

일반적인 규칙으로 감사 전략을 설계할 때는 규정 준수 요구 사항을 충족하기 위해 필요한 정보를 수집하되, 가장 큰 보안 우려를 일으키는 활동에 중점을 두어야 합니다.

예를 들어, 데이터베이스의 모든 테이블을 감사하는 것은 현실적이지 않지만 급여와 같은 민감한 데이터를 포함하는 테이블 열을 감사하는 것이 실용적입니다.

표준 및 세밀한 감사 모두 특정 활동에 중점을 둔 감사 정책을 설계하는 데 사용할 수 있는 메커니즘이 있습니다.

그리고 정기적으로 감사 추적 데이터를 보관하고 정리해야 합니다.

 

마치며

이번 글에서는 Audit이 무엇인지, 사용하는 이유 등의 기본적인 정보에 대해서 알아보았습니다.

다음글에서는 Audit에 대해 좀 더 상세한 내용으로 찾아뵙겠습니다.

감사합니다.

 

추가로 읽어봐야 할 글 목록

> 표준활동 감사를 통한 활동 감사

1 thought on “Oracle 보안 관리 Audit 1편 (감사란 ?)”

Comments are closed.