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

파생 디택션

Panther에서 단일 기본 디택션으로부터 하나 이상의 파생 디택션을 생성

개요

Panther에서 하나의 Base 디택션으로부터 하나 이상의 Derived 디택션을 만들 수 있습니다. Derived 디택션은 수정할 수 없는 Base 디택션의 핵심 로직과, 덮어쓸 수 있는 메타데이터 및 알러트 필드 값을 상속합니다.

디택션 파생은 다음과 같이 생성된 룰에 사용할 수 있습니다 간단한 디택션 또는 Python 탐지.

Derived 디택션의 사용 사례

파생은 특히 다음과 같은 경우에 유용합니다:

  • 동일한 룰의 복사본을 여러 개 유지하고 있으며, 각각의 메타데이터가 다를 때

  • CLI 워크플로에서 다음을 사용하고 사용자 지정하며 Panther에서 관리하는 규칙, Panther가 업데이트를 릴리스할 때마다 병합 충돌을 해결해야 하는 상황을 피하고 싶을 때

  • 인시던트에 대응하는 동안 하나의 디택션의 여러 변형을 배포하여 다음 결정을 내리는 데 도움이 되는 텔레메트리를 수집할 수 있으면 좋겠을 때

  • 팀의 한 구성원(예: 위협 연구 책임자)이 다른 사람들(예: SOC 분석가)이 수정할 수 있는 Base 디택션 집합을 만들고 싶어할 때

Base 디택션 및 Derived 디택션

Base 디택션은 사용자 정의 또는 Panther가 관리하는 Derived 디택션이 생성된 룰입니다.

