사용자 정의 보강
저장된 자체 데이터로 이벤트 보강하기
개요
사용자 지정 보강(“조회 테이블”이라고도 함)을 사용하면 Panther에 사용자 지정 보강 데이터를 저장하고 참조할 수 있습니다. 즉, 이러한 추가 컨텍스트를 탐지에서 참조하고 경고에 전달할 수 있습니다. 신원/자산 정보, 취약성 컨텍스트 또는 네트워크 맵을 포함하는 사용자 지정 보강을 생성하는 것이 특히 유용할 수 있습니다.
다음이 있습니다 네 가지 가져오기 방법 옵션: 예약 검색, 정적 파일, S3 버킷 또는 Google Cloud Storage(GCS) 버킷.
사용자 지정 보강에 하나 이상의 로그 유형을 연결할 수 있습니다—그런 다음 해당 유형의 모든 수신 로그(보강 테이블 값과 일치하는 경우)에 보강 데이터가 포함됩니다. 보강 프로세스에 대해 자세히 알아보려면 수신 로그가 보강되는 방법. 또한 Python 탐지에서 보강 데이터를 동적으로 참조할 수 있습니다. 여기에 대해 알아보세요, 저장된 보강 데이터를 보는 방법, 그리고 보강 데이터가 포함된 로그 이벤트를 보는 방법.
데이터가 몇 가지 특정 탐지에만 필요하고 자주 업데이트되지 않을 경우, 보강 대신 전역 헬퍼 를 사용하는 것을 고려하세요. 또한 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)을 포함한 보강 데이터와 함께 로그가 보강된 이유는 Selector 값(1.1.1.1)과 기본 키 값(1.1.1.1).

