커스텀 보강
직접 저장한 데이터로 이벤트를 보강하기
개요
사용자 지정 인리치먼트(일명 "조회 테이블")를 사용하면 Panther에 사용자 지정 인리치먼트 데이터를 저장하고 참조할 수 있습니다. 즉, 탐지에서 이 추가 컨텍스트를 참조하고 알러트로 전달할 수 있습니다. 이는 신원/자산 정보, 취약성 컨텍스트 또는 네트워크 맵을 포함하는 사용자 지정 인리치먼트를 생성하는 데 특히 유용할 수 있습니다.
다음과 같은 네 가지 가져오기 방법 옵션: 예약 검색(Scheduled Search), 정적 파일, S3 버킷 또는 Google Cloud Storage(GCS) 버킷입니다.
하나 이상의 로그 유형을 사용자 지정 인리치먼트에 연결할 수 있습니다—그런 다음 해당 유형의 모든 수신 로그(인리치먼트 테이블 값과 일치하는 경우)에 인리치먼트 데이터가 포함됩니다. 인리치먼트 프로세스에 대해 더 알아보려면 수신 로그가 어떻게 인리치되는지를 참조하세요. Python 디텍션에서 인리치먼트 데이터를 동적으로 참조할 수도 있습니다를 참조하세요. 여기에 저장된 인리치먼트 데이터를 표시하는 방법을보는 방법과 여기에서 인리치먼트 데이터가 포함된 로그 이벤트를 보는 방법을 확인하세요.
데이터가 몇몇 특정 디텍션에서만 필요하고 자주 업데이트되지 않는 경우, 인리치먼트 대신 글로벌 헬퍼(Global helpers) 를 사용하는 것을 고려하세요. 또한 IPinfo 및 Tor Exit Nodes와 같은 Panther 관리형 인리치먼트 서비스를 사용할 수 있다는 점도 참고하세요.
사용자 지정 인리치먼트 수 및/또는 인리치먼트 테이블 크기 제한을 늘리려면 Panther 지원팀에 문의하세요.
수신 로그가 어떻게 인리치되는지
Panther의 인리치먼트는 전통적으로 다음 두 가지를 모두 정의합니다:
기본 키: 인리치먼트 테이블 데이터의 필드.
CLI 워크플로우에서 인리치먼트를 정의한 경우, 이는
PrimaryKey필드를 YAML 구성 파일.
하나 이상의 연관된 로그 유형(각 유형마다 하나 이상의 Selector 포함): Selector는 값이 인리치먼트 테이블의 기본 키 값과 비교되어 일치를 찾는 이벤트 필드입니다.
인리치먼트에 대해 로그 유형/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).

인리치먼트에 대해 로그 유형과 Selector가 설정되는 방법
를 포함하여)로 로그가 인리치되었습니다. 수동으로 연관된 로그 유형과 Selector를 설정할 수 있으며 (옵션 1), 또는 자동으로 매핑되도록 할 수 있습니다 (옵션 2).
옵션 1: 로그 유형과 Selector를 수동으로 선택하기
인리치먼트를 생성할 때, 인리치먼트를 연결할 하나 이상의 로그 유형과 각 로그 유형마다 하나 이상의 Selector 필드를 선택할 수 있습니다.
이와 같이 로그 유형과 Selector를 수동으로 선택하더라도, 옵션 2 에서 설명한 자동 매핑은 여전히 적용된다는 점을 유의하세요.
Panther 콘솔에서 인리치먼트를 생성할 때 연관된 로그 유형과 Selector를 설정할 수 있습니다. 자세한 내용은 사용자 지정 인리치먼트를 구성하는 방법을(를) 아래에서 참조하세요.

