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

상관 룰(베타)

상관 룰은 로그 전반의 상관관계를 설정하고, 이상 징후를 식별하며, 복잡한 공격 행위를 모델링한 다음 알러트를 생성합니다

개요

상관 룰은 Panther 버전 1.108부터 오픈 베타로 제공되며, 모든 고객이 사용할 수 있습니다. 버그 보고와 기능 요청은 Panther 지원 팀과 공유해 주세요.

Panther에서 상관 룰을 사용하면 로그 유형 전반에 걸친 여러 동작을 추적할 수 있습니다. 상관 룰에서는 다음을 지정합니다 그룹 또는 특정 시퀀스시그널 가 일치로 간주되려면 특정 시간 창 내에 발생해야 합니다. 그런 다음 시그널을 생성하고, 선택적으로 다음을 생성합니다 알러트.

또한 다음을 포함할 수도 있습니다 부재 상관 룰 기준에서 시그널의 부재를 포함할 수 있습니다. 상관 룰의 일치는 룰 일치나 알러트가 아니라 시그널에 의해 결정되므로, 다음을 포함하는 룰, 예약 룰, 상관 룰을 포함할 수 있습니다 알러트 생성이 비활성화되어 있는.

예를 들어 다음과 같은 경우 알러트를 생성하고 싶다면 상관 룰이 특히 유용할 수 있습니다

  • 어떤 Okta 사용자가 최소 100번의 로그인 실패 후 성공적으로 로그인한 다음, 루트 사용자로 AWS에 로그인함 (아래 전체 예시 참조)

  • GitHub 저장소에서 고급 보안 설정이 비활성화되었고, 그 결과 보관되지 않음 (아래 전체 예시 참조)

아래에서 사용자 지정 상관 룰을 만드는 방법을 알아보세요, 그리고 상관 룰을 구성하는 YAML 키에 대한 자세한 내용은 상관 룰 참조. 또한 다음을 활용할 수도 있습니다 Panther에서 관리하는 상관 룰.

상관 룰이 작동하는 방식

상관 룰은 YAML로 작성되며, 이전에 생성된 다음을 참조합니다 , 예약 룰, 그리고/또는 상관 룰. 각 상관 룰은 일정에 따라 실행됩니다, 및 "룩백 창"을 정의합니다 즉, 룰이 찾아봐야 하는 과거의 시간 범위입니다 시그널 (또는 시그널의 부재).

상관 룰에 다음과 같은 추가 기준을 적용할 수 있습니다

  • 어떤 룰에 대해 발견되어야 하는 시그널의 최소 개수, 또는 최대

  • 한 룰에서 다른 룰로 특정 이벤트 값이 일치하도록 요구하는 것(예: 모든 개별 룰의 시그널에 동일한 IP 주소가 포함되도록 요구)

  • 다음 단계가 포함된 시퀀스 가 일정 시간 내에 발생하도록 요구하는 것

상관 룰에서 일치가 발생하면 어떻게 되나요

상관 룰에서의 일치는 시그널. 상관 룰에 알러트 생성이 활성화되어 있으면 룰 일치가 생성되며, 이는 상관 룰의 중복 제거 구성. 시그널, 룰 일치, 알러트의 차이에 대해 자세히 알아보세요.

상관 룰에 대해 알러트가 생성될 때, 상관 룰에서 참조하는 개별 룰, 예약 룰, 상관 룰도 자체 알러트를 생성할 수도 있고 생성하지 않을 수도 있습니다. 이는 다음에 따라 달라집니다

  • 각 개별 룰, 예약 룰, 상관 룰에 알러트 생성이 활성화되어 있는지 여부

  • 다음 Threshold 개별 룰 또는 예약 룰의 MinMatchCount 값과 상관 룰의 값. 상관 룰은 알러트를 생성하지만 구성하는 룰들은 생성하지 않는 예외 상황은 개별 룰의 이벤트 임계값(다음으로 설정한)이 Threshold Threshold MinMatchCount 보다 높고, 실제 룰 일치 수가 그 중간쯤인 경우입니다.

그룹 vs. 시퀀스

