데이터 모델
데이터 모델은 모든 로그 유형에서 통합된 필드 세트를 구성하는 방법을 제공합니다
개요
데이터 모델을 사용하여 로그 유형 전반에 걸쳐 통합된 필드 집합을 구성하려면 다음을 생성하세요 매핑 여러 로그 유형의 이벤트 필드와 통합된 데이터 모델 이름 간의 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.VPCFlow및 Okta.SystemLog. 현재 지원되는 모든 데이터 모델은 panther-analysis 리포지토리의 여기.
지원되는 데이터 모델 매핑의 이름은 아래 Panther 관리 데이터 모델 매핑 이름 표에.
사용자 지정 데이터 모델 생성 방법
사용자 지정 데이터 모델은 여러 방법으로 생성할 수 있습니다: Panther 콘솔에서, Panther 분석 도구(PAT)를 사용하거나, 또는 Panther API에서. 각 방법에 대한 생성 지침은 아래 탭을 참조하세요.
사용자 지정 데이터 모델 매핑은 Panther 관리 데이터 모델에서 참조된 이름또는 자체 사용자 지정 이름을 사용할 수 있습니다. 각 매핑은 이름 이벤트 필드(와 함께 경로 또는 필드 경로) 또는 사용자가 정의한 메서드(와 함께 필드 메서드 또는 메서드)에 매핑할 수 있습니다. 메서드로 매핑하는 경우에는 별도의 Python 파일(클라이언트 워크플로우를 사용하는 경우)에 메서드를 정의해야 하며, 이는 YAML 파일에서 파일명를 사용하거나, 또는 파이썬 모듈 필드로 콘솔에서 참조됩니다.
각 로그 유형에는 하나의 활성화된 데이터 모델만 지정할 수 있습니다(단, 단일 데이터 모델에 여러 매핑이 포함될 수 있음). 기존 데이터 모델을 변경하거나 업데이트하려면 기존 것을 비활성화한 다음 새로 활성화된 모델을 생성하세요.
Panther 콘솔에서 새 데이터 모델을 생성하려면:
Panther 콘솔의 왼쪽 탐색 바에서 클릭하십시오 탐지.
다음 항목을 클릭하십시오 데이터 모델(Data Models) 탭. .

오른쪽 상단에서 클릭하십시오 새로 만들기.
아래 설정에서 양식 필드를 작성하세요.
표시 이름: 이 데이터 모델에 대한 사용자 친화적인 표시 이름을 입력하세요.
ID: 이 데이터 모델에 대한 고유한 ID를 입력하세요.
로그 유형: 이 데이터 모델이 적용될 로그 유형을 선택하세요. 데이터 모델당 하나의 로그 유형만 허용됩니다.
활성화됨: 이 데이터 모델을 활성화할지 비활성화할지 선택하세요.

아래 데이터 모델 매핑, 생성 이름/필드 경로 또는 이름/필드 메서드 쌍을 만드세요.
만약에 당신이 필드 메서드 필드를 사용했다면, 메서드를 파이썬 모듈 (선택 사항) 섹션.
오른쪽 상단에서 클릭 저장.
에 정의하세요. 이제 이 데이터 모델을 규칙에서 참조할 수 있습니다. 자세한 내용은.
CLI (PAT)
폴더 설정
CLI 워크플로우에서 데이터 모델을 생성하는 방법 사용자 지정 데이터 모델과 관련된 모든 파일은 이름에 data_models 사용자 지정 데이터 모델과 관련된 모든 파일은 이름에 가 포함된 폴더에 저장되어야 합니다(이것은 최상위 디렉터리일 수 있으며, 또는 이름이).
파일 설정
*data_models*
와 일치하는 하위 디렉터리일 수 있습니다). 데이터 모델 사양 YAML 파일을 생성하세요(예:):Path: userAgent
설정에서AnalysisType.다음을 위해
datamodelLogTypes에 대해, 로그 유형 중 하나의 이름을 제공하세요. 이 필드는 목록을 받지만 데이터 모델당 하나의 로그 유형만 지원됩니다.
다음에 대한 값을 제공하세요필드에 붙여넣으세요.DataModelID
내에서, 생성이름/경로또는이름/메서드쌍을 만드세요.Mappings
내에서구문 에 대해 자세한 내용은 아래의 DataModel에서내에서.
참조 데이터 모델 사양 참조 아래를 참조하여 필수 및 선택 필드의 전체 목록을 확인하세요.
만약 당신이 하나 이상의
메서드필드를 포함했다면내에서연관된 Python 파일(예:data_models/aws_cloudtrail_datamodel.py)을 생성하고 참조된 메서드를 정의하세요.이 경우, 또한
파일명필드를 데이터 모델 YAML 파일에 추가해야 합니다. 만약메서드필드가 없으면 Python 파일/파일명필드는 필요하지 않습니다.
PAT를 사용하여 데이터 모델을 Panther 인스턴스에 업로드하세요 PAT
업로드명령.에 정의하세요. 이제 이 데이터 모델을 규칙에서 참조할 수 있습니다. 자세한 내용은.
Panther API를 사용하여 데이터 모델을 생성하는 방법
환경에서 Fluentd 시작에 대한 정보는
한 후 Panther에서 볼 수 있기까지 몇 분 기다려야 할 수 있습니다.작업을 데이터 모델(Data Models).
에서 필드가 존재하는지 평가하기 경로
경로내에서 경로 값 안에서 특정 이벤트 필드가 존재하는지를 확인하는 로직을 포함할 수 있습니다. 존재하면 매핑이 적용되고, 존재하지 않으면 매핑이 적용되지 않습니다.
예를 들어, 다음은 Panther 관리 gsuite_data_model.yml:
Path: $.events[*].parameters[?(@.name == 'ROLE_NAME')].value
이제 이 데이터 모델을 규칙에서 참조할 수 있습니다. 자세한 내용은
데이터 모델 사용
규칙에서 데이터 모델 필드를 참조하려면:
datamodel규칙의 YAML 파일에서,"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 의 값을 포함하며.

(또는
{"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')].value 데이터 모델의 값에는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?