CLI 워크플로우에서 인리치먼트를 생성할 때는 YAML 구성 파일을 작성하여 업로드합니다.
AssociatedLogTypes값은LogType및선택자(Selectors)필드를 포함하는 객체 목록이 됩니다.전체 필드 목록은 Custom Enrichment Specification Reference 을(를) 참조하세요.
옵션 2: 로그 유형과 Selector를 자동 매핑하도록 허용하기
으로 표시될 수 있습니다.
- mitre_attack_technique
각 지시자 값에 대해 Panther는 자동으로: 모든 사용 중인
로그 유형을 찾아 해당 이벤트 필드를 동일한 지시자로 지정합니다.
해당 로그 유형들을 인리치먼트에 연관시킵니다.
각 로그 유형에 대해, 지시자와 연관된p_any
필드를 Selector로 설정합니다. 예를 들어, 인리치먼트 데이터의 스키마가 attack_ids 기본 키를 mitre_attack_technique 기본 키를 지시자로 지정한 경우 위에 표시된 것처럼, Panther 인스턴스의 모든 로그 유형들이 또한 지시자를 설정하면 인리치먼트에 연관되고, 각 로그 유형에는 p_any_mitre_attack_techniques
라는 Selector가 설정됩니다.
cidr: ipv4
각 지시자 값에 대해 Panther는 자동으로: 모든 이 경우 Panther는 자동으로:
가어떤 이벤트 필드를로그 유형을 찾아 해당 이벤트 필드를 동일한 지시자로 지정합니다.
해당 로그 유형들을 인리치먼트에 연관시킵니다.
p_any_ip_addressesp_any
지시자로 지정한 로그 유형들을
p_enrichment 구조
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 값과 비교될 값입니다.
기본 키 요구 사항에 대해 더 알아보려면 아래의
섹션을 참조하세요.
(선택 사항) 수신 로그의 Selector(들) Custom Enrichment Specification Reference 을(를) 참조하세요.
이 Selector들의 값은 인리치먼트 데이터에서 일치를 검색하는 데 사용됩니다. (CLI 워크플로우): 인리치먼트 구성 파일
자세한 내용은를 참조하세요. 권장: 다음의 Panther 분석 도구 (PAT).
panther-analysis
리포지토리를 포크하여
설치하는 것을 권장합니다.
파일 업로드 또는 S3/GCS 버킷을 사용하는 경우:
JSON 또는 CSV 형식의 인리치먼트 데이터
JSON 파일은 라인, 배열 또는 객체 등 다양한 방식으로 이벤트를 형식화할 수 있습니다. 예약 검색을 사용하는 경우:.
기본 키 데이터 유형
인리치먼트에 사용하려는 데이터를 반환하는 SQL 쿼리
문자열
Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요.
인리치먼트 테이블의 기본 키 열은 다음 데이터 유형 중 하나여야 합니다:
숫자
배열(문자열 또는 숫자의 배열)
배열을 사용하면 인리치먼트 테이블의 한 행을 여러 문자열 또는 숫자 기본 키 값과 연결할 수 있습니다. 이렇게 하면 동일한 행을 여러 기본 키에 대해 중복 저장할 필요가 없습니다.
예시: 문자열 배열 대 문자열 기본 키 유형
예를 들어 사용자 데이터를 사용자 지정 인리치먼트 테이블에 저장하여 특정 사용자와 연관된 수신 로그 이벤트에 추가 개인 정보를 인리치하도록 하고 싶을 수 있습니다. 사용자의 이메일 주소로 매칭하려는 경우, 이메일 필드는 인리치먼트 테이블의 기본 키이자 로그 이벤트의 Selector가 됩니다.
"actor_email": "[email protected]","action": "EXPORT_FILE" 및 두 이메일 주소([email protected] [email protected].
)가 동일한 사용자
# 인리치 후 로그 이벤트 둘
"action": "EXPORT_FILE",
"p_match": "[email protected]",
이 인리치먼트는 다음 중 하나로 달성할 수 있습니다:
(권장) 문자열 배열 타입의 기본 키 열
문자열 타입의 기본 키 열
사용자 지정 인리치먼트를 구성하는 방법
문자열 배열 타입의 기본 키 열을 사용하면 Jane의 여러 이메일 주소를 하나의 기본 키 항목에 포함시켜 하나의 데이터 행에 연결할 수 있습니다. 이는 다음과 같이 보일 수 있습니다: 또는 기본 키 열을 문자열 타입으로 정의할 수 있습니다. 그러나 이벤트와 인리치먼트 테이블 간의 매칭이 사용자의 이메일 주소로 이루어지고 사용자가 여러 이메일 주소를 가질 수 있으므로(위 Jane 사례와 같이), 각 이메일마다 인리치먼트 테이블 행을 중복해야 합니다. 이는 다음과 같이 보일 것입니다:두 옵션 모두 동일한 결과(로그 이벤트가 동일한 방식으로 인리치되는 것)를 제공하지만, 문자열 배열 기본 키를 사용하는 것이 편의성과 유지보수 오류 가능성 감소 측면에서 권장됩니다.
전제 조건
을(를) 충족한 후, 사용자 지정 인리치먼트는 다음 방법 중 하나를 사용하여 생성 및 구성할 수 있습니다:
옵션 1: 예약 검색으로 사용자 지정 인리치먼트 데이터 가져오기 데이터 웨어하우스에서 직접 데이터를 가져오고 주기적으로 자동 업데이트하려는 경우에 적합합니다.
예: 의심스러운 IP, 사용자 행동 패턴 또는 현재 환경에 따라 자동으로 새로 고쳐야 하는 AWS 계정 매핑을 추적하는 경우.
옵션 2:
파일 업로드를 통해 사용자 지정 인리치먼트 데이터 가져오기
AWS 계정 정보 또는 회사 서브넷과 같은 비교적 정적인 데이터에 적합합니다. 또는 파일 업로드로 채워진 사용자 지정 인리치먼트 테이블의 최대 크기는 API 요청 페이로드 크기 제한으로 인해 6MB입니다.
예: AWS CloudTrail 로그에서 개발자 계정과 운영 계정을 구분하는 메타데이터를 추가하는 경우.
옵션 3: S3 버킷에서 사용자 지정 인리치먼트 데이터 동기화
옵션 4: Google Cloud Storage(GCS) 버킷에서 사용자 지정 인리치먼트 데이터 동기화
데이터가 많고 비교적 자주 업데이트되는 경우에 적합합니다. S3 또는 GCS 버킷의 모든 변경 사항이 Panther로 동기화됩니다. S3 또는 GCS 버킷에서 동기화된 사용자 지정 인리치먼트 테이블의 최대 크기는 10GB입니다..
예: 회사 직원과 연관된 그룹 및 권한 수준을 알고 싶을 경우. 이 시나리오에서는 회사가 그룹 및 권한 정보를 포함한 최신 Active Directory 목록을 S3 버킷에 보관할 수 있습니다.
다음
이 방법 중 하나를 선택한 후 Panther 콘솔에서 작업하거나 PAT 를 사용할 수 있습니다.
사용자 지정 인리치먼트 테이블의 행 당 최대 크기는 65535 바이트입니다. 예약 검색으로 사용자 지정 인리치먼트 데이터를 가져오는 기능은 Panther 버전 1.117부터오픈 베타
로 제공되며, 모든 고객이 사용할 수 있습니다. 버그 리포트 및 기능 요청은 Panther 지원팀에 공유해 주세요.
사용자 지정 인리치먼트 데이터는 예약 검색의 결과로 자동 채워질 수 있습니다. 이 방법은 외부 스크립트나 수동 CSV 내보내기의 필요를 없애고 정의된 일정에 따라 자동으로 업데이트되는 인리치먼트 데이터를 유지할 수 있게 합니다. 예약 검색을 사용하여 사용자 지정 인리치먼트 데이터를 가져올 때의 제한 사항Panther가 생성한 데이터 스키마에서는
지시자 필드 를 정의할 수 없습니다. 이는 로그 유형/Selector를 자동 매핑하도록 할 수 없음을 의미합니다
—직접 지정해야 합니다.
사용자 지정 인리치먼트는 최대
100 MB까지의 예약 검색
Panther 콘솔
만 처리할 수 있습니다.
CIDR 매칭은 사용할 수 없습니다. 예약 검색은 최소 15분 단위로 실행될 수 있습니다. > 검색 타임아웃은 15분으로 고정되어 있으며 구성할 수 없습니다.
Panther 콘솔을 통해 예약 검색으로 데이터 가져오기 Panther 콘솔의 왼쪽 탐색 바에서 구성(Configure) ->.
인리치먼트(Enrichments) 을 클릭하세요. 우측 상단에서 새로 만들기(Create New).
를 클릭한 다음 사용자 지정 인리치먼트(Custom Enrichment) 를 선택합니다.
또는Investigate > Data Explorer
페이지에서 쿼리를 입력한 다음쿼리로 인리치먼트 생성(Create Enrichment via query)
을 클릭하여 시작할 수도 있습니다.인리치먼트 기본 정보(Enrichment Basic Information)페이지에서 다음 필드를 입력하세요:인리치먼트 이름(Enrichment Name)
: 사용자 지정 인리치먼트에 대한 설명 이름.사용함(Enabled?)
: 이 토글을 예(YES).
를 클릭한 다음 로 설정했는지 확인하세요. 이는 이 프로세스에서 나중에 데이터를 가져오기 위해 필요합니다. 설명(선택 사항) : 테이블에 대한 추가 컨텍스트. 참조(선택 사항) : 일반적으로 내부 리소스에 대한 하이퍼링크용으로 사용됩니다..
계속(Continue) 를 클릭하세요. 가져오기 방법 선택(Choose Import Method)
를 클릭한 다음 페이지에서, 쿼리로 데이터 가져오기(Import Data with a Query)
타일에서 선택(Select) 을 클릭하세요.
: 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다..
연관된 로그 유형(선택 사항) 페이지에서 로그 유형/Selector를 지정하세요: 이 단계는 기술적으로 선택 사항(즉, 로그 유형/Selector를 지정하지 않고 건너뛸 수 있음)이나,
자동 매핑(auto-mapping) 선택자(Selectors)이 지원되지 않으므로 로그가 인리치되려면 이 지정들을 반드시 해야 합니다.
로그 유형 추가(Add Log Type) 로그 유형(Log Type) 드롭다운을 클릭한 다음 로그 유형을 선택하세요.하나 이상의
를 선택하여 해당 로그 유형에서 사용자 지정 인리치먼트로 인리치할 외래 키 필드를 선택하세요..
: 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다. 중첩된 객체의 속성은
: 이 토글을 예(YES).
를 클릭한 다음 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
는float
타입의 필드를 생성하고mean_total_events 라는 이름을 부여합니다.
: 이 토글을 예(YES)스케줄 유형 및 빈도(Schedule Type & Frequency)
를 클릭한 다음 : 데이터가 얼마나 자주 새로 고쳐져야 하는지에 따라 스케줄 빈도를 구성하세요. 다음 중 선택: 기간(Period) : 고정 시간 간격(예: 2시간마다)으로 쿼리를 실행 Cron
: 이 토글을 : Cron 표현식을 사용하여 특정 날짜 및 시간에 쿼리를 실행Cron 표현식
Panther는 SQL 쿼리에서 자동으로 스키마를 생성합니다. 테이블 스키마(Table Schema)페이지에서 자동으로 생성된 스키마를 검토하고 드롭다운에서
을 클릭하여 시작할 수도 있습니다.기본 키 이름(Primary Key Name)을 선택하세요. Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요. 및 는 인리치먼트 생성(Create Enrichment)
. 소스 설정 성공 페이지가 표시됩니다. 선택적으로.
: 이 토글을 설정 완료.
설정할 수 있습니다. 이 인리치먼트가 데이터를 수신하지 않을 경우 알람을 설정하시겠습니까?.
를 켜려면
으로 토글하세요.
Panther 콘솔
알람이 전송되는 빈도를 나타내기 위해
CIDR 매칭은 사용할 수 없습니다. 예약 검색은 최소 15분 단위로 실행될 수 있습니다. > 필드를 작성하세요..
Panther 콘솔을 통해 예약 검색으로 데이터 가져오기 이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림이 전송될 대상을 구성하고 사용자화하려면.
를 클릭한 다음 Panther 대상(Panther Destinations) 을 참조하세요.
또는Investigate > Data Explorer
페이지에서 쿼리를 입력한 다음쿼리로 인리치먼트 생성(Create Enrichment via query)
을 클릭하여 시작할 수도 있습니다.인리치먼트 기본 정보(Enrichment Basic Information)페이지에서 다음 필드를 입력하세요:인리치먼트 이름(Enrichment Name)
: 사용자 지정 인리치먼트에 대한 설명 이름.사용함(Enabled?)

