커스텀 보강

직접 저장한 데이터로 이벤트를 보강하기

개요

사용자 지정 인리치먼트(일명 "조회 테이블")를 사용하면 Panther에 사용자 지정 인리치먼트 데이터를 저장하고 참조할 수 있습니다. 즉, 탐지에서 이 추가 컨텍스트를 참조하고 알러트로 전달할 수 있습니다. 이는 신원/자산 정보, 취약성 컨텍스트 또는 네트워크 맵을 포함하는 사용자 지정 인리치먼트를 생성하는 데 특히 유용할 수 있습니다.

다음과 같은 네 가지 가져오기 방법 옵션: 예약 검색(Scheduled Search), 정적 파일, S3 버킷 또는 Google Cloud Storage(GCS) 버킷입니다.

하나 이상의 로그 유형을 사용자 지정 인리치먼트에 연결할 수 있습니다—그런 다음 해당 유형의 모든 수신 로그(인리치먼트 테이블 값과 일치하는 경우)에 인리치먼트 데이터가 포함됩니다. 인리치먼트 프로세스에 대해 더 알아보려면 수신 로그가 어떻게 인리치되는지를 참조하세요. Python 디텍션에서 인리치먼트 데이터를 동적으로 참조할 수도 있습니다를 참조하세요. 여기에 저장된 인리치먼트 데이터를 표시하는 방법을보는 방법과 여기에서 인리치먼트 데이터가 포함된 로그 이벤트를 보는 방법을 확인하세요.

데이터가 몇몇 특정 디텍션에서만 필요하고 자주 업데이트되지 않는 경우, 인리치먼트 대신 글로벌 헬퍼(Global helpers)arrow-up-right 를 사용하는 것을 고려하세요. 또한 IPinfo 및 Tor Exit Nodes와 같은 Panther 관리형 인리치먼트 서비스를 사용할 수 있다는 점도 참고하세요.

사용자 지정 인리치먼트 수 및/또는 인리치먼트 테이블 크기 제한을 늘리려면 Panther 지원팀에 문의하세요.

수신 로그가 어떻게 인리치되는지

Panther의 인리치먼트는 전통적으로 다음 두 가지를 모두 정의합니다:

  • 기본 키: 인리치먼트 테이블 데이터의 필드.

    • CLI 워크플로우에서 인리치먼트를 정의한 경우, 이는 PrimaryKey 필드를 YAML 구성 파일.

  • 하나 이상의 연관된 로그 유형(각 유형마다 하나 이상의 Selector 포함): Selector는 값이 인리치먼트 테이블의 기본 키 값과 비교되어 일치를 찾는 이벤트 필드입니다.

로그가 Panther로 수집되면 해당 로그 유형이 인리치먼트와 연관된 유형인 경우, 모든 Selector 필드의 값이 인리치먼트의 기본 키 값과 비교됩니다. Selector 필드의 값과 기본 키 값이 일치하면, 로그는 일치하는 기본 키와 연관된 인리치먼트 데이터로 p_enrichment 필드에 p_enrichment 대한 자세한 내용은 아래의 p_enrichment 구조.

예시에서, 아래 이미지의 수신 로그 이벤트에 있는 Selector 필드는 ip_address입니다. 인리치먼트 LUT1의 기본 키는 bad_actor_ip입니다. 오른쪽의 알러트 이벤트에서는 Selector 값( bad_actor_name)과 기본 키 값(1.1.1.1) 간의 일치가 있었기 때문에 인리치먼트 데이터(예: 1.1.1.1).

A diagram showing how Lookup Tables work: On the left, there is a code box labeled "Incoming logs." An arrow branches off the logs and points to a Lookup Table including "bad_actor_ip" and "bad_actor_name." On the right, an arrow goes from the Lookup Table to an Alert Event, showing the alert you would receive based on the log example.

인리치먼트에 대해 로그 유형과 Selector가 설정되는 방법

를 포함하여)로 로그가 인리치되었습니다. 수동으로 연관된 로그 유형과 Selector를 설정할 수 있으며 (옵션 1), 또는 자동으로 매핑되도록 할 수 있습니다 (옵션 2).

옵션 1: 로그 유형과 Selector를 수동으로 선택하기

인리치먼트를 생성할 때, 인리치먼트를 연결할 하나 이상의 로그 유형과 각 로그 유형마다 하나 이상의 Selector 필드를 선택할 수 있습니다.

circle-info

이와 같이 로그 유형과 Selector를 수동으로 선택하더라도, 옵션 2 에서 설명한 자동 매핑은 여전히 적용된다는 점을 유의하세요.

Under an "Associated Log Types (Optional)" header is a form with fields for Log Type, Selectors, and Add Log Type. At the bottom is a Continue button.

옵션 2: 로그 유형과 Selector를 자동 매핑하도록 허용하기

인리치먼트의 기본 키는 지시자 또는 CIDR 검증arrow-up-right.

으로 표시될 수 있습니다.

- mitre_attack_technique

  1. 각 지시자 값에 대해 Panther는 자동으로: 모든 사용 중인

  2. 로그 유형을 찾아 해당 이벤트 필드를 동일한 지시자로 지정합니다.

  3. 해당 로그 유형들을 인리치먼트에 연관시킵니다. 각 로그 유형에 대해, 지시자와 연관된 p_any

필드를 Selector로 설정합니다. 예를 들어, 인리치먼트 데이터의 스키마가 attack_ids 기본 키를 mitre_attack_technique 기본 키를 지시자로 지정한 경우 위에 표시된 것처럼, Panther 인스턴스의 모든 로그 유형들이 또한 지시자를 설정하면 인리치먼트에 연관되고, 각 로그 유형에는 p_any_mitre_attack_techniques

라는 Selector가 설정됩니다.

cidr: ipv4

  • 각 지시자 값에 대해 Panther는 자동으로: 모든 이 경우 Panther는 자동으로: 어떤 이벤트 필드를

  • 로그 유형을 찾아 해당 이벤트 필드를 동일한 지시자로 지정합니다.

  • 해당 로그 유형들을 인리치먼트에 연관시킵니다. p_any_ip_addresses p_any

지시자로 지정한 로그 유형들을

p_enrichment 구조

매핑합니다. p_enrichment 이 매핑은 인리치먼트의 데이터가 새로 고쳐질 때마다 발생합니다. 로그 이벤트에 인리치먼트 데이터가 주입되면, 이벤트에 또는 필드가 추가되고 디텍션 내에서deep_get() p_enrichment DeepKey

  • 를 사용하여 접근됩니다. 해당

  • 필드는 다음을 포함합니다:

  • 수신 로그 이벤트와 일치한 하나 이상의 인리치먼트 이름 인리치먼트와 일치한 수신 로그의 Selector 이름 인리치먼트의 기본 키를 통해 일치한 인리치먼트의 데이터(일치한 Selector 값을 포함하는 주입된

p_match p_enrichment 필드 포함)

