For the complete documentation index, see llms.txt. This page is also available as Markdown.

행동 분석 및 이상 디택션 템플릿 매크로

행동 분석 및 이상 디택션을 위한 Panther가 관리하는 매크로로 이상치를 디택션하기

개요

Panther는 제공합니다 템플릿 매크로 로그 데이터 전반에서 비정상적이고 새로운 값을 식별하기 위한 것입니다. 템플릿 매크로를 사용하면 최근 로그 이벤트를 과거 데이터와 비교하여 확립된 정상 범위에서 크게 벗어나는 활동을 식별할 수 있습니다. 이러한 행동 분석 및 이상 디택션 매크로는 사용자 및 엔터티 행동 분석(UEBA) 전략의 일부로 유용할 수 있습니다.

이 매크로는 최근 시간 구간의 데이터를 더 긴 조회 범위의 데이터와 비교하고, 두 데이터 간의 편차 수준을 판단하는 방식으로 작동합니다.

Panther가 제공하는 매크로는 다음과 같습니다:

  • statistical_anomaly: 수치 필드의 이상치 값을 식별합니다

    • 예: 지난 2주와 비교했을 때 지난 1시간 동안 비정상적으로 많은 트래픽을 전송한 VPC 호스트를 찾습니다.

    • 다음에서 자세히 알아보세요 statistical_anomaly.

  • statistical_anomaly_peer: 한 동료 그룹

  • new_unique_values: 지정된 엔터티의 새 값을 식별합니다

    • 예: 지난 30일 동안에는 액세스하지 않았지만 최근 하루 동안 리소스에 액세스한 API 토큰을 찾습니다.

    • 다음에서 자세히 알아보세요 new_unique_values.

  • new_unique_values_peer: 한 동료 그룹

    • 예: EC2 인스턴스가 VPC 그룹 구성원에게는 일반적이지 않은 IP에 연결했는지 감지합니다.

    • 다음에서 자세히 알아보세요 new_unique_values_peer.

매크로의 소스 코드를 보는 방법 알아보기 아래.

매크로 활성화하기

매크로를 호출하기 전에 Panther 인스턴스에서 사용할 수 있도록 만들어야 합니다. 매크로는 Panther가 관리하는 저장된 검색에서 제공되며, 다음 방법으로 얻을 수 있습니다:

Panther Console에서 매크로를 활성화하려면 PantherManaged.Anomalies Pack을 활성화하세요:

  1. Panther Console의 왼쪽 탐색 모음에서 탐지그다음 .

  2. 다음 텍스트로 Pack 필터링 필드에 "Anomaly."를 입력합니다.

  3. 오른쪽에서 Panther 이상 디택션 Pack 타일의 Enabled 토글을 켜기.

Screenshot which shows to to enable a pack. "Detections" is selected from the left-side navbar, and the tab is set to "Packs". A user has searched for the string "anomaly" in the search bar, returning a single pack named "Panther Anomaly Detection Pack". The user has flipped the toggle widget for the pack at the right-side of the panel to "On".

Panther에서 행동 분석 및 이상 디택션 매크로를 사용하는 방법

Panther가 관리하는 행동 분석 및 이상 디택션 매크로를 데이터 탐색기 아래 지침에 따라 호출할 수 있습니다. 이 과정은 다음과 유사합니다 다른 쿼리에서 템플릿 매크로 호출하기 지침이지만, 행동 분석 및 이상 디택션 템플릿 매크로 사용에 특화되어 있습니다.

  1. Panther Console의 왼쪽 탐색 모음에서 검색, 그런 다음 다음을 선택합니다 데이터 탐색기 탭.

  2. SQL 편집기 상단에 -- pragma: template 문을 추가하세요.