Derived 디택션은 Base 디택션으로부터 생성되며:

  • Base 디택션의 핵심 디택션 로직을 상속합니다

    • 핵심 디택션 로직은 Base 디택션의 룰() 함수(Python 디택션의 경우) 또는 디택션 필드(Simple 디택션의 경우)에 정의됩니다.

    • Derived 디택션은 자체 디택션 로직을 지정할 수 없습니다. CLI 워크플로에서 Derived 디택션에 다음이 포함되면 디택션 키가 포함되어도, 예를 들어 그 내용은 무시됩니다.

  • Base 디택션의 메타데이터/알러트 필드 값을 상속하지만, 일부 필드는 덮어쓸 수 있습니다

    • 참고 디택션 파생의 제한 사항 현재 덮어쓸 수 있는 필드의 전체 목록은 다음을 참조하세요.

    • Derived 디택션에서 적용한 오버라이드는 Base 디택션에서 상속한 해당 필드 값을 완전히 대체합니다. 예를 들어 Base 디택션과 Derived 디택션이 둘 다 다음을 정의하는 경우 인라인 필터 (다음의 InlineFilters 키(CLI 워크플로에서) 또는 이벤트만 포함하도록 필터링하는 필드(Console에서)를 사용한 경우에도, Derived 디택션의 인라인 필터만 적용됩니다.

    • 오버라이드는 한 방향으로만 적용할 수 있습니다. 즉, Derived 디택션에서 적용한 오버라이드는 Base 디택션 값에 영향을 주지 않습니다. 예를 들어 Base 디택션에 다음이 있는 경우 Enabled: False 그리고 그 Derived 디택션에 다음이 있는 경우 Enabled: True, Derived 디택션만 활성화됩니다.

Base 디택션이 업데이트될 때 발생하는 일

Base 디택션의 핵심 로직이 업데이트되면 변경 사항이 관련된 모든 Derived 디택션에 전파됩니다.

Base 디택션의 메타데이터가 업데이트될 때, 관련 Derived 디택션이 이미 업데이트된 필드의 값(들)을 덮어쓴 상태라면 변경 사항은 없습니다. 관련 Derived 디택션이 업데이트된 필드의 값(들)을 덮어쓰지 않았다면 메타데이터 업데이트가 Derived 디택션에 전파됩니다.

중복 알러트를 방지하려면 Base 디택션을 비활성화하세요

대부분의 경우 Base 디택션과 Derived 디택션은 동일한 수신 로그 집합에 대해 실행됩니다(다만 다음을 사용하여 인라인 필터 서로 다른 이벤트를 대상으로 지정하는 것도 가능합니다). 이 경우 디택션들이 핵심 로직을 공유하므로 둘 다 활성화되어 있으면 중복 알러트가 생성됩니다.

이를 방지하려면 Base 디택션을 비활성화하세요. 비활성화된 Base 디택션이 업데이트되더라도 그 변경 사항은 Derived 디택션에 계속 전파됩니다 위에서 설명한 대로.

CLI 워크플로에서 Base 디택션을 자동으로 비활성화하기

CLI 워크플로에서 Base 디택션을 자동으로 비활성화하는 방법은 두 가지입니다:

  • 옵션 1(권장): 다음 설정을 .panther_settings.yml 파일에 추가하세요:

  • 옵션 2: 사용 --auto-disable-base 다음과 Panther Analysis Tool 업로드 명령.

    • 이 옵션을 사용할 때는 다음을 유의하세요 --auto-disable-base 는 이후의 모든 업로드 실행에 사용해야 합니다. 생략하면 Base 디택션이 다시 활성화됩니다.

Derived 디택션을 만드는 방법

Panther Console에서 Derived 디택션 만들기

  1. Panther Console의 왼쪽 탐색 표시줄에서 디택션.

  2. 새 Derived 디택션의 Base 디택션으로 사용할 디택션을 찾아 이름을 클릭하세요.

  3. 오른쪽 상단에서 ....

  4. 다음을 클릭합니다 파생: In the Panther Console, the three dots menu on a detection's page is open, and the Derive option is circled.

  5. 해당 기본 정보 페이지에서 필요에 따라 이름ID Derived 디택션의 필드를 편집합니다.

    • 이름이 Base 디택션의 이름과 구분되도록 하세요.

  6. 다음을 클릭합니다 Continue.

  7. 다음으로 스크롤합니다. 필터알러트 필드 설정 섹션에서 인라인 필터와 알러트 필드에 원하는 오버라이드를 설정하세요: The edit detection page in the Panther Console is shown. A Filter section is visible, along with a Set Alert Fields section. Within the latter are sub-sections for Required Fields and Optional Fields.

  8. 오른쪽 상단에서 배포.

    • 디택션에는 다음 레이블이 DERIVED 표시됩니다: The word "DERIVED" is shown in teal.

CLI 워크플로에서 Derived 디택션 만들기

  1. 다음을 사용하는 디렉터리에서 Panther Analysis Tool (PAT), Derived 디택션용 새 YAML 파일을 만드세요.

  2. 이 YAML 파일에 Derived 디택션에 필요한 다음 필드를 추가하세요:

    • Base디택션: Panther 인스턴스에 현재 있거나 PAT로 업로드할 로컬 디렉터리에 있는 임의의 룰 ID를 지정하세요.

      • 다음 Base디택션 키는 이 Derived 디택션과 해당 Base 디택션을 연결하는 항목이며, 상속을 적용해야 함을 나타냅니다.

    • 룰ID: 앞서 다음에 대해 제공한 ID와 다른 값을 지정하세요 Base디택션 키의 값으로 저장됩니다.

    • AnalysisType: 이것이 다음인지 표시하세요 , scheduled_룰, 또는 정책.

      • 현재는 룰만 지원됩니다.

  3. 덮어쓰려는 메타데이터 필드와 해당 새 값을 추가하세요.

  4. 다음을 사용하여 디택션을 업로드하세요 panther_analysis_tool upload 명령을 사용합니다.

CLI 워크플로 예시

아래는 Python Base 디택션의 예시(panther-analysis 저장소의 표준 디택션)이며, 그 아래에는 해당 Derived 디택션이 있습니다.

모든 Derived 디택션을 보는 방법

Panther 인스턴스에서 모든 Derived 디택션을 보려면:

  1. Panther Console의 왼쪽 탐색 표시줄에서 디택션.

  2. 다음을 클릭합니다 필터 아이콘.

  3. 다음 디택션 유형 드롭다운 필드에서 선택 Derived 룰.

  4. 다음을 클릭합니다 필터 적용.

디택션 파생의 제한 사항

  • 다음에는 파생을 사용할 수 없습니다 예약된 룰 또는 정책.

  • 파생은 한 단계만 가능합니다. 즉, Derived 디택션은 다시 파생될 수 없습니다 에서.

  • Console 워크플로에서는 Derived 디택션이 생성될 때 테스트가 상속되지만, 그 이후 Base 디택션의 테스트가 업데이트되더라도 상속되지는 않습니다.

  • Python Base 디택션에서 메타데이터 필드의 값이 Python 함수로 설정되어 있다면, 해당 값은 Derived 디택션에서 제공한 동일한 정적 오버라이드 값보다 우선합니다. 예를 들어 Python severity() 함수가 Base 디택션에 있으면, 그 값은 다음에 제공된 Derived 디택션의 오버라이드 값보다 우선합니다 심각도 YAML 키(CLI 워크플로에서) 또는 심각도 필드(Console에서).

  • Console 워크플로에서 Derived 디택션을 만들고 있고 Base 디택션이 Python 디택션인 경우, 어떤 알러트 필드도 동적으로 설정할 수 없습니다. 정적으로만 설정할 수 있습니다.

    • 그것은 Base 디택션이 Simple 디택션인 경우 Console 워크플로에서 알러트 필드를 동적으로 설정할 수 있습니다.

    • 그것은 CLI 워크플로에서는 알러트 필드를 동적으로 설정할 수 있습니다( AlertTitle, DynamicSeverities, 알러트Context, 그리고 GroupBy) 이는 Base 디택션이 Python 또는 YAML 디택션인지 여부와 무관합니다.

  • 현재는 아래 필드만 덮어쓸 수 있습니다. 이는 CLI 워크플로에 적용되는 YAML 필드 이름이며, Console에 대응 필드가 있는 경우 해당 Console 필드도 덮어쓸 수 있습니다.

    • Enabled

    • 심각도

    • 설명

    • 알러트 생성(CreateAlert)

    • DedupPeriodMinutes

    • InlineFilters

    • DisplayName

    • OnlyUseBaseRiskScore

    • OutputIds

    • 참조

    • 런북

    • SummaryAttributes

    • Threshold

    • Tags

    • Reports

    • DynamicSeverities

    • AlertTitle

    • 알러트Context

    • GroupBy

    • 테스트

마지막 업데이트

도움이 되었나요?