데이터 모델

데이터 모델은 모든 로그 유형에서 통합된 필드 세트를 구성하는 방법을 제공합니다

개요

데이터 모델을 사용하여 로그 유형 전반에 걸쳐 통합된 필드 집합을 구성하려면 다음을 생성하세요 매핑 여러 로그 유형의 이벤트 필드와 통합된 데이터 모델 이름 간의 Panther 관리 데이터 모델사용자 지정 모델 생성.

데이터 모델 사용 사례

예를 들어 네트워크 트래픽 로그에서 특정 출처 IP 주소를 확인하는 탐지를 여러 로그 유형에 걸쳐 사용하려고 할 수 있습니다. 이러한 로그 유형은 서로 다른 범주(예: DNS, Zeek, Apache)뿐만 아니라 서로 다른 공급업체에 걸쳐 있을 수 있습니다. 공통 로깅 표준이 없으면 이러한 각 로그 유형은 출처 IP를 서로 다른 필드 이름으로 나타낼 수 있습니다. 예를 들어 ipAddress, srcIP, 또는 ipaddr. 모니터링하려는 로그 유형이 많을수록 이 검사 로직은 더 복잡하고 번거로워집니다. 예를 들면 다음과 같을 수 있습니다:

(event.get('ipAddress') == '127.0.0.1' 또는 
event.get('srcIP') == '127.0.0.1' 또는 
event.get('ipaddr') == '127.0.0.1')

대신 이러한 각 로그 유형에 대해 데이터 모델을 정의하면 이벤트의 필드 이름을 데이터 모델 이름으로 변환할 수 있으므로 탐지는 단순히 데이터 모델 버전을 참조할 수 있습니다. 위의 로직은 다음과 같이 단순화됩니다:

event.udm('source_ip') == '127.0.0.1'

Panther 관리 데이터 모델

기본적으로 Panther는 다음과 같은 여러 로그 유형에 대해 내장 데이터 모델을 제공합니다. AWS.S3ServerAccess, AWS.VPCFlowOkta.SystemLog. 현재 지원되는 모든 데이터 모델은 panther-analysis 리포지토리의 여기arrow-up-right.

지원되는 데이터 모델 매핑의 이름은 아래 Panther 관리 데이터 모델 매핑 이름 표에.

사용자 지정 데이터 모델 생성 방법

사용자 지정 데이터 모델은 여러 방법으로 생성할 수 있습니다: Panther 콘솔에서, Panther 분석 도구(PAT)를 사용하거나, 또는 Panther API에서. 각 방법에 대한 생성 지침은 아래 탭을 참조하세요.

사용자 지정 데이터 모델 매핑은 Panther 관리 데이터 모델에서 참조된 이름또는 자체 사용자 지정 이름을 사용할 수 있습니다. 각 매핑은 이름 이벤트 필드(와 함께 경로 또는 필드 경로) 또는 사용자가 정의한 메서드(와 함께 필드 메서드 또는 메서드)에 매핑할 수 있습니다. 메서드로 매핑하는 경우에는 별도의 Python 파일(클라이언트 워크플로우를 사용하는 경우)에 메서드를 정의해야 하며, 이는 YAML 파일에서 파일명를 사용하거나, 또는 파이썬 모듈 필드로 콘솔에서 참조됩니다.

각 로그 유형에는 하나의 활성화된 데이터 모델만 지정할 수 있습니다(단, 단일 데이터 모델에 여러 매핑이 포함될 수 있음). 기존 데이터 모델을 변경하거나 업데이트하려면 기존 것을 비활성화한 다음 새로 활성화된 모델을 생성하세요.

Panther 콘솔에서 새 데이터 모델을 생성하려면:

  1. Panther 콘솔의 왼쪽 탐색 바에서 클릭하십시오 탐지.

  2. 다음 항목을 클릭하십시오 데이터 모델(Data Models). .The list of Data Models in the Panther Console is displayed

  3. 오른쪽 상단에서 클릭하십시오 새로 만들기.

  4. 아래 설정에서 양식 필드를 작성하세요.

    • 표시 이름: 이 데이터 모델에 대한 사용자 친화적인 표시 이름을 입력하세요.

    • ID: 이 데이터 모델에 대한 고유한 ID를 입력하세요.

    • 로그 유형: 이 데이터 모델이 적용될 로그 유형을 선택하세요. 데이터 모델당 하나의 로그 유형만 허용됩니다.

    • 활성화됨: 이 데이터 모델을 활성화할지 비활성화할지 선택하세요. In the Panther Console, the New Data Model screen is displayed. It contains fields for Display Name, ID, and Log Type. Under "Data Model Mappings" there are fields are Name, Field Path, and Field Method.

  5. 아래 데이터 모델 매핑, 생성 이름/필드 경로 또는 이름/필드 메서드 쌍을 만드세요.

  6. 만약에 당신이 필드 메서드 필드를 사용했다면, 메서드를 파이썬 모듈 (선택 사항) 섹션.

에서 필드가 존재하는지 평가하기 경로