선택적으로 다음도 추가할 수 있습니다 --pragma: show macro expanded. 그러면 매크로가 소스 코드로 확장되며, 쿼리 문제를 해결할 때 유용합니다. 다음을 참조하세요 템플릿 매크로 디버깅 자세한 정보를 보려면.

  1. 사용 가능한 매크로 중 하나를 가져오세요:

  1. 다음을 사용해 하위 쿼리를 정의하세요 공통 테이블 식(CTE). 하위 쿼리는 다음을 충족해야 합니다:

    • 선택 최소한 다음이 필요합니다:

      • p_event_time

      • 엔터티 열. 엔터티는 종종 이메일 주소, 사용자 ID, 애플리케이션 ID, 호스트 이름과 같은 ID이지만, IP 주소와 같은 모든 데이터 형식일 수 있습니다. 이 열은 최상위 필드여야 합니다. 필드가 객체 또는 배열 안에 중첩되어 있으면 AS 키워드를 사용해 해당 열의 별칭을 만드세요.

      • 집계 열. statistical_anomaly 쿼리에서는 이 열의 내용이 집계되고 비정상적인 값을 검사합니다. new_unique_values 쿼리에서는 이 열의 내용이 새로운 값을 검사합니다. 엔터티 열과 마찬가지로 이 열도 최상위 필드여야 합니다.

      • (만약 statistical_anomaly_peer 또는 new_unique_values_peer를 사용 중이라면) 동료 그룹 필드.

    • 다음을 사용하여 WHERE 절을 통해 조회 범위를 정의하세요(즉, 짧은 범위와 비교할 기준선을 나타내는 더 긴 시간 기간). 조회 범위는 현재 시점에서 끝나야 하므로, 다음을 사용하는 것이 좋습니다 p_occurs_since(). 다음에 대해 자세히 알아보기 p_occurs_since() 여기.

  1. 하위 쿼리 아래에서 매크로를 호출하세요:

  1. 클릭합니다 검색 실행.

임시 검색을 넘어

Panther의 행동 분석 및 이상 디택션 쿼리는 위협 헌팅에 유용하지만, 모니터링 시스템으로 사용할 때 더 강력합니다. 쿼리는 저장된 경우를 제외하고로 예약 실행되도록 설정하고, 예약 규칙에 연결할 수 있습니다. 이렇게 하면 비정상적인 활동이 관찰될 때마다 알림을 받을 수 있습니다.

전체 예시

아래에서 모든 매크로를 호출하는 전체 예시를 확인하세요.

\\\\\\\\\\\\\\\\#### \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\`statistical\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_anomaly\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\`를 사용하는 전체 예시

이 쿼리는 지난 1시간 동안 관찰된 VPC 트래픽을 지난 24시간으로 설정된 기준선과 비교하며, 어떤 주소가 비정상적으로 많은 양의 아웃바운드 트래픽을 전송했을 경우 경고합니다. 이는 데이터 유출 행위를 나타낼 수 있습니다.

매크로 소스 코드 보기

매크로를 활성화한 후, Panther Console 또는 panther-analysis 저장소에서 행동 분석 및 이상 디택션 매크로 소스 코드를 볼 수 있습니다.

Panther Console에서 매크로 소스 코드를 보려면:

  1. Panther Console의 왼쪽 탐색 모음에서 저장된 검색.

  2. 다음 이름의 저장된 검색을 찾으세요 anomalies를 클릭하세요. The saved query containing the macro source code is called "anomalies"

    • 다음으로 이동하게 됩니다 데이터 탐색기여기서 소스 코드를 볼 수 있습니다: Opening the "anomalies" query in Data Explorer will display the full macro code

피어 그룹 분석

엔터티의 행동을 특히 그 피어의 행동과 비교하는 것이 종종 유용합니다. 예를 들어, 한 엔지니어가 최근에 다른 엔지니어들은 로그인하지 않은 계정에 로그인했는지 확인할 수 있습니다.

Panther는 다음의 피어 버전을 제공합니다 statistical_anomalynew_unique_values 이러한 분석을 수행하기 위해. 피어 버전에서는 기준 통계가 피어 그룹에 따라 계산된 다음 엔터티의 행동이 기준선과 비교됩니다.

이 쿼리는 비피어 버전과 유사하게 작동하지만, 피어 그룹을 정의하기 위한 추가 매개변수 group_field가 추가됩니다. 이는 엔터티를 함께 그룹화하는 데 사용되는 값이 있는 열이어야 합니다. 일반적인 group_field 값의 예시는 사용자 역할, 직무 부서, VPC ID, 계정 ID입니다.

행동 분석 및 이상 디택션 매크로 참조