상관 룰에는 두 가지 유형이 있습니다 그룹시퀀스. 그룹 및 시퀀스 상관 룰은 시그널이 발견되어야 하는 룰들의 집합을 정의합니다(또는 아닌 발견되거나(다음을 설정하여 부재: true).

그룹 상관 룰은 모든 룰이 시그널(또는 부재)을 생성했다면, 시그널이 발견된 순서와 상관없이 알러트를 생성합니다. 반면 시퀀스 룰은 알러트를 생성하려면 시그널(또는 부재)이 발견되어야 하는 특정 순서를 정의합니다.

일정과 룩백 창 설정

각 상관 룰은 다음 두 가지를 정의합니다

  • 일정: 다음에 의해 정의됨 Schedule 필드(다음 중 하나를 사용함 RateMinutes 또는 CronExpression), 일정은 상관 룰이 얼마나 자주 실행되어야 하는지 나타냅니다.

  • 룩백 창: 다음에 의해 정의됨 LookbackWindowMinutes 필드, 룩백 창은 상관 룰이 찾아봐야 하는 과거 분 수를 지정합니다 시그널 (또는 시그널의 부재)를 해당 그룹 또는 시퀀스에 포함된 룰, 예약 룰, 상관 룰에 대해.

다음 값들을 설정할 때 ScheduleLookbackWindowMinutes, 다음 몇 가지 요소를 고려하는 것이 좋습니다:

  • 이 상관 룰의 일치에 대해 적시에 알러트를 받는 것이 얼마나 중요한지

    • 예를 들어 우선순위가 낮은 상관 룰은 24시간마다 실행해도 충분할 수 있으며, 반대로 우선순위가 높은 상관 룰은 15분마다 실행하고 싶을 수 있습니다.

  • 상관 룰이 찾는 첫 번째 시그널과 마지막 시그널 사이의 시간 간격이 어느 정도여야 일치를 생성해야 하는 동일한 발생으로 간주될 수 있는지

  • 상관 룰과 연결된 룰이 평가하는 데이터 소스에서 예상되는 최대 지연 시간

ScheduleLookbackWindowMinutes 값은 Snowflake 컴퓨팅 비용에 영향을 줄 수 있습니다. 다음을 참조하세요 상관 룰을 더 효율적으로 만드는 방법 자세한 정보를 보려면.

시그널이 룩백 창 사이에서 분리되지 않도록 보장하기

필요한 시그널이 여러 상관 룰 실행의 룩백 창에 걸쳐 분산되어 검색 중인 대상의 발생을 놓치지 않도록 룩백 창을 설정하는 것이 좋습니다.

피해야 할 상황의 예

피하려는 이 상황을 설명하기 위해 다음의 단순화된 상관 룰 구성을 살펴보세요

이 시나리오에서, 매시간 상관 룰은 이전 90분을 되돌아보며 다음에 포함된 세 룰의 시그널을 찾습니다 그룹. 각 룰이 아래 시간에 일치/생성된 시그널을 만들었다고 가정해 봅시다:

  • 다음의 시그널 First.룰 오후 12:58에 생성됨

  • 다음의 시그널 Second.룰 오후 1:05에 생성됨

  • 다음의 시그널 Third.룰 오후 1:40에 생성됨

상관 룰은 매시 30분에 실행되도록 예약되어 있습니다. 다음 시간에 실행됩니다:

  • 오후 1:30(오후 12:00까지 되돌아봄): 첫 번째와 두 번째 시그널(12:58 및 오후 1:05)만 보므로 일치를 생성하지 않습니다.

  • 오후 2:30(오후 1:00까지 되돌아봄): 두 번째와 세 번째 시그널(1:05 및 오후 1:40)만 보므로 다시 일치를 생성하지 않습니다.

이 상관 룰의 작성자는 세 룰의 시그널이 42분 이내(12:58부터 오후 1:40까지)에 생성되면 상관 룰이 일치했을 것이라 예상했을 가능성이 큽니다. 그러나 필요한 세 시그널이 상관 룰의 단일 실행의 룩백 창 내에서 모두 발견되지 않았기 때문에 일치가 생성되지 않았습니다.

상관 룰의 일치에 필요한 시그널이 서로 다른 실행에 걸쳐 분리되지 않도록(즉, 동일한 룩백 창에 포함되도록) 하려면, 먼저 첫 번째 시그널과 마지막 시그널 사이의 시간 간격이 어느 정도여야 같은 발생으로 간주되어 알러트를 생성해야 하는지 결정하세요. 편의상 이 값을 "최대 시그널 시간 범위 분"이라고 하겠습니다.

(이것은 다음과 혼동해서는 안 됩니다 WithinTimeFrameMinutes, 이는 통과하기 위해 시퀀스의 두 단계가 발생해야 하는 시간 범위입니다. "최대 시그널 시간 범위 분"과 WithinTimeFrameMinutes 은 상관 룰이 시퀀스이고 두 단계만 지정하는 경우 같을 수 있습니다.)

룩백 창 LookbackWindowMinutes 값을 "최대 시그널 시간 범위 분" 길이의 모든 가능한 창이 상관 룰의 최소 한 번 실행에 포함되도록 설정하는 것입니다. 일반적으로 다음 공식으로 이를 수행할 수 있습니다:

  • If RateMinutes <= "최대 시그널 시간 범위 분":

    • LookbackWindowMinutes = 2 x "최대 시그널 시간 범위 분" + 로그 수집 지연 시간

  • If RateMinutes > "최대 시그널 시간 범위 분":

    • LookbackWindowMinutes = "최대 시그널 시간 범위 분" + RateMinutes + 로그 수집 지연 시간

로그 수집 지연 시간을 포함하는 이유를 이해하려면 다음을 참조하세요: 로그 소스 지연 시간을 다음에 반영하기 LookbackWindowMinutes

로그 소스 지연 시간을 다음에 반영하기 LookbackWindowMinutes

로그 수집 지연 시간은 상관 룰과 관련된 룰이 평가하는 데이터 소스에서 예상되는 최대 지연 시간입니다.

시그널은 관련 이벤트가 발생한 시간을 기준으로 룩백 창 내에서 가져오므로(p_event_time), 아닌 이벤트가 Panther에 수집된 시간(p_parse_time), 다음을 결정할 때 수집 지연 시간을 고려해야 합니다 LookbackWindowMinutes 상관 룰이 마지막으로 실행된 이후의 모든 "새로운" 데이터를 처리하고 있는지 확인하기 위해.

예를 들어 상관 룰을 매시간 실행하도록 구성했고(예: 다음을 설정하여 RateMinutes 에서 60) 상관 룰과 연결된 룰이 처리하는 로그의 원본이 Panther로의 로그 전달을 최대 3시간까지 지연할 수 있다고 명시한다면, 다음과 같이 설정할 수 있습니다 LookbackWindowMinutes 에서 60 + 3*60, 또는 240. 오전 9:01 는 지연 시간을 p_event_time 다음만큼 이른 오전 6:01. 오전 10:00, 최소한 다음 시각까지 되돌아봐야 합니다 오전 6:01.

이벤트 중복 제거

상관 룰의 중복 제거 기간은 LookbackWindowMinutes 해당 필드의 값입니다 LookbackWindowMinutes 시간 범위 내에서 겹치는 상관 룰이 해당 상관 룰을 일치시키는 데 사용된 고유한 이벤트만 포함한다는 뜻입니다.

상관 룰에서 참조하는 개별 룰과 예약 룰에 대해 설정된 중복 제거(다음을 사용해 dedup(), DedupPeriodMinutes, Threshold, 또는 Console에서 설정한 값)는 상관 룰에는 적용되지 않습니다.

상관 룰 오류

상관 룰을 사용하는 동안 다음 오류 중 하나를 받을 수 있습니다:

그룹 상관 룰

그룹 상관 룰은 다음에 대한 룰들의 집합을 정의합니다 시그널 (또는 시그널의 부재)가 주어진 룩백 창 내에서 발생해야 합니다. 시그널은 어떤 순서로든 발생할 수 있습니다.

이벤트 집합이 특정 순서로 발생하기를 원한다면 다음을 사용하세요: 시퀀스 상관 룰 을(를) 사용하는 것을 고려하세요.

MatchCriteria

그룹 상관 룰에서 MatchCriteria 키는 상관 룰이 통과하려면 일치하는 값을 가져야 하는 필드를 룰별, 예약 룰별, 상관 룰별로 정의합니다.

여러 로그 유형, 예약 룰 또는 상관 룰과 연결된 룰의 경우에만 p_ 필드 에서 일치시킬 수 있습니다. (하나의 로그 유형에만 연결된 룰의 경우 어떤 필드든 일치시킬 수 있습니다.)

일치 기준이 정의되지 않으면 특정 이벤트 필드 값이 일치해야 한다는 요구사항이 없으므로 상관 룰의 구체성이 떨어집니다.

다음에 대해 자세히 알아보기 MatchCriteria 에서 상관 룰 참조.

MinMatchCount

그룹 상관 룰에서, MinMatchCount 은(는) 개별 룰, 예약 룰 또는 상관 룰의 최소 개수(다음에서 정의된 그룹)을 지정하는 선택적 필드로, 이 상관 룰이 일치하려면 해당 개수만큼 일치해야 합니다.

예를 들어, 다음 안에 다섯 개의 룰을 나열하고 그룹 을 추가하면 MinMatchCount: 2, 다섯 룰 중 어떤 두 룰이 시그널을 생성하면 상관 룰이 일치합니다.

MinMatchCount 은(는) 다음에서 정의된 개별 룰에도 사용할 수 있는 필드입니다 그룹. 다음의 예시에서 두 필드가 함께 사용되는 것을 확인하세요 MinMatchCount가 있는 그룹 예시, 아래.

그룹 예시

아래 예시는 다음 JSON 이벤트를 참조합니다:

예시 이벤트

가독성을 위해 이 샘플 이벤트에는 일부 필드만 포함되어 있습니다.

이 예시에서 MatchCriteriaIP 필드가 네 개의 모든 룰에서 동일한 값을 가져야 함을 지정합니다.

시퀀스 상관 룰

시퀀스 상관 룰은 다음을 위한 룰 집합을 정의합니다: 시그널 (또는 신호의 부재)가 주어진 조회 창 내에서 특정 순서로 발생해야 합니다.

시퀀스의 순서는 다음 안에 정의된 룰의 순서로 정해집니다: 시퀀스 키.

모든 룰에 신호(또는 부재)가 있기만 하면 되고 특정 순서를 요구하지 않으려면 다음을 사용하세요: 그룹 상관 룰 을(를) 사용하는 것을 고려하세요.

전이

시퀀스 내에서 선택적으로 전이를 정의할 수 있습니다. 전이는 시퀀스의 한 단계가 다음 단계로 이동하는 방식을 위한 추가 기준을 정의하며, 여기에는 단계 사이에 허용되는 시간과 일치해야 하는 이벤트 필드가 포함됩니다. 다음을 사용하면 전이 헤더가 WithinTimeFrameMinutes 및/또는 매치 상관 룰의 구체성이 높아집니다.

전이가 정의된 경우, 다음에 포함된 룰 수보다 전이 수가 1개 적어야 합니다: 시퀀스. 또한 다음 안의 항목들은 전이 다음과 같은 순서여야 합니다: 시퀀스 목록.

현재 각 상관 룰에서는 일치하는 필드 유형을 하나만 사용할 수 있습니다(예: 모든 IP 주소 필드 또는 모든 이메일 주소 필드). 여러 로그 유형, 예약 룰 또는 상관 룰과 연결된 룰의 경우, 오직 p_ 필드 에서 일치시킬 수 있습니다. (하나의 로그 유형에만 연결된 룰의 경우 어떤 필드든 일치시킬 수 있습니다.)

다음에서 전이에 대해 자세히 알아보세요: 상관 룰 참조.

시퀀스 예시

아래 예시는 다음 JSON 이벤트를 참조합니다:

예시 이벤트

가독성을 위해 이 샘플 이벤트에는 일부 필드만 포함되어 있습니다.

사용: 전이 헤더가 매치시퀀스 는 값이 일치해야 하는 이벤트 필드를 정의하고 싶을 때 유용합니다.

상관 룰 테스트

특정 조건이 주어졌을 때 상관 룰에 대한 일치가 생성되는지 평가하기 위해 상관 룰에 단위 테스트를 추가할 수 있습니다(잠재적으로 알러트를 생성함—참조 상관 룰에서 일치가 발생하면 어떻게 되나요).

상관 룰 테스트는 상관 로직만 테스트하기 위해 존재합니다. 상관 룰을 구성하는 개별 룰의 룰 로직을 테스트하려면, 개별 룰 자체의 단위 테스트를 사용하세요.

단위 테스트는 다음의 상관 룰 내에서 정의됩니다 Unit Tests 탭(Panther Console에서) 또는 최상위 Tests 필드(CLI 워크플로에서)에 정의되며, 다음과 유사하게 구성됩니다 룰 또는 정책에 대한 단위 테스트.

상관 룰의 각 단위 테스트에는 다음이 포함되어야 합니다 이름, ExpectedResult, 및 RuleOutputs 필드입니다. 단위 테스트의 YAML 구조와, 다음을 구성하는 방법을 포함하여 자세히 알아보세요 RuleOutputs여기, 상관 룰 참조에서.

상관 룰에 대한 테스트를 작성한 후에는 다음을 사용하여 실행할 수 있습니다 Panther Analysis Tool test 명령. 실행하기 pat test 상관 룰에 대해 실행하려면 API 토큰이 필요합니다—참조 API 토큰으로 인증 자세한 정보를 보려면.

단위 테스트 예시

다음 상관 룰을 사용합니다:

다음 테스트를 작성할 수 있습니다:

아래 테스트가 룰의 YAML 파일에 포함되어 있다면(CLI 워크플로에서 디택션을 관리할 때 필요함), 해당 테스트는 다음 아래에 배치됩니다 Tests 키.

아래의 로그인 시도 10번 뒤에 성공적인 로그인, سپس 루트 로그인이 발생하면, 상관 룰이 다음을 반환할 것으로 예상합니다 true. 이 테스트는 절대 타임스탬프를 사용합니다—절대 타임스탬프 사용 방법 자세히 알아보기 여기, 상관 룰 참조에서.

상관 룰의 제한 사항

  • 시퀀스가 전이를 사용하는 경우:

    • 허용되는 전이 수는 시퀀스 컬렉션에 포함된 룰 수보다 하나 적습니다.

    • 다음의 항목 순서는 전이 목록의 순서는 다음의 룰 순서와 일치해야 합니다 시퀀스 필드.

  • 이벤트 필드 매칭을 사용하는 경우:

    • 이전의 값은 Match.On/Match.From 다음과 일치해야 합니다 Match.On/Match.To 값도 복사하세요.

    • 둘 이상의 로그 유형, 스케줄된 룰 또는 상관 룰과 연결된 룰의 경우, 다음의 값은 Match.On/Match.From/Match.To 또는 MatchCriteria.Match 다음 중 하나여야 합니다 p_ 다음에 나열된 필드 표준 필드.

    • 상관 룰 전체에서 한 종류의 필드만 매칭할 수 있습니다. 예를 들어 IP 주소만 매칭하거나 이메일 주소만 매칭할 수 있습니다.

    • 일치하지 않는 값에 대해 이벤트 필드 매칭을 사용하는 것은 불가능합니다. 예를 들어, 상관 룰의 한 단계에 있는 IP 주소가 다음 단계의 IP 주소와 일치하지 않을 때 상관 룰이 통과하도록 할 수는 없습니다.

상관 룰을 만드는 방법

Panther Console 또는 로컬에서 상관 룰을 작성할 수 있습니다. 상관 룰을 구성하는 데 사용되는 YAML 키에 대한 설명은 다음을 참조하세요 상관 룰 참조.

사용자 지정 상관 룰을 만드는 것 외에도 다음을 활용할 수 있습니다 Panther에서 관리하는 상관 룰, 다음에서 제공되는 correlation_rules 디렉터리의 panther-analysis 저장소.

Console의 플로우 차트 시각화 도구 사용

Panther Console에서 상관 룰을 작업하는 동안 플로우 차트 시각화 도구를 사용할 수 있습니다. 이는 YAML로 상관 룰을 구성하는 동안 룰을 시각적으로 렌더링하며, UI는 룰에 대한 즉각적인 검증 피드백을 제공합니다.

To the left of the YAML representation of a Correlation Rule called "Okta Brute Force Login into AWS Root Login," is the graphical, visual builder representation. Each of the three rules in the Sequence has its own rectangle in the builder.

Console에서 YAML로 상관 룰 만들기

Panther Console에서 상관 룰을 만들려면 목록 보기에서 디택션을 선택하여 YAML을 생성하거나, 직접 YAML을 작성할 수 있습니다.

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

  2. 디택션 목록에서 상관 룰에 포함하려는 각 디택션의 왼쪽 체크박스를 클릭합니다.

    • 디택션을 클릭한 순서가 생성되는 시퀀스 상관 룰의 순서가 됩니다.

  3. 클릭합니다 상관. Four buttons are shown: Download, Delete, Enable, Disable, and Correlate.

  4. 디택션 생성 페이지에서 상관 룰 구성을 완료합니다:

    • 이름: 상관 룰에 대한 설명적인 이름을 입력합니다.

    • ID (선택 사항): 펜 아이콘을 클릭하고 상관 룰의 고유 ID를 입력합니다.

    • 오른쪽 상단의 활성화됨 토글은 기본적으로 켜기 로 설정됩니다. 룰을 비활성화하려면 토글을 다음으로 전환하세요 .

    • 다음의 YAML 편집기 탭:

      • 원하는 경우 생성된 상관 룰을 수정할 수 있습니다. 기본적으로 해당 룰은:

      • 상관 디택션 YAML 구문에 대한 자세한 정보는 다음에서 찾을 수 있습니다 상관 룰 참조, 필수 및 선택 필드의 전체 목록을 포함하여.

    • 다음의 알러트 설정 탭:

      • 다음의 기본 탭에서 다음 필드를 구성합니다:

        • 알러트 생성: 이 ON/OFF 토글은 다음이 알러트 일치가 있을 때 생성되어야 하는지, 아니면 only a 신호.

        • (다음의 경우에만 적용됨 알러트 생성 가 다음으로 설정된 경우 켜기) 심각도: 다음을 선택하세요 심각도 수준 이 디택션으로 인해 트리거되는 알러트에 대해.

        • (다음의 경우에만 적용됨 알러트 생성 가 다음으로 설정된 경우 켜기) 대상 재정의: 심각도와 관계없이 이 디택션의 알러트를 받을 대상을 선택할 수 있습니다.

      • (다음의 경우에만 적용됨 알러트 생성 가 다음으로 설정된 경우 켜기) 다음의 컨텍스트 하위 탭에서 필요에 따라 다음 필드의 값을 입력합니다:

        • 설명: 룰에 대한 추가 컨텍스트를 입력합니다.

        • 런북: 이 룰과 관련된 절차 및 운영을 입력합니다.

        • 참조: 이 룰과 관련된 자세한 정보를 가리키는 외부 링크를 입력합니다.

        • 요약 속성: 이 디택션으로 인해 트리거되는 알러트에 표시할 속성을 입력합니다.

        • 태그: 룰을 한눈에 이해하는 데 도움이 되는 사용자 지정 태그를 입력합니다(예: HIPAA.)

        • 다음 프레임워크 매핑 섹션:

          1. 클릭합니다 새로 추가 보고서를 입력합니다.

          2. 다음 필드의 값을 입력합니다:

            • 보고서 키: 보고서와 관련된 키를 입력합니다.

            • 보고서 값: 해당 보고서의 값을 입력합니다.

    • 다음의 Unit Tests 탭에서 필요에 따라 테스트를 추가합니다:

      1. 클릭합니다 + 새 단위 테스트 추가.

        • 이 상관 룰에 대한 테스트의 기본 코드가 채워집니다.

      2. 채워진 텍스트를 필요한 대로 조정하고, 다음의 내용을 포함하여 테스트의 나머지 부분을 채웁니다 일치함.

      3. 코드 편집기 아래에서 다음을 클릭합니다 테스트 실행 테스트를 평가합니다.

  5. 오른쪽 상단에서 다음을 클릭하세요: 배포.

Console에서 시퀀스와 그룹 전환

다음을 사용하여 상관 룰을 시퀀스에서 그룹으로, 또는 그 반대로 전환할 수 있습니다 룰을 그룹/시퀀스로 구성 버튼은 다음의 오른쪽 상단에 있습니다 YAML 편집기 패널.

상관 룰이 이미 시퀀스이고 다음을 클릭하면 룰을 그룹으로 구성:

  • 다음 시퀀스 키는 다음으로 변경됩니다 그룹.

  • 다음 전이 섹션이 제거됩니다.

  • A MatchCriteria 섹션이 추가됩니다.

    • 이전에 다음을 편집한 경우 MatchCriteria 섹션이 추가됩니다. 그렇지 않으면 기본 MatchCriteria 섹션이 제공됩니다.

상관 룰이 이미 그룹이고 다음을 클릭하면 룰을 시퀀스로 구성:

  • 다음 그룹 키는 다음으로 변경됩니다 시퀀스.

  • 다음 MatchCriteria 섹션이 제거됩니다.

  • A 전이 섹션이 추가됩니다.

    • 이전에 다음을 편집한 경우 전이 섹션이 추가됩니다. 그렇지 않으면 기본 전이 섹션이 제공됩니다.

CLI 워크플로에서 YAML로 상관 룰 만들기

지침 펼치기

로컬에서 Correlations 디택션을 작성하는 경우(Panther Console 대신), GitHub 또는 GitLab 같은 버전 관리 시스템에서 로컬 디택션 파일을 관리하는 것을 권장합니다.

폴더 설정

상관 룰을 폴더로 그룹화하는 경우, 각 폴더 이름에는 다음이 포함되어야 합니다 업로드 중에 찾을 수 있도록 하기 위해서입니다(PAT 또는 Console의 대량 업로더를 사용하여).

파일 설정

각 상관관계 룰은 다음으로 구성됩니다:

  • YAML 사양 파일(다음과 같은 .yml 확장자를 가진 파일)로, 디택션 로직과 디택션의 메타데이터 속성을 포함합니다.

상관 디택션 YAML 구문에 대한 자세한 정보는 다음에서 찾을 수 있습니다 상관 룰 참조, 필수 및 선택 필드의 전체 목록을 포함하여.

  • YAML 파일을 생성합니다(예: my_new_correlation_룰.yml) 아래 템플릿을 사용합니다(최상위 디택션 키를 포함):

이 룰을 Panther에 업로드하면 콘솔에서 볼 수 있습니다.

상관관계 룰 전체 예시

유출된 GitHub 자격 증명 발견

Discovering.Exfiltrated.Credentials 상관관계 룰은 10분마다 다음이 있었는지 확인합니다 신호 에 대한 AWS.CloudTrail.IaaS 룰(아래의 두 번째 탭에 정의됨) 아닌 그 뒤에 다음에 대한 신호가 이어집니다 GitHub.CICD 룰(아래의 세 번째 탭에 정의됨)에 대한 신호가 지난 10분 이내에 있었는지.

AWS 루트 로그인으로 이어지는 Okta 무차별 대입 로그인

Brute.Force.Login 상관관계 룰은 30분마다 다음이 있었는지 확인합니다 신호 에 대한 Standard.BruteForceByIP 룰 다음에 이어서 그 룰에 대한 신호가 있었는지 Okta.Login.Success 룰(아래의 두 번째 탭에 정의됨) 다음에 이어서 그 룰에 대한 신호가 AWS.Console.RootLogin 룰이 있었는지, 추가적인 시간 범위와 이벤트 IP 값 일치 요구 사항과 함께.

GitHub 저장소 보안 정책이 후속 보관 없이 비활성화됨

Github.Repo.Security.Policy.Disabled.Without.Archival 상관관계 룰은 10분마다 다음이 있었는지 확인합니다 신호 에 대한 GitHub.Advanced.Security.Change 아닌 그 뒤에 다음에 대한 신호가 이어집니다 GitHub.Repo.Archived 아래 두 번째 탭에 정의된 룰이며, 또한 다음에 대한 일치하는 값이 있는 p_알러트_context.repo 이벤트 필드 내에서 지난 10분 이내.

상관 룰을 더 효율적으로 만드는 방법

상관 룰은 복잡한 패턴 인식을 사용하므로 계산 비용이 많이 들 수 있습니다. 상관 룰과 관련된 Snowflake 비용을 줄이려면 다음 지침을 염두에 두세요.

상관 룰을 가능한 한 드물게 실행하세요

상관 룰이 실행되는 빈도—그 룰의 Schedule 값—은 비용에 큰 영향을 줄 수 있습니다. 따라서 디택션 요구 사항을 충족하면서도 상관 룰이 필요 이상으로 자주 실행되지 않도록 하는 것이 좋습니다—아래의 설정 Schedule, 위의 이 필드를 구성할 때의 고려 사항을 참조하세요).