: 이 토글을 예(YES).
를 클릭한 다음 페이지에서, 예약 검색은 구성된 일정에 따라 실행되어 사용자 지정 인리치먼트 데이터를 자동으로 업데이트합니다. 검색 기록은
: 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다..
연관된 로그 유형(선택 사항) 페이지에서 로그 유형/Selector를 지정하세요: 이 단계는 기술적으로 선택 사항(즉, 로그 유형/Selector를 지정하지 않고 건너뛸 수 있음)이나,
자동 매핑(auto-mapping) 선택자(Selectors)이 지원되지 않으므로 로그가 인리치되려면 이 지정들을 반드시 해야 합니다.
로그 유형 추가(Add Log Type) 로그 유형(Log Type) 드롭다운을 클릭한 다음 로그 유형을 선택하세요.하나 이상의
를 선택하여 해당 로그 유형에서 사용자 지정 인리치먼트로 인리치할 외래 키 필드를 선택하세요..
: 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다. 검색 기록 페이지(Search History page)
에서 볼 수 있습니다. 옵션 2: 파일 업로드를 통해 사용자 지정 인리치먼트 데이터 가져오기 파일 업로드를 통해 Panther 콘솔 또는 PAT로 데이터를 가져올 수 있습니다: Panther 콘솔을 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기및인리치먼트(Enrichments)새로 만들기(Create New)
: 이 토글을 예(YES).
를 클릭한 다음 : 데이터가 얼마나 자주 새로 고쳐져야 하는지에 따라 스케줄 빈도를 구성하세요. 다음 중 선택: 기본 정보(Basic Information)페이지: 페이지에서 선택적으로 로그 유형/Selector를 지정하세요:필요한 경우 추가하세요. 위의 예시 스크린샷에서 우리는AWS.CloudTrail.
로그를 선택하고 accountID Cron
로그를 선택하고 : 고정 시간 간격(예: 2시간마다)으로 쿼리를 실행 recipientAccountID
Panther 콘솔을 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기.
: 이 토글을 예(YES).
를 클릭한 다음 로 설정했는지 확인하세요. 이는 이 프로세스에서 나중에 데이터를 가져오기 위해 필요합니다. 설명(선택 사항) 를 CloudTrail 로그의 키를 나타내기 위해 입력했습니다. 참조(선택 사항) 페이지에서 테이블 스키마를 구성하세요: &#xNAN;.
를 클릭한 다음 참고: 아직 새 스키마를 생성하지 않았다면 스키마 생성에 대한 문서 을 참조하세요. 또한 사용자 지정 인리치먼트 데이터를 사용하여 스키마를 유추할 수 있습니다. 스키마를 생성한 후에는 인리치먼트를 구성하는 동안 테이블 스키마 드롭다운에서 해당 스키마를 선택할 수 있습니다.
.csv또는.json&#xNAN;: 이 토글을 설정 완료Cron 표현식
참고: CSV 스키마는 사용자 지정 인리치먼트와 함께 작동하려면 열 헤더가 필요합니다. 드롭다운에서스키마 이름(Schema Name)을 선택하세요. 이는 테이블의 고유한 열이어야 하며 예를 들어 을 클릭하여 시작할 수도 있습니다. 기본 키 이름(Primary Key Name)
을 선택하세요. Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요. 및 는 인리치먼트 생성(Create Enrichment)
파일 업로드로 가져오기(Import via File Upload) 선택적으로.
설정(Set Up)

