Panther 분석 도구로 엔리치먼트 제공자 관리하기
PAT를 사용해 사용자 지정 및 Panther 관리 엔리치먼트 구성하기
개요
인리치먼트 소스(조회 테이블이라고도 함)는 수신 로그에 더 많은 컨텍스트를 추가할 수 있게 해줍니다. 당신은 당신의 스키마와 매핑을 관리할 수 있습니다 사용자 정의 인리치먼트 및 특정 Panther 관리 인리치먼트를 통해 Panther 분석 도구(PAT).
이 가이드는 다음을 안내합니다:
다음을 사용하여 사용자 정의 인리치먼트 소스에 대한 사용자 정의 스키마를 생성하고 업로드하기
pantherlog도구.수정하기
선택자및로그 타입인리치먼트 소스의 YAML 구성 파일에서.참고: 로그 타입과 선택자는 수동으로 설정될 수 있습니다 또는 지표 필드에 의해 자동으로 매핑될 수 있습니다.
인리치먼트 소스의 YAML 구성 파일을 PAT를 통해 업로드하기.
Panther 콘솔에서 인리치먼트를 테스트하기.
팀이 CLI 워크플로를 사용하는 경우 콘솔의 디텍션 팩을 통해 관리하는 대신 PAT 및 CI/CD를 사용하여 인리치먼트를 관리하는 것이 권장됩니다.
Panther 콘솔에서 활성화한 후 PAT를 통해 인리치먼트 테이블을 관리하기로 선택한 경우 먼저 Panther 콘솔에서 디텍션 팩을 비활성화해야 합니다. Panther 콘솔과 PAT를 동시에 사용하여 인리치먼트 소스를 관리하는 것은 지원되지 않습니다.
이 가이드는 다음에 적용됩니다 사용자 정의 인리치먼트 및 이러한 Panther 관리 인리치먼트 소스.
"자체 API 키 사용" 로그 풀러 및 Panther 로그 소스 풀러 는 PAT를 사용한 CLI 워크플로에서 활성화될 수 없습니다.
사용자 정의 인리치먼트 vs. Panther 관리 인리치먼트
사용자 정의 인리치먼트 는 귀하에 의해 관리됩니다. 스키마를 생성하고 업로드한 다음 인리치먼트 테이블의 YAML 구성 파일을 업로드해야 합니다.
Panther 관리 인리치먼트 제공자 는 Panther에 의해 관리됩니다. 그들의 스키마는 Panther가 정의하며, 필요에 맞게 수정할 수 있는 YAML 구성 파일은 panther-analysis 저장소 의 GitHub에서 확인할 수 있습니다.
PAT로 사용자 정의 및 Panther 관리 인리치먼트를 관리하는 방법
전제 조건
YAML 구성 파일. YAML 구성 파일은 직접 생성해야 합니다.
데이터 샘플(새 스키마를 생성해야 하는 경우) 또는 Panther에서 생성된 기존 YAML 스키마.
1단계: 스키마 생성 및 업로드
사용자 정의 인리치먼트는 귀하가 생성하여 Panther에 업로드한 스키마와 연결되어야 합니다. 이미 Panther에 생성되어 있고 사용자 정의 인리치먼트에 연결하려는 스키마가 있는 경우 이 단계를 건너뛸 수 있습니다.
샘플 로그 데이터를 사용하여 스키마를 생성하십시오.
다음을 사용하여
pantherlog샘플 데이터 세트에서 스키마를 추론할 수 있습니다. 샘플 JSON 로그 파일에서 스키마를 생성하려면infer명령을 사용하십시오:추론된 스키마를 검토하고 Panther에 업로드하기 전에 필요한 조정을 수행하는 것을 잊지 마십시오. 이 과정에 대한 자세한 내용은 pantherlog 문서.
를 참조하십시오.
스키마를 업로드하십시오. 스키마를 생성한 후에는 다음 지침을 따라 Panther에 업로드할 수 있습니다: Panther 분석 도구로 로그 스키마 업로드
2단계: YAML 구성 파일 생성
사용자 정의 인리치먼트의 경우 YAML 구성 파일을 처음부터 생성해야 합니다. 이 파일에 포함되어야 하는 키를 확인하려면 조회 테이블 사양 참조 를 참고하십시오.
3단계: PAT를 통해 사용자 정의 인리치먼트 업로드
사용자 정의 인리치먼트 구성 파일을 생성하면 PAT를 사용하여 Panther에 업로드할 수 있습니다. upload 명령:
업로드를 위해 다음과 함께 API 토큰과 호스트를 제공해야 합니다 --api-token 및 --api-host각각. 기타 옵션으로는 필터링, 최소 테스트 수 등 여러 가지가 있습니다.
YAML 구성 파일을 업로드하기 전에 해당 스키마를 업로드했는지 확인하십시오.
4단계: 사용자 정의 인리치먼트 테스트
사용자 정의 인리치먼트가 올바르게 설정되었는지 테스트하는 여러 방법이 있습니다.
방법 1: Panther 콘솔 또는 CLI에서 테스트 데이터 인리치하기
Panther 콘솔의 디텍션 편집기에서 클릭하십시오 테스트 데이터 인리치 사용자 정의 인리치먼트가 올바르게 작동하는지 확인하려면. 이를 통해 유닛 테스트 내에서 테스트 데이터를 입력하고 인리치먼트 처리의 출력을 확인할 수 있습니다.
를 위해 테스트 데이터 인리치 작동하려면 유닛 테스트에 p_log_type 올바른 로그 타입을 식별하는 값이 있어야 합니다. 이것이 Panther 인리치먼트 로직의 기반이 됩니다.
PAT의 다음 명령을 사용하여 사용자 정의 인리치먼트가 제대로 작동하는지 확인하십시오:
enrich-test-data명령. 자세한 내용은enrich-test-data여기.
방법 2: panther_signals 데이터베이스 확인 데이터베이스 변경 사항이 반영되었는지 확인하려면
panther_signals.public.correlation_signals 데이터베이스/테이블에서 p_enrichment 필드를 확인하십시오. 필드에 기대하는 사용자 정의 인리치먼트 세부 정보가 포함되어 있는지 확인하십시오. 방법 3: SQL 쿼리 사용
또한 SQL에서 이벤트 로그와 인리치먼트 테이블 사이에
LEFT JOIN 을 수행할 수 있습니다. 쿼리에서 선택자가 정의되어 있는지 확인하십시오. 이를 통해 로그의 데이터가 사용자 정의 인리치먼트의 데이터와 올바르게 매칭되는지 검증할 수 있습니다. 예를 들어, 이 쿼리는 사용자 정의 선택자(구성 파일의 선택자와 동일해야 함)를 사용하여 이벤트 데이터를 사용자 정의 인리치먼트와 매칭하려고 시도합니다:
SELECT *
YAML 구성 파일. 다음을 사용할 수 있습니다
panther-analysis에 있는 Panther 제공 구성 파일 1단계: 필요에 따라 YAML 구성 파일 수정.
Panther 관리 인리치먼트를 활성화하는 경우 Panther가 제공하는 구성 파일을 수정하여 필요에 맞게 조정할 수 있습니다.
Panther가 제공하는 구성 파일을 사용자 요구에 맞게 수정할 수 있습니다.
인리치먼트용으로 Panther 제공 YAML 구성 파일을 수정할 때는 사용자화하려면 항상
AssociatedLogTypes키의 내용만 수정해야 합니다.선택자Refresh와 같은 다른 매개변수의 변경은 문제가 발생하는 것으로 알려져 있습니다.간격
예시
참고: 이 로그 타입(Cloudflare.Firewall)과 선택자(ClientIP)가 수동으로 이렇게 설정되지 않았더라도, Cloudflare.Firewall 및 p_any_ip_addresses 는 자동 매핑에 의해 각각 로그 타입과 선택자로 추가될 것입니다. 지표 필드.
이유는 ClientIP 이 가 스키마에서 ip Cloudflare.Firewall 지표 필드로 지정되어 있고 Tor 조회 테이블의 기본 키인 가 스키마에서는 자체 데이터 스키마에서 가 스키마에서 지표로 지정되어 있기 때문입니다, Tor.ExitNode.
이 예에서 tor_exit_nodes 인리치먼트는 새로운 로그 타입 및 선택자.
를 포함하도록 업데이트되고 있습니다.
참고로PrimaryKey가 스키마에서.의 값은
AssociatedLogTypes아닙니다
- '$.event.srcIP' AssociatedLogTypes 에 항목을 추가하여 다음에 대한 지원을 추가해 봅시다: ip_address Cloudflare.Firewall 스키마의
참고로
선택자은 상위 필드이거나 중첩된 필드의 JSON 경로일 수 있습니다.
2단계: PAT를 통해 인리치먼트 업로드
인리치먼트 구성 파일을 수정한 후에는 PAT를 사용하여 Panther에 업로드할 수 있습니다. upload 명령:
업로드를 위해 다음과 함께 API 토큰과 호스트를 제공해야 합니다 --api-token 및 --api-host각각. 기타 옵션으로는 필터링, 최소 테스트 수 등 여러 가지가 있습니다.
3단계: 인리치먼트 테스트
인리치먼트가 올바르게 설정되었는지 테스트하는 여러 방법이 있습니다.
방법 1: Panther 콘솔 또는 CLI에서 테스트 데이터 인리치하기
Panther 콘솔의 디텍션 편집기에서 클릭하십시오 테스트 데이터 인리치 인리치먼트가 올바르게 작동하는지 확인하려면. 이를 통해 유닛 테스트 내에서 테스트 데이터를 입력하고 인리치먼트 처리의 출력을 확인할 수 있습니다.
를 위해 테스트 데이터 인리치 작동하려면 유닛 테스트에 p_log_type 올바른 로그 타입을 식별하는 값이 있어야 합니다. 이것이 Panther 인리치먼트 로직의 기반이 됩니다.
PAT의 다음을 사용하여 인리치먼트가 제대로 작동하는지 확인하십시오:
enrich-test-data명령. 자세한 내용은enrich-test-data여기.
방법 2: panther_signals 데이터베이스 확인 데이터베이스 변경 사항이 반영되었는지 확인하려면
panther_signals.public.correlation_signals 데이터베이스/테이블에서 p_enrichment 필드를 확인하십시오. 필드에 기대하는 사용자 정의 인리치먼트 세부 정보가 포함되어 있는지 확인하십시오. 필드. 필드에 기대하는 인리치먼트 세부 정보가 포함되어 있는지 확인하십시오.
또한 SQL에서 이벤트 로그와 인리치먼트 테이블 사이에
LEFT JOIN 을 수행할 수 있습니다. 쿼리에서 선택자가 정의되어 있는지 확인하십시오. 이를 통해 로그의 데이터가 사용자 정의 인리치먼트의 데이터와 올바르게 매칭되는지 검증할 수 있습니다. 이벤트 로그와 인리치먼트 테이블 사이에서. 쿼리에서 선택자가 정의되어 있는지 확인하십시오. 이를 통해 로그의 데이터가 인리치먼트 테이블의 데이터와 올바르게 매칭되는지 검증할 수 있습니다.
예를 들어, 이 쿼리는 사용자 정의 선택자(인리치먼트 구성에서 정의한 선택자와 동일해야 함)를 사용하여 이벤트 데이터를 인리치먼트 데이터와 매칭하려고 시도합니다:
마지막 업데이트
도움이 되었나요?

