PyPanther 탐지(베타)

탐지를 Python으로 완전히 구성하기

개요

circle-exclamation
circle-info

PyPanther 탐지는 Panther 버전 1.108부터 클로즈드 베타로 제공됩니다. 버그 보고 및 기능 요청은 Panther 지원팀에 공유해 주세요.

PyPanther 프레임워크에서 탐지는 완전히 Python으로 정의되어 구성요소 재사용과 간단한 규칙 재정의를 가능하게 합니다. PyPanther 탐지의 기반은 오픈 소스 pypanther Python 라이브러리arrow-up-right.

이 페이지에서 PyPanther의 핵심 기능과 v1 탐지 형식과의 차이점을 확인한 다음—시작하세요 PyPanther 탐지 생성하기 CLI 워크플로우에서 또는 Panther 콘솔에서.

주요 기능

  • 규칙을 가져오고 작성하고 수정하고 테스트하고 업로드하는 완전한 Python 네이티브 환경—포크나 panther-analysis.

    # Panther가 관리하는 BoxNewLogin 규칙을 임포트합니다
    from pypanther.rules.box import BoxNewLogin
circle-info

panther-analysis의 복사본을 유지할 필요가 없으므로 업스트림 병합 충돌을 피할 수 있습니다. CLI 워크플로우에서 v1 모델에서는 panther-analysis 을(를) 업스트림 저장소와 동기화할 때 사용자 정의 포크를 동기화하면 병합 충돌이 발생할 수 있습니다. PyPanther에서는 Panther가 관리하는 규칙이 규칙 구성과 분리되어 존재하므로 병합 충돌의 가능성이 제거됩니다.

  • 다음을 통해 Panther가 관리하는 규칙에 사용자 구성(custom configuration)을 적용할 수 있는 기능: overrides, 함수 로직, 속성 값, 클래스 변수 또는 헬퍼 함수 등이 그러합니다. 이 경우 관련 규칙들이 상속하는 기본 규칙을 만드는 것이 유용합니다.상속.

    from pypanther import Severity
    
    # 여러 속성 재정의를 설정합니다
    BoxNewLogin.override(
        default_severity=Severity.MEDIUM,
        tags=['Initial Access'],
        default_runbook="이 로그인이 실제로 해당 사용자에 의한 것인지 Slack에서 사용자에게 문의하세요.",
    )
    
    # Alice의 모든 로그인은 제외하도록 간단한 필터를 추가합니다
    BoxNewLogin.extend(
        exclude_filters=[lambda e: e.deep_get('created_by', 'name') == 'Alice'],
    )
  • Panther 배포 패키지에 포함할 규칙 집합을 선택적으로 고를 수 있는 기능.

    from pypanther import register
    
    # 테스트 및 업로드할 단일 규칙을 등록합니다
    register(BoxNewLogin)

PyPanther 탐지 vs. v1 탐지

circle-info

이 문서에서는 "v1 탐지"라는 용어를 사용하며, 이는 다음에 설명된 형식으로 작성된 규칙을 의미합니다 Python 탐지 작성(Writing Python Detections). PyPanther 탐지는 때때로 "v2 탐지"라고도 불립니다.

PyPanther 탐지는 다음 영역에서 v1 탐지와 다릅니다:

  • 파일 구조: CLI 워크플로우에서 작업할 때, v1 프레임워크 의 규칙은 규칙 로직을 정의하는 Python 파일과 동적 경보 함수 를 설정하는 YAML 파일, 총 두 파일이 필요합니다. PyPanther 규칙은 모든 함수, 속성 및 헬퍼를 포함하는 단일 Python 클래스로 완전히 작성됩니다.

  • Panther가 관리하는 탐지를 가져오는 프로세스: v1 탐지에서는 주기적으로 panther-analysis 을(를) 업스트림 변경사항과 동기화해야 합니다. PyPanther 탐지에서는 Git 동기화가 필요하지 않습니다—최신 Panther 관리 콘텐츠는 항상 pypanther Python 라이브러리arrow-up-right.

  • Packs: Panther가 관리하는 v1 탐지는 탐지 팩(Detection Packs)에 번들로 제공됩니다. PyPanther 탐지에서는 get_panther_rules() (또는 직접 임포트)를 사용하여 Panther 인스턴스에 포함할 탐지를 선택할 수 있습니다 register().

동일한 탐지인 Box.New.Login 은 아래 두 버전 모두에 정의되어 있습니다:

v1 Box New Login 규칙
PyPanther Box New Login 규칙

PyPanther 탐지의 제한사항

PyPanther 탐지에는 다음과 같은 제한사항이 있습니다:

PyPanther 탐지 사용 시작하기

환경에서 Fluentd 시작에 대한 정보는 콘솔 제한사항 섹션을 참조하세요arrow-up-rightpypanther-starter-kit 저장소 에는 PyPanther 탐지 예제가 포함되어 있으며, 빠르게 시작할 수 있도록 복제(clone)할 수 있습니다. 저장소의 설정 지침을 따라 시작하세요—README에arrow-up-right.

CLI 워크플로우에서 Panther가 관리하는 PyPanther 탐지를 수정하고 직접 생성하는 방법에 대해 자세히 알아보려면 PyPanther 탐지 생성 또는 Panther 콘솔에서는 Panther 콘솔에서 PyPanther 탐지 관리하기.

pypanther에 기여하기

설정은 pypanther Panther가 관리하는 데이터 모델을 참조하는 것은 가능합니다arrow-up-right 는 오픈 소스이며 기여를 환영합니다. 기여 지침은 다음을 확인하세요 CONTRIBUTING.mdarrow-up-right 에서 기여 가이드라인을 확인하세요.

Last updated

Was this helpful?