행동 분석 및 이상 탐지 템플릿 매크로(베타)

행동 분석 및 이상 탐지를 위한 Panther 관리 매크로로 이상치를 감지하기

개요

circle-info

이 템플릿 매크로들은 오픈 베타 상태이며 모든 고객이 사용할 수 있습니다. 매크로는 panther-analysis v3.75를 통해 CI/CD로 제공되었고 콘솔에서는 v3.80에서 사용 가능해졌습니다. 버그 리포트나 기능 요청이 있으면 Panther 지원팀과 공유하십시오.

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

이 매크로들은 최근 시간 간격의 데이터를 더 긴 조회 창의 데이터와 비교하고 둘 사이의 편차 수준을 결정하여 작동합니다.

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

예: EC2 인스턴스가 자신의 VPC 그룹 구성원에게는 비정형적인 IP에 연결했는지 감지합니다. 아래에서.

new_unique_values_peer.

매크로의 소스 코드를 보는 방법 알아보기 저장된 검색매크로 활성화

  • 매크로를 호출하기 전에 Panther 인스턴스에서 사용할 수 있도록 만들어야 합니다. 매크로는 Panther에서 관리하는 에 제공되며, 다음에서 얻을 수 있습니다: 탐지 팩

  • 콘솔 워크플로우에서: 를 통해 panther-analysis PantherManaged.Anomalies Panther 분석 도구(PAT)

로 업로드합니다 에 제공되며, 다음에서 얻을 수 있습니다: 콘솔 워크플로우

  1. Panther 콘솔의 왼쪽 탐색 바에서 클릭하십시오 탐지그런 다음 Packs.

  2. 다음 Panther 콘솔에서 매크로를 활성화하려면 팩을 활성화하십시오:

  3. 텍스트로 팩 필터 필드에 "Anomaly"를 입력합니다. 의 오른쪽에서 켜기.

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-analysis와 완전 동기화를 수행하지 않고 파일만 가져오려는 경우에 적합할 수 있습니다.

리포지토리에 데이터 탐색기 가 존재하는 경우 다른 쿼리에서 템플릿 매크로 호출하기 를 사용하여 Panther에 업로드할 수 있습니다

  1. Panther 콘솔의 왼쪽 탐색 바에서 클릭하십시오 저장된 검색 목록에서 다운로드하거나 삭제하려는 검색을 찾습니다. 각 검색 이름 왼쪽의 상자를 체크하세요. > 데이터 탐색기.

  2. 다음 지침을 따라 Panther에서 Panther가 관리하는 행동 분석 및 이상 탐지 매크로를 호출할 수 있습니다. -- pragma: template 문에 복사하여 붙여넣을 수 있습니다.

circle-info

이 과정은 지침과 유사하지만 행동 분석 및 이상 탐지 템플릿 매크로 사용에 특화되어 있습니다.Panther 인스턴스에서 매크로 활성화 템플릿 매크로 디버깅 를 참조하세요.

  1. 를 추가하십시오

  1. -- pragma: show macro expanded # Optional 사용 가능한 매크로 중 하나를 가져옵니다:arrow-up-right{% import 'anomalies' <statistical_anomaly, new_unique_values,

    • SELECT statistical_anomaly_peer, OR new_unique_values_peer> %}

      • p_event_time

      • -- 네 가지 모두가 아니라 하나의 매크로만 지정하십시오 공통 테이블 표현(CTE)을 사용하여 서브쿼리를 정의하십시오 서브쿼리는 다음을 반드시 포함해야 합니다:

      • 적어도 다음을 포함해야 합니다: statistical_anomaly 엔터티 컬럼. 엔터티는 종종 이메일 주소, 사용자 ID, 애플리케이션 ID 또는 호스트명과 같은 ID이지만 IP 주소와 같은 모든 데이터 타입이 될 수 있습니다. 컬럼은 최상위 필드여야 합니다. 필드가 객체나 배열 내에 중첩되어 있으면 예: 같은 팀 구성원들과 비교했을 때 특정 사용자가 리소스에 접근하려는 시도를 식별합니다. 별칭을 생성하여 컬럼에

      • AS statistical_anomaly_peer 또는 예: 지난 하루 동안 특정 리소스에 접근한 API 토큰 중 이전 30일 동안 접근한 적이 없는 토큰을 찾습니다.키워드를 사용하십시오. 동료 그룹 필드에 붙여넣으세요.

    • 다음을 사용하여 절과 같은 필터 안에 있어야 합니다. 집계 컬럼. 경우에는 이 컬럼의 내용이 집계되어 이상값을 검사합니다. 경우에는 이 컬럼의 내용이 새로운 값을 검사합니다. 엔터티 컬럼과 마찬가지로 이 컬럼도 최상위 필드여야 합니다. p_occurs_since(). Mappings p_occurs_since() 여기arrow-up-right.

  1. user:email as email, -- 엔터티 컬럼

  1. 클릭 검색 실행.