보강에 대해 로그 유형 및 Selector가 설정되는 방법
) 사이에 일치가 있었기 때문입니다.연관된 로그 유형 및 Selector를 보강 생성 시 수동으로 설정할 수 있습니다 (옵션 1), 및/또는 자동으로 매핑되도록 할 수 있습니다 ().
옵션 2
옵션 1: 로그 유형 및 Selector를 수동으로 선택
CLI 워크플로
CLI 워크플로에서 보강을 생성할 때 YAML 구성 파일을 작성하고 업로드합니다.AssociatedLogTypes값은LogType및Selectors필드를 포함하는 객체 목록이 됩니다. 전체 필드 목록은 사용자 지정 보강 사양 참조
를 참조하세요.
옵션 2: 기본 키 지표에 의해 로그 유형 및 Selector를 자동으로 매핑하도록 허용 보강 데이터의 기본 키는 필드를지표
- mitre_attack_technique
그런 다음 각 지표 값에 대해 Panther는 자동으로: 모든 활성
로그 스키마(또는 로그 유형) 중 해당 이벤트 필드를 동일한 지표로 지정한 항목을 찾습니다.
해당 로그 유형들을 보강에 연관시킵니다.
각 로그 유형에 대해 지표와 연관된p_any
필드를 Selector로 설정합니다. 예를 들어, 보강 데이터의 스키마가 위에 표시된 것처럼 attack_ids 기본 키를 mitre_attack_technique 기본 키를 지표로 지정하면, Panther 인스턴스의 모든 로그 유형 중 동일한 지표 를 설정한 항목들이 보강에 연관되고, 각 항목은
p_any_mitre_attack_techniques
p_enrichment 구조
p_enrichment 구조지정이 (하위 필드로) 보이지 않을 수 있습니다. 해당 지표는 백엔드 애플리케이션 코드에 정의될 수 있습니다. p_enrichment 로그 이벤트에 보강 데이터가 주입된 경우, 이벤트에 필드가 추가되고 탐지 내에서 deep_get() 또는DeepKey p_enrichment 을 사용하여 접근됩니다.
해당
필드에는 다음이 포함됩니다:
수신 로그 이벤트와 일치한 하나 이상의 보강 이름
보강과 일치한 수신 로그의 Selector 이름보강의 기본 키를 통해 일치한 보강의 데이터(일치한 Selector 값을 포함하는 삽입된
p_match p_enrichment 필드를 포함하여)
'p_match': <Selector 값>, p_enrichment <보강 키>: <보강 값>, 주의: 는 데이터 레이크의 로그 이벤트와 함께 저장되지 않습니다. 자세한 내용은
보강 데이터가 포함된 로그 이벤트 보기
를 참조하세요. 필드가 추가되고 탐지 내에서
필드가 추가되고 탐지 내에서탐지에서 보강 데이터에 접근하는 방법 수신 로그가 보강되는 방법옵션 1 (로그가 보강된 경우): 사용 p_enrichment 로그 이벤트가 수집 시 보강되었다면 (에서 설명한 바와 같이), 위에 설명된 구조를 가진필드 내의 데이터에 필드가 추가되고 탐지 내에서 event 객체 함수 필드가 추가되고 탐지 내에서 를 사용하여 접근할 수 있습니다. Python 탐지 작성에 대해 자세히 알아보려면.
을(를) 참조하세요. 이 방법의 전체 예시는 아래,.
사용자 지정 보강 데이터를 사용한 탐지 작성 에서 확인하세요.
에서 확인하세요.옵션 2: 동적으로 사용 lookup() 또한 event.lookup()함수를 사용하여 Python 탐지에서 보강 데이터에 동적으로 접근할 수 있습니다. 수신 로그가 보강되는 방법.
이렇게 하면 수신 이벤트에 주입되지 않은 보강이라도 모든 보강에서 데이터를 검색할 수 있습니다(위에서 설명한 방식과 달리).
사용자 지정 보강 구성 전제 조건
보강을 구성하기 전에 다음을 확인하세요:
보강 데이터 전용 스키마
이는 보강 데이터의 형태를 설명합니다.
보강 데이터의 기본 키
이 기본 키는 보강 스키마에 정의한 필드 중 하나입니다. 기본 키 값은 수신 로그의 Selector 값과 비교될 값입니다. 아래 기본 키 데이터 유형
섹션을 참조하여 기본 키 요구 사항에 대해 자세히 알아보세요.
(선택 사항) 수신 로그의 Selector(s)
이 Selector들의 값은 보강 데이터에서 일치 항목을 검색하는 데 사용됩니다.
(CLI 워크플로): 보강 구성 파일 전체 필드 목록은 사용자 지정 보강 사양 참조
를 참조하세요 권장 사항:
panther-analysis리포지토리의 포크를 생성하고 Panther Analysis Tool (PAT) 를 설치하는 것을 권장합니다..
파일 업로드 또는 S3/GCS 버킷을 사용하는 경우:
JSON 또는 CSV 형식의 보강 데이터
JSON 파일은 라인, 배열 또는 객체 등 다양한 방식으로 이벤트를 포맷할 수 있습니다.
예약 검색을 사용하는 경우:
보강에 사용할 데이터를 반환하는 SQL 쿼리
Panther의 데이터 탐색기를 통해 데이터 웨어하우스에 접근할 수 있는지 확인하세요. 보강 테이블의 기본 키 열은 다음 데이터 유형 중 하나여야 합니다:.
아래
문자열
숫자
배열(문자열 또는 숫자의 배열)
배열을 사용하면 보강 테이블의 한 행을 여러 문자열 또는 숫자 기본 키 값과 연결할 수 있습니다. 이는 동일한 행을 여러 기본 키에 대해 중복할 필요를 방지합니다.
예시: 문자열 배열 vs. 문자열 기본 키 유형
Panther 콘솔에서 보강을 생성할 때 연관된 로그 유형 및 Selector를 설정할 수 있습니다. 자세한 내용은
다음을 충족한 후 전제 조건를 완료하면 다음 방법 중 하나를 사용하여 사용자 지정 보강을 생성하고 구성할 수 있습니다:
옵션 1: 예약 검색으로 사용자 지정 보강 데이터 가져오기
데이터 웨어하우스에서 직접 데이터를 가져오고 주기적으로 자동 업데이트하려는 경우에 가장 적합합니다.
예: 현재 환경을 기반으로 자동으로 새로 고쳐야 하는 의심스러운 IP, 사용자 행동 패턴 또는 AWS 계정 매핑을 추적하는 경우.
옵션 2: 파일 업로드를 통해 사용자 지정 보강 데이터 가져오기
AWS 계정 정보나 기업 서브넷과 같이 비교적 정적인 데이터에 적합합니다.
파일 업로드로 채워진 사용자 지정 보강 테이블의 최대 크기는 API 요청 페이로드 크기 제한으로 인해 6MB입니다.
예: AWS CloudTrail 로그에서 개발자 계정과 운영 계정을 구분하는 메타데이터를 추가하는 경우.
옵션 3: S3 버킷에서 사용자 지정 보강 데이터 동기화 deep_get() 옵션 4: Google Cloud Storage(GCS) 버킷에서 사용자 지정 보강 데이터 동기화
데이터 양이 많고 비교적 자주 업데이트되는 경우에 적합합니다. S3 또는 GCS 버킷의 모든 변경 사항은 Panther로 동기화됩니다.
S3 또는 GCS 버킷에서 동기화된 사용자 지정 보강 테이블의 최대 크기는 10GB입니다.
예: 회사 직원과 연결된 그룹 및 권한 수준을 알고 싶을 때. 이 시나리오에서는 회사가 그룹 및 권한 정보를 포함한 최신 Active Directory 목록을 S3 버킷에 보관하고 있을 수 있습니다.
이러한 방법 중 하나를 선택한 후 Panther 콘솔 내에서 작업하거나 PAT.
사용자 지정 보강 테이블의 행당 최대 크기는 65535바이트입니다.
옵션 1: 예약 검색으로 사용자 지정 보강 데이터 가져오기
사용자 지정 보강 데이터는 예약 검색의 결과로 자동으로 채워질 수 있습니다. 이 방법은 외부 스크립트나 수동 CSV 내보내기의 필요를 없애고 정의된 일정에 따라 자동으로 업데이트되는 보강 데이터를 유지할 수 있게 합니다.
예약 검색으로 사용자 지정 보강 데이터를 가져올 때의 제한 사항
Panther가 생성한 데이터 스키마에서는 지표 필드를 정의할 수 없습니다. 이는 로그 타입/셀렉터를 자동 매핑하게 할 수 없음—직접 지정해야 합니다.
사용자 지정 보강은 최대 예약 검색 100MB까지 처리할 수 있습니다.
CIDR 매칭은 사용할 수 없습니다.
예약 검색은 최소 15분 간격으로 실행될 수 있습니다.
검색 시간 초과는 15분으로 고정되어 있으며 구성할 수 없습니다.
옵션 2: 파일 업로드를 통한 사용자 지정 엔리치먼트 데이터 가져오기
Panther 콘솔 또는 PAT를 통해 파일 업로드로 데이터를 가져올 수 있습니다:
옵션 3: S3 버킷에서 사용자 지정 보강 데이터 동기화
S3 버킷에서 데이터 동기화를 Panther 콘솔 또는 PAT를 통해 설정할 수 있습니다:
옵션 4: Google Cloud Storage(GCS) 버킷에서 사용자 지정 보강 데이터 동기화
GCS 버킷에서 데이터 동기화를 Panther 콘솔 또는 PAT를 통해 설정할 수 있습니다:
이 방법의 전체 예시는 아래,
커스텀 인리치먼트를 구성한 후에는 추가 컨텍스트를 기반으로 감지(detections)를 작성할 수 있습니다.
예를 들어, 커스텀 인리치먼트를 설정하여 AWS CloudTrail 로그에서 개발자 계정과 운영 계정을 구분하도록 구성했다면, 다음 두 가지 상황이 모두 참일 때만 알림을 받도록 설정할 수 있습니다:
MFA가 활성화되지 않은 사용자가 로그인했습니다.
AWS 계정이 운영(개발자가 아닌) 계정입니다.
인리치먼트 데이터를 사용하여 탐지를 생성하는 방법은 아래를 참조하십시오:
이벤트가 자동으로 인리치된 인리치먼트 데이터에 접근하기
Python에서는 다음을 사용할 수 있습니다 필드가 추가되고 탐지 내에서 헬퍼 함수 로그의 외래 키 필드를 사용하여 에서 조회된 필드를 검색하려면 p_enrichment 패턴은 다음과 같습니다:
규칙은 다음과 같이 됩니다:
인리치먼트 데이터 동적 접근
다음도 사용할 수 있습니다 이벤트 객체의 에서 확인하세요. event.lookup() 감지에서 인리치먼트 데이터에 동적으로 접근하려면. 이는 이벤트에 인리치먼트의 기본 키 열 값과 정확히 일치하는 값이 포함되어 있지 않을 때 유용할 수 있습니다.
에서, 간단한 탐지다음을 생성할 수 있습니다 인리치먼트 일치 표현식.
Panther 규칙 엔진은 조회된 일치 항목을 가져와 해당 데이터를 이벤트에 다음 키를 사용해 추가합니다 p_enrichment 다음 JSON 구조에서:
예:
일치한 로그 키의 값이 배열인 경우(예: p_any_aws_accout_ids), 조회된 데이터는 일치하는 레코드를 포함하는 배열입니다.
예:
인리치먼트를 사용하는 탐지 테스트
규칙이 p_enrichment를 사용할 경우, 클릭하십시오 Enrich Test Data JSON 코드 편집기 오른쪽 상단에서 인리치먼트 데이터로 채우기 위해. 이를 통해 이벤트에 포함된 인리치먼트 데이터로 Python 함수를 테스트할 수 있습니다. p_enrichment.
Last updated
Was this helpful?


