파일 업로드(Upload File) 페이지에서 파일을 드래그 앤 드롭하거나 파일 선택(Select file) 을 클릭하여 가져올 인리치먼트 데이터 파일을 선택하세요. 파일은 형식이어야 합니다.
S3 또는 GCS 버킷에서 동기화된 사용자 지정 인리치먼트 테이블의 최대 크기는 10GB입니다.
선택적으로,
이 옆에서 이 인리치먼트가 데이터를 수신하지 않을 경우 알람을 설정하시겠습니까? 또는 설정을.
로 토글하세요.
이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림 전송 대상을 구성하고 사용자화하려면 문서의
섹션을 참조하세요.
사용자 지정 인리치먼트 업로드 실패로 생성된 알림은 Panther 콘솔의
알러트 및 오류(Alerts & Errors). 페이지 내알러트 및 오류(Alerts & Errors)시스템 오류(System Errors)탭에서 접근할 수 있습니다.PAT를 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기 자세한 내용은 데이터 파일이 1MB보다 큰 경우에는 대신
S3 동기화 업로드 방법
또는
알러트 및 오류(Alerts & Errors)GCS 동기화 업로드 방법을 사용하는 것이 권장됩니다.파일 및 폴더 설정
사용자 지정 인리치먼트에는 다음 파일이 필요합니다:
인리치먼트 테이블용 YAML 구성 파일
이 사용자 지정 인리치먼트 구성 파일은 이름에
lookup_tables
가 포함된 폴더에 저장되어야 합니다. 이는 최상위 디렉터리일 수도 있고, 이름이
*lookup_tables* Custom Enrichment Specification Reference.
와 일치하는 하위 디렉터리일 수도 있습니다. 참조용으로
리포지토리 루트에서 스키마 파일을 업로드하려면 다음을 실행하세요
panther_analysis_tool update-custom-schemas--path ./schemas.리포지토리 루트에서 사용자 정의 인리치먼트를 업로드하려면
panther_analysis_tool upload.
Panther Analysis Tool을 통해 사용자 정의 인리치먼트를 업데이트하세요:
해당 사용자 정의 인리치먼트의 YAML 구성 파일을 찾으세요.
파일을 열고 필드
파일이름. 데이터 파일로 이어지는 파일 경로가 표시됩니다.에서 표시된 파일을 업데이트하거나 교체하세요
파일이름. 허용되는 값을 보려면 Custom Enrichment Specification Reference.구성 파일을 저장한 다음 다음으로 변경 사항을 업로드하세요:
선택적으로 사용자 정의 인리치먼트만 업로드하도록 지정할 수 있습니다:
AWS 계정 정보 또는 회사 서브넷과 같은 비교적 정적인 데이터에 적합합니다.
Panther 콘솔이나 PAT를 통해 S3 버킷에서 데이터 동기화를 설정할 수 있습니다:
Panther 콘솔
Panther 콘솔을 통해 S3 버킷에서 사용자 정의 인리치먼트 데이터를 동기화
CIDR 매칭은 사용할 수 없습니다. Configure > Enrichments.
Panther 콘솔을 통해 예약 검색으로 데이터 가져오기 이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림이 전송될 대상을 구성하고 사용자화하려면.
추가(Add)를 클릭하세요 -> 카드.
를 클릭한 다음 Panther 대상(Panther Destinations) 를 선택합니다.
또는Investigate > Data Explorer
페이지에서 쿼리를 입력한 다음쿼리로 인리치먼트 생성(Create Enrichment via query)
을 클릭하여 시작할 수도 있습니다.인리치먼트 기본 정보(Enrichment Basic Information)페이지에서 다음 필드를 입력하세요:인리치먼트 이름(Enrichment Name)
: 사용자 지정 인리치먼트에 대한 설명 이름.사용함(Enabled?)