상관 룰의 실행 빈도와 비용의 관계를 생각할 때의 일반적인 지침은 다음과 같습니다. 상관 룰이 실행되는 간격을 두 배로 늘릴 때마다(예: 두 배로 RateMinutes), 생성되는 비용은 절반이 됩니다.

다음을 설정합니다 LookbackWindowMinutes 가능한 한 낮게

상관 룰이 처리하는 데이터 양은 대체로 그 룰의 LookbackWindowMinutes 값으로 정의되며, 이 데이터 양은 상관 룰의 처리 시간과 결과 비용에 큰 영향을 미치는 주요 요인입니다. 상관 룰이 처리하는 데이터 양을 줄이려면 그 룰의 LookbackWindowMinutes 값을 가능한 한 낮게 설정하는 것이 좋습니다(여전히 디택션 요구 사항을 충족하면서—아래의 설정 LookbackWindowMinutes, 위의 이 필드를 구성할 때의 고려 사항을 참조하세요).

예를 들어, 두 룰이 서로 10분 이내에 각각 신호를 생성하는 시점을 식별하고 싶다고 가정해 보겠습니다(사용 WithinTimeFrameMinutes). 설정을 LookbackWindowMinutes 정확히 10 로 설정하는 것은 권장되지 않지만, 다음과 같이 낮은 값도 안전하게 사용할 수 있습니다 15.

