가 생성됩니다.

CLI 워크플로우에서 YAML 탐지 구성하기

개요

간단 탐지는 콘솔에서 생성되는 것 외에도 CLI 워크플로우에서 YAML로 생성할 수 있습니다. 간단 탐지 빌더 콘솔에서.

CLI 워크플로우에서 생성된 간단 탐지를 Panther에 업로드한 후 콘솔에서 보고 편집할 수 있습니다. 간단 탐지 빌더 콘솔에서. 이는 팀 구성원들이 YAML 사용 경험 수준이 다를 때 유용할 수 있습니다.

간단 탐지는 탐지 유도.

간단 탐지를 로컬에서 YAML로 작성할지 Python 탐지로 작성할지 확실하지 않다면, Python 사용 vs. 간단 탐지 YAML 섹션.

circle-info

팀이 탐지 콘텐츠 관리를 위해 CLI 워크플로우를 사용하는 경우, 콘솔에서 간단 탐지 빌더 을(를) 사용하여 탐지에 가한 변경사항은 다음 업로드 시 덮어써집니다(단, 인라인 필터(Inline Filters) 콘솔에서 생성된 것은 보존됩니다).

콘솔의 간단 탐지 빌더를 사용해 탐지를 생성하거나 편집하는 경우, 결과 YAML 표현을 복사하여 로컬 탐지 파일에 포함시키면 다음 업로드 시 변경사항이 덮어써지는 것을 방지할 수 있습니다.

간단 탐지 YAML의 제한 사항

  • 예약된 규칙정책 은(는) 간단 탐지로 생성할 수 없습니다.

    • 오직 규칙 만 YAML로 생성할 수 있습니다.

  • Panther에서 관리하는 간단 탐지는 아직 제공되지 않습니다.

  • 특정 로그 소스용 기능을 포함한 Python에서 이용 가능한 많은 헬퍼 함수들이 YAML로는 표현되어 있지 않습니다.

  • 간단 탐지에서는 외부 API 호출을 하거나 Dynamo KV 스토어에서 값을 가져와 캐싱.

YAML에서 간단 탐지(룰)를 생성하는 방법

chevron-rightCLI 워크플로우에서 간단 탐지 룰 생성하기hashtag

간단 탐지를 로컬에서 작성하는 경우(콘솔의 간단 탐지 빌더 대신), 로컬 탐지 파일을 GitHub 또는 GitLab과 같은 버전 관리 시스템으로 관리할 것을 권장합니다.

폴더 설정

룰을 폴더로 그룹화하는 경우 각 폴더 이름에는 규칙 가 포함되어야 업로드(콘솔의 PAT 또는 대량 업로더 사용 시) 중에 찾을 수 있습니다.

룰을 로그/리소스 유형에 따라 폴더로 그룹화할 것을 권장합니다. 예: suricata_rules 또는 aws_s3_policies.

파일 설정

각 룰 및 예약 룰은 다음으로 구성됩니다:

  • 탐지 로직과 탐지의 메타데이터 속성을 포함하는 YAML 명세 파일(확장자가 .yml 인 파일).

    • 이 파일은 Python YAML 파일과 유사한 문법을 가지며 일부 추가 키가 있습니다.

간단 탐지 룰은 의심스러운 동작을 탐지하는 불리언 논리의 목록인 Python 또는 Simple Detection으로 생성된 규칙에 대해 CLI 워크플로우에서 인라인 필터를 생성하려면 탐지의 YAML 파일에 을(를) 포함합니다. 값을 본문에서 반환하면 의심스러운 활동을 나타내며 경고가 트리거됩니다.

Mappings 간단 탐지 YAML 문법을(를) 참조하고, 아래에 필수 및 선택적 YAML 필드의 전체 목록이 있습니다.

  • 아래 템플릿을 사용하여 YAML 파일(예: my_new_rule.yml)을 생성하세요(최상위 Detection 키 포함):

이 룰이 Panther에 업로드된 후에는 콘솔의 간단 탐지 빌더.

간단 탐지 YAML 문법