'p_match': <Selector의 값>, p_enrichment <인리치먼트 키>: <인리치먼트 값>, 참고로 은(는) 데이터 레이크에 로그 이벤트와 함께 저장되지 않습니다. 자세한 내용은

인리치먼트 데이터가 포함된 로그 이벤트 보기

를 참조하세요. 로그 이벤트에 인리치먼트 데이터가 주입되면, 이벤트에

디텍션에서 인리치먼트 데이터에 접근하는 방법 수신 로그가 어떻게 인리치되는지옵션 1(로그가 인리치된 경우): p_enrichment 사용하기로그 이벤트가 수집 시 인리치된 경우(위의 설명과 같이), 위에 설명된 구조의필드 내에서 데이터를 접근할 수 있습니다. 로그 이벤트에 인리치먼트 데이터가 주입되면, 이벤트에 이를 위해 로그 이벤트에 인리치먼트 데이터가 주입되면, 이벤트에 이벤트 객체 함수.

를 사용합니다. Python 디텍션 작성에 대해 더 알아보려면 을(를) 참조하세요..

이 방법의 전체 예시는 아래의 사용자 지정 인리치먼트 데이터를 사용하여 디텍션 작성하기

부분에서 확인하세요. 옵션 2: 동적으로 lookup() 사용하기또한 Python 디텍션에서 수신 로그가 어떻게 인리치되는지.

event.lookup()

함수를 사용하여 인리치먼트 데이터를 동적으로 접근할 수 있습니다.

  • 이렇게 하면, 인리치먼트 데이터가 수신 이벤트에 주입되지 않은 경우에도 어떤 인리치먼트에서든 데이터를 검색할 수 있습니다(위의 설명 참조).

    • 사용자 지정 인리치먼트를 구성하기 위한 전제 조건

  • 인리치먼트를 구성하기 전에 다음을 준비했는지 확인하세요:

    • 인리치먼트 데이터 전용 스키마

    • 이는 인리치먼트 데이터의 형태를 설명합니다. 기본 키 데이터 유형 인리치먼트 데이터의 기본 키

  • 이 기본 키는 인리치먼트 스키마에서 정의한 필드 중 하나입니다. 기본 키의 값은 수신 로그의 Selector 값과 비교될 값입니다.

    • 기본 키 요구 사항에 대해 더 알아보려면 아래의

  • 섹션을 참조하세요.

  • panther-analysis

    • 리포지토리를 포크하여

      • 설치하는 것을 권장합니다.

  • 파일 업로드 또는 S3/GCS 버킷을 사용하는 경우:

    • JSON 또는 CSV 형식의 인리치먼트 데이터

기본 키 데이터 유형

인리치먼트에 사용하려는 데이터를 반환하는 SQL 쿼리

  • 문자열

  • Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요.

  • 인리치먼트 테이블의 기본 키 열은 다음 데이터 유형 중 하나여야 합니다:

    • 숫자

chevron-right배열(문자열 또는 숫자의 배열)hashtag

배열을 사용하면 인리치먼트 테이블의 한 행을 여러 문자열 또는 숫자 기본 키 값과 연결할 수 있습니다. 이렇게 하면 동일한 행을 여러 기본 키에 대해 중복 저장할 필요가 없습니다.

예시: 문자열 배열 대 문자열 기본 키 유형

예를 들어 사용자 데이터를 사용자 지정 인리치먼트 테이블에 저장하여 특정 사용자와 연관된 수신 로그 이벤트에 추가 개인 정보를 인리치하도록 하고 싶을 수 있습니다. 사용자의 이메일 주소로 매칭하려는 경우, 이메일 필드는 인리치먼트 테이블의 기본 키이자 로그 이벤트의 Selector가 됩니다.

"actor_email": "[email protected]","action": "EXPORT_FILE"두 이메일 주소([email protected] [email protected].

)가 동일한 사용자

# 인리치 후 로그 이벤트 둘

이 인리치먼트는 다음 중 하나로 달성할 수 있습니다:

(권장) 문자열 배열 타입의 기본 키 열

문자열 타입의 기본 키 열

사용자 지정 인리치먼트를 구성하는 방법

문자열 배열 타입의 기본 키 열을 사용하면 Jane의 여러 이메일 주소를 하나의 기본 키 항목에 포함시켜 하나의 데이터 행에 연결할 수 있습니다. 이는 다음과 같이 보일 수 있습니다: 또는 기본 키 열을 문자열 타입으로 정의할 수 있습니다. 그러나 이벤트와 인리치먼트 테이블 간의 매칭이 사용자의 이메일 주소로 이루어지고 사용자가 여러 이메일 주소를 가질 수 있으므로(위 Jane 사례와 같이), 각 이메일마다 인리치먼트 테이블 행을 중복해야 합니다. 이는 다음과 같이 보일 것입니다:두 옵션 모두 동일한 결과(로그 이벤트가 동일한 방식으로 인리치되는 것)를 제공하지만, 문자열 배열 기본 키를 사용하는 것이 편의성과 유지보수 오류 가능성 감소 측면에서 권장됩니다.

데이터가 많고 비교적 자주 업데이트되는 경우에 적합합니다. S3 또는 GCS 버킷의 모든 변경 사항이 Panther로 동기화됩니다. S3 또는 GCS 버킷에서 동기화된 사용자 지정 인리치먼트 테이블의 최대 크기는 10GB입니다..

circle-exclamation

다음

circle-info

이 방법 중 하나를 선택한 후 Panther 콘솔에서 작업하거나 PAT 를 사용할 수 있습니다.

사용자 지정 인리치먼트 테이블의 행 당 최대 크기는 65535 바이트입니다. 예약 검색으로 사용자 지정 인리치먼트 데이터를 가져오는 기능은 Panther 버전 1.117부터오픈 베타

circle-exclamation
chevron-rightPanther 콘솔hashtag