가능한 한 가장 낮은 카디널리티의 일치 필드를 선택하세요

일치 필드의 카디널리티는 상관 룰 비용과 양의 상관관계가 있습니다. 상관 룰이 이벤트 값 일치를 사용하는 경우, 어떤 필드를 일치 대상으로 선택할지 정할 때 카디널리티가 더 낮은 필드를 사용하는 것이 좋습니다.

일치 필드의 카디널리티는 다음과 같은 몇 가지 요인의 영향을 받을 수 있습니다:

  • 필드가 가질 수 있는 가능한 값의 수—가능한 값이 많을수록 카디널리티가 높아집니다.

    • 예를 들어, field_a 는 세 가지 가능한 값 중 하나를 가질 수 있습니다(예: "yellow", "red", 또는 "blue"), 하지만 field_b 는 오직 두 값 중 하나만 가질 수 있습니다(예: "purple" 또는 "green"), field_b 보다 카디널리티가 더 낮습니다 field_a.

  • 필드의 데이터 유형—일반적으로 비스칼라 데이터 유형(즉, 다음과 같은)인 필드는 배열 또는 객체)는 스칼라 데이터 유형(즉, 문자열, 불리언, 또는 숫자).

    • 예를 들어, 로그 스키마가 하나의 이메일사용자 이름 필드를 사용자 이름 지표, 즉, 귀하의 p_any_usernames 필드는 둘 다 하나의 배열 (예: p_any_usernames: ["Bob Smith", "bob.smith@example.com"]이면, 그 p_any_usernames 필드는 다음 필드보다 더 높은 카디널리티를 갖게 됩니다 이메일 필드로, 이는 문자열 단일 값을 가진 유형입니다.

마지막 업데이트

도움이 되었나요?