0 / 0
영어 버전 문서로 돌아가기
Data Virtualization ' Db2 감사 기능을 통한 데이터 액세스 모니터링
마지막 업데이트 날짜: 2024년 11월 26일
Data Virtualization 감사 정책을 사용하여 데이터 액세스 모니터링하기

민감한 데이터에 대한 액세스를 관리하기 위해 인증 및 액세스 제어 메커니즘을 사용하여 데이터 액세스에 대한 규칙 및 제어를 설정할 수 있습니다. 그러나 알 수 없거나 허용되지 않는 동작을 방지하고 발견하기 위해 Db2® 감사 기능을 사용하여 데이터 액세스를 모니터할 수 있습니다.

원하지 않는 데이터 액세스 및 후속 분석을 성공적으로 모니터링하면 데이터 액세스 제어가 향상되며, 궁극적으로 데이터에 대해 악의적이거나 부주의한 무단 액세스를 방지할 수 있습니다. 시스템 관리 조치를 포함하여 애플리케이션 및 각 사용자 액세스의 모니터링은 사용자 데이터베이스 시스템에서의 활동의 실행기록 레코드를 제공할 수 있습니다.

Db2 감사 기능을 사용하여 일련의 사전 정의된 데이터베이스 이벤트에 대한 감사 추적을 생성하고 유지보수할 수 있습니다. 감사에 사용 가능한 이벤트의 각 카테고리에 대해 하나의 단어 키워드를 사용하여 카테고리 이름 뒤에 카테고리 유형을 식별합니다. 감사에 사용 가능한 이벤트의 범주는 다음과 같습니다.
감사(AUDIT)
감사 설정이 변경될 때 또는 감사 로그가 액세스될 때 레코드를 생성합니다.
권한 확인(CHECKING)
Db2 데이터베이스 오브젝트 또는 기능에 액세스하거나 조작하려는 시도의 권한 부여 검사 중에 레코드를 생성합니다.
오브젝트 유지보수(OBJMAINT)
데이터 오브젝트를 작성 또는 삭제할 때 또는 특정 오브젝트를 변경하는 경우 레코드를 생성합니다.
보안 유지 관리(SECMAINT)
다음 조건에 대한 레코드를 생성합니다.
  • 오브젝트 특권 또는 데이터베이스 권한을 부여하거나 취소합니다.
  • 보안 레이블 또는 면제를 부여하거나 취소합니다.
  • 그룹 권한 부여, 역할 권한 부여 또는 LBAC 보안 정책의 속성 대체 또는 제한
  • SETSESSIONUSER 특권을 부여하거나 취소합니다.
  • SYSADM_GROUP, SYSCTRL_GROUP, SYSMAINT_GROUP 또는 SYSMON_GROUP 구성 매개변수를 수정하는 경우.
시스템 관리(SYSADMIN)
SYSADM, SYSMAINT 또는 SYSCTRL 권한이 필요한 조작이 수행될 때 레코드를 생성합니다.
사용자 유효성 검증(VALIDATE)
사용자를 인증하거나 시스템 보안 정보를 검색할 때 레코드를 생성합니다.
Operation Context(CONTEXT)
데이터베이스 조작이 수행될 때 조작 컨텍스트를 표시하기 위해 레코드를 생성합니다. 이 범주를 사용하면 감사 로그 파일을 더 잘 해석할 수 있습니다. 로그의 이벤트 상관자 필드를 사용할 때, 이벤트 그룹은 다시 하나의 데이터베이스 조작에 연관될 수 있습니다. 예를 들어, 동적 쿼리에 대한 쿼리 명령문, 정적 쿼리를 위한 패키지 ID 또는 CONNECT와 같이 수행되는 조작 유형의 표시기는 감사 결과를 분석할 때 필요한 컨텍스트를 제공할 수 있습니다.
실행(EXECUTE)
SQL문 실행 중 레코드를 생성합니다.

나열된 범주에 대해 실패 또는 성공 중 하나를 감사하거나 둘 다 감사할 수 있습니다.

데이터베이스 서버에 대한 조작을 수행하면 여러 개의 레코드가 생성될 수 있습니다. 감사 로그에 생성되는 실제 레코드 수는 감사 기능 구성에 지정된 기록할 이벤트 범주 수에 따라 달라집니다. 또한 성공, 실패 또는 둘 다 감사되는지 여부에 따라 다릅니다. 감사할 이벤트를 선택하는 것이 중요합니다.