내에서 경로 값 안에서 특정 이벤트 필드가 존재하는지를 확인하는 로직을 포함할 수 있습니다. 존재하면 매핑이 적용되고, 존재하지 않으면 매핑이 적용되지 않습니다.

예를 들어, 다음은 Panther 관리 gsuite_data_model.ymlarrow-up-right:

Path: $.events[*].parameters[?(@.name == 'ROLE_NAME')].value

이제 이 데이터 모델을 규칙에서 참조할 수 있습니다. 자세한 내용은

데이터 모델 사용

  1. 규칙에서 데이터 모델 필드를 참조하려면: datamodel 규칙의 YAML 파일에서,

  2. "p_log_type": "AWS.CloudTrail" 테스트 Rule의 모든 테스트 p_log_type 필드에 붙여넣으세요.

event.udm('source_ip'))

강화(Enrichment)와 함께 데이터 모델 사용 Panther는 이벤트 객체에 내장된 메서드인event.udm_path()

를 제공합니다.

이 메서드는 데이터 모델에 사용된 원래 경로를 반환합니다. AWS.VPCFlow 로그 예시 아래 예에서, event.udm_path('destination_ip')를 호출하면

def alert_context(event):

"lookup_table_name": { "dstAddr": { "datakey": "datavalue" }}}} 테스트 케이스는 다음과 같은 경보를 반환합니다. Alert Context는dstAddr 의 값을 포함하며.

The screen shot shows a passing test in the Panther Console including the alert context with the data key and data value

(또는

{"datakey": "datavalue"} )케이스에 로그 유형을 추가하세요, enriched_data 의 값으로 사용합니다. 데이터 모델 테스트

데이터 모델을 테스트하려면, 데이터 모델 매핑을 참조하는 탐지에 대해

단위 테스트

를 사용하여 참조합니다.

rule()

설명

DataModel 사양 참조

설정

DataModel 사양 필드의 전체 목록:

AnalysisType

다음에 대한 값을 제공하세요

필드 이름

문자열

필수 여부

예상 값

필드 이름 다음에 대한 값을 제공하세요 예상 값

문자열

활성화됨

이 사양이 규칙, 정책, 데이터 모델 또는 전역을 정의하는지 여부를 나타냅니다.

부울

데이터 모델의 고유 식별자

예상 값

표시 이름

문자열

datamodel

아니요

UI와 경보에 표시할 이름입니다. 이 필드가 설정되지 않으면 datamodel 가 표시됩니다.

내에서

이 데이터 모델이 활성화되었는지 여부

Python 데이터 모델 본문에 대한 경로(파일 확장자 포함) 내에서

이 데이터 모델이 적용될 로그 유형 문자열의 단일 리스트 참고: 는 문자열 목록을 허용하지만 데이터 모델당 하나의 로그 유형만 지정할 수 있습니다 내에서 원본 필드 이름 또는 메서드에서 통합 데이터 모델 필드 이름으로의 매핑

  • 이름의 목록

  • 데이터 모델

    • 메서드필드를 통합된 데이터 모델 필드로 변환합니다. 각 파일명 필드에 붙여넣으세요.

예시:

설정은 경로 : 원래 로그 유형 스키마에서 필드로의 경로입니다. 이 값은 단순한 필드 이름이거나 JSON 경로일 수 있습니다. jsonpath-ng에 대한 자세한 정보는 user pypi.org의 문서를 참조하세요 : 메서드 이름입니다. 메서드는 데이터 모델 사양에 나열된 파일에 정의되어야 합니다. Path: srcIp 에서 필드가 존재하는지 평가하기 경로.

- Name: user

설정은 Path: $.events[*].parameters[?(@.name == 'USER_EMAIL')].valuearrow-up-right 데이터 모델의 값에는USER_EMAIL

Panther 관리 데이터 모델 매핑 이름

설명

Panther 관리 데이터 모델

매핑 이름은 아래에 설명되어 있습니다. 자신의 데이터 모델 매핑을 생성할 때 아래의 이름을 사용자 지정 이름과 함께 사용할 수 있습니다.

통합 데이터 모델 필드 이름

데이터 모델 매핑 이름

actor_user

이벤트를 트리거한 작업의 대상이 된 사용자의 ID 또는 사용자 이름.

assigned_admin_role

이벤트에서 사용자에게 할당된 관리자 역할의 ID 또는 이름.

event_type

destination_ip 트래픽의 목적지 IP.

destination_port

트래픽의 목적지 포트

이벤트 유형에 대한 사용자 지정 설명입니다. 기본 제공 이벤트 유형 지원은 글로벌

panther_event_type_helpers.py

에서 찾을 수 있습니다.

http_status

트래픽의 숫자형 HTTP 상태 코드

source_ip

user

트래픽의 출발지 IP(소스 IP)이며, 이벤트의 출처 IP입니다. т253에 대응하는 설명과 동일한 의미입니다. (참고: 원문이 짧아 문맥상 동일 설명 적용)

Last updated

Was this helpful?