만 처리할 수 있습니다.

  1. CIDR 매칭은 사용할 수 없습니다. 예약 검색은 최소 15분 단위로 실행될 수 있습니다. > 검색 타임아웃은 15분으로 고정되어 있으며 구성할 수 없습니다.

  2. Panther 콘솔을 통해 예약 검색으로 데이터 가져오기 Panther 콘솔의 왼쪽 탐색 바에서 구성(Configure) ->.

    • 인리치먼트(Enrichments) 을 클릭하세요. 우측 상단에서 새로 만들기(Create New).

  3. 를 클릭한 다음 사용자 지정 인리치먼트(Custom Enrichment) 를 선택합니다.

    • 또는Investigate > Data Explorer

    • 페이지에서 쿼리를 입력한 다음쿼리로 인리치먼트 생성(Create Enrichment via query) 을 클릭하여 시작할 수도 있습니다.인리치먼트 기본 정보(Enrichment Basic Information)

    • 페이지에서 다음 필드를 입력하세요:인리치먼트 이름(Enrichment Name)

    • : 사용자 지정 인리치먼트에 대한 설명 이름.사용함(Enabled?)

  4. : 이 토글을 예(YES).

  5. 를 클릭한 다음 로 설정했는지 확인하세요. 이는 이 프로세스에서 나중에 데이터를 가져오기 위해 필요합니다. 설명(선택 사항) : 테이블에 대한 추가 컨텍스트. 참조(선택 사항) : 일반적으로 내부 리소스에 대한 하이퍼링크용으로 사용됩니다..

    • 계속(Continue) 를 클릭하세요. 가져오기 방법 선택(Choose Import Method)

  6. 를 클릭한 다음 페이지에서, 쿼리로 데이터 가져오기(Import Data with a Query)

    circle-exclamation
    1. : 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다..

    2. 연관된 로그 유형(선택 사항) 페이지에서 로그 유형/Selector를 지정하세요: 이 단계는 기술적으로 선택 사항(즉, 로그 유형/Selector를 지정하지 않고 건너뛸 수 있음)이나,

    3. 자동 매핑(auto-mapping) 선택자(Selectors)이 지원되지 않으므로 로그가 인리치되려면 이 지정들을 반드시 해야 합니다.

    4. : 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다. 중첩된 객체의 속성은

  7. : 이 토글을 예(YES).

  8. 를 클릭한 다음 JSON 경로 구문(JSON path syntax) 를 선택합니다.

    • 을 사용하여 참조할 수도 있습니다. 예를 들어 맵의 필드를 참조하려면$.field.subfield 를 입력할 수 있습니다..

      • 필요한 경우 다른 항목을 추가하세요. 쿼리 설정(Set Up Your Query) SQL 쿼리(SQL Query) : 사용자 지정 인리치먼트에 대한 데이터를 반환할 SQL 쿼리를 작성하세요. 데이터 익스플로러에서 데이터 익스플로러에서 테스트(Test in Data Explorer)

      • 를 클릭해 쿼리를 테스트할 수 있습니다. 쿼리가 Panther에 의해 수집된 데이터를 가져오는 경우, p_ 접두어로 시작하는 표준 필드 를 제외하거나 이름을 바꾸도록 하세요. 해당 이름들은 예약된 이름입니다.

    • 인리치먼트 스키마는 SQL 쿼리를 기반으로 생성됩니다. 예를 들어 쿼리를 수정하여 스키마 필드 및 유형을 변경할 수 있습니다. 예:SELECT AVG(total_events)::FLOAT AS mean_total_events

  9. : 이 토글을 예(YES)스케줄 유형 및 빈도(Schedule Type & Frequency)

  10. 를 클릭한 다음 : 데이터가 얼마나 자주 새로 고쳐져야 하는지에 따라 스케줄 빈도를 구성하세요. 다음 중 선택: 기간(Period) : 고정 시간 간격(예: 2시간마다)으로 쿼리를 실행 Cron

  11. : 이 토글을 : Cron 표현식을 사용하여 특정 날짜 및 시간에 쿼리를 실행Cron 표현식

  12. Panther는 SQL 쿼리에서 자동으로 스키마를 생성합니다. 테이블 스키마(Table Schema)페이지에서 자동으로 생성된 스키마를 검토하고 드롭다운에서 을 클릭하여 시작할 수도 있습니다. 기본 키 이름(Primary Key Name)

    • 을 선택하세요. Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요. 인리치먼트 생성(Create Enrichment)

    • . 소스 설정 성공 페이지가 표시됩니다. 선택적으로.

  13. : 이 토글을 설정 완료.

를 켜려면

으로 토글하세요.

chevron-rightPanther 콘솔hashtag

알람이 전송되는 빈도를 나타내기 위해

  1. CIDR 매칭은 사용할 수 없습니다. 예약 검색은 최소 15분 단위로 실행될 수 있습니다. > 필드를 작성하세요..

  2. Panther 콘솔을 통해 예약 검색으로 데이터 가져오기 이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림이 전송될 대상을 구성하고 사용자화하려면.

  3. 를 클릭한 다음 Panther 대상(Panther Destinations) 을 참조하세요.

    • 또는Investigate > Data Explorer

    • 페이지에서 쿼리를 입력한 다음쿼리로 인리치먼트 생성(Create Enrichment via query) 을 클릭하여 시작할 수도 있습니다.인리치먼트 기본 정보(Enrichment Basic Information)

    • 페이지에서 다음 필드를 입력하세요:인리치먼트 이름(Enrichment Name)

    • : 사용자 지정 인리치먼트에 대한 설명 이름.사용함(Enabled?)

  4. : 이 토글을 예(YES).

  5. 를 클릭한 다음 페이지에서, 예약 검색은 구성된 일정에 따라 실행되어 사용자 지정 인리치먼트 데이터를 자동으로 업데이트합니다. 검색 기록은

    • : 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다..

    • 연관된 로그 유형(선택 사항) 페이지에서 로그 유형/Selector를 지정하세요: 이 단계는 기술적으로 선택 사항(즉, 로그 유형/Selector를 지정하지 않고 건너뛸 수 있음)이나,

    • 자동 매핑(auto-mapping) 선택자(Selectors)이 지원되지 않으므로 로그가 인리치되려면 이 지정들을 반드시 해야 합니다.

    • : 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다. 검색 기록 페이지(Search History page) 에서 볼 수 있습니다. 옵션 2: 파일 업로드를 통해 사용자 지정 인리치먼트 데이터 가져오기 파일 업로드를 통해 Panther 콘솔 또는 PAT로 데이터를 가져올 수 있습니다: Panther 콘솔을 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기인리치먼트(Enrichments) 새로 만들기(Create New)

  6. : 이 토글을 예(YES).

  7. 를 클릭한 다음 : 데이터가 얼마나 자주 새로 고쳐져야 하는지에 따라 스케줄 빈도를 구성하세요. 다음 중 선택: 기본 정보(Basic Information)페이지: 페이지에서 선택적으로 로그 유형/Selector를 지정하세요:arrow-up-right필요한 경우 추가하세요. 위의 예시 스크린샷에서 우리는AWS.CloudTrail.

    • 로그를 선택하고 accountID Cron

    • 로그를 선택하고 : 고정 시간 간격(예: 2시간마다)으로 쿼리를 실행 recipientAccountID Panther 콘솔을 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기. The image shows the Table Schema form from the Panther Console. The Schema Name field is filled in with "Custom.AWSaccountIDs" and the Primary Key Name field is set to "awsacctid."

  8. : 이 토글을 예(YES).

  9. 를 클릭한 다음 로 설정했는지 확인하세요. 이는 이 프로세스에서 나중에 데이터를 가져오기 위해 필요합니다. 설명(선택 사항) 를 CloudTrail 로그의 키를 나타내기 위해 입력했습니다. 참조(선택 사항) 페이지에서 테이블 스키마를 구성하세요: &#xNAN;.

  10. 를 클릭한 다음 참고: 아직 새 스키마를 생성하지 않았다면 스키마 생성에 대한 문서 을 참조하세요. 또한 사용자 지정 인리치먼트 데이터를 사용하여 스키마를 유추할 수 있습니다. 스키마를 생성한 후에는 인리치먼트를 구성하는 동안 테이블 스키마 드롭다운에서 해당 스키마를 선택할 수 있습니다. .csv 또는 .json &#xNAN;

  11. : 이 토글을 설정 완료Cron 표현식

  12. 참고: CSV 스키마는 사용자 지정 인리치먼트와 함께 작동하려면 열 헤더가 필요합니다. 드롭다운에서스키마 이름(Schema Name)을 선택하세요. 이는 테이블의 고유한 열이어야 하며 예를 들어 을 클릭하여 시작할 수도 있습니다. 기본 키 이름(Primary Key Name)

    • 을 선택하세요. Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요. 인리치먼트 생성(Create Enrichment)

    • 파일 업로드로 가져오기(Import via File Upload) 선택적으로.

    설정(Set Up)The image shows a success page in the Panther Console after creating a Lookup Table. There is an option to set an  alarm in case this Lookup Table doesn't receive any data, and dropdown selectors to choose a time period when you receive the alerts. At the bottom, there is a section showing which destinations will receive the alert.