(<subquery>, '<entity_col>', ...) }}

각 매크로의 전체 입력 인수 목록은 저장행동 분석 및 이상 탐지 매크로 참조

임시적 검색을 넘어

Panther의 행동 분석 및 이상 탐지 쿼리는 위협 헌팅에 유용하지만 모니터링 시스템으로 사용할 때 더 강력합니다. 쿼리는

로 설정하여 일정에 따라 실행하고 Scheduled Rules에 연결할 수 있습니다. 이 방식으로 이상 활동이 관찰될 때마다 알림을 받을 수 있습니다.

전체 예시

repo,

적용한 후 {{ new_unique_values_peer('subquery', 'actor', 'team', 'repo', '1d') }}매크로 소스 코드 보기

매크로 활성화

  1. Panther 콘솔의 왼쪽 탐색 바에서 클릭하십시오 저장된 검색 목록에서 다운로드하거나 삭제하려는 검색을 찾습니다. 각 검색 이름 왼쪽의 상자를 체크하세요. > 저장된 검색.

  2. 를 활성화하면 Panther 콘솔 또는 panther-analysis 리포지토리에서 행동 분석 및 이상 탐지 매크로 소스 코드를 볼 수 있습니다. Panther 콘솔에서 매크로 소스 코드를 보려면:Saved Search 이름으로 The saved query containing the macro source code is called "anomalies"

에서

queries/macros/anomalies.yml

동료 그룹 분석 statistical_anomaly예: 같은 팀 구성원들과 비교했을 때 특정 사용자가 리소스에 접근하려는 시도를 식별합니다. 엔터티의 행동을 동료들의 행동과 비교하는 것이 유용한 경우가 많습니다. 예를 들어, 어떤 엔지니어가 최근에 다른 엔지니어들이 하지 않은 계정에 로그인했나요?

Panther는 이러한 분석을 수행하기 위해 의 동료 버전을 제공합니다. 동료 버전에서는 기준 통계가 동료 그룹에 따라 계산된 다음 엔터티 행동을 기준과 비교합니다.이 쿼리들은 비동료(일반) 버전과 유사하게 작동하지만 추가 매개변수 의 동료 버전을 제공합니다. 동료 버전에서는 기준 통계가 동료 그룹에 따라 계산된 다음 엔터티 행동을 기준과 비교합니다. group_field