아래에서 Panther가 제공하는 매크로 사용 방법에 대한 참고 정보를 확인할 수 있습니다. 별도로 명시되지 않는 한, 모든 입력 인수는 여기에 표시된 순서대로 제공해야 한다고 가정하세요.

statistical_anomaly

다음 statistical_anomaly macro는 최근 기간 내의 비정상적인 데이터 포인트를 찾기 위해 데이터 세트를 살펴봅니다. CTE를 기본 데이터 세트로 사용하며, 해당 기간 동안 엔터티의 기준 활동을 같은 엔터티의 가장 최근 활동과 비교하고, 이 행동이 얼마나 비정상적인지 계산합니다.

기본 데이터 세트를 제공하고, 어떤 열에 엔터티 이름이 들어 있는지와 데이터 비교에 사용할 열이 무엇인지 지정해야 합니다. 또한 이상을 찾을 최근 기간의 크기도 정의해야 합니다.

입력 인수

다음 각 인수는 아래 표시된 순서대로 매크로에 제공해야 합니다.

이름
데이터 유형
설명

subquery

문자열

이전에 정의한 CTE의 이름으로, 매크로가 분석할 데이터를 제공합니다.

entity_field

문자열

그룹화에 사용할 열의 이름이며, 일반적으로 이름, IP 주소 또는 ID입니다.

agg_field

문자열

이상치를 검색할 열의 이름입니다.

agg_func

문자열

시간 기간 내 데이터 집계에 사용할 SQL 함수는 무엇입니까? agg_field 일반적인 값은 count, sum, 및 max.

tmag

문자열

이상을 찾을 조회 범위의 단위 수입니다. 즉, 1 in "1 day"의

tunit

문자열

이상을 찾을 조회 범위의 시간 단위입니다. 즉, day "1 day"에서. 단수형이어야 합니다(끝에 "s" 없음).

zscore

숫자

이상치 임계값; 계산된 zscore 값이 이 값보다 높지 않으면 결과가 반환되지 않습니다.

반환

매크로 실행 후 반환되는 테이블에는 다음 열이 포함됩니다:

이름
데이터 유형
설명

N

숫자

의 데이터 값으로, agg_field에 의해 집계된 agg_func이며, 주어진 엔터티의 조회 기간 동안의 값입니다.

t1

타임스탬프

조회 기간의 시작.

t2

타임스탬프

조회 기간의 끝.

<entity_field>

임의의

선택한 entity_field.

p_zscore

숫자

계산된 zscore 조회 기간 동안 엔터티 활동의 값입니다. 값이 클수록 zscore 더 비정상적임을 의미합니다.

p_mean

숫자

의 평균 값 agg_field 열의 이 엔터티에 대한 데이터 값이며, 조회 기간은 제외합니다. subquery.

p_stddev

숫자

의 표준 편차 agg_field 열의 이 엔터티에 대한 데이터 값이며, 조회 기간은 제외합니다. subquery, 조회 기간은 제외합니다. 값이 클수록 p_stddev 엔터티의 활동이 전체적으로 덜 일관적이었음을 의미합니다.

new_unique_values

다음 new_unique_values macro는 데이터 세트를 스캔하여 주어진 엔터티의 최근 조회 기간에 존재하는 선택한 열에서 새로운 값 집합을 반환합니다.

입력 인수

다음 인수는 아래 표시된 순서대로 매크로에 제공해야 합니다.

이름
데이터 유형
설명

subquery

문자열

이전에 정의한 CTE의 이름으로, 이상을 찾는 데 사용할 기본 데이터를 포함합니다.

entity_field

문자열

그룹화에 사용할 열의 이름이며, 일반적으로 사용자 이름, IP 주소 또는 ID입니다.

agg_field

문자열

새 값을 검색할 열의 이름입니다.

interval

문자열

새 값을 찾을 기간의 크기입니다. 다음과 동일한 구문을 사용합니다 p_occurs_since.

반환

매크로 실행 후 반환되는 테이블에는 다음 열이 포함됩니다:

이름
데이터 유형
설명

<entity_field>

임의의

정의된 entity_field 열.

<agg_field>

임의의

조회 기간 동안 agg_field 열에서 발견된 새로운 값