circle-info

파일 업로드(Upload File) 페이지에서 파일을 드래그 앤 드롭하거나 파일 선택(Select file) 을 클릭하여 가져올 인리치먼트 데이터 파일을 선택하세요. 파일은 형식이어야 합니다.

chevron-rightS3 또는 GCS 버킷에서 동기화된 사용자 지정 인리치먼트 테이블의 최대 크기는 10GB입니다.hashtag

선택적으로,

로 토글하세요.

이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림 전송 대상을 구성하고 사용자화하려면 문서의

  • 섹션을 참조하세요.

    • 사용자 지정 인리치먼트 업로드 실패로 생성된 알림은 Panther 콘솔의 알러트 및 오류(Alerts & Errors). 페이지 내 알러트 및 오류(Alerts & Errors) 시스템 오류(System Errors) 탭에서 접근할 수 있습니다.PAT를 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기 자세한 내용은arrow-up-right 데이터 파일이 1MB보다 큰 경우에는 대신

  • S3 동기화 업로드 방법

    • 또는 알러트 및 오류(Alerts & Errors) GCS 동기화 업로드 방법 을 사용하는 것이 권장됩니다. 파일 및 폴더 설정

  • 사용자 지정 인리치먼트에는 다음 파일이 필요합니다:

인리치먼트 테이블용 YAML 구성 파일

이 사용자 지정 인리치먼트 구성 파일은 이름에

  1. lookup_tables

  2. *lookup_tables* Custom Enrichment Specification Reference.

    • 와 일치하는 하위 디렉터리일 수도 있습니다. 참조용으로

  3. 리포지토리 루트에서 스키마 파일을 업로드하려면 다음을 실행하세요 panther_analysis_tool update-custom-schemas --path ./schemas.

  4. 리포지토리 루트에서 사용자 정의 인리치먼트를 업로드하려면 panther_analysis_tool upload.

Panther Analysis Tool을 통해 사용자 정의 인리치먼트를 업데이트하세요:

  1. 해당 사용자 정의 인리치먼트의 YAML 구성 파일을 찾으세요.

  2. 파일을 열고 필드 파일이름. 데이터 파일로 이어지는 파일 경로가 표시됩니다.

  3. 에서 표시된 파일을 업데이트하거나 교체하세요 파일이름. 허용되는 값을 보려면 Custom Enrichment Specification Reference.

  4. 구성 파일을 저장한 다음 다음으로 변경 사항을 업로드하세요:

    선택적으로 사용자 정의 인리치먼트만 업로드하도록 지정할 수 있습니다:

AWS 계정 정보 또는 회사 서브넷과 같은 비교적 정적인 데이터에 적합합니다.

Panther 콘솔이나 PAT를 통해 S3 버킷에서 데이터 동기화를 설정할 수 있습니다:

chevron-rightPanther 콘솔hashtag