이 기능에서 생성된 레코드는 각 테이블이 각 카테고리에 해당하는 AUDIT 테이블 세트에서 볼 수 있습니다. 이러한 레코드의 분석은 시스템 오용을 식별할 수 있는 사용 패턴을 표시할 수 있습니다. 오용이 식별되면 시스템 오용을 줄이거나 제거하기 위해 조치를 취할 수 있습니다.

감사 기능은 데이터베이스 레벨에서 감사하는 기능을 제공합니다. 관리자 그룹의 모든 멤버는 이러한 감사 정보가 수집되는 시기(예: 권한 부여 ID, 데이터베이스 권한, 트러스트된 컨텍스트 또는 특정 테이블)를 제어하도록 감사 정책을 구성할 수 있습니다.

빠른 시작

  • AUDIT_ALL은 배치 중에 구성되는 사전정의된 정책입니다. 이 정책은 감사 레코드의 모든 카테고리에 대한 모든 성공 및 실패를 감사합니다. 사용자 요구에 맞는 사용자 정의 정책을 작성하는 것이 좋습니다.
  • AUDIT_UPDATE는 감사 레코드를 추출하여 AUDIT.* 테이블로 로드하는 사전정의된 프로시저입니다. tables.
  • AUDIT문에서는 사용자가 SECADM 권한을 가져야 합니다. AUDIT.* 테이블의 데이터를 보기 위해 SELECT 권한이 부여된 사용자는 테이블에 액세스할 수 있습니다.
중요: 감사 정책이 사용 가능하고 감사 태스크가 스케줄된 경우 AUDIT.* AUDIT.* 테이블은 시스템에 공간을 누적합니다. AUDIT.* 테이블이 사용하는 스토리지를 관리해야 합니다 . tables. 감사 데이터를 주기적으로 내보내어 오프라인으로 저장하고 AUDIT.* 태이블의 해당 데이터를 자동으로 정리해야 합니다 .* tables.
AUDIT가 각 역할에 대한 서비스의 모든 이벤트를 캡처하도록 함
AUDIT ROLE DV_ADMIN USING POLICY AUDIT_ALL;
AUDIT ROLE DV_ENGINEER USING POLICY AUDIT_ALL;
AUDIT ROLE DV_STEWARD USING POLICY AUDIT_ALL;
AUDIT ROLE DV_WORKER USING POLICY AUDIT_ALL;
스케줄된 감사 레코드를 감사 테이블로 15분마다 가져오도록 스케줄된 감사 업데이트 태스크를 작성하려면(업데이트 사이의 최소 간격)
CALL SYSPROC.ADMIN_TASK_ADD( 'AUDIT_UPDATE', NULL, NULL, NULL, '*/15 * * * *', 'AUDIT', 'UPDATE', NULL, NULL, 'Periodically update to audit tables' );
8개의 감사 이벤트 카테고리에서 감사 레코드를 보려면 다음을 수행하십시오.
select * from AUDIT.AUDIT;
select * from AUDIT.CHECKING;
select * from AUDIT.CONTEXT;
select * from AUDIT.EXCUTE;
select * from AUDIT.OBJMAINT;
select * from AUDIT.SECMAINT;
select * from AUDIT.SYSADMIN;
select * from AUDIT.VALIDATE;

자세한 정보는 감사 정책의 내용을 참조하십시오.


감사 정책 작성
CREATE AUDIT POLICY policy_name CATEGORIES category or ALL STATUS status ERROR TYPE NORMAL;

자세한 정보는 CREATE AUDIT POLICY 문의 내용을 참조하십시오.

감사 규정 이름
이름이 고유하고 해당 용도를 쉽게 식별할 수 있는지 확인하십시오(예: AUDIT_SOC2_COMPLIANCE 또는 AUDIT_LOGIN_ONLY). 데이터베이스의 내부 시스템 이름에 예약되어 있으므로 SYS(으)로 이름을 시작하지 마십시오.
감사할 카테고리
정책은 감사할 카테고리를 판별합니다. 이 정책을 다른 데이터베이스 오브젝트에 적용하여 해당 오브젝트 사용을 감사하는 방법을 판별할 수 있습니다. 감사에는 사용 가능한 카테고리가 8개 있습니다. 구성된 카테고리가 많을수록 더 많은 정보가 감사되고 계산 공간을 차지하는 감사 버퍼에 누적됩니다. 사용자의 목적에 필요한 사항을 이해하는 것은 시스템의 계산 공간을 과부하하는 것을 방지하는 데 중요합니다. 요약은 각 사용 가능한 카테고리를 설명합니다. ALL이(가) 카테고리 옵션으로 지정된 경우 다른 카테고리를 지정할 수 없습니다.
대부분의 보안 표준을 준수하기 위해 다음 목록에서 권장되는 카테고리는 액세스 제어, 인증 및 권한 부여된 액세스 모니터링을 처리합니다. 이러한 카테고리를 사용하여 정책을 구성하면 보안을 유지하는 동안 최소한의 오버헤드가 발생합니다.
  • EXECUTE WITHOUT DATA - 액세스 제어
  • VALIDATE - 인증
  • SECMAINT - 권한 부여된 액세스 모니터링
