Panther Analysis Tool로 보강 제공자 관리하기
PAT를 사용해 커스텀 및 Panther 관리 보강 구성하기
개요
엔리치먼트 소스(조회 테이블이라고도 함)는 들어오는 로그에 더 많은 컨텍스트를 추가할 수 있게 해줍니다. 다음을 위해 스키마와 매핑을 관리할 수 있습니다. 사용자 정의 엔리치먼트 및 특정 Panther 관리형 엔리치먼트는 Panther 분석 도구(PAT)를 통해.
이 가이드는 다음 절차를 안내합니다:
pantherlog을 사용하여 사용자 정의 엔리치먼트 소스에 대한 사용자 정의 스키마를 생성하고 업로드하는 방법,
pantherlog도구.다음을 수정하기:
Selector및LogType엔리치먼트 소스의 YAML 구성 파일에서.로그 유형과 Selector는 수동으로 설정할 수 있습니다 또는 지표 필드에 의해 자동으로 매핑될 수 있습니다.
PAT를 통해 엔리치먼트 소스의 YAML 구성 파일을 업로드합니다.
Panther 콘솔에서 엔리치먼트를 테스트합니다.
팀에서 CLI 워크플로를 사용하는 경우 콘솔의 Detection Pack을 통해 관리하는 대신 PAT와 CI/CD를 사용하여 엔리치먼트를 관리하는 것이 권장됩니다.
Panther 콘솔에서 사용을 활성화한 후 PAT를 통해 엔리치먼트 테이블을 관리하기로 선택한 경우 먼저 Panther 콘솔에서 Detection Pack을 비활성화해야 합니다. 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 구성 파일을 처음부터 생성해야 합니다. 이 파일에 포함되어야 하는 키를 확인하려면 조회 테이블 명세서(lookup table specification reference) 를 참조하세요.
3단계: PAT를 통해 사용자 정의 엔리치먼트 업로드
사용자 정의 엔리치먼트 구성 파일을 생성한 후 PAT를 사용하여 Panther에 업로드할 수 있습니다. 업로드 명령:
업로드가 이루어지려면 --api-token과 --api-token 및 --api-host를 각각 제공해야 합니다. 기타 옵션으로는 필터링, 최소 테스트 등 이 포함됩니다.
YAML 구성 파일을 업로드하기 전에 해당 스키마를 업로드했는지 확인하세요.
4단계: 사용자 정의 엔리치먼트 테스트
사용자 정의 엔리치먼트가 올바르게 설정되었는지 테스트하는 여러 방법이 있습니다.
방법 1: Panther 콘솔 또는 CLI에서 테스트 데이터에 엔리치 적용
Panther 콘솔의 디텍션 편집기에서 테스트 데이터 엔리치(Enrich Test Data) 를 클릭하여 사용자 정의 엔리치먼트가 올바르게 작동하는지 확인하세요. 이를 통해 단위 테스트 내에서 테스트 데이터를 입력하고 엔리치 결과를 확인할 수 있습니다.
가 작동하려면 단위 테스트에 테스트 데이터 엔리치(Enrich Test Data) p_log_type 이 올바른 로그 유형을 식별해야 합니다. 이는 Panther의 엔리치 논리의 기반이 됩니다. 콘솔의 기본 동작입니다.
PAT의
enrich-test-data명령을 사용하여 사용자 정의 엔리치먼트가 제대로 작동하는지 확인하세요. 자세한 내용은enrich-test-data여기.
방법 2: panther_signals 데이터베이스 확인
변경 사항이 적용되었는지 확인하려면 panther_signals.public.correlation_signals 데이터베이스/테이블에서 p_enrichment 필드를 확인하세요. 해당 필드에 예상되는 사용자 정의 엔리치먼트 세부 정보가 포함되어 있는지 확인하세요.
방법 3: SQL 쿼리 사용
또한 이벤트 로그와 엔리치먼트 테이블 간에 LEFT JOIN 을 수행할 수 있습니다. 쿼리에서 Selector가 정의되어 있는지 확인하세요. 이를 통해 로그의 데이터가 사용자 정의 엔리치먼트의 데이터와 올바르게 매칭되는지 확인할 수 있습니다.
예를 들어, 이 쿼리는 사용자 정의 Selector(구성 파일에 정의한 Selector와 동일해야 함)를 사용하여 이벤트 데이터를 사용자 정의 엔리치먼트와 매칭하려고 시도합니다:
사전 요구사항
YAML 구성 파일. panther-analysis에 있는 Panther 제공 구성 파일을 사용할 수 있습니다. Panther가 제공한 구성 파일을 panther-analysis에서 사용.
1단계: 필요한 대로 YAML 구성 파일 수정
Panther 관리형 엔리치먼트를 활성화하는 경우 Panther가 제공하는 구성 파일을 수정하여 필요에 맞게 조정할 수 있습니다. Panther가 제공함 귀하의 필요에 맞게.
Panther 제공 YAML 구성 파일을 수정할 때는 엔리치먼트를 맞춤화하기 위해 항상
AssociatedLogTypes키의 내용만 수정해야 합니다.SelectorRefresh와 같은 다른 매개변수의 변경은 문제를 일으키는 것으로 알려져 있습니다.Refresh간격
예시
참고: 이 로그 유형(Cloudflare.Firewall)과 Selector(ClientIP)가 이런 식으로 수동으로 설정되지 않았더라도, Cloudflare.Firewall 및 p_any_ip_addresses 는 자동 매핑에 의해 각각 로그 유형과 Selector로 추가되었을 것입니다, 지표 필드에 의한 자동 매핑.
그 이유는 ClientIP 은 지정된 ip 지표 필드로 Cloudflare.Firewall 스키마에 지정되어 있고 Tor 조회 테이블의 기본 키인 ip는 자체 데이터 스키마에서 ip 지표로 지정되어 있기 때문입니다, Tor.ExitNode.
이 예제에서 tor_exit_nodes 엔리치먼트는 새로운 LogType 및 Selector.
를 포함하도록 업데이트되고 있습니다.
PrimaryKey의 값은ip.입니다
AssociatedLogTypes아래 예시는 기본적으로 포함된 한 예를 보여줍니다.
여기에 AssociatedLogTypes 항목을 추가하여 스키마의 필드를 지원하도록 추가해 봅시다: Cloudflare.Firewall 스키마:
참고:
Selector값은 상위 필드이거나 중첩된 필드의 JSON 경로일 수 있습니다.
2단계: PAT를 통해 엔리치먼트 업로드
엔리치먼트 구성 파일을 수정한 후 PAT를 사용하여 Panther에 업로드할 수 있습니다. 업로드 명령:
업로드가 이루어지려면 --api-token과 --api-token 및 --api-host를 각각 제공해야 합니다. 기타 옵션으로는 필터링, 최소 테스트 등 이 포함됩니다.
3단계: 엔리치먼트 테스트
엔리치먼트가 올바르게 설정되었는지 테스트하는 몇 가지 방법이 있습니다.
방법 1: Panther 콘솔 또는 CLI에서 테스트 데이터에 엔리치 적용
Panther 콘솔의 디텍션 편집기에서 테스트 데이터 엔리치(Enrich Test Data) 단위 테스트 내에서 테스트 데이터를 입력하고 엔리치 결과를 확인할 수 있도록 엔리치가 올바르게 작동하는지 확인합니다.
가 작동하려면 단위 테스트에 테스트 데이터 엔리치(Enrich Test Data) p_log_type 이 올바른 로그 유형을 식별해야 합니다. 이는 Panther의 엔리치 논리의 기반이 됩니다. 콘솔의 기본 동작입니다.
PAT의
enrich-test-data명령을 사용하여 사용자 정의 엔리치먼트가 제대로 작동하는지 확인하세요. 자세한 내용은enrich-test-data여기.
방법 2: panther_signals 데이터베이스 확인
변경 사항이 적용되었는지 확인하려면 panther_signals.public.correlation_signals 데이터베이스/테이블에서 p_enrichment 를 사용하여 엔리치먼트가 제대로 작동하는지 확인하세요. 해당
방법 3: SQL 쿼리 사용
또한 이벤트 로그와 엔리치먼트 테이블 간에 LEFT JOIN 필드. 해당 필드에 예상되는 엔리치먼트 세부 정보가 포함되어 있는지 확인하세요.
이벤트 로그와 엔리치먼트 테이블 간에
예를 들어, 이 쿼리는 구성에 정의한 Selector와 동일해야 하는 사용자 정의 Selector를 사용하여 이벤트 데이터를 엔리치먼트 데이터와 매칭하려고 시도합니다:
SQL 사용자 정의 엔리치먼트(베타)
SQL 사용자 정의 엔리치먼트는 Panther 버전 1.120부터 오픈 베타로 제공되며 모든 고객이 사용할 수 있습니다. 버그 보고나 기능 요청은 Panther 지원팀에 공유해 주세요. 1단계: YAML 구성 파일 생성 다음 필드가 있는 YAML 파일을 만듭니다: Query 필드. 스키마는 쿼리 결과에서 자동 생성되므로 수동 스키마 정의가 필요 없습니다. 사용 가능한 모든 필드는
사용자 정의 엔리치먼트 명세서(Custom Enrichment Specification Reference)
PeriodMinutes: 60
panther_analysis_tool upload
PrimaryKey: id --api-token 및 --api-host 2단계: PAT로 업로드 다른 명령과 마찬가지로 인증을 위해 를 제공해야 합니다(또는 .panther_settings.yml 파일에 채워 넣으세요).
엔리치먼트만 업로드하려면:
panther_analysis_tool upload --filter AnalysisType=lookup_table
스키마는 SQL 쿼리 결과에서 자동 생성됩니다. 별도의 스키마 업로드는 필요하지 않습니다.
3단계: 확인
콘솔: 엔리치먼트 페이지에서 생성/업데이트되었는지 확인하세요.
SQL: 엔리치먼트 테이블을 직접 쿼리하여 데이터를 확인하세요: SELECT * FROM panther_lookups.public.name_of_your_enrichment LIMIT 1
마지막 업데이트
도움이 되었나요?