statistical_anomaly_peer

이 매크로를 사용해 엔터티를 동일한 동료 그룹의 다른 항목들과 비교했을 때 비정상적인 수치 행동을 판별합니다. 예를 들어, 같은 태그를 가진 다른 EC2 인스턴스와 비교한 트래픽 볼륨이나, 같은 버킷의 다른 객체와 비교한 S3 객체에 대한 액세스 요청을 확인할 수 있습니다.

입력 인수

다음 인수는 아래 표시된 순서대로 매크로에 제공해야 합니다.

이름
데이터 유형
설명

subquery

문자열

이전에 정의한 CTE의 이름으로, 매크로가 분석할 데이터를 제공합니다.

entity_field

문자열

엔터티를 식별하는 데 사용할 열의 이름이며, 일반적으로 이름, IP 주소 또는 ID입니다.

group_field

문자열

엔터티를 그룹화하는 데 사용할 열의 이름입니다. 예를 들어 역할 이름 또는 계정 ID입니다.

agg_field

문자열

이상치를 검색할 열의 이름입니다.

agg_func

문자열

시간 기간 내 데이터 집계에 사용할 SQL 함수는 무엇입니까? agg_field 일반적인 값은 count, sum, 및 max.

tmag

문자열

이상을 찾을 조회 범위의 단위 수입니다. 즉, 1 in "1 day"의

tunit

문자열

이상을 찾을 조회 범위의 시간 단위입니다. 즉, day "1 day"에서. 단수형이어야 합니다(끝에 "s" 없음).

zscore

숫자

이상치 임계값; 계산된 zscore 값이 이 값보다 높지 않으면 결과가 반환되지 않습니다.

반환

매크로 실행 후 반환되는 테이블에는 다음 열이 포함됩니다:

이름
데이터 유형
설명

N

숫자

의 데이터 값으로, agg_field에 의해 집계된 agg_func이며, 주어진 엔터티의 조회 기간 동안의 값입니다.

t1

타임스탬프

조회 기간의 시작.

t2

타임스탬프

조회 기간의 끝.

<entity_field>

임의의

선택한 entity_field.

<group_field>

임의의

선택한 group_field.

p_zscore

숫자

계산된 zscore 조회 기간 동안 엔터티 활동의 값입니다. 값이 클수록 zscore 더 비정상적임을 의미합니다.

p_mean

숫자

의 평균 값 agg_field 열의 이 엔터티에 대한 데이터 값이며, 조회 기간은 제외합니다. subquery.

p_stddev

숫자

의 표준 편차 agg_field 열의 이 엔터티에 대한 데이터 값이며, 조회 기간은 제외합니다. subquery, 조회 기간은 제외합니다. 값이 클수록 p_stddev 엔터티의 활동이 전체적으로 덜 일관적이었음을 의미합니다.

new_unique_values_peer

이 매크로를 사용해 엔터티가 이전에 그 동료 그룹.

입력 인수

다음 인수는 아래 표시된 순서대로 매크로에 제공해야 합니다.

이름
데이터 유형
설명

subquery

문자열

이전에 정의한 CTE의 이름으로, 이상을 찾는 데 사용할 기본 데이터를 포함합니다.

entity_field

문자열

엔터티를 식별하는 데 사용할 열의 이름이며, 일반적으로 이름, IP 주소 또는 ID입니다.

group_field

문자열

엔터티를 그룹화하는 데 사용할 열의 이름입니다. 예를 들어 역할 이름 또는 계정 ID입니다.

agg_field

문자열

새 값을 검색할 열의 이름입니다.

interval

문자열

에서 팀 구성원에게 관찰되지 않았던 일을 했는지 식별합니다. 새 값을 찾을 조회 기간의 크기입니다. 다음과 동일한 구문을 사용합니다 p_occurs_since.

반환

매크로 실행 후 반환되는 테이블에는 다음 열이 포함됩니다:

이름
데이터 유형
설명

<entity_field>

임의의

정의된 entity_field 열.

<group_field>

임의의

정의된 group_field 열.

<agg_field>

임의의

조회 기간 동안 agg_field 열에서 발견된 새로운 값

마지막 업데이트

도움이 되었나요?