{{ <statistical_anomaly, new_unique_values, statistical_anomaly_peer, OR new_unique_values_peer>

를 사용하여 동료 그룹을 정의합니다. 이는 엔터티를 함께 그룹화하는 데 사용되는 값이 있는 컬럼이어야 합니다. 일반적인

statistical_anomaly

설정은 statistical_anomaly 값의 예로는 사용자 역할, 직무 부서, VPC ID, 계정 ID 등이 있습니다.

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

매크로는 최근 기간 내 데이터셋에서 비정상적인 데이터 포인트를 검사합니다. CTE를 기본 데이터 집합으로 사용하고 해당 기간 동안 엔터티의 기준 활동을 동일 엔터티의 최신 활동과 비교하여 이 행동이 얼마나 비정상적인지 계산합니다.

기본 데이터 집합을 제공하고 어떤 컬럼이 엔터티 이름을 포함하는지, 그리고 어떤 컬럼을 데이터 비교에 사용할지 지정해야 합니다. 또한 이상을 찾을 최근 기간의 크기도 정의해야 합니다.

이름
새 속성에 다음 값을 사용하세요. 나열되지 않은 필드는 변경하지 않아도 됩니다.
입력 인수

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

문자열

설명

subquery

문자열

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

entity_field

문자열

그룹화에 사용할 컬럼의 이름; 보통 이름, IP 주소 또는 ID입니다.

agg_field

문자열

이상값을 찾을 컬럼의 이름입니다. entity_field agg_func 기간 내에서, 의 데이터를 집계하는 데 사용할 SQL 함수입니다. 일반적인 값은count.

sum

문자열

max 1 tmag1 이상값을 찾을 조회 창의 단위 수. 예: "

day"의

문자열

값. tunit 이상값을 찾을 조회 창의 시간 단위. 예: "1

"의

숫자

입니다. 단수형이어야 합니다(끝에 "s" 없음). "의 zscore

다음을 반환합니다

이상값 임계값; 계산된

이름
새 속성에 다음 값을 사용하세요. 나열되지 않은 필드는 변경하지 않아도 됩니다.
설명

N

숫자

값이 이 값보다 높지 않으면 결과가 반환되지 않습니다. entity_field매크로 실행 후 반환되는 테이블에는 다음 컬럼들이 포함됩니다: agg_field조회 기간 동안

에서

타임스탬프

에 의해 집계된 데이터의 값.

t1

타임스탬프

조회 기간의 시작.

t2

내에서 하나 이상의 일치 표현식을 나열하세요.

조회 기간의 끝. subquery.

<entity_field>

숫자

선택한 "의 의 값 "의 p_zscore

조회 기간 동안 엔터티 활동의 계산된

숫자

입니다. 값이 클수록 더 이상합니다. entity_field p_mean 다음 각 인수는 아래에 표시된 순서대로 매크로에 제공되어야 합니다.조회 기간을 제외한

의 해당 엔터티에 대한 평균값입니다.

숫자

p_stddev entity_field p_mean 다음 각 인수는 아래에 표시된 순서대로 매크로에 제공되어야 합니다.조회 기간을 제외한 의 해당 엔터티에 대한 평균값입니다. 의 표준편차입니다. 값이 클수록 엔터티의 활동이 전반적으로 덜 일관되었음을 의미합니다.

예: 같은 팀 구성원들과 비교했을 때 특정 사용자가 리소스에 접근하려는 시도를 식별합니다.

설정은 예: 같은 팀 구성원들과 비교했을 때 특정 사용자가 리소스에 접근하려는 시도를 식별합니다. 매크로는 데이터 집합을 스캔하고 주어진 엔터티에 대해 최근 조회 기간에 존재하는 선택된 컬럼의 새로운 값 집합을 반환합니다.

매크로는 최근 기간 내 데이터셋에서 비정상적인 데이터 포인트를 검사합니다. CTE를 기본 데이터 집합으로 사용하고 해당 기간 동안 엔터티의 기준 활동을 동일 엔터티의 최신 활동과 비교하여 이 행동이 얼마나 비정상적인지 계산합니다.

다음 인수들은 아래에 표시된 순서대로 매크로에 제공되어야 합니다.

이름
새 속성에 다음 값을 사용하세요. 나열되지 않은 필드는 변경하지 않아도 됩니다.
설명

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

문자열

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

subquery

문자열

그룹화에 사용할 컬럼의 이름; 보통 사용자 이름, IP 주소 또는 ID입니다.

entity_field

문자열

새로운 값을 검색할 컬럼의 이름입니다.

interval

문자열

새로운 값을 찾을 기간의 크기입니다. 은(는) 동일한 구문을 사용합니다: p_occurs_since.

다음을 반환합니다

이상값 임계값; 계산된

이름
새 속성에 다음 값을 사용하세요. 나열되지 않은 필드는 변경하지 않아도 됩니다.
설명

t2

내에서 하나 이상의 일치 표현식을 나열하세요.

정의된 subquery 열을 확인하여 찾을 수 있습니다.

<agg_field>

내에서 하나 이상의 일치 표현식을 나열하세요.

조회 기간 동안 entity_field 열에서 발견된 모든 새로운 값입니다.

statistical_anomaly_peer

이 매크로를 사용하여 엔터티가 동료들과 비교했을 때 비정상적인 수치적 행동을 결정할 수 있습니다. 예: 같은 태그를 가진 다른 인스턴스들과 비교한 EC2 인스턴스의 트래픽 볼륨 또는 같은 버킷 내 다른 객체들과 비교한 S3 객체에 대한 접근 요청 검사. 동료 그룹엔터티를 식별하는 데 사용할 컬럼의 이름; 보통 이름, IP 주소 또는 ID입니다.

매크로는 최근 기간 내 데이터셋에서 비정상적인 데이터 포인트를 검사합니다. CTE를 기본 데이터 집합으로 사용하고 해당 기간 동안 엔터티의 기준 활동을 동일 엔터티의 최신 활동과 비교하여 이 행동이 얼마나 비정상적인지 계산합니다.

다음 인수들은 아래에 표시된 순서대로 매크로에 제공되어야 합니다.

이름
새 속성에 다음 값을 사용하세요. 나열되지 않은 필드는 변경하지 않아도 됩니다.
입력 인수

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

문자열

설명

subquery

문자열

엔터티를 그룹화하는 데 사용할 컬럼의 이름; 예: 역할 이름 또는 계정 ID.

의 동료 버전을 제공합니다. 동료 버전에서는 기준 통계가 동료 그룹에 따라 계산된 다음 엔터티 행동을 기준과 비교합니다.

문자열

<group_field>

entity_field

문자열

그룹화에 사용할 컬럼의 이름; 보통 이름, IP 주소 또는 ID입니다.

agg_field

문자열

이상값을 찾을 컬럼의 이름입니다. entity_field agg_func 기간 내에서, 의 데이터를 집계하는 데 사용할 SQL 함수입니다. 일반적인 값은count.

sum

문자열

max 1 tmag1 이상값을 찾을 조회 창의 단위 수. 예: "

day"의

문자열

값. tunit 이상값을 찾을 조회 창의 시간 단위. 예: "1

"의

숫자

입니다. 단수형이어야 합니다(끝에 "s" 없음). "의 zscore

다음을 반환합니다

이상값 임계값; 계산된

이름
새 속성에 다음 값을 사용하세요. 나열되지 않은 필드는 변경하지 않아도 됩니다.
설명

N

숫자

값이 이 값보다 높지 않으면 결과가 반환되지 않습니다. entity_field매크로 실행 후 반환되는 테이블에는 다음 컬럼들이 포함됩니다: agg_field조회 기간 동안

에서

타임스탬프

에 의해 집계된 데이터의 값.

t1

타임스탬프

조회 기간의 시작.

t2

내에서 하나 이상의 일치 표현식을 나열하세요.

조회 기간의 끝. subquery.

이 매크로를 사용하여 엔터티가 그 동료 그룹의 구성원이 이전에 관찰한 적이 없는 동작을 했는지 식별할 수 있습니다.

내에서 하나 이상의 일치 표현식을 나열하세요.

조회 기간의 끝. 의 동료 버전을 제공합니다. 동료 버전에서는 기준 통계가 동료 그룹에 따라 계산된 다음 엔터티 행동을 기준과 비교합니다..

<entity_field>

숫자

선택한 "의 의 값 "의 p_zscore

조회 기간 동안 엔터티 활동의 계산된

숫자

입니다. 값이 클수록 더 이상합니다. entity_field p_mean 다음 각 인수는 아래에 표시된 순서대로 매크로에 제공되어야 합니다.조회 기간을 제외한

의 해당 엔터티에 대한 평균값입니다.

숫자

p_stddev entity_field p_mean 다음 각 인수는 아래에 표시된 순서대로 매크로에 제공되어야 합니다.조회 기간을 제외한 의 해당 엔터티에 대한 평균값입니다. 의 표준편차입니다. 값이 클수록 엔터티의 활동이 전반적으로 덜 일관되었음을 의미합니다.

예: 지난 하루 동안 특정 리소스에 접근한 API 토큰 중 이전 30일 동안 접근한 적이 없는 토큰을 찾습니다.

새로운 값을 찾을 조회 창의 크기입니다. 은(는) 동일한 구문을 사용합니다: 동료 그룹.

매크로는 최근 기간 내 데이터셋에서 비정상적인 데이터 포인트를 검사합니다. CTE를 기본 데이터 집합으로 사용하고 해당 기간 동안 엔터티의 기준 활동을 동일 엔터티의 최신 활동과 비교하여 이 행동이 얼마나 비정상적인지 계산합니다.

다음 인수들은 아래에 표시된 순서대로 매크로에 제공되어야 합니다.

이름
새 속성에 다음 값을 사용하세요. 나열되지 않은 필드는 변경하지 않아도 됩니다.
설명

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

문자열

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

subquery

문자열

엔터티를 그룹화하는 데 사용할 컬럼의 이름; 예: 역할 이름 또는 계정 ID.

의 동료 버전을 제공합니다. 동료 버전에서는 기준 통계가 동료 그룹에 따라 계산된 다음 엔터티 행동을 기준과 비교합니다.

문자열

<group_field>

entity_field

문자열

새로운 값을 검색할 컬럼의 이름입니다.

interval

문자열

다음을 반환합니다

이상값 임계값; 계산된

이름
새 속성에 다음 값을 사용하세요. 나열되지 않은 필드는 변경하지 않아도 됩니다.
설명

t2

내에서 하나 이상의 일치 표현식을 나열하세요.

정의된 subquery 열을 확인하여 찾을 수 있습니다.

이 매크로를 사용하여 엔터티가 그 동료 그룹의 구성원이 이전에 관찰한 적이 없는 동작을 했는지 식별할 수 있습니다.

내에서 하나 이상의 일치 표현식을 나열하세요.

정의된 의 동료 버전을 제공합니다. 동료 버전에서는 기준 통계가 동료 그룹에 따라 계산된 다음 엔터티 행동을 기준과 비교합니다. 열을 확인하여 찾을 수 있습니다.

<agg_field>

내에서 하나 이상의 일치 표현식을 나열하세요.

조회 기간 동안 entity_field 열에서 발견된 모든 새로운 값입니다.

Last updated

Was this helpful?