또한 각 카테고리에 대해 성공 및 실패 시나리오를 모두 감사해야 하며 오류 유형은 SQL 코드 오류만 로그해야 합니다.
  • STATUS BOTH
  • ERROR TYPE NORMAL


감사 정책 사용 시작
AUDIT database_entity USING POLICY policy_name;

자세한 정보는 AUDIT 문의 내용을 참조하십시오.



사용자 정의 감사 정책 구성

사용자 정의된 감사 정책을 구성하여 인증 요청을 캡처하고 SQL 명령을 성공적으로 실행하고 이를 사용으로 설정할 수 있습니다.

CREATE AUDIT POLICY AUDIT_VALIDATE_EXECUTE CATEGORIES VALIDATE STATUS BOTH, EXECUTE STATUS SUCCESS ERROR TYPE NORMAL;
감사할 데이터베이스 오브젝트
전체 데이터베이스를 감사하면 계산 공간 과부하가 발생합니다. 권장사항은 정책을 적용할 테이블 및 연관된 구체화된 쿼리 테이블(MQT)을 식별하는 것입니다.
주: 테이블에 적용되는 감사 규정은 해당 테이블을 기반으로 하는 구체화된 쿼리 테이블 (MQT) 에 적용되지 않습니다. 감사 정책을 테이블과 연관시키는 경우 해당 정책을 해당 테이블을 기반으로 하는 임의의 MQT와 연관시키는 것이 권장됩니다. 컴파일러는 SQL문이 기본 테이블을 참조한다고 해도 MQT를 자동으로 사용할 수 있습니다. 그러나, 기본 테이블에 사용 중인 감사 정책은 여전히 효력이 있습니다.

다른 권장 구성은 그룹 또는 역할에 정책을 적용하는 것입니다. 이 구성을 사용하여 예기치 않은 조치를 수행하는 그룹 및 역할의 사용자를 모니터할 수 있습니다. 전체 데이터베이스에 정책을 적용하도록 선택하는 경우, 정책이 모든 카테고리의 레코드를 보존하지 않는지 확인하십시오.

테이블에 대한 감사 정책 사용
AUDIT TABLE CUSTOMTABLE USING POLICY AUDIT_VALIDATE_EXECUTE;

또한 인증 요청 (성공 및 실패 모두) 만 캡처하고 이를 사용하도록 사용자 정의된 감사 정책을 구성할 수 있습니다.

CREATE AUDIT POLICY AUDIT_VALIDATE_ONLY CATEGORIES VALIDATE STATUS BOTH ERROR TYPE NORMAL;


작성된 모든 감사 정책 보기
select * from SYSCAT.AUDITPOLICIES;
다음 예제 출력은 이전 SELECT문을 실행한 결과입니다.

AUDITPOLICYNAME              AUDITPOLICYID CREATE_TIME                ALTER_TIME                 AUDITSTATUS CONTEXTSTATUS VALIDATESTATUS CHECKINGSTATUS SECMAINTSTATUS OBJMAINTSTATUS SYSADMINSTATUS EXECUTESTATUS EXECUTEWITHDATA ERRORTYPE REMARKS

---------------------------- ------------- -------------------------- -------------------------- ----------- ------------- -------------- -------------- -------------- -------------- -------------- ------------- --------------- --------- -------

AUDIT_VALIDATE_ONLY                    108 2018-07-23-21.00.57.024758 2018-07-23-21.00.57.024758 N           N             B              N              N              N              N              N             N               N         -

AUDIT_ALL                              106 2018-07-23-20.51.18.017062 2018-07-23-20.51.18.017062 B           B             B              B              B              B              B              B             N               N         -

  2 record(s) selected.


현재 사용 중인 감사 정책을 확인하십시오.
select * from SYSCAT.AUDITUSE;
다음 예제 출력은 이전 SELECT문을 실행한 결과입니다.

AUDITPOLICYNAME           AUDITPOLICYID OBJECTTYPE SUBOBJECTTYPE OBJECTSCHEMA  OBJECTNAME        AUDITEXCEPTIONENABLED