를 클릭한 다음 연관된 로그 타입 예약 검색은 구성된 일정에 따라 실행되어 사용자 지정 인리치먼트 데이터를 자동으로 업데이트합니다. 검색 기록은
: 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다..
연관된 로그 유형(선택 사항) 페이지에서 로그 유형/Selector를 지정하세요: 이 단계는 기술적으로 선택 사항(즉, 로그 유형/Selector를 지정하지 않고 건너뛸 수 있음)이나,
자동 매핑(auto-mapping) 선택자(Selectors), 외래 키 필드는 사용자 정의 인리치먼트 데이터로 보강하려는 로그 타입을 구성합니다.
로그 유형 추가(Add Log Type) 로그 유형(Log Type) 드롭다운을 클릭한 다음 로그 유형을 선택하세요.하나 이상의
를 선택하여 해당 로그 유형에서 사용자 지정 인리치먼트로 인리치할 외래 키 필드를 선택하세요..
: 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다. 검색 기록 페이지(Search History page)
에서 볼 수 있습니다. AWS.VPCFlow 파일 업로드를 통해 Panther 콘솔 또는 PAT로 데이터를 가져올 수 있습니다: 계정VPC 흐름 로그에서 키를 나타내는 데 사용됩니다.
: 이 토글을 예(YES).
를 클릭한 다음 : 데이터가 얼마나 자주 새로 고쳐져야 하는지에 따라 스케줄 빈도를 구성하세요. 다음 중 선택: 페이지에서 테이블 스키마를 구성하세요. &#xNAN;페이지: 페이지에서 선택적으로 로그 유형/Selector를 지정하세요:. 스키마를 생성하면 사용자 정의 인리치먼트를 구성하는 동안 Table Schema 페이지의 드롭다운에서 해당 스키마를 선택할 수 있습니다.
로그를 선택하고 accountID Cron
로그를 선택하고 : 고정 시간 간격(예: 2시간마다)으로 쿼리를 실행 recipientAccountID
Panther 콘솔을 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기.
: 이 토글을 예(YES).
를 클릭한 다음 로 설정했는지 확인하세요. 이는 이 프로세스에서 나중에 데이터를 가져오기 위해 필요합니다. 설명(선택 사항) S3 버킷에서 데이터 동기화 참조(선택 사항) 페이지에서 테이블 스키마를 구성하세요: &#xNAN;.

S3 소스를 설정하세요. 데이터는 다음 형식이어야 합니다
.csv또는.json&#xNAN;입력하세요 계정 ID, S3 버킷이 위치한 12자리 AWS 계정 ID입니다.
입력하세요 S3 URI, 특정 S3 버킷을 식별하는 고유 경로입니다.
선택적으로 입력하세요 KMS 키 데이터가 KMS-SSE로 암호화된 경우.
입력하세요 업데이트 주기, S3 소스가 업데이트되는 주기(기본값: 1시간)입니다.

: 이 토글을 예(YES).
IAM 역할을 설정하세요.
이를 수행하는 세 가지 옵션에 대한 지침은 다음 섹션 'IAM 역할 생성'을 참조하세요.
: 이 토글을 설정 완료Cron 표현식
참고: CSV 스키마는 사용자 지정 인리치먼트와 함께 작동하려면 열 헤더가 필요합니다. 드롭다운에서스키마 이름(Schema Name)을 선택하세요. 이는 테이블의 고유한 열이어야 하며 예를 들어 을 클릭하여 시작할 수도 있습니다. 기본 키 이름(Primary Key Name)
을 선택하세요. Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요. 및 는 인리치먼트 생성(Create Enrichment)
파일 업로드로 가져오기(Import via File Upload) 선택적으로.
설정(Set Up)
설정(Set Up)
사용자 정의 인리치먼트 업로드 실패로 생성된 알림은 페이지에서 파일을 드래그 앤 드롭하거나 파일 선택(Select file) 을 클릭하여 가져올 인리치먼트 데이터 파일을 선택하세요. 파일은 형식이어야 합니다.
IAM 역할 생성
S3 소스를 사용하는 Panther 사용자 정의 인리치먼트에 사용할 IAM 역할을 생성하는 옵션은 세 가지가 있습니다:

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