각 맞춤 간단 탐지는 다음으로 구성될 수 있습니다:

  • 탐지 키

  • 필터 키

  • 메타데이터 키

  • 경고 키(동적)

  • 경고 키(정적)

이 키들 각각에 대해, 필수/선택 여부를 포함한 자세한 내용은 아래의 간단 탐지 룰 명세 참조를 확인하세요.

Detection

내에서 Detection 키에 하나 이상의 Python 또는 Simple Detection으로 생성된 규칙에 대해 CLI 워크플로우에서 인라인 필터를 생성하려면 탐지의 YAML 파일에.

InlineFilters

간단 탐지에서 InlineFilters 사용하는 방법에 대해 자세히 알아보려면 인라인 필터로 탐지 수정하기.

간단 탐지의 동적 경고 키

경고 필드는 해당 탐지에 의해 생성된 경고에 적용되는 간단 탐지 정의의 필드입니다.

경고 필드는 정적이거나 동적일 수 있습니다. 정적 경고 필드에서는 탐지 정의에 고정된 값을 제공하며 들어오는 이벤트에 따라 변경되지 않습니다. 반면 동적 경고 필드는 이벤트의 정보를 사용하여 값을 결정할 수 있습니다.

프로젝트 ID 경고 중복 제거, 첫 번째 탐지와 일치하는 이벤트는 이러한 경고 키들에 의해 사용됩니다.

경고 유형

사용 경고 유형 은(는) 이 탐지에서 일치가 발생했을 때 생성된 경고의 심각도를 동적으로 설정하는 데 사용됩니다. 이 필드는 이벤트의 값을 사용하여 심각도를 결정할 수 있기 때문에 동적입니다.

When 경고 유형 가 존재하면 해당 값이 경고 필드 설정 키의 값으로 저장됩니다. 경고 필드 설정 의 값을 재정의합니다. 여전히 Python 또는 Simple Detection으로 생성된 규칙에 대해 CLI 워크플로우에서 인라인 필터를 생성하려면 탐지의 YAML 파일에 는 필요하며, 그 값은 어떤 경고 유형.

내에서 경고 유형 키에 하나 이상의 내의 키들 각각에는 해당하는 목록 내포는 키. 의 값은 내의 은 다음 중 하나여야 합니다 경고 심각도. 내의 블록들은 위에서 아래로 순서대로 평가되며, 일치가 발견되면 평가가 중지됩니다.

내에서 목록 내포는CLI 워크플로우에서 인라인 필터 생성 방법 Python 또는 Simple Detection으로 생성된 규칙에 대해 CLI 워크플로우에서 인라인 필터를 생성하려면 탐지의 YAML 파일에. 목록 내포는 목록에는 다음과 같은 제한이 있습니다:

예시:

AlertTitle

사용 AlertTitle 은(는) 이 탐지에서 일치가 발생했을 때 생성된 경고의 제목을 동적으로 설정하는 데 사용됩니다. 이 필드는 이벤트의 값을 제목에 사용할 수 있기 때문에 동적입니다.

를 포함하세요 AlertTitle 문자열이어야 합니다. 중괄호를 사용하여 이벤트 값을 참조할 수 있습니다. 중괄호 내부에서는 JSON 경로 문법을 사용하세요.

예시:

AlertContext

AlertContext 는 생성된 경고에 전달할 이벤트 데이터를 딕셔너리 형식으로 식별할 수 있게 해줍니다.

내에서 AlertContextCLI 워크플로우에서 인라인 필터 생성 방법 KeyNameKeyValue 쌍을 만드세요. KeyName 는 경고 컨텍스트 딕셔너리에서 키가 될 임의의 문자열을 취합니다. 내부의 KeyValue에서는 이벤트 키를 표시하기 위해 키 지정자 를 사용하세요—그 값이 경고 컨텍스트 딕셔너리의 값이 됩니다.

KeyValue 값은 JSON 규격을 준수해야 합니다. 비준수 값의 예로는 Python의 nan, inf-inf.

예시:

GroupBy