Panther 콘솔을 통해 S3 버킷에서 사용자 정의 인리치먼트 데이터를 동기화

  1. CIDR 매칭은 사용할 수 없습니다. Configure > Enrichments.

  2. Panther 콘솔을 통해 예약 검색으로 데이터 가져오기 이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림이 전송될 대상을 구성하고 사용자화하려면.

  3. 추가(Add)를 클릭하세요 -> 카드.

  4. 를 클릭한 다음 Panther 대상(Panther Destinations) 를 선택합니다.

    • 또는Investigate > Data Explorer

    • 페이지에서 쿼리를 입력한 다음쿼리로 인리치먼트 생성(Create Enrichment via query) 을 클릭하여 시작할 수도 있습니다.인리치먼트 기본 정보(Enrichment Basic Information)

    • 페이지에서 다음 필드를 입력하세요:인리치먼트 이름(Enrichment Name)

    • : 사용자 지정 인리치먼트에 대한 설명 이름.사용함(Enabled?)

    • The image shows the Lookup Table Basic Information form from the Panther Console. The Lookup Name field is filled in with "Employee Directory." It is enabled. The description says "Directory with groups and permissions a specific user is associated with." There is a blue button labeled "Continue" at the bottom.

  5. 를 클릭한 다음 연관된 로그 타입 예약 검색은 구성된 일정에 따라 실행되어 사용자 지정 인리치먼트 데이터를 자동으로 업데이트합니다. 검색 기록은

    • : 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다..

    • 연관된 로그 유형(선택 사항) 페이지에서 로그 유형/Selector를 지정하세요: 이 단계는 기술적으로 선택 사항(즉, 로그 유형/Selector를 지정하지 않고 건너뛸 수 있음)이나,

    • 자동 매핑(auto-mapping) 선택자(Selectors), 외래 키 필드는 사용자 정의 인리치먼트 데이터로 보강하려는 로그 타입을 구성합니다.

  • : 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다. 검색 기록 페이지(Search History page) The image shows the Associated Log Types form from the Panther Console. The Log Type field is set to AWS.VPCFlow. Selectors is set to "account." 에서 볼 수 있습니다. AWS.VPCFlow 파일 업로드를 통해 Panther 콘솔 또는 PAT로 데이터를 가져올 수 있습니다: 계정 VPC 흐름 로그에서 키를 나타내는 데 사용됩니다.

  1. : 이 토글을 예(YES).

  2. 를 클릭한 다음 : 데이터가 얼마나 자주 새로 고쳐져야 하는지에 따라 스케줄 빈도를 구성하세요. 다음 중 선택: 페이지에서 테이블 스키마를 구성하세요. &#xNAN;페이지: 페이지에서 선택적으로 로그 유형/Selector를 지정하세요:arrow-up-right. 스키마를 생성하면 사용자 정의 인리치먼트를 구성하는 동안 Table Schema 페이지의 드롭다운에서 해당 스키마를 선택할 수 있습니다.

    1. 로그를 선택하고 accountID Cron

    2. 로그를 선택하고 : 고정 시간 간격(예: 2시간마다)으로 쿼리를 실행 recipientAccountID Panther 콘솔을 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기.

  3. : 이 토글을 예(YES).

  4. 를 클릭한 다음 로 설정했는지 확인하세요. 이는 이 프로세스에서 나중에 데이터를 가져오기 위해 필요합니다. 설명(선택 사항) S3 버킷에서 데이터 동기화 참조(선택 사항) 페이지에서 테이블 스키마를 구성하세요: &#xNAN;. The image shows the "Choose Import Method" page in the Panther Console. The options are Import via File Upload and Sync Data from an S3 Bucket. The Setup button is circled next to "Sync Data from an S3 Bucket."

  5. S3 소스를 설정하세요. 데이터는 다음 형식이어야 합니다 .csv 또는 .json &#xNAN;

    • 입력하세요 계정 ID, S3 버킷이 위치한 12자리 AWS 계정 ID입니다.

    • 입력하세요 S3 URI, 특정 S3 버킷을 식별하는 고유 경로입니다.

    • 선택적으로 입력하세요 KMS 키 데이터가 KMS-SSE로 암호화된 경우.

    • 입력하세요 업데이트 주기, S3 소스가 업데이트되는 주기(기본값: 1시간)입니다. The image shows the "Set up your S3 source" form from the Panther Console. There are fields for Account ID, S3 URI, KMS Key, and selectors to choose the Update Period.

  6. : 이 토글을 예(YES).

  7. IAM 역할을 설정하세요.

    • 이를 수행하는 세 가지 옵션에 대한 지침은 다음 섹션 'IAM 역할 생성'을 참조하세요.

  8. : 이 토글을 설정 완료Cron 표현식

  9. 참고: CSV 스키마는 사용자 지정 인리치먼트와 함께 작동하려면 열 헤더가 필요합니다. 드롭다운에서스키마 이름(Schema Name)을 선택하세요. 이는 테이블의 고유한 열이어야 하며 예를 들어 을 클릭하여 시작할 수도 있습니다. 기본 키 이름(Primary Key Name)

    • 을 선택하세요. Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요. 인리치먼트 생성(Create Enrichment)

    • 파일 업로드로 가져오기(Import via File Upload) 선택적으로.

설정(Set Up)The image shows a success page in the Panther Console after creating a Lookup Table. There is an option to set an  alarm in case this Lookup Table doesn't receive any data, and dropdown selectors to choose a time period when you receive the alerts. At the bottom, there is a section showing which destinations will receive the alert.설정(Set Up)

circle-info

사용자 정의 인리치먼트 업로드 실패로 생성된 알림은 페이지에서 파일을 드래그 앤 드롭하거나 파일 선택(Select file) 을 클릭하여 가져올 인리치먼트 데이터 파일을 선택하세요. 파일은 형식이어야 합니다.

IAM 역할 생성

S3 소스를 사용하는 Panther 사용자 정의 인리치먼트에 사용할 IAM 역할을 생성하는 옵션은 세 가지가 있습니다:

AWS 콘솔 UI를 사용하여 IAM 역할 생성

  1. S3 소스를 사용해 사용자 정의 인리치먼트를 생성하는 과정의 "Set Up an IAM role" 페이지에서 "Using the AWS Console UI"라는 타일을 찾으세요. 타일 오른쪽에서 : 일반적으로 내부 리소스에 대한 하이퍼링크용으로 사용됩니다..

  2. : 이 토글을 Launch Console UI. The image shows the screen after you choose to use AWS UI to set up your role. There is a green button in the center labeled "Launch Coonsole UI." At the bottom, there is a field to enter your Role ARN.

    • 새 브라우저 탭에서 템플릿 URL이 미리 채워진 상태로 AWS 콘솔로 리디렉션됩니다.

    • CloudFormation 스택은 S3 버킷의 객체를 읽기 위한 최소 권한을 가진 AWS IAM 역할을 생성합니다.

    • AWS의 CloudFormation 스택에서 "Outputs" 탭을 클릭하고 Role ARN을 기록하세요.

  3. Panther 계정으로 돌아가세요.

  4. "Use AWS UI to set up your role" 페이지에서 Role ARN을 입력하세요.

  5. : 이 토글을 설정 완료.

CloudFormation 템플릿 파일을 사용하여 IAM 역할 생성

  1. S3 소스를 사용해 사용자 정의 인리치먼트를 생성하는 과정의 "Set Up an IAM role" 페이지에서 "CloudFormation Template File"이라는 타일을 찾으세요. 타일 오른쪽에서 : 일반적으로 내부 리소스에 대한 하이퍼링크용으로 사용됩니다..

  2. : 이 토글을 CloudFormation 템플릿, 템플릿을 다운로드하여 자체 파이프라인을 통해 적용할 수 있습니다.

  3. AWS에 템플릿 파일 업로드:

    1. AWS 콘솔을 열고 CloudFormation 제품으로 이동하세요.

    2. : 이 토글을 스택 생성.

    3. : 이 토글을 템플릿 파일 업로드 그리고 다운로드한 CloudFormation 템플릿을 선택하세요.

  4. Panther의 "CloudFormation Template" 페이지에서 Role ARN을 입력하세요.

  5. : 이 토글을 설정 완료.

