상관 규칙 참조
콘솔 또는 CLI 워크플로우에서 YAML 상관 규칙을 구성하세요
개요
상관 룰은 Panther 버전 1.108부터 오픈 베타로 제공되며 모든 고객이 사용할 수 있습니다. 버그 리포트나 기능 요청이 있으면 Panther 지원팀에 공유해 주세요.
상관 룰은 로컬에서 YAML로 작성하거나, CLI 워크플로우에서 작성하거나, Panther 콘솔의 코드 에디터에서 작성할 수 있습니다. 상관 룰을 만드는 방법에 대한 지침은 상관 룰.
상관 룰 구문
각 상관 룰은 최상위 수준에서 다음 필드들로 구성될 수 있습니다:
디택션 키
event, "data", "details", "request", "path", default="<NO_REQUEST_PATH_FOUND>"메타데이터 키
AnalysisType: correlation_rule CreateAlert: Enabled: RuleID: CreatedBy: Reports: 태그: 테스트:알러트 키(정적)
심각도: 설명: 표시 이름(DisplayName): OutputIds: 참고: 런북(Runbook): 요약 속성(SummaryAttributes):
이들 각 키에 대해 필요한지 선택적인지 등을 포함한 자세한 내용은 아래의 상관 룰 최상위 필드 참조를 보세요.
상관 룰 작성 팁
상관 룰 최상위 필드
아래 표에는 YAML 디택션에 사용할 수 있는 모든 키가 포함되어 있습니다. 필수 필드는 굵게.
필드 이름
설명
예상 값
AnalysisType
이 분석이 rule, scheduled_rule, policy, correlation_rule 또는 global 중 무엇인지 표시합니다
correlation_rule
사용
이 correlation_rule이 활성화되어 있는지 여부
부울
RuleID
룰의 고유 식별자
문자열
CreateAlert
상관 룰이 알러트를 생성해야 하는지 여부(기본값: true)
부울
설명
룰에 대한 간단한 설명
문자열
표시 이름(DisplayName)
Panther 콘솔과 알러트에 표시할 사용자 친화적 이름. 만약 이 필드가 설정되지 않으면 RuleID 가 표시됩니다.
문자열
OutputIds
정적 대상 재정의입니다. 이는 심각도 기반의 기본 라우팅보다 우선하여 이 룰에서 발생한 알러트가 어떻게 라우팅될지 결정하는 데 사용됩니다.
문자열 목록
참조
이 룰이 존재하는 이유로, 종종 문서 링크입니다
문자열
Reports
이 룰이 해당 프레임워크에 대해 포함하는 값을 프레임워크 또는 보고서 이름에 매핑한 것
문자열을 문자열 목록으로 매핑한 것
요약 속성(SummaryAttributes)
알러트가 요약해야 할 필드 목록입니다.
문자열 목록
태그
이 룰을 분류하는 데 사용되는 태그
문자열 목록
CreatedBy
이 디택션의 작성자입니다. Panther 사용자 UUID, 이메일 주소 또는 임의의 텍스트 값으로 설정할 수 있습니다. 자세한 내용은 사용자를 사용할 것이며, CreatedBy 디텍션 필드.
문자열
함수를 포함해야 함을 의미합니다; 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)
함수를 포함해야 함을 의미합니다; 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)EventEvaluationOrder
문자열
허용 값:
Chronological(기본값)ReverseChronological
만약 Chronological, 이벤트는 오래된 것부터 최신 순으로 분석됩니다.
만약 ReverseChronological, 이벤트는 최신 것부터 오래된 순으로 분석됩니다.
룩백 윈도우:
스칼라
15 ≤ x ≤ 21600 (15일)
기본값: 15
상관 룰이 그룹 또는 시퀀스를 평가하기 위해 과거 얼마만큼의 분을 살펴볼지 나타냅니다. 그룹 상관 룰에서, 룩백 윈도우: 상관 룰에서
목록
2 ≤ x ≤ 50
다음 중 하나만 Group 이전에 생성한 Snowflake 사용자 이름, 예를 들면 전이(Transitions) 필수/허용됩니다
의 목록 룰 참조 그룹을 정의하는 상관 룰에서 그룹에 대해 자세히 알아보세요
상관 룰의 MinMatchCount
스칼라
다음이 있는 경우에만 사용할 수 있습니다 Group 가 존재합니다
2 ≤ x < 해당 Group
의 룰 수가 Group 정의되어 2 또는 > 일 때 사용할 수 없습니다8.
의 어느 룰이라도 Group 사용할 때는 사용할 수 없습니다 Absence: true
상관 룰의 MinMatchCount 는(은) 최소 몇 개의 개별 룰, 스케줄드 룰 또는 상관 룰(에 정의된)과 일치해야 이 상관 룰이 일치하는지를 지정합니다. 자세한 내용은 Group에 대해 알아보세요 상관 룰의 MinMatchCount 상관 룰에서.
목록
2 ≤ x ≤ 50
다음 중 하나만 Group 이전에 생성한 Snowflake 사용자 이름, 예를 들면 전이(Transitions) 필수/허용됩니다
의 목록 룰 참조 그 시퀀스를 정의하는 MatchCriteria의 매핑으로, 그룹이 통과하기 위해 일치해야 하는 이벤트 필드를 정의합니다
목록
다음이 있는 경우에만 사용할 수 있습니다 전이(Transitions) 가 존재합니다
x ≥ 1
다음 단계로 전환하기 위한 요구사항을 정의하는 전환 목록입니다. 여기에는 일치시킬 이벤트 값이나 시간 프레임이 포함될 수 있습니다.
Schedule 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)
Schedule 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)각 상관 룰은 스케줄에 따라 실행됩니다. Schedule 필드는 해당 간격을 정의합니다. 설정 방법에 대해 자세히 알아보세요 Schedule 상관 룰에서.
또는
문자열
다음 중 하나만 또는 이전에 생성한 Snowflake 사용자 이름, 예를 들면 RateMinutes 필수/허용됩니다
상관 룰이 얼마나 자주 실행되어야 하는지를 설명하는 크론 표현식. 형식에 대해 자세히 알아보세요 또는 형식은 예약 검색 크론탭 사용 방법.
RateMinutes
스칼라
x ≥ 2
다음 중 하나만 또는 이전에 생성한 Snowflake 사용자 이름, 예를 들면 RateMinutes 필요합니다
상관 룰이 얼마나 자주 실행되어야 하는지 분 단위로 설명하는 빈도
TimeoutMinutes
스칼라
x ≤ RateMinutes
상관 룰이 실행될 수 있는 시간 범위입니다. 상관 룰이 이 기간보다 오래 평가되는 경우 해당 시간 범위에 대해 취소되며 시스템 상태 알림이 생성됩니다
Group 와 전이(Transitions) 필드(룰 참조)
Group 와 전이(Transitions) 필드(룰 참조)내에서 Group 와 전이(Transitions),에는 이 상관 룰에 포함된 룰에 대한 참조 목록을 포함하세요. 각 룰 참조는 다음 필드를 포함할 수 있습니다:
ID
문자열
를 사용하는 경우에만 필요합니다 를 사용하면 상관 룰의 특이성이 증가합니다. 이전에 생성한 Snowflake 사용자 이름, 예를 들면 MatchCriteria
시퀀스 또는 그룹에서 참조되는 룰에 대한 고유 식별자
RuleID
문자열
룰ID는 사전에 Panther에 존재해야 합니다
시퀀스나 그룹에 포함할 룰, 스케줄드 룰 또는 상관 룰의 id
상관 룰의 MinMatchCount
스칼라
x ≥ 1
기본값: 1
시퀀스의 이 단계가 통과하기 위해 필요한 최소 신호 수
MaxMatchCount
스칼라
x ≥ 0
x > 상관 룰의 MinMatchCount (설정된 경우)
이 단계가 통과하기 위해 허용되는 최대 신호 수
부재(Absence)
부울
해당 없음(N/A)
단계가 통과하기 위해 신호의 부재가 참이어야 하는지 여부
MatchCriteria 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)
MatchCriteria 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)사용자를 사용할 것이며, MatchCriteria 키는 함께 사용할 수 있습니다 Group 보다 더 세분화된 결과를 위해 함께 사용될 수 있습니다. 이는 각 룰이 어떤 이벤트 필드에서 매치되는지를 나타냅니다. 상관 룰당 매치되는 필드 유형은 하나만 있을 수 있습니다(예: 모든 시퀀스 예시 모든 이메일 주소 필드).
사용자를 사용할 것이며, MatchCriteria 필드는 고유한 레이블인 키를 포함합니다. 그 키는 GroupID 와 에 포함된 룰 수보다 하나 적어야 합니다. 또한 쌍의 목록을 포함합니다.
와 함께 및 없이 Group 의 예제를 보세요 MatchCriteria 켜기 상관 룰.
에 포함된 룰 수보다 하나 적어야 합니다. 또한
문자열
여러 로그 유형, 스케줄드 룰 또는 상관 룰과 관련된 룰의 경우: 오직
p_필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.) 만 허용됩니다한 로그 유형과만 관련된 룰의 경우: 어떤 필드든 허용됩니다
로그 스키마를 기반으로 검증됩니다. 유형이
object이전에 생성한 Snowflake 사용자 이름, 예를 들면JSON인 필드로 끝날 수 없습니다. JSON 객체 내의 항목은 검증되지 않습니다.다른
에 포함된 룰 수보다 하나 적어야 합니다. 또한값과 동일한 타입이어야 합니다를 사용해야 합니다 Kusto Query Language (KQL) 구문
참조된 룰에 대해 매치되어야 하는 이벤트의 필드
예: 예를 들면, p_alert_context.username
를 사용하면 상관 룰의 특이성이 증가합니다. 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)
를 사용하면 상관 룰의 특이성이 증가합니다. 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)사용자를 사용할 것이며, 를 사용하면 상관 룰의 특이성이 증가합니다. 키는, 오직 전이(Transitions)과 함께 사용될 때에만, 한 단계가 다른 단계로 어떻게 이동할 수 있는지를 정의합니다.
전환(Transitions)은 전이(Transitions).
전환에 대해 자세히 알아보세요 상관 룰에서.
ID
문자열
해당 없음(N/A)
시퀀스의 전환에 대한 고유 식별자.
WithinTimeFrameMinutes
스칼라
1 ≤ x ≤ 1440 AND x ≤ 룩백 윈도우:
두 단계가 통과하기 위해 발생해야 하는 분 단위 시간 범위(로, 다음으로부터 와 To) 내에 있어야 함을 나타냅니다.
에 포함된 룰 수보다 하나 적어야 합니다. 또한 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)
에 포함된 룰 수보다 하나 적어야 합니다. 또한 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)에 포함된 룰 수보다 하나 적어야 합니다. 또한 은(는) 의 하위 필드입니다 를 사용하면 상관 룰의 특이성이 증가합니다., 은(는) 전이(Transitions)와 함께 사용됩니다. 이 필드들은 각 룰, 스케줄드 룰 또는 상관 룰에서 어떤 이벤트 필드들이 일치하는 값을 가져야 하는지를 정의할 수 있게 해줍니다.
상관 룰당 매치되는 필드 유형은 하나만 있을 수 있습니다(예: 모든 시퀀스 예시 모든 이메일 주소 필드).
켜기
문자열
참조된 를 사용하면 상관 룰의 특이성이 증가합니다. 다음으로부터 와 다음과 같이 에서 매치되어야 하는 이벤트의 필드입니다. 이벤트 필드 이름이 정확히 일치할 때 사용됩니다. 예: p_udm.x 이전에 생성한 Snowflake 사용자 이름, 예를 들면 p_any_usernames
값이 배열 타입 필드인 경우, 두 배열 모두에 항목이 하나 이상 있어야 합니다(조건은 Absence: true 어느 이벤트에도 사용되지 않는다고 가정할 때).
다음으로부터와다음과 같이비어 있어야 합니다여러 로그 유형, 스케줄드 룰 또는 상관 룰과 관련된 룰의 경우: 오직
p_필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.) 만 허용됩니다한 로그 유형과만 관련된 룰의 경우: 어떤 필드든 허용됩니다
로그 스키마를 기반으로 검증됩니다. 유형이
object이전에 생성한 Snowflake 사용자 이름, 예를 들면JSON인 필드로 끝날 수 없습니다. JSON 객체 내의 항목은 검증되지 않습니다.를 사용해야 합니다 KQL 구문
다음으로부터
문자열
참조된 를 사용하면 상관 룰의 특이성이 증가합니다. 다음으로부터 와 다음과 같이 매치되어야 하는.
이벤트 필드 이름이 정확히 일치하지 않지만 함께 그룹화되어야 할 때 사용됩니다. 예: p_alert_context.username = p_alert_context.user
값이 배열 타입 필드인 경우, 다음과 같이 은(는) 다음 중 어느 것이 될 수 있습니다(어느 이벤트에도 Absence: true 가 사용되지 않는다고 가정할 때):
스칼라 필드일 수 있으며, 이 경우
다음과 같이값은다음으로부터배열에 포함되어야 합니다
켜기비어 있어야 합니다여러 로그 유형, 스케줄드 룰 또는 상관 룰과 관련된 룰의 경우: 오직
p_필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.) 만 허용됩니다한 로그 유형과만 관련된 룰의 경우: 어떤 필드든 허용됩니다
로그 스키마를 기반으로 검증됩니다. 유형이
object이전에 생성한 Snowflake 사용자 이름, 예를 들면JSON인 필드로 끝날 수 없습니다. JSON 객체 내의 항목은 검증되지 않습니다.를 사용해야 합니다 KQL 구문
다음과 같이
문자열
참조된 를 사용하면 상관 룰의 특이성이 증가합니다. 다음으로부터 와 다음과 같이 매치되어야 하는.
이벤트 필드 이름이 정확히 일치하지 않지만 함께 그룹화되어야 할 때 사용됩니다. 예: p_alert_context.username = p_alert_context.user
값이 배열 타입 필드인 경우, 다음으로부터 은(는) 다음 중 어느 것이 될 수 있습니다(어느 이벤트에도 Absence: true 가 사용되지 않는다고 가정할 때):
스칼라 필드일 수 있으며, 이 경우
다음으로부터값은다음과 같이배열에 포함되어야 합니다
켜기비어 있어야 합니다여러 로그 유형, 스케줄드 룰 또는 상관 룰과 관련된 룰의 경우: 오직
p_필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.) 만 허용됩니다한 로그 유형과만 관련된 룰의 경우: 어떤 필드든 허용됩니다
로그 스키마를 기반으로 검증됩니다. 유형이
object이전에 생성한 Snowflake 사용자 이름, 예를 들면JSON인 필드로 끝날 수 없습니다. JSON 객체 내의 항목은 검증되지 않습니다.를 사용해야 합니다 KQL 구문
상관 룰의 각 단위 테스트는 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)
상관 룰의 각 단위 테스트는 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)다음을 사용하여 인디케이터 검색을 수행하지 마십시오 앵커 및 앨리어스 - ID: Failed Login 상관 룰의 각 단위 테스트는. 그렇게 하면 오류.
이름
문자열
또 다른 배열일 수 있으며, 이 경우 두 배열 모두에 적어도 하나의 항목이 있어야 합니다
를 구성하는 방법에 대해 자세히 알아보려면 상관 룰 참조의
부울
테스트 케이스에 대한 설명적 이름입니다. 모든 테스트 케이스는 고유한 이름을 가져야 합니다. 비율이 이전에 생성한 Snowflake 사용자 이름, 예를 들면 ).이 테스트 케이스에 대해 상관 룰이 매치(즉, )를 생성해야 하는지 여부입니다. 예를 들어 테스트가 ExpectedResult: False 로 지정하고 상관 룰이 실제로 비율이매치를 생성(즉,
부분을 참조하세요.
)하면, 기대치가 실제 동작과 일치하지 않으므로 테스트는 실패합니다.배열<>
의 목록 배열< RuleOutput 배열< 객체들. 각 는 목(mock)으로 생성된 신호들을 나타냅니다
배열< 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)
배열< 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)ID
문자열
상관 룰 정의에서 참조된 특정 룰로부터 생성된 것으로, 어떤 이벤트 필드/값이 매치되었는지에 대한 정의를 포함합니다. Group 이전에 생성한 Snowflake 사용자 이름, 예를 들면 전이(Transitions) 상관 룰의 Group 이전에 생성한 Snowflake 사용자 이름, 예를 들면 전이(Transitions) 필드에 있는 단계 중 하나를 참조합니다. 만약 ID의 항목들이 IDs를 정의하고 있다면, 이 값은 해당 Group 이전에 생성한 Snowflake 사용자 이름, 예를 들면 전이(Transitions) 와 일치해야 합니다. 만약 ID의 항목들이 RuleID s를 정의하지 않는다면, 이 값은 해당 Group 이전에 생성한 Snowflake 사용자 이름, 예를 들면 전이(Transitions) 항목과 연관된
일치 항목
와 일치해야 합니다. 객체<String,>
MatchValue Group 이전에 생성한 Snowflake 사용자 이름, 예를 들면 전이(Transitions) 이 객체는 이 시퀀스의 단계에서 매치된 이벤트 필드와 값을 나타냅니다. 키는 매치된 필드 이름입니다(하위 필드는 JSON 경로 표기법으로 지정 가능, 예: p_alert_context.username)—값은 객체<String, 객체입니다.
객체<String, 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)
객체<String, 필드만 일치시킬 수 있습니다. (하나의 로그 타입과만 연관된 룰의 경우에는 어떤 필드든 일치시킬 수 있습니다.)A 객체<String, 객체는 매치된 이벤트 값과 매치가 발생한 시간을 정의합니다.
현재 상관 룰은 전체에 걸쳐 하나의 이벤트 값만 매치하도록 지정할 수 있으므로 이 객체는 단일 키/값 쌍만 포함할 수 있습니다.
예:
이전에 생성한 Snowflake 사용자 이름, 예를 들면
[매치된 값](문자열)
배열<문자열> 또는 배열<숫자>
키는 룰이 매치한 임의의 문자열입니다. 값은 타임스탬프의 배열이며, 타임스탬프는 상대적(테스트 케이스가 실행된 시간 기준)이거나 절대적일 수 있습니다:
상대 타임스탬프: 숫자 배열로 표현되며, 숫자는 매치가 테스트 케이스 시나리오 시작 후 몇 분 만에 발생했는지를 나타냅니다.
절대 타임스탬프: RFC3339 형식의 타임스탬프 배열로 표현됩니다.
단일 테스트는 상대 타임스탬프와 절대 타임스탬프를 혼합할 수 없습니다. 예를 들어, 한 배열<에 대해 절대 타임스탬프를 사용하면, 모든 항목에 대해 절대 타임스탬프를 사용해야 합니다 부분을 참조하세요..
마지막 업데이트
도움이 되었나요?

