Python 디택션 작성
Console 또는 CLI 워크플로에서 Python 디택션을 구성합니다
개요
Panther Console 또는 로컬에서 다음 워크플로를 따라 직접 Python 디택션을 작성할 수 있습니다 CLI 워크플로. Python 디택션을 작성할 때는 이러한 모범 사례를참고하고, 또한 일부 알러트 필드는 동적으로 설정할 수 있다는 점을 기억하세요. Python으로 작성된 룰은 디택션 파생.
대신 노코드 디택션 빌더를 Console에서 사용해 룰을 만들거나 로컬에서 Simple 디택션으로 작성할 수 있습니다. 디택션을 로컬에서 Simple 디택션으로 작성할지 Python 디택션으로 작성할지 확실하지 않다면 Python과 Simple 디택션 YAML 사용하기 섹션을 참조하세요.
Panther의 디택션 내에서 외부 API 요청을 하는 것은 매우 권장되지 않습니다. 일반적으로 디택션은 매우 대규모로 처리되며, API 요청을 하면 수신 시스템에 과부하가 걸리고 룰이 15초 실행 시간 제한.
Python에서 디택션을 만드는 방법
Python에서 룰을 만드는 방법
Panther Console과 CLI 워크플로 모두에서 Python 룰을 작성할 수 있습니다.
Python에서 예약 룰을 만드는 방법
Panther Console과 CLI 워크플로 모두에서 Python 예약 룰을 작성할 수 있습니다.
Python에서 정책을 만드는 방법
정책을 만드는 방법은 다음을 참조하세요: Policies에서 정책을 작성하는 방법 안내.
Python 디택션 구문
로컬 Python 디택션은 Python 파일과 YAML 파일, 두 파일로 구성됩니다. Panther Console에서 Python 디택션을 만들 때는 YAML 편집기가 아니라 Python 텍스트 편집기만 있습니다. 아래 YAML 열에 나열된 키는 사용자 인터페이스의 필드에서 설정됩니다.
디택션 로직
알러트 함수(동적)
필터 키
메타데이터 키
알러트 키(정적)
기본 Python 룰 구조
하나의 룰() 함수와 아래에 표시된 YAML 키만 Python 룰에 필요합니다. 그러나 추가 Python 알러트 함수로 알러트를 더 동적으로 만들 수 있습니다. 추가 YAML 키도 사용할 수 있습니다—다음을 참조하세요 Python 룰 사양 참조.
더 많은 템플릿은 다음을 참조하세요: GitHub의 panther-analysis 저장소.
InlineFilters
다음 사용 방법에 대해 자세히 알아보세요 InlineFilters Python 룰에서 인라인 필터로 디택션 수정하기.
Python 디택션의 알러트 함수
Panther의 디택션 보조 함수는 분석 로직, 생성된 알러트 제목, 이벤트 그룹화, 알러트 라우팅, 메타데이터 재정의를 제어하는 Python 함수입니다. 룰은 사용자 지정할 수 있으며 표준 Python 라이브러리 또는 전역 헬퍼.
룰과 정책 모두에 적용되며, 아래 각 함수는 단일 인수인 event (룰) 또는 resource (정책)를 받습니다. 고급 사용자는 아래 정의된 함수 외부에서 함수, 변수 또는 클래스를 정의할 수 있습니다.
다음을 사용 중인 경우 알러트 중복 제거를 사용하는 경우, 첫 번째 디택션과 일치하는 이벤트가 이러한 알러트 함수의 매개변수로 사용됩니다.
아래의 각 알러트 함수는 선택 사항이지만, 알러트에 동적 컨텍스트를 추가할 수 있습니다.
관련 이벤트를 그룹화하는 문자열로, 1000자로 제한됩니다
Python/YAML에서: title() > DisplayName > 룰ID 또는 정책ID
콘솔에서: title() > 이름 field > ID 필드
String
알러트가 생성된 후 따라야 할 지침 목록입니다. 설명이 충분한 런북을 제공하는 것이 권장됩니다. 이는 Panther AI 알러트 분류 에서 이를 고려하기 때문입니다.
YAML에서: 런북 키
콘솔에서: 런북 필드
String
severity
일부 시나리오에서는 알러트의 심각도 수준을 올리거나 내릴 필요가 있을 수 있습니다. 알러트의 심각도 수준은 다음에 매핑될 수 있습니다 INFO, LOW, MEDIUM, HIGH, CRITICAL또는 DEFAULT. 반환 DEFAULT 정적으로 정의된 룰 심각도로 폴백합니다.
심각도 문자열은 대소문자를 구분하지 않으므로, 예를 들어 다음을 반환할 수 있습니다. Critical 또는 default스타일 선호도에 따라 다릅니다.
아래 예시에서 API 토큰이 생성된 경우, 하나의 HIGH 심각도 알러트가 생성됩니다—그렇지 않으면 하나의 INFO 레벨 알러트가 생성됩니다:
Reference: 템플릿 룰
사용 예 DEFAULT:
title
함수는 title() 선택 사항이지만, 알러트에 추가 컨텍스트를 제공하기 위해 포함하는 것이 좋습니다.
아래 예시에서는 로그 유형, 사용자 이름, 그리고 정적 문자열이 알러트 대상(들)로 전송됩니다. 함수는 이벤트가 AWS.CloudTrail 로그 유형과 관련이 있는지 확인하고, 그렇다면 AWS 계정 이름을 반환합니다.
알러트 제목이 어떻게 설정되는지에 대해 자세히 알아보려면 다음을 참조하세요: 룰 및 예약된 룰.
예시:
Reference: 템플릿 룰
dedup
중복 제거는 중복 알러트 수신을 방지하기 위해 관련 이벤트를 단일 알러트로 그룹화하는 프로세스입니다. 동일한 디택션을 트리거하고 중복 제거 문자열도 공유하는 이벤트는 중복 제거 기간 내에 하나의 알러트로 함께 그룹화됩니다. 다음은 dedup 함수는 중복 제거 문자열을 정의하는 한 가지 방법입니다. 길이는 1000자로 제한됩니다.
중복 제거에 대해 자세히 알아보려면 다음을 참조하세요: 룰 및 예약된 룰.
예시:
Reference: AWS S3 버킷 삭제 룰
unique
함수는 unique() 함수는 고유 값 임계값 디택션을 활성화하여, 룰이 총 이벤트 수가 아니라 고유 값 개수를 기준으로 알러트하도록 합니다. 이는 분산 공격, 데이터 유출, 관리 권한 오용 시나리오를 탐지하는 데 유용합니다.
여러 사용자에 걸친 로그인 무차별 대입을 탐지하는 예시:
임계값이 5이면, 이 룰은 중복 제거 기간 내에 실패한 로그인 시도가 5개 이상의 고유 사용자 이름을 대상으로 할 때 알러트합니다.
함수는 unique() 함수는 항상 문자열을 반환해야 합니다. 여러 필드의 고유성을 확인하려면 필드를 연결하세요:
추가 예시를 포함한 고유 값 임계값 디택션에 대해 자세히 알아보려면 다음을 참조하세요: 고유 값 임계값 디택션.
대상
함수는 destinations() 함수는 룰에서 발생한 알러트를 어느 알러트 대상(들)로 보낼지 지정하는 방법입니다. 이는 다른 모든 알러트 대상 구성보다 우선합니다(즉, 시나리오 1 다음의 알러트 라우팅 시나리오).
함수는 destinations() 함수는 하나 이상의 알러트 대상 이름 또는 UUID 목록을 반환해야 합니다. 만약 다음이 반환한 목록이 destinations() 함수가 비어 있으면 ([]), 알러트는 어떤 대상에도 라우팅되지 않습니다.
예를 들어, 아래 룰은 여러 로그 유형과 연결되어 있습니다. 로그 유형이 AWS.CloudTrail, destinations() 다음으로 알러트를 라우팅합니다. slack-security-alerts 대상입니다. 로그 유형이 다음이 아닌 경우 AWS.CloudTrail외부 대상에는 알러트가 전송되지 않습니다—이는 return [].
다음에서 다른 예시를 확인하세요: panther-analysis example_룰.
알러트_context
이 함수는 디택션이 사용자 이름, IP 주소, 성공/실패와 같은 이벤트 세부 정보를 추가 컨텍스트로 알러트 대상(들)에 전달할 수 있게 합니다.
알러트 컨텍스트 딕셔너리에 포함된 값은 JSON 호환이어야 합니다. 호환되지 않는 값의 예로는 Python의 nan, inf그리고 -inf.
예시:
아래 코드는 모든 이벤트 데이터를 알러트 컨텍스트로 반환합니다.
런북
함수는 런북 함수 출력은 이 디택션으로 생성된 알러트를 분류하기 위한 실행 가능한 조사 단계를 제공해야 합니다.
언제 Panther AI가 알러트를 분류할 때그러면 런북을 읽고 자율적으로 실행합니다. 효과적인 런북 작성 방법에 대해 자세히 알아보려면 다음을 참조하세요: 알러트 런북.
예시:
reference 및 설명
함수는 reference 및 설명 함수는 알러트가 트리거된 이유와 관련 문제를 해결하는 방법에 대한 추가 컨텍스트를 제공할 수 있습니다.
아래 예시는 다음 내에서 동적으로 링크를 제공합니다. reference 알러트의 필드:
이벤트 객체 함수
Python 디택션에서, 룰() 함수와 모든 동적 알러트 함수는 단일 인수인 다음을 받습니다: event 객체입니다. 이 이벤트 객체에는 이벤트 값을 간단히 추출할 수 있는 내장 함수가 있습니다.
get()
다음을 사용하세요: get() 최상위 이벤트 필드에 접근합니다. 키를 찾을 수 없으면 반환될 기본값을 제공할 수 있습니다.
다음을 사용하여 최상위 필드에 접근하는 것도 가능합니다: deep_get() 및 deep_walk(). 다음에 대해 자세히 알아보세요: 아래에서 최상위 필드에 안전하게 접근하는 방법.
예시:
deep_get()
다음을 사용하세요: deep_get() Python 딕셔너리 내부에 중첩된 키를 반환합니다.
검색하려는 값이 리스트 안에 있으면 다음을 사용하세요: deep_walk() 대신.
예시:
다음 구조를 가진 이벤트가 주어졌을 때
deep_walk()
다음을 사용하세요: deep_walk() 파이썬 딕셔너리에서 깊이 중첩된 키와 연결된 값을 반환하기 위해 사용합니다. 여기에는 여러 개의 딕셔너리나 리스트가 포함될 수 있습니다. 여러 이벤트 필드와 일치하면 일치 항목의 배열이 반환되고, 하나만 일치하면 해당 일치 항목의 값이 반환됩니다.
예시:
lookup()
함수는 lookup() 이 함수는 다음의 데이터에 동적으로 접근할 수 있게 해줍니다 사용자 지정 조회 테이블 및 Panther에서 관리하는 Enrichment 공급자 탐지에서 사용할 수 있습니다. 이 lookup() 함수는 들어오는 로그에 조회 테이블의 기본 키 열 값과 정확히 일치하는 항목이 없는 경우 유용할 수 있습니다. Python을 사용해 이벤트 값을 수정한 뒤 다음에 전달할 수 있습니다 lookup() 보강 데이터를 가져오기 위해.
lookup() 두 개의 인수를 받습니다:
조회 테이블의 이름
다음에 전달되는 조회 테이블 이름은
lookup()에서 표시되는 그대로여야 합니다 Enrichment 공급자 또는 조회 테이블 Panther 콘솔의 페이지에 표시됩니다. 이 이름은 검색 쿼리에 표시되는 방식과 문법적으로 다를 수 있습니다. 예를 들어,My-Custom-LUT대신my_custom_lut.
조회 테이블의 기본 키
제공된 키에 대해 조회 테이블에서 일치 항목이 발견되면 전체 조회 테이블 행이 Python 딕셔너리로 반환됩니다. 일치 항목이 없으면, None 이 반환됩니다.
사용 예 lookup():
다음을 사용하는 탐지의 단위 테스트 lookup()
언제 단위 테스트 가 실행될 때, lookup() 실시간 데이터를 검색하지 않습니다. 조회 기능을 모방하려면 다음을 추가하세요: _mocked_lookup_data_ 필드를 각 단위 테스트의 이벤트 페이로드에 추가하여 조회 테이블 데이터를 모킹합니다. 다음은 사용할 수 없습니다 enrich test data 버튼 또는 CLI 명령 와 함께 lookup().
_mocked_lookup_data_ 다음 예시와 같이 구성되어야 합니다:
다음을 지정하지 않으면 _mocked_lookup_data_ 단위 테스트에서 필드를 지정하지 않으면 다음 호출 시도는 lookup() 을 반환합니다 None/null.
udm()
함수는 udm() 이 함수는 주로 다음에 접근할 수 있도록 하기 위한 것입니다 데이터 모델, 하지만 이벤트 필드에 접근하는 데에도 사용할 수 있습니다.
다음은 udm() 함수가 작동하는 방식입니다:
다음이 없으면 데이터 모델 다음에 전달된 값에 대해 정의된
udm(), 함수는 그 이름의 이벤트 필드가 있는지 확인합니다. 있으면 해당 값이 반환됩니다.이 경우,
udm()는 중첩된 필드를 포함한 모든 이벤트 필드를 확인합니다. 그 동작은 다음과 유사합니다:deep_get().
데이터 모델은 예약된 룰과 함께 사용할 수 없습니다. 호출하면 udm() 예약된 룰에서 실행해도 런타임에 데이터 모델에 접근하지 않습니다. 예약된 룰은 로그 유형 이벤트가 아니라 예약된 쿼리 출력으로 동작하기 때문입니다.
사용 예 udm() 값에 접근하려면 데이터 모델 값:
고유 값 임계값 디택션
Panther는 고유 값 임계값 디택션을 지원하며, 이를 통해 룰은 전체 이벤트 수가 아니라 관찰된 고유 값의 개수에 따라 알러트를 발생시킬 수 있습니다(예: "10개 이상의 고유 IP 주소가 보이면 알러트"). 이는 다음과 같은 시나리오를 디택션하는 데 유용합니다:
서로 다른 IP 주소에서의 여러 로그인 시도
여러 사용자 이름을 대상으로 하는 무차별 대입 공격
여러 외부 도메인으로의 데이터 유출
여러 리소스에 영향을 주는 관리 작업
함수는 unique() 함수
고유 값 임계값 디택션을 활성화하려면 unique() Python 룰에서 고유 값으로 계산할 대상을 나타내는 문자열 값을 반환하는 함수를 정의하세요.
함수는 unique() 함수는 추적할 고유 값을 식별하는 문자열을 반환해야 합니다. 일반적인 예로는 IP 주소, 사용자 이름, 도메인 이름 또는 리소스 ID가 있습니다.
예시: 여러 IP 로그인 디택션
예시: 다중 대상 무차별 대입 디택션
예시: 데이터 유출 디택션
고유 값 임계값 지정이 작동하는 방식
다음을 정의하면 unique() 함수:
값 추출: 일치하는 각 이벤트마다 Panther는 귀하의
unique()함수를 호출해 추적할 고유 값을 추출합니다확률적 카운팅: Panther는 메모리 효율적인 확률적 알고리즘을 사용해 관찰된 고유 값의 개수를 추정합니다
임계값 확인: 추정된 고유 개수가 설정한 임계값에 도달하면 알러트가 생성됩니다
중복 제거: 고유 개수는 룰의 중복 제거 기간에 따라 초기화됩니다
구성 요구 사항
고유 값 임계값 지정을 사용하려면:
다음을 정의하세요
unique()문자열을 반환하는 함수룰의 임계값 알러트를 트리거하는 데 필요한 최소 고유 값 수로 설정합니다(기본값: 1)
적절한 중복 제거 기간 를 사용 사례에 맞게 구성하세요(기본값: 1시간)
성능 고려 사항
정확도: 고유 카운팅 알고리즘은 최대 1,000개의 고유 값까지 약 90%의 정확도를 제공합니다
메모리 효율성: 고유 값의 수와 관계없이 알러트당 약 16KB의 저장 공간을 사용합니다
권장 제한: 1,000개 미만의 고유 값 임계값에서 최상의 성능을 보입니다
연결: 여러 필드의 고유성을 위해, 귀하의
unique()함수:return f"{ip}:{username}"
하위 호환성
다음이 없는 룰은 unique() 함수는 계속 표준 이벤트 수 임계값 지정을 사용합니다. 기존 룰에 unique() 함수를 추가하거나 제거하면 알러트 동작이 변경됩니다.
Python 모범 사례
Python 개선 제안 리소스를 게시합니다 Python 코드를 깔끔하고 효과적으로 작성하고 스타일링하는 방법에 대해. 예를 들어, autopep8 작성한 디택션이 모두 일관된 스타일을 따르도록 자동으로 보장하는 데 사용할 수 있습니다.
사용 가능한 Python 라이브러리
다음 Python 라이브러리는 Panther에서 다음 외에도 사용할 수 있습니다 boto3, 제공: AWS Lambda:
패키지
버전
설명
라이선스
jsonpath-ng
1.5.2
JSONPath 구현
Apache v2
policyuniverse
1.3.3.20210223
AWS ARN 및 정책 파싱
Apache v2
requests
2.23.0
간편한 HTTP 요청
Apache v2
Python 디택션 작성 모범 사례
디택션에 대한 테스트 작성
새 디택션을 활성화하기 전에 테스트를 작성하는 것이 권장됩니다 알러트가 생성되어야 하거나 생성되지 않아야 하는 시나리오를 정의하는 테스트를 작성하세요. 가장 좋은 방법은 신뢰성을 최대한 보장하기 위해 최소 하나의 양성 사례와 하나의 음성 사례를 포함하는 것입니다.
이벤트 필드의 대소문자 처리
이벤트 필드 조회는 대소문자를 구분하지 않습니다. event.get("Event_Type") 또는 event.get("event_type") 는 동일한 결과를 반환합니다.
최상위 필드와 중첩 필드 이해하기
최상위 필드는 중첩 데이터 구조의 상위 필드를 나타냅니다. 예를 들어, 레코드에는 다음과 같은 이름의 필드가 있을 수 있습니다 user 그 아래에 다음과 같은 다른 필드가 있습니다 ip_address. 이 경우, user 가 최상위 필드이고, ip_address 는 그 아래의 중첩 필드입니다.
중첩은 여러 계층 깊이로 발생할 수 있으므로, 스키마 구조를 이해하고 디택션에서 특정 필드에 어떻게 접근하는지 아는 것이 중요합니다.
최상위 필드에 안전하게 접근하기
기본 룰은 이벤트의 필드 값을 일치시키며, 오류를 방지하는 모범 사례는 Python의 내장 get() 함수를 활용하는 것입니다.
아래 예시는 다음을 활용하므로 모범 사례입니다 get() 함수를 활용하는 것입니다. get() 필드를 찾고, 필드가 존재하지 않으면 None 오류 대신 반환되며, 이로 인해 디택션이 False.
아래 예시에서 필드가 존재하면 해당 필드의 값이 반환됩니다. 그렇지 않으면, False 가 반환됩니다:
잘못된 예시
아래 룰 정의는 코드가 필드 이름을 명시적으로 사용하므로 잘못된 예시입니다. 필드가 존재하지 않으면 Python은 KeyError:
Global Helper 함수 사용
많은 디택션이 작성되면 패턴과 반복되는 코드가 나타나기 시작합니다. 이는 다음에 아주 적합한 사용 사례입니다 Global Helper 함수, 이 로직이 모든 디택션 전반에서 존재할 수 있도록 중앙 집중식 위치를 제공합니다.
중첩 필드에 안전하게 접근하기
이벤트 내부의 깊숙이 중첩된 필드에 접근하려면 deep_get() 및 deep_walk() 이벤트 객체에서 사용할 수 있는 함수를 사용하세요. 이러한 함수는 또한 Global Helper 함수, 형태로도 제공되지만, 편의를 위해 이벤트 객체 버전을 사용하는 것이 권장됩니다.
예시:
AWS CloudTrail 로그는 다음을 중첩합니다 type 콘솔에 접근하는 사용자의 userIdentity. 다음은 JSON CloudTrail 루트 활동 로그의 일부입니다:
다음의 값을 확인하는 방법을 보세요 type 두 형식의 deep_get():
다음을 사용하여 이벤트 값을 확인하기 이벤트 객체 deep_get() 함수:
다음을 사용하여 이벤트 값을 확인하기 deep_get() Global Helper 함수:
특정 값을 위한 필드 확인
특정 이벤트가 발생했는지 알고 싶을 수 있습니다. 발생했다면 디택션이 알러트를 트리거해야 합니다. Panther는 모든 것을 정규화된 JSON으로 저장하므로, 지정한 기준과 필드 값을 비교할 수 있습니다.
예를 들어, Box 기술 지원에 Box 계정 접근 권한을 부여하는 작업을 디택션하려면 아래 Python을 사용해 다음에 해당하는 이벤트를 일치시킬 수 있습니다 event_type 같음 ACCESS_GRANTED:
필드가 event_type 이고 값이 다음과 같으면 ACCESS_GRANTED 그럼 룰 함수는 다음을 반환합니다 true 그리고 알러트가 생성됩니다.
정수 값에 대한 필드 확인
필드 값을 정수와 비교해야 할 수 있습니다. 이를 통해 이벤트에 대해 Python의 내장 비교 연산자를 사용할 수 있습니다.
예를 들어, HTTP 응답 상태 코드를 기반으로 알러트를 생성할 수 있습니다:
Reference:
유니버설 데이터 모델 사용
데이터 모델 모든 로그 유형에서 공통으로 사용할 통합 필드 집합을 구성할 수 있는 방법을 제공합니다. 기본적으로 Panther에는 여러 로그 유형에 대한 내장 데이터 모델이 포함되어 있습니다. 사용자 지정 데이터 모델은 Panther Console 또는 다음을 통해 추가할 수 있습니다 Panther Analysis Tool.
event.udm() 는 Panther 환경에 기존 데이터 모델이 있는 로그 유형에서만 사용할 수 있습니다.
예시:
참고 자료:
여러 조건 사용하기
함수는 및 키워드는 논리 연산자이며 조건문을 결합하는 데 사용됩니다. 이벤트의 여러 필드를 일치시키려면 종종 및 키워드. 사용할 때 및, 모든 문장은 참이어야 합니다:
"string_a" == "this"및"string_b" == "that"
예시:
AWS 콘솔에서 root 사용자 액세스 성공을 추적하려면 여러 필드를 살펴봐야 합니다:
함수는 또는 키워드는 논리 연산자이며 조건문을 결합하는 데 사용됩니다. 사용할 때 또는, 두 문장 중 어느 하나가 참일 수 있습니다:
""string_a" == "this"`` ``또는`` ``"string_b" == "that"
예시:
이 예시는 필드에 포트 80 또는 또는 포트 22가 포함되어 있는지 감지합니다:
리스트에서 값 검색하기
리스트(예: IP 주소나 사용자)를 기준으로 이벤트 값을 비교하는 것은 Python에서 빠릅니다. 일반적으로는 이벤트 값이 리스트에도 존재할 때 룰이 일치하지 않도록 로직을 설정하는 패턴이 자주 사용됩니다. 이는 환경에서 알려진 동작에 대한 오탐을 줄이는 데 도움이 될 수 있습니다.
이벤트 값이 어떤 컬렉션에 있는지 확인할 때는 Python set을 사용하는 것이 좋습니다. set은 Python에서 list와 tuple보다 더 효율적(즉, 메모리 효율적)입니다. list와 tuple은 set과 달리 포함 여부를 확인하기 위해 컬렉션의 각 항목을 하나씩 반복해야 합니다.
비교 대상인 set이 정적이라면, 함수 내부가 아니라 전역 수준에서 정의하는 것이 좋습니다. 룰() 전역 변수는 Lambda 호출당 한 번만 초기화됩니다. 하나의 Lambda 호출이 여러 이벤트를 처리할 수 있으므로, 전역 변수는 일반적으로 매번 초기화하는 것보다 더 효율적입니다 룰() 가 호출됩니다.
예시:
아래 예시에서는 Panther 도우미 함수 pattern_match_list:
Reference: Teleport 사용자 계정 생성
정규식으로 이벤트 일치시키기
정규 표현식을 사용하여 이벤트와 일치시키고 싶다면 - 하위 도메인, 파일 경로, 일반 문자열의 접두사/접미사와 일치시키기 위해 - regex를 사용할 수 있습니다. Python에서는 다음을 import하여 regex를 사용할 수 있습니다: re 라이브러리를 불러와 일치하는 값을 찾으면 됩니다.
아래 예시에서는 regex 패턴이 privilegeGranted 필드의 중첩 값에 대해 Administrator 또는 administrator와 일치합니다.
아래 예시에서는 Panther 도우미 함수 pattern_match:
참고 자료:
Python 룰 사양 참조
필수 필드는 굵게 표시됩니다.
필드 이름
설명
예상 값
AnalysisType
이 분석이 룰, scheduled_룰, policy, 또는 global인지 나타냅니다
룰: 룰
예약된 룰: scheduled_룰
활성화
이 룰이 활성화되어 있는지 여부
불리언
파일 이름
파이썬 룰 본문에 대한 경로(파일 확장자 포함)
String
룰ID
룰의 고유 식별자
문자열
포함할 수 없음 %
로그 유형
이 룰을 적용할 로그 목록
문자열 목록
심각도
이 룰의 심각도
다음 문자열 중 하나: 정보, 낮음, 보통, 높음또는 Critical
예약된 쿼리 (Scheduled Rules 전용 필드)
이 룰을 적용할 Scheduled Query 이름 목록
문자열 목록
설명
룰에 대한 간단한 설명
String
중복 제거 기간(분)
알러트의 유사한 이벤트가 함께 그룹화되는 기간(분 단위)
15,30,60,180 (3시간),720 (12시간), 또는 1440 (24시간)
DisplayName
UI와 알러트에 표시할 친숙한 이름입니다. 이 룰ID 이 필드가 설정되지 않은 경우 표시됩니다.
String
OutputIds
정적 목적지 재정의. 이는 이 룰의 알러트가 어떻게 라우팅되는지 결정하는 데 사용되며, 심각도에 따른 기본 라우팅보다 우선합니다.
문자열 목록
참조
이 룰이 존재하는 이유이며, 보통 문서 링크입니다
String
리포트
이 룰이 해당 프레임워크에 대해 적용하는 값과 프레임워크 또는 리포트 이름의 매핑
문자열에서 문자열 목록으로의 맵
런북
애널리스트 또는 Panther AI가 관련 알러트를 분류하기 위해 수행할 수 있는 작업.
String
요약 속성
알러트가 요약해야 하는 필드 목록입니다.
문자열 목록
임계값
알러트가 전송되기 전에 이 룰을 트리거해야 하는 이벤트 수입니다.
정수
태그
이 룰을 분류하는 데 사용되는 태그
문자열 목록
테스트
이 룰의 단위 테스트입니다.
맵 목록
Python 정책 사양 참조
필수 필드는 굵게 표시됩니다.
정책 사양 필드의 전체 목록:
필드 이름
설명
예상 값
AnalysisType
이 사양이 정책인지 룰인지 나타냅니다
정책
활성화
이 정책이 활성화되어 있는지 여부
불리언
파일 이름
Python 정책 본문의 경로(파일 확장자 포함)
String
정책ID
정책의 고유 식별자
문자열
포함할 수 없음 %
리소스 유형
이 정책이 적용될 리소스 유형
문자열 목록
심각도
이 정책의 심각도
다음 문자열 중 하나: 정보, 낮음, 보통, 높음또는 Critical
설명
정책에 대한 간단한 설명
String
DisplayName
UI와 알러트에 표시할 이름입니다. 해당 정책ID 이 필드가 설정되지 않은 경우 표시됩니다.
String
참조
이 정책이 존재하는 이유이며, 보통 문서 링크입니다
String
리포트
이 정책이 해당 프레임워크에 대해 적용하는 값과 프레임워크 또는 리포트 이름의 매핑
문자열에서 문자열 목록으로의 맵
런북
애널리스트 또는 Panther AI가 관련 알러트를 분류하기 위해 수행할 수 있는 작업.
String
억제
무시할 패턴, 예: aws::s3::*
문자열 목록
태그
이 정책을 분류하는 데 사용되는 태그
문자열 목록
테스트
이 정책의 단위 테스트입니다.
맵 목록
디택션 문제 해결
Panther 지식 베이스를 방문하여 디택션에 관한 문서를 확인하고 자주 묻는 질문에 답하고 일반적인 오류와 문제를 해결하는 데 도움이 되는
마지막 업데이트
도움이 되었나요?