수동으로 IAM 역할 생성

  1. S3 소스를 사용해 사용자 정의 인리치먼트를 생성하는 과정의 "Set Up an IAM role" 페이지에서 다음 링크를 클릭하세요 직접 모두 설정하겠습니다.

  2. 필요한 IAM 역할을 생성하세요. 필요한 IAM 역할은 수동으로 또는 자체 자동화를 통해 생성할 수 있습니다. 역할 이름 형식은 다음과 같아야 합니다 PantherLUTsRole-${Suffix}(예: PantherLUTsRole-MyLookupTable).

    • IAM 역할 정책에는 아래에 정의된 문(statement)이 포함되어야 합니다:

    • S3 버킷이 AWS KMS를 사용한 서버 측 암호화로 구성된 경우 Panther API가 해당 KMS 키에 접근할 수 있도록 추가 문(statement)을 포함해야 합니다. 이 경우 정책은 다음과 유사합니다:

  3. Panther의 "Setting up role manually" 페이지에서 Role ARN을 입력하세요.

    • 이는 AWS 계정의 CloudFormation 스택 "Outputs" 탭에서 찾을 수 있습니다.

  4. : 이 토글을 설정 완료, 그러면 새 직원 디렉터리 테이블이 나열된 인리치먼트 목록 페이지로 리디렉션됩니다.

chevron-rightS3 또는 GCS 버킷에서 동기화된 사용자 지정 인리치먼트 테이블의 최대 크기는 10GB입니다.hashtag

PAT를 통해 S3 버킷에서 사용자 정의 인리치먼트 데이터 동기화

로 토글하세요.

이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림 전송 대상을 구성하고 사용자화하려면 문서의

  • 섹션을 참조하세요.

    • 사용자 지정 인리치먼트 업로드 실패로 생성된 알림은 Panther 콘솔의 알러트 및 오류(Alerts & Errors). 페이지 내 알러트 및 오류(Alerts & Errors) 시스템 오류(System Errors) 탭에서 접근할 수 있습니다.PAT를 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기 자세한 내용은arrow-up-right 데이터 파일이 1MB보다 큰 경우에는 대신

  • S3 동기화 업로드 방법

    • 또는 알러트 및 오류(Alerts & Errors) 디렉터리(예: 을 사용하는 것이 권장됩니다. panther 분석 리포(repo) 루트에). 다른 사용자 정의 로그 스키마와 함께 저장하도록 선택할 수 있습니다.

  • 사용자 지정 인리치먼트에는 다음 파일이 필요합니다:

인리치먼트 테이블용 YAML 구성 파일

테이블 구성이 이러한 값들 중 일부를 참조하므로 보통 데이터 스키마를 먼저 작성하는 것이 현명합니다.

  1. lookup_tables

  2. 테이블 구성을 위한 YAML 파일을 만드세요. S3의 파일에 저장된 데이터를 사용하는 사용자 정의 인리치먼트의 예시 구성은 다음과 같습니다:

    • 참고로 Refresh 필드에는 다음이 포함됩니다 RoleARN, ObjectPath, 그리고 PeriodMinutes 필드를 포함하는 객체 목록이 됩니다.

    • 필수 및 허용 값 전체 목록은 다음에서 확인하세요 Custom Enrichment Specification Reference.

  3. 리포지토리 루트에서 스키마 파일을 업로드하려면 다음을 실행하세요 panther_analysis_tool update-custom-schemas --path ./schemas.

  4. 리포지토리 루트에서 사용자 정의 인리치먼트를 업로드하려면 panther_analysis_tool upload.

전제 조건

사용자 정의 인리치먼트를 S3와 동기화하도록 구성하기 전에 다음을 준비해야 합니다:

  1. Panther가 S3 버킷에 액세스하는 데 사용할 수 있는 AWS의 IAM 역할 ARN. Panther용 IAM 역할 설정에 대한 자세한 내용은 IAM 역할 생성

  2. 데이터를 저장하려는 파일의 경로. 경로 형식은 다음과 같아야 합니다: s3://bucket-name/path_to_file/file.csv

파일 업로드로 채워진 사용자 지정 인리치먼트 테이블의 최대 크기는 API 요청 페이로드 크기 제한으로 인해 6MB입니다.

circle-info

GCS 버킷에서 인리치먼트 데이터를 동기화하는 기능은 Panther 버전 1.114부터 오픈 베타이며 모든 고객에게 제공됩니다. 버그 보고 및 기능 요청은 Panther 지원팀과 공유해 주세요.

Panther 콘솔이나 PAT를 통해 GCS 버킷에서 데이터 동기화를 설정할 수 있습니다:

chevron-rightPanther 콘솔hashtag

Panther 콘솔을 통해 GCS 버킷에서 사용자 정의 인리치먼트 데이터 동기화

  1. CIDR 매칭은 사용할 수 없습니다. Configure > Enrichments.

  2. Panther 콘솔을 통해 예약 검색으로 데이터 가져오기 이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림이 전송될 대상을 구성하고 사용자화하려면.

  3. 연관된 로그 유형(선택 사항) -> 카드.

  4. 를 클릭한 다음 Panther 대상(Panther Destinations) 를 선택합니다.

    • 또는Investigate > Data Explorer

    • 페이지에서 쿼리를 입력한 다음쿼리로 인리치먼트 생성(Create Enrichment via query) 을 클릭하여 시작할 수도 있습니다.인리치먼트 기본 정보(Enrichment Basic Information)

    • 페이지에서 다음 필드를 입력하세요:인리치먼트 이름(Enrichment Name)

    • : 사용자 지정 인리치먼트에 대한 설명 이름.사용함(Enabled?)

  5. : 이 토글을 예(YES).

  6. 를 클릭한 다음 페이지에서, 예약 검색은 구성된 일정에 따라 실행되어 사용자 지정 인리치먼트 데이터를 자동으로 업데이트합니다. 검색 기록은

    • : 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다..

    • 연관된 로그 유형(선택 사항) 페이지에서 로그 유형/Selector를 지정하세요: 이 단계는 기술적으로 선택 사항(즉, 로그 유형/Selector를 지정하지 않고 건너뛸 수 있음)이나,

    • 자동 매핑(auto-mapping) 선택자(Selectors), 외래 키 필드는 사용자 정의 인리치먼트 데이터로 보강하려는 로그 타입을 구성합니다.

    • : 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다. 검색 기록 페이지(Search History page) The image shows the Associated Log Types form from the Panther Console. The Log Type field is set to AWS.VPCFlow. Selectors is set to "account." 에서 볼 수 있습니다. AWS.VPCFlow 파일 업로드를 통해 Panther 콘솔 또는 PAT로 데이터를 가져올 수 있습니다: 계정 VPC 흐름 로그에서 키를 나타내는 데 사용됩니다.

  7. : 이 토글을 예(YES).

  8. 를 클릭한 다음 : 데이터가 얼마나 자주 새로 고쳐져야 하는지에 따라 스케줄 빈도를 구성하세요. 다음 중 선택: 기본 정보(Basic Information)참고: 아직 새 스키마를 생성하지 않았다면, 다음을 참조하세요 페이지에서 선택적으로 로그 유형/Selector를 지정하세요:arrow-up-right. 스키마를 생성하면 사용자 정의 인리치먼트를 구성하는 동안 Table Schema 페이지의 드롭다운에서 해당 스키마를 선택할 수 있습니다.

    1. 로그를 선택하고 accountID Cron

    2. 로그를 선택하고 : 고정 시간 간격(예: 2시간마다)으로 쿼리를 실행 recipientAccountID Panther 콘솔을 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기.

  9. : 이 토글을 예(YES).

  10. 를 클릭한 다음 로 설정했는지 확인하세요. 이는 이 프로세스에서 나중에 데이터를 가져오기 위해 필요합니다. 설명(선택 사항) Google Cloud Storage 버킷에서 데이터 동기화 참조(선택 사항) 페이지에서 테이블 스키마를 구성하세요: &#xNAN;.

  11. Google Cloud Storage 소스를 설정하세요. 데이터는 다음 형식이어야 합니다 .csv 또는 .json &#xNAN;

    • 입력하세요 Google Cloud Storage URI, 특정 객체를 식별하는 고유 경로입니다.

    • 입력하세요 업데이트 주기, S3 소스가 업데이트되는 주기(기본값: 1시간)입니다.

  12. : 이 토글을 예(YES).

  13. 아이덴티티(identity)를 설정하세요.

    • 이를 수행하는 방법에 대한 지침은 다음 섹션 'Set up an identity'를 참조하세요.

  14. : 이 토글을 설정 완료Cron 표현식

  15. 참고: CSV 스키마는 사용자 지정 인리치먼트와 함께 작동하려면 열 헤더가 필요합니다. 이 사용자 정의 인리치먼트가 데이터를 받지 못할 경우 알람을 설정하시겠습니까?을 선택하세요. 이는 테이블의 고유한 열이어야 하며 예를 들어 을 클릭하여 시작할 수도 있습니다. 기본 키 이름(Primary Key Name)

    • 을 선택하세요. Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요. 인리치먼트 생성(Create Enrichment)

    • 파일 업로드로 가져오기(Import via File Upload) 선택적으로.

    설정(Set Up)