------------------------- ------------- ---------- ------------- ------------- ----------------- ---------------------

AUDIT_VALIDATE_ONLY                 108                          -             CURRENT SERVER    N

  1 record(s) selected.


데이터베이스 엔티티에 대한 감사 중지

데이터베이스 엔티티에서 감사를 중지하려면 정책을 제거해야 합니다.

AUDIT database_entity REMOVE POLICY;

자세한 정보는 AUDIT 문의 내용을 참조하십시오.



그룹에 대한 감사 중지
AUDIT GROUP BLUUSERS REMOVE POLICY;


스케줄된 태스크 작성

자세한 정보는 ADMIN_TASK_ADD 프로시저-새 태스크 스케줄의 내용을 참조하십시오.

스케줄된 감사 레코드를 20분마다 감사 테이블로 가져오기 위해 스케줄된 감사 업데이트 태스크를 작성하려면 다음을 수행하십시오.
CALL SYSPROC.ADMIN_TASK_ADD( 'AUDIT_UPDATE', NULL, NULL, NULL, '*/20 * * * *', 'AUDIT', 'UPDATE', NULL, NULL, 'Periodically update to audit tables' );
자세한 정보는 UNIX 크론 형식의 스케줄 형식을 참조하십시오.
스케줄 빈도
감사 로그를 아카이브하는 사전 정의된 태스크를 실행하는 빈도는 이 테스트의 범위를 벗어났지만 실제 고객 상황에서 수집되는 권장사항을 참고할 가치가 있습니다. 데이터베이스가 더 큰 경우 권장사항은 매일 15분 동안 아카이브 태스크를 실행하는 것입니다. 이로 인해 예기치 않은 성능 문제가 발생하는 경우 데이터베이스가 복구될 수 있습니다. 정책이 권장되는 대로 구성된 경우 감사 버퍼는 해당 시간 프레임 내에 워크로드를 포함할 수 있어야 합니다. 성능 테스트가 표시되면, 복잡한 쿼리가 감사 레코드의 아카이브와 동시에 실행되는 경우 성능 문제가 예상됩니다.


스케줄된 태스크 수정하기

자세한 정보는 ADMIN_TASK_UPDATE 프로시저 - 기존 태스크 업데이트의 내용을 참조하십시오.

스케줄된 감사 업데이트 태스크를 수정하여 매 20분마다 최신 감사 레코드를 감사 테이블로 가져오십시오.
CALL SYSPROC.ADMIN_TASK_UPDATE( 'AUDIT_UPDATE', NULL, NULL, NULL, '*/20 * * * *', 'Periodically update to audit tables every 20 minutes' );
스케줄된 감사 갱신 태스크를 제거하려면 다음을 수행하십시오.
CALL SYSPROC.ADMIN_TASK_REMOVE( 'AUDIT_UPDATE', NULL );
자세한 정보는 ADMIN_TASK_REMOVE 프로시저-스케줄된 태스크 또는 태스크 상태 레코드 제거의 내용을 참조하십시오.


스케줄된 감사 업데이트 태스크의 상태 모니터
select * from SYSTOOLS.ADMIN_TASK_STATUS;
다음 예제 출력은 이전 SELECT문을 실행한 결과입니다.

  NAME          TASKID  STATUS     AGENT_ID     INVOCATION  BEGIN_TIME                 END_TIME                   SQLCODE  SQLSTATE SQLERRMC RC
  ------------- ------- ---------- ------------ ----------- -------------------------- -------------------------- -------- -------- -------- -----
  AUDIT_UPDATE        1 COMPLETE          16433           1 2018-07-23-21.50.00.135211 2018-07-23-21.50.10.584127        0          x''          0
  AUDIT_UPDATE        1 RUNNING           16448           2 2018-07-23-21.55.00.608060 -                                 - -        -            -

    2 record(s) selected.
  


가장 최근의 감사 레코드를 AUDIT.* 즉시 테이블
CALL AUDIT.UPDATE();
참고: 이 프로시저 호출을 실행한 후 다음 메시지가 표시될 수 있습니다.
SQL1307N  보안 감사 기능 호출 중에 오류가 발생했습니다.  Reason Code: "9".

이 메시지는 마지막으로 감사 테이블에 데이터가 로드된 이후 활동이 없음을 표시합니다. 시스템 오류는 표시하지 않습니다.


일반적인 AI 검색 및 응답
이러한 응답은 제품 문서의 컨텐츠를 기반으로 하는 watsonx.ai 의 대형 언어 모델에 의해 생성됩니다. 자세히 알아보기