GroupBy 는 탐지의 중복 제거 문자열을 설정합니다. 중복 제거 문자열이 설정되는 우선순위 등 중복 제거에 대해 자세히 알아보려면 룰 및 예약 룰.

내에서 GroupBy 키 아래에, DeepKey.

예시:

아래에 제공된 키들의 값은 GroupBy 으로 결합되어 중복 제거 문자열을 형성합니다. 위 예제의 출력 중복 제거 문자열은 다음과 같습니다:

간단 탐지 룰 명세 참조

아래 표에는 간단 탐지에 사용할 수 있는 모든 YAML 키가 포함되어 있습니다. 필수 필드는 굵게.

Python 룰을 작성하는 경우에는 대신 Python 룰 명세 참조를 참조하세요.

를 작성하세요. 이 테스트는 규칙의

설명

로직에서

설정

이 분석이 rule, scheduled_rule, policy 또는 global 중 무엇인지 나타냅니다

예약 규칙(scheduled rule)

활성화됨

이 룰이 활성화되어 있는지 여부

부울

RuleID

룰의 고유 식별자

문자열

datamodel

이 룰을 적용할 로그 목록

문자열 목록

CreatedBy

이 탐지의 작성자입니다. Panther 사용자 UUID, 이메일 주소 또는 임의의 텍스트 값으로 설정할 수 있습니다. 자세한 내용은 설정은 CreatedBy 탐지 필드.

문자열

경고 필드 설정

어떤 severity 연관된 경고가 가져야 하는지

다음 문자열 중 하나: 정보, 낮음, 어려움, 중간(Medium), 또는 중간 이 필드는 경고 유형에 의해 덮어써지지만, 경고 유형 가 정의되어 있더라도 이 필드는 필요합니다

CreateAlert

룰이 룰 일치/경고를 생성해야 하는지 여부 일치 시(기본값 true)

부울

대체 심각도 맞춤 조건 집합에 기반한

의 목록은 내의목록 내포는 필드로 구성된 동적 심각도 구성 목록입니다. 내의 은(는) 경고 필드 설정 값이고 목록 내포는 은(는) Python 또는 Simple Detection으로 생성된 규칙에 대해 CLI 워크플로우에서 인라인 필터를 생성하려면 탐지의 YAML 파일에.

설명

의 목록입니다

문자열

룰에 대한 간단한 설명

경고 중복 제거에 사용될 이벤트 값 집합

DedupPeriodMinutes

이벤트 키의 목록

15,30,60,180 유사한 이벤트들이 함께 그룹화되는 기간(분 단위)720 (3시간), 1440 (12시간), 또는

DisplayName

(24시간) RuleID Panther 콘솔과 경고에 표시할 사용자 친화적인 이름. 이 필드가 설정되지 않으면

문자열

OutputIds

가 표시됩니다.

문자열 목록

참조

정적 대상 재정의. 이는 심각도 기반 기본 라우팅보다 우선하여 이 룰의 경고가 어떻게 라우팅될지 결정하는 데 사용됩니다.

문자열

Reports

이 룰이 존재하는 이유, 종종 문서 링크

이 룰이 해당 프레임워크에 대해 다루는 값을 매핑하는 프레임워크 또는 리포트 이름의 매핑

런북

문자열을 목록으로 매핑한 것 Panther AI 경고 분류 이 룰이 경고를 반환할 경우 수행할 작업들. 설명이 포함된 런북을 제공하는 것이 권장됩니다. 왜냐하면

문자열

SummaryAttributes

에서 이를 고려하기 때문입니다.

문자열 목록

Threshold

경고가 요약해야 할 필드 목록.

정수

태그

이 룰이 경고를 전송하기 전에 몇 개의 이벤트가 발생해야 하는지.

문자열 목록

Tests

이 룰의 단위 테스트

맵의 목록

대체 DisplayName 이벤트 값을 사용하여 경고의 동적 제목을 생성할 수 있는

문자열

동적 경고 컨텍스트를 생성하기 위해 사용자 정의 키 아래 이벤트에 추가할 이벤트 값

키 이름과 키 값 쌍의 목록

Last updated

Was this helpful?