새 브라우저 탭에서 템플릿 URL이 미리 채워진 상태로 AWS 콘솔로 리디렉션됩니다.
CloudFormation 스택은 S3 버킷의 객체를 읽기 위한 최소 권한을 가진 AWS IAM 역할을 생성합니다.
AWS의 CloudFormation 스택에서 "Outputs" 탭을 클릭하고 Role ARN을 기록하세요.
Panther 계정으로 돌아가세요.
"Use AWS UI to set up your role" 페이지에서 Role ARN을 입력하세요.
: 이 토글을 설정 완료.
CloudFormation 템플릿 파일을 사용하여 IAM 역할 생성
S3 소스를 사용해 사용자 정의 인리치먼트를 생성하는 과정의 "Set Up an IAM role" 페이지에서 "CloudFormation Template File"이라는 타일을 찾으세요. 타일 오른쪽에서 : 일반적으로 내부 리소스에 대한 하이퍼링크용으로 사용됩니다..
: 이 토글을 CloudFormation 템플릿, 템플릿을 다운로드하여 자체 파이프라인을 통해 적용할 수 있습니다.
AWS에 템플릿 파일 업로드:
AWS 콘솔을 열고 CloudFormation 제품으로 이동하세요.
: 이 토글을 스택 생성.
: 이 토글을 템플릿 파일 업로드 그리고 다운로드한 CloudFormation 템플릿을 선택하세요.
Panther의 "CloudFormation Template" 페이지에서 Role ARN을 입력하세요.
: 이 토글을 설정 완료.
수동으로 IAM 역할 생성
S3 소스를 사용해 사용자 정의 인리치먼트를 생성하는 과정의 "Set Up an IAM role" 페이지에서 다음 링크를 클릭하세요 직접 모두 설정하겠습니다.
필요한 IAM 역할을 생성하세요. 필요한 IAM 역할은 수동으로 또는 자체 자동화를 통해 생성할 수 있습니다. 역할 이름 형식은 다음과 같아야 합니다
PantherLUTsRole-${Suffix}(예:PantherLUTsRole-MyLookupTable).IAM 역할 정책에는 아래에 정의된 문(statement)이 포함되어야 합니다:
S3 버킷이 AWS KMS를 사용한 서버 측 암호화로 구성된 경우 Panther API가 해당 KMS 키에 접근할 수 있도록 추가 문(statement)을 포함해야 합니다. 이 경우 정책은 다음과 유사합니다:
Panther의 "Setting up role manually" 페이지에서 Role ARN을 입력하세요.
이는 AWS 계정의 CloudFormation 스택 "Outputs" 탭에서 찾을 수 있습니다.
: 이 토글을 설정 완료, 그러면 새 직원 디렉터리 테이블이 나열된 인리치먼트 목록 페이지로 리디렉션됩니다.
S3 또는 GCS 버킷에서 동기화된 사용자 지정 인리치먼트 테이블의 최대 크기는 10GB입니다.
PAT를 통해 S3 버킷에서 사용자 정의 인리치먼트 데이터 동기화
로 토글하세요.
이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림 전송 대상을 구성하고 사용자화하려면 문서의
섹션을 참조하세요.
사용자 지정 인리치먼트 업로드 실패로 생성된 알림은 Panther 콘솔의
알러트 및 오류(Alerts & Errors). 페이지 내알러트 및 오류(Alerts & Errors)시스템 오류(System Errors)탭에서 접근할 수 있습니다.PAT를 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기 자세한 내용은 데이터 파일이 1MB보다 큰 경우에는 대신
S3 동기화 업로드 방법
또는
알러트 및 오류(Alerts & Errors)디렉터리(예:을 사용하는 것이 권장됩니다.panther 분석 리포(repo) 루트에). 다른 사용자 정의 로그 스키마와 함께 저장하도록 선택할 수 있습니다.
사용자 지정 인리치먼트에는 다음 파일이 필요합니다:
인리치먼트 테이블용 YAML 구성 파일
테이블 구성이 이러한 값들 중 일부를 참조하므로 보통 데이터 스키마를 먼저 작성하는 것이 현명합니다.
lookup_tables
가 포함된 폴더에 저장되어야 합니다. 이는 최상위 디렉터리일 수도 있고, 이름이
테이블 구성을 위한 YAML 파일을 만드세요. S3의 파일에 저장된 데이터를 사용하는 사용자 정의 인리치먼트의 예시 구성은 다음과 같습니다:
참고로
Refresh필드에는 다음이 포함됩니다RoleARN,ObjectPath, 그리고PeriodMinutes필드를 포함하는 객체 목록이 됩니다.필수 및 허용 값 전체 목록은 다음에서 확인하세요 Custom Enrichment Specification Reference.
리포지토리 루트에서 스키마 파일을 업로드하려면 다음을 실행하세요
panther_analysis_tool update-custom-schemas--path ./schemas.리포지토리 루트에서 사용자 정의 인리치먼트를 업로드하려면
panther_analysis_tool upload.
전제 조건
사용자 정의 인리치먼트를 S3와 동기화하도록 구성하기 전에 다음을 준비해야 합니다:
Panther가 S3 버킷에 액세스하는 데 사용할 수 있는 AWS의 IAM 역할 ARN. Panther용 IAM 역할 설정에 대한 자세한 내용은 IAM 역할 생성
데이터를 저장하려는 파일의 경로. 경로 형식은 다음과 같아야 합니다:
s3://bucket-name/path_to_file/file.csv
파일 업로드로 채워진 사용자 지정 인리치먼트 테이블의 최대 크기는 API 요청 페이로드 크기 제한으로 인해 6MB입니다.
GCS 버킷에서 인리치먼트 데이터를 동기화하는 기능은 Panther 버전 1.114부터 오픈 베타이며 모든 고객에게 제공됩니다. 버그 보고 및 기능 요청은 Panther 지원팀과 공유해 주세요.
Panther 콘솔이나 PAT를 통해 GCS 버킷에서 데이터 동기화를 설정할 수 있습니다:
Panther 콘솔
Panther 콘솔을 통해 GCS 버킷에서 사용자 정의 인리치먼트 데이터 동기화
CIDR 매칭은 사용할 수 없습니다. Configure > Enrichments.
Panther 콘솔을 통해 예약 검색으로 데이터 가져오기 이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림이 전송될 대상을 구성하고 사용자화하려면.
연관된 로그 유형(선택 사항) -> 카드.
를 클릭한 다음 Panther 대상(Panther Destinations) 를 선택합니다.
또는Investigate > Data Explorer
페이지에서 쿼리를 입력한 다음쿼리로 인리치먼트 생성(Create Enrichment via query)
을 클릭하여 시작할 수도 있습니다.인리치먼트 기본 정보(Enrichment Basic Information)페이지에서 다음 필드를 입력하세요:인리치먼트 이름(Enrichment Name)
: 사용자 지정 인리치먼트에 대한 설명 이름.사용함(Enabled?)