circle-info

사용자 정의 인리치먼트 업로드 실패로 생성된 알림은 페이지에서 파일을 드래그 앤 드롭하거나 파일 선택(Select file) 을 클릭하여 가져올 인리치먼트 데이터 파일을 선택하세요. 파일은 형식이어야 합니다.

아이덴티티 설정

지원되는 아이덴티티 방식은 Workload Identity Federationarrow-up-right입니다. GCS 소스를 사용하는 Panther 사용자 정의 인리치먼트에 Workload Identity Federation을 설정하는 옵션은 세 가지입니다:

  • Terraform 템플릿 파일을 사용하여 Workload Identity Federation 설정

  • GCP 콘솔에서 Workload Identity Federation을 수동으로 설정

Terraform 템플릿 파일을 사용하여 Workload Identity Federation 설정

  1. 를 클릭한 다음 아이덴티티 설정 페이지에서 GCS 소스를 사용해 사용자 정의 인리치먼트를 생성하는 과정 중 "Terraform Template File"이라는 타일을 찾으세요. 타일 오른쪽에서 : 일반적으로 내부 리소스에 대한 하이퍼링크용으로 사용됩니다..

  2. : 이 토글을 Terraform 템플릿, 템플릿을 다운로드하여 자체 파이프라인을 통해 적용할 수 있습니다.

  3. 다음 파일의 필드를 작성하세요 panther.tfvars 파일에 구성 값을 입력하세요.

    • 다음 값들을 제공하세요 panther_workload_identity_pool_id, panther_workload_identity_pool_provider_id,panther_aws_account_id.

    • 버킷을 다른 리소스와 함께 생성할지 또는 이미 버킷이 있는지에 대한 파일의 지침을 따르세요.

  4. Terraform 구성 파일이 들어있는 작업 디렉터리를 초기화하고 다음을 실행하세요 terraform init.

  5. 제공된 해당 Terraform 명령 을 복사하여 CLI에서 실행하세요.

  6. 제공된 gcloud 명령 을 복사하여 프로젝트 번호, 풀 ID 및 공급자 ID 값을 바꾼 후 CLI에서 실행하여 풀에 대한 자격 구성 파일을 생성하세요.

    • 프로젝트 번호, 풀 ID 및 공급자 ID는 Terraform 명령.

  7. 출력에서 확인할 수 있습니다 JSON 파일 제공, 자격 구성 파일을 업로드하세요.

  8. : 이 토글을 설정 완료

GCP 콘솔에서 Workload Identity Federation을 수동으로 설정

  1. Google Cloud 콘솔에서 Panther가 로그를 가져올 버킷을 결정하세요.

circle-exclamation
  1. 다음 지침을 따라 AWS에 대해 Workload Identity Federation을 구성하세요 AWS 또는 Azure와 Workload Identity Federation 구성arrow-up-right 문서.

    1. 다음을 속성 매핑(attribute mapping) 및 조건을 정의할 때arrow-up-right, 다음 예시들을 참고하세요:

      • 예시 속성 매핑들arrow-up-right:

        Google
        AWS

        google.subject

        assertion.arn.extract('arn:aws:sts::{account_id}:')+":"+assertion.arn.extract('assumed-role/{role_and_session}').extract('/{session}')

        attribute.account

        assertion.account

      • 예시 속성 조건arrow-up-right: attribute.account=="<PANTHER_AWS_ACCOUNT_ID>"

    2. 다음을 수행할 때 아이덴티티 풀에 공급자(provider)를 추가arrow-up-right, 다음을 선택하세요 AWS.

circle-exclamation
  1. 필요한 IAM 역할을 계정에 할당하세요.

  • 다음 권한들은 Pub/Sub 구독 및 주제가 있는 프로젝트에 필요합니다:

    요구되는 권한

    역할

    범위

    storage.objects.get

    storage.objects.list

    roles/storage.objectViewer

    버킷 이름

    • 참고: 특정 리소스에 대한 권한에 조건이나 IAM 정책을 설정할 수 있습니다. 이는 GCP의 IAM 섹션에서(아래 예시 스크린샷 참조) 또는 특정 리소스 페이지에서 수행할 수 있습니다. In the Google Cloud console, the "IAM" navigation bar item is circled. In a slide-out panel, sections titled "Add principals" and "Assign roles" are circled.

    • 참고: 다음을 사용하여 권한을 생성할 수 있습니다 gcloud CLI 도구, 여기서 $PRINCIPAL_ID 는 다음과 같을 수 있습니다: principalSet://iam.googleapis.com/projects/<THE_ACTUAL_GOOGLE_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<THE_ACTUAL_POOL_ID>/attribute.account/<THE_ACTUAL_PANTHER_AWS_ACCOUNT_ID>

      • gcloud projects add-iam-policy-binding $PROJECT_ID --member="$PRINCIPAL_ID" --role="roles/storage.objectViewer"

  1. 자격 구성 파일 다운로드arrow-up-right, 이는 Panther에서 GCP 인프라에 인증하는 데 사용됩니다.

  • gcloud CLI 도구를 사용하여 자격 구성 파일을 생성하려면 다음 명령 형식을 사용하세요: gcloud iam workload-identity-pools create-cred-config projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$POOL_ID/providers/$PROVIDER_ID --aws --output-file=config.json