: 이 토글을 예(YES).
를 클릭한 다음 페이지에서, 예약 검색은 구성된 일정에 따라 실행되어 사용자 지정 인리치먼트 데이터를 자동으로 업데이트합니다. 검색 기록은
: 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다..
연관된 로그 유형(선택 사항) 페이지에서 로그 유형/Selector를 지정하세요: 이 단계는 기술적으로 선택 사항(즉, 로그 유형/Selector를 지정하지 않고 건너뛸 수 있음)이나,
자동 매핑(auto-mapping) 선택자(Selectors), 외래 키 필드는 사용자 정의 인리치먼트 데이터로 보강하려는 로그 타입을 구성합니다.
로그 유형 추가(Add Log Type) 로그 유형(Log Type) 드롭다운을 클릭한 다음 로그 유형을 선택하세요.하나 이상의
를 선택하여 해당 로그 유형에서 사용자 지정 인리치먼트로 인리치할 외래 키 필드를 선택하세요..
: 이 토글을 데이터 익스플로러(Data Explorer) 페이지에서 시작한 경우 가져오기 방법이 자동으로 선택되어 이 페이지는 건너뜁니다. 검색 기록 페이지(Search History page)
에서 볼 수 있습니다. AWS.VPCFlow 파일 업로드를 통해 Panther 콘솔 또는 PAT로 데이터를 가져올 수 있습니다: 계정VPC 흐름 로그에서 키를 나타내는 데 사용됩니다.
: 이 토글을 예(YES).
를 클릭한 다음 : 데이터가 얼마나 자주 새로 고쳐져야 하는지에 따라 스케줄 빈도를 구성하세요. 다음 중 선택: 기본 정보(Basic Information)참고: 아직 새 스키마를 생성하지 않았다면, 다음을 참조하세요 페이지에서 선택적으로 로그 유형/Selector를 지정하세요:. 스키마를 생성하면 사용자 정의 인리치먼트를 구성하는 동안 Table Schema 페이지의 드롭다운에서 해당 스키마를 선택할 수 있습니다.
로그를 선택하고 accountID Cron
로그를 선택하고 : 고정 시간 간격(예: 2시간마다)으로 쿼리를 실행 recipientAccountID
Panther 콘솔을 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기.
: 이 토글을 예(YES).
를 클릭한 다음 로 설정했는지 확인하세요. 이는 이 프로세스에서 나중에 데이터를 가져오기 위해 필요합니다. 설명(선택 사항) Google Cloud Storage 버킷에서 데이터 동기화 참조(선택 사항) 페이지에서 테이블 스키마를 구성하세요: &#xNAN;.

Google Cloud Storage 소스를 설정하세요. 데이터는 다음 형식이어야 합니다
.csv또는.json&#xNAN;입력하세요 Google Cloud Storage URI, 특정 객체를 식별하는 고유 경로입니다.
입력하세요 업데이트 주기, S3 소스가 업데이트되는 주기(기본값: 1시간)입니다.

: 이 토글을 예(YES).
아이덴티티(identity)를 설정하세요.
이를 수행하는 방법에 대한 지침은 다음 섹션 'Set up an identity'를 참조하세요.
: 이 토글을 설정 완료Cron 표현식
참고: CSV 스키마는 사용자 지정 인리치먼트와 함께 작동하려면 열 헤더가 필요합니다. 이 사용자 정의 인리치먼트가 데이터를 받지 못할 경우 알람을 설정하시겠습니까?을 선택하세요. 이는 테이블의 고유한 열이어야 하며 예를 들어 을 클릭하여 시작할 수도 있습니다. 기본 키 이름(Primary Key Name)
을 선택하세요. Panther의 데이터 익스플로러를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요. 및 는 인리치먼트 생성(Create Enrichment)
파일 업로드로 가져오기(Import via File Upload) 선택적으로.
설정(Set Up)
사용자 정의 인리치먼트 업로드 실패로 생성된 알림은 페이지에서 파일을 드래그 앤 드롭하거나 파일 선택(Select file) 을 클릭하여 가져올 인리치먼트 데이터 파일을 선택하세요. 파일은 형식이어야 합니다.
아이덴티티 설정
지원되는 아이덴티티 방식은 Workload Identity Federation입니다. GCS 소스를 사용하는 Panther 사용자 정의 인리치먼트에 Workload Identity Federation을 설정하는 옵션은 세 가지입니다:
Terraform 템플릿 파일을 사용하여 Workload Identity Federation 설정
GCP 콘솔에서 Workload Identity Federation을 수동으로 설정

Terraform 템플릿 파일을 사용하여 Workload Identity Federation 설정
를 클릭한 다음 아이덴티티 설정 페이지에서 GCS 소스를 사용해 사용자 정의 인리치먼트를 생성하는 과정 중 "Terraform Template File"이라는 타일을 찾으세요. 타일 오른쪽에서 : 일반적으로 내부 리소스에 대한 하이퍼링크용으로 사용됩니다..
: 이 토글을 Terraform 템플릿, 템플릿을 다운로드하여 자체 파이프라인을 통해 적용할 수 있습니다.
다음 파일의 필드를 작성하세요
panther.tfvars파일에 구성 값을 입력하세요.다음 값들을 제공하세요
panther_workload_identity_pool_id,panther_workload_identity_pool_provider_id, 및panther_aws_account_id.버킷을 다른 리소스와 함께 생성할지 또는 이미 버킷이 있는지에 대한 파일의 지침을 따르세요.
Terraform 구성 파일이 들어있는 작업 디렉터리를 초기화하고 다음을 실행하세요
terraform init.제공된 해당 Terraform 명령 을 복사하여 CLI에서 실행하세요.
제공된 gcloud 명령 을 복사하여 프로젝트 번호, 풀 ID 및 공급자 ID 값을 바꾼 후 CLI에서 실행하여 풀에 대한 자격 구성 파일을 생성하세요.
프로젝트 번호, 풀 ID 및 공급자 ID는 Terraform 명령.
출력에서 확인할 수 있습니다 JSON 파일 제공, 자격 구성 파일을 업로드하세요.
: 이 토글을 설정 완료
GCP 콘솔에서 Workload Identity Federation을 수동으로 설정
Google Cloud 콘솔에서 Panther가 로그를 가져올 버킷을 결정하세요.
아직 버킷을 생성하지 않았다면, 다음을 참조하세요 버킷 생성에 대한 Google 문서.
Uniform bucket-level access 대상 버킷에서 Workload Identity Federation 엔터티가 클라우드 스토리지 리소스에 접근할 수 있도록 활성화되어야 합니다.
다음 지침을 따라 AWS에 대해 Workload Identity Federation을 구성하세요 AWS 또는 Azure와 Workload Identity Federation 구성 문서.
다음을 속성 매핑(attribute mapping) 및 조건을 정의할 때, 다음 예시들을 참고하세요:
다음을 수행할 때 아이덴티티 풀에 공급자(provider)를 추가, 다음을 선택하세요 AWS.
의 값 google.subject 속성 은 127자를 초과할 수 없습니다. 다음을 사용할 수 있습니다 Common Expression Language (CEL) 식 을 사용하여 AWS가 발급한 토큰의 속성을 변환하거나 결합할 수 있습니다. 위 표에 제시된 식은 이 제한을 고려하여 ARN을 Panther 엔터티를 고유하게 식별하는 값으로 변환하려는 시도입니다. AWS 속성에 대한 자세한 내용은 해당 AWS 문서의 "Example 2 - Called by user created with AssumeRole"를 참조하세요. 이 AWS 문서 페이지.
필요한 IAM 역할을 계정에 할당하세요.
다음 권한들은 Pub/Sub 구독 및 주제가 있는 프로젝트에 필요합니다:
요구되는 권한
역할
범위
storage.objects.getstorage.objects.listroles/storage.objectViewer버킷 이름
참고: 특정 리소스에 대한 권한에 조건이나 IAM 정책을 설정할 수 있습니다. 이는 GCP의 IAM 섹션에서(아래 예시 스크린샷 참조) 또는 특정 리소스 페이지에서 수행할 수 있습니다.

참고: 다음을 사용하여 권한을 생성할 수 있습니다
gcloudCLI 도구, 여기서$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"
자격 구성 파일 다운로드, 이는 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
S3 또는 GCS 버킷에서 동기화된 사용자 지정 인리치먼트 테이블의 최대 크기는 10GB입니다.
PAT를 통해 GCS 버킷에서 사용자 정의 인리치먼트 데이터 동기화
로 토글하세요.
이 알람의 알러트 대상은 페이지 하단에 표시됩니다. 알림 전송 대상을 구성하고 사용자화하려면 문서의
섹션을 참조하세요.
사용자 지정 인리치먼트 업로드 실패로 생성된 알림은 Panther 콘솔의
알러트 및 오류(Alerts & Errors). 페이지 내알러트 및 오류(Alerts & Errors)시스템 오류(System Errors)탭에서 접근할 수 있습니다.PAT를 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기 자세한 내용은 데이터 파일이 1MB보다 큰 경우에는 대신
S3 동기화 업로드 방법
또는
알러트 및 오류(Alerts & Errors)GCS 동기화 업로드 방법을 사용하는 것이 권장됩니다.파일 및 폴더 설정
사용자 지정 인리치먼트에는 다음 파일이 필요합니다:
인리치먼트 테이블용 YAML 구성 파일
테이블 구성이 이러한 값들 중 일부를 참조하므로 보통 데이터 스키마를 먼저 작성하는 것이 현명합니다.
lookup_tables
가 포함된 폴더에 저장되어야 합니다. 이는 최상위 디렉터리일 수도 있고, 이름이
테이블 구성을 위한 YAML 파일을 만드세요. GCS의 파일에 저장된 데이터를 사용하는 사용자 정의 인리치먼트의 예시 파일은 아래를 참조하세요.
참고로
Refresh필드에는 다음이 포함됩니다GCSCredentials,StorageProvider,ObjectPath, 그리고PeriodMinutes필드를 포함하는 객체 목록이 됩니다.필수 및 허용 값 전체 목록은 다음에서 확인하세요 Custom Enrichment Specification Reference.
리포지토리 루트에서 스키마 파일을 업로드하려면 다음을 실행하세요
panther_analysis_tool update-custom-schemas--path ./schemas.리포지토리 루트에서 사용자 정의 인리치먼트를 업로드하려면
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 에서 조회된 필드를 검색할 수 있습니다. 패턴은 다음과 같습니다:
사용자 정의 인리치먼트 이름, 외래 키 및 필드 이름은 모두 선택적 매개변수입니다. 지정하지 않으면 로그 이벤트에 인리치먼트 데이터가 주입되면, 이벤트에 는 사용 가능한 모든 인리치먼트 데이터를 포함한 계층적 딕셔너리를 반환합니다. 매개변수를 지정하면 관심 있는 데이터만 반환되도록 보장할 수 있습니다.
룰은 다음과 같이 될 것입니다:
인리치먼트 데이터를 동적으로 접근하기
또한 이벤트 객체의 사용자 지정 인리치먼트 데이터를 사용하여 디텍션 작성하기 사용하기 를 사용하여 디텍션에서 인리치먼트 데이터를 동적으로 접근할 수 있습니다. 이는 이벤트에 인리치먼트의 기본 키 열과 정확히 일치하는 값이 없을 때 유용할 수 있습니다.
에서 간단한 디택션다음을 생성할 수 있습니다 인리치먼트 매치 표현식.
Panther 룰 엔진은 조회된 매치들을 가져와 다음 JSON 구조에서 키 p_enrichment 를 사용하여 이벤트에 해당 데이터를 추가합니다:
예:
매치된 로그 키의 값이 배열인 경우(예: p_any_aws_accout_ids), 조회 데이터는 매칭된 레코드를 포함하는 배열이 됩니다.
예:
인리치먼트를 사용하는 디텍션 테스트하기
룰에서 p_enrichment을 사용하는 경우, 오른쪽 상단의 JSON 코드 편집기에서 테스트 데이터 인리치 를 클릭하여 인리치먼트 데이터로 채우세요. 이렇게 하면 인리치먼트가 포함된 이벤트로 Python 함수를 테스트할 수 있습니다. p_enrichment.
단위 테스트가 제대로 인리치되려면 이벤트에 다음 두 필드를 지정해야 합니다:
p_log_type: 어떤 인리치먼트를 사용할지 결정합니다선택기(selector) 필드: 매칭에 사용할 값을 제공합니다
마지막 업데이트
도움이 되었나요?