chevron-rightS3 또는 GCS 버킷에서 동기화된 사용자 지정 인리치먼트 테이블의 최대 크기는 10GB입니다.hashtag

PAT를 통해 GCS 버킷에서 사용자 정의 인리치먼트 데이터 동기화

로 토글하세요.

이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림 전송 대상을 구성하고 사용자화하려면 문서의

  • 섹션을 참조하세요.

    • 사용자 지정 인리치먼트 업로드 실패로 생성된 알림은 Panther 콘솔의 알러트 및 오류(Alerts & Errors). 페이지 내 알러트 및 오류(Alerts & Errors) 시스템 오류(System Errors) 탭에서 접근할 수 있습니다.PAT를 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기 자세한 내용은arrow-up-right 데이터 파일이 1MB보다 큰 경우에는 대신

  • S3 동기화 업로드 방법

    • 또는 알러트 및 오류(Alerts & Errors) GCS 동기화 업로드 방법 을 사용하는 것이 권장됩니다. 파일 및 폴더 설정

  • 사용자 지정 인리치먼트에는 다음 파일이 필요합니다:

인리치먼트 테이블용 YAML 구성 파일

테이블 구성이 이러한 값들 중 일부를 참조하므로 보통 데이터 스키마를 먼저 작성하는 것이 현명합니다.

  1. lookup_tables

  2. 테이블 구성을 위한 YAML 파일을 만드세요. GCS의 파일에 저장된 데이터를 사용하는 사용자 정의 인리치먼트의 예시 파일은 아래를 참조하세요.

    • 참고로 Refresh 필드에는 다음이 포함됩니다 GCSCredentials, StorageProvider, ObjectPath, 그리고 PeriodMinutes 필드를 포함하는 객체 목록이 됩니다.

    • 필수 및 허용 값 전체 목록은 다음에서 확인하세요 Custom Enrichment Specification Reference.

  3. 리포지토리 루트에서 스키마 파일을 업로드하려면 다음을 실행하세요 panther_analysis_tool update-custom-schemas --path ./schemas.

  4. 리포지토리 루트에서 사용자 정의 인리치먼트를 업로드하려면 panther_analysis_tool upload.

전제 조건

사용자 정의 인리치먼트를 GGS 버킷과 동기화하도록 구성하기 전에 다음을 준비해야 합니다:

  • Panther가 Google Cloud Storage 객체에 액세스하는 데 사용할 수 있는 workload identity 풀에 대한 JSON 자격 구성 파일. Panther용 Workload Identity Federation 설정에 대한 자세한 내용은 아이덴티티 설정 위의 Panther 콘솔 지침 섹션을 참조하세요.

  • 데이터를 저장하려는 파일의 경로. 경로 형식은 다음과 같아야 합니다: gs://bucket-name/path_to_file/file.csv

을(를) 참조하세요.

사용자 정의 인리치먼트를 구성한 후에는 추가 컨텍스트를 기반으로 디텍션을 작성할 수 있습니다.

예를 들어 AWS CloudTrail 로그에서 개발자 계정과 운영 계정을 구분하도록 사용자 정의 인리치먼트를 구성한 경우, 다음 두 조건이 모두 참일 때만 알러트를 받도록 설정할 수 있습니다:

  • MFA가 활성화되지 않은 사용자가 로그인했습니다.

  • AWS 계정이 운영(production) 계정입니다(개발 계정이 아님).

인리치먼트 데이터를 사용하여 디텍션을 생성하는 방법은 아래를 참조하세요:

이벤트가 자동으로 인리치된 인리치먼트 데이터에 접근하기

Python에서는 로그 이벤트에 인리치먼트 데이터가 주입되면, 이벤트에 헬퍼 함수 를 사용하여 로그의 외래 키 필드를 사용해 p_enrichment 에서 조회된 필드를 검색할 수 있습니다. 패턴은 다음과 같습니다:

circle-info

사용자 정의 인리치먼트 이름, 외래 키 및 필드 이름은 모두 선택적 매개변수입니다. 지정하지 않으면 로그 이벤트에 인리치먼트 데이터가 주입되면, 이벤트에 는 사용 가능한 모든 인리치먼트 데이터를 포함한 계층적 딕셔너리를 반환합니다. 매개변수를 지정하면 관심 있는 데이터만 반환되도록 보장할 수 있습니다.

룰은 다음과 같이 될 것입니다:


인리치먼트 데이터를 동적으로 접근하기

또한 이벤트 객체의 사용자 지정 인리치먼트 데이터를 사용하여 디텍션 작성하기 사용하기 를 사용하여 디텍션에서 인리치먼트 데이터를 동적으로 접근할 수 있습니다. 이는 이벤트에 인리치먼트의 기본 키 열과 정확히 일치하는 값이 없을 때 유용할 수 있습니다.

Panther 룰 엔진은 조회된 매치들을 가져와 다음 JSON 구조에서 키 p_enrichment 를 사용하여 이벤트에 해당 데이터를 추가합니다:

예:

매치된 로그 키의 값이 배열인 경우(예: p_any_aws_accout_ids), 조회 데이터는 매칭된 레코드를 포함하는 배열이 됩니다.

예:

인리치먼트를 사용하는 디텍션 테스트하기

룰에서 p_enrichment을 사용하는 경우, 오른쪽 상단의 JSON 코드 편집기에서 테스트 데이터 인리치 를 클릭하여 인리치먼트 데이터로 채우세요. 이렇게 하면 인리치먼트가 포함된 이벤트로 Python 함수를 테스트할 수 있습니다. p_enrichment.

circle-info

단위 테스트가 제대로 인리치되려면 이벤트에 다음 두 필드를 지정해야 합니다:

  • p_log_type: 어떤 인리치먼트를 사용할지 결정합니다

  • 선택기(selector) 필드: 매칭에 사용할 값을 제공합니다

A "Unit Test" header is above a code block with JSON. The JSON includes various key/value pairs—for example, "p_log_type": "My.Log.Type"

마지막 업데이트

도움이 되었나요?