시스템 오류
콘솔 또는 CLI 워크플로우에서 Python 탐지 구성하기
개요
Panther 콘솔이나 로컬에서 다음 CLI 워크플로를 따르며 자체 Python 탐지를 작성할 수 있습니다. Python 탐지를 작성할 때는 다음 모범 사례를 참고하고 일부 경고 필드는 동적으로 설정될 수 있다는 점을 기억하세요. Python으로 작성된 규칙은 탐지 유도.
또는 코드 없는 탐지 빌더 를 Console에서 사용하여 규칙을 생성하거나, 로컬에서 Simple Detections로 작성할 수 있습니다. 로컬에서 Simple Detections로 작성할지 또는 Python 탐지로 작성할지 확실하지 않은 경우, Python 대 Simple Detections YAML 사용 섹션을 참조하세요.
탐지 내에서 외부 API 요청을 하는 것은 강력히 권장되지 않습니다. 일반적으로 탐지는 매우 대규모로 처리되며 API 요청은 수신 시스템을 과부하 시키고 규칙이 15초 실행 시간 제한.
Python에서 탐지 생성 방법
Python에서 규칙 생성 방법
Panther 콘솔과 CLI 워크플로 모두에서 Python 규칙을 작성할 수 있습니다.
규칙 명세 참조(Rule specification reference)
를 참조하세요.
이 예약 규칙이 업로드되면 각 파일은 예약 쿼리를 규칙과 연결하고 Panther 콘솔에서 일반적으로 입력하는 필드를 자동으로 채웁니다. 자세한 내용은
아래의 규칙 명세 참조(Rule specification reference below) 를 참조하세요..
Python으로 정책(policy) 생성 방법
정책을 작성하는 방법에 대해 알아보려면,
Python 탐지 구문(Python detection syntax)
Python 파일에는 다음이 포함될 수 있습니다:
def runbook(event):
def description(event):
RuleID: # 또는 PolicyId:
OutputIds:
Reference: Runbook: SummaryAttributes: 기본 Python 규칙 구조(Basic Python rule structure).
return False Filename: rule.py.
RuleID: my.rule
RuleID: my.rule- Some.Schema RuleID: my.rule Severity: INFO 추가 템플릿은.
GitHub의 panther-analysis 리포를 참조하세요
InlineFilters Python 규칙에서.
를 사용하는 방법에 대해 자세히 알아보세요. 인라인 필터로 탐지 수정(Modifying Detections with Inline Filters) Python 탐지의 알림 함수(Alert functions in Python detections) Panther의 탐지 보조 함수는 분석 로직, 생성된 알림 제목, 이벤트 그룹화, 알림 라우팅 및 메타데이터 재정의를 제어하는 Python 함수입니다. 규칙은 사용자 지정 가능하며 표준 Python 라이브러리 또는 글로벌 헬퍼(global helpers)
에서 가져올 수 있습니다. 아래의 각 함수는 규칙의 경우 단일 인수인event (규칙) 또는 resource
(정책)을 사용합니다. 고급 사용자는 아래에 정의된 함수 외부에 함수, 변수 또는 클래스를 정의할 수 있습니다.
아래의 각 알림 함수는 선택 사항이지만 알림에 동적 컨텍스트를 추가할 수 있습니다.
알림 함수(Alert function) 로 설정하면 기본 값(Default value)
반환 값(Return value) 로 설정하면 severity
알림의 긴급성 수준, YAML에서:, 키(key), 콘솔에서:,필드(field)INFO LOW
HIGH
알림 함수(Alert function) CRITICAL > , 또는 suricata_rules DEFAULT
반환 값(Return value) 이름(Name) title ID severity
생성된 알림 제목
RuleID
PolicyID 필드 > > CRITICAL > , 또는 suricata_rules DEFAULT
반환 값(Return value) 필드 > > 이름(Name) title ID severity
생성된 알림 제목
title() Panther AI 알림 분류(Panther AI alert triage) 가 이를 고려하기 때문입니다.
알림 함수(Alert function) 런북(Runbook) 기본 값(Default value)
반환 값(Return value) 런북(Runbook) severity
생성된 알림 제목
알림 대상에 전달할 추가 컨텍스트
알림 함수(Alert function) 설명(Description) 기본 값(Default value)
반환 값(Return value) 설명(Description) severity
생성된 알림 제목
runbook
알림 함수(Alert function) 참고(Reference) 기본 값(Default value)
반환 값(Return value) 참고(Reference) severity
생성된 알림 제목
description
알림 함수(Alert function) 규칙이 존재하는 이유에 대한 설명 기본 값(Default value)
반환 값(Return value) reference severity
규칙에 대한 내부 문서나 온라인 자료에 대한 참조 URL
이 알림 함수들의 매개변수로 사용됩니다.
이 알림 함수들의 매개변수로 사용됩니다.destinations 알림의 긴급성 수준, YAML에서:, 키(key), 콘솔에서:, 필드(field)INFO LOW알림을 전송할 대상의 ID들. LOW OutputIds
대상 재정의(Destination Overrides) List[대상 이름/ID] suricata_rules 일부 시나리오에서는 알림의 심각도 수준을 올리거나 내릴 필요가 있을 수 있습니다. 알림의 심각도 수준은에 매핑될 수 있습니다. 반환값으로
을 반환하면 정적으로 정의된 규칙 심각도로 되돌아갑니다. 콘솔에서: 심각도 문자열은 대소문자를 구분하지 않으므로 예를 들어 알림의 긴급성 수준 Critical
DedupPeriodMinutes: 심각도 경보가 생성되고—그렇지 않으면
수준의 경보가 생성됩니다: LOW:
MEDIUM
MEDIUM return "HIGH" 필드 > return "INFO"
템플릿 규칙(Template Rule)
사용 예(Example using) return "DEFAULT".
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
DedupPeriodMinutes: 심각도 경보가 생성되고—그렇지 않으면
DisplayName
DisplayNametitle_str = ( DisplayName f"{log_type}: User [{event.udm('actor_user')}] has exceeded the failed logins threshold"
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
DedupPeriodMinutes: 함수는 중복 제거 문자열을 정의하는 한 방법입니다. 이 문자열은 1000자로 제한됩니다.
알림이 생성된 후 따라야 할 지침 목록입니다. 설명적인 런북을 제공하는 것이 권장됩니다, 왜냐하면
알림이 생성된 후 따라야 할 지침 목록입니다. 설명적인 런북을 제공하는 것이 권장됩니다, 왜냐하면 return "HIGH" 중복 제거에 대해 자세히 알아보려면 user_identity = event.get("userIdentity", {})
if user_identity.get("type") == "AssumedRole":
return helper_strip_role_session_id(user_identity.get("arn", ""))
return user_identity.get("arn") 시나리오 1 안에 경고 라우팅 시나리오).
return "HIGH" 중복 제거에 대해 자세히 알아보려면 함수는 하나 이상의 알림 대상 이름 또는 UUID 목록을 반환해야 합니다. 함수가 반환한 목록이 비어 있으면 중복 제거에 대해 자세히 알아보려면 함수가 비어있으면 ([]), 경고는 어떤 대상으로도 라우팅되지 않습니다.
예를 들어, 아래 규칙은 여러 로그 유형과 연결되어 있습니다. 로그 유형이 AWS.CloudTrail, 중복 제거에 대해 자세히 알아보려면 이면 경고를 slack-security-alerts 대상으로 라우팅합니다. 로그 유형이 AWS.CloudTrail이(가) 아니면 외부 대상으로 전송되는 경고가 없으며—다음으로 표시됩니다. return [].
다른 예시는 panther-analysis example_rule.
문자열(String)
문자열(String)이 함수는 탐지에서 사용자 이름, IP 주소 또는 성공/실패와 같은 추가 컨텍스트로 이벤트 세부정보를 알림 대상에 전달하도록 허용합니다.
알림 컨텍스트 딕셔너리에 포함된 값은 JSON 규격을 준수해야 합니다. 비규격 값의 예로는 Python의 nan, inf및 -inf.
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
아래 코드는 알림 컨텍스트에 모든 이벤트 데이터를 반환합니다.
Python/YAML에서:
Python/YAML에서: return "HIGH" Python/YAML에서: 함수 출력은 이 탐지로 생성된 경고를 분류하기 위한 실행 가능한 조사 단계들을 제공해야 합니다.
When Panther AI triages an alert, it will read and autonomously execute a runbook. Learn more about how to write an effective runbook on 알림 런북(Alert Runbooks).
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
Dict[String: Any] 및 alert_context
Dict[String: Any] 및 alert_context return "HIGH" Dict[String: Any] 및 alert_context 함수는 경고가 트리거된 이유와 관련 문제를 해결하는 방법에 대한 추가 컨텍스트를 제공할 수 있습니다.
아래 예시는 경고의 Dict[String: Any] 필드 내에 동적으로 링크를 제공하는 방법입니다:
이벤트 객체 함수
Python 탐지에서, Runbook: 함수와 모든 동적 경고 함수들은 하나의 인수: 인라인 필터로 탐지 수정(Modifying Detections with Inline Filters) 객체를 받습니다. 이 이벤트 객체에는 이벤트 값을 간단히 추출할 수 있는 내장 함수들이 있습니다.
get()
get()사용 get() 를 사용하여 최상위 이벤트 필드에 접근하십시오. 키를 찾을 수 없는 경우 반환될 기본값을 제공할 수 있습니다.
또한 최상위 필드에 접근하는 방법으로 deep_get() 및 deep_walk()를 사용할 수도 있습니다. 자세한 내용은 아래의 최상위 필드 안전하게 접근하기 항목을 참조하십시오.
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
deep_get()
deep_get()사용 deep_get() 는 Python 딕셔너리 안에 중첩된 키를 반환하기 위해 사용합니다.
검색하려는 값이 리스트 내에 있는 경우에는 deep_walk() 대신
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
편의를 위해 이 이벤트 객체 함수를 사용하는 것이 권장됩니다.
deep_walk()
deep_walk()사용 deep_walk() ) -> Union[Optional[Any], Optional[List[Any]]]:
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
return "first" in event.deep_walk("object", "nested", "list", "key", default=[])
return "first" in event.deep_walk("object", "nested", "list", "key", default=[]) return "HIGH" return "first" in event.deep_walk("object", "nested", "list", "key", default=[]) def lookup(self, lookup_table_name: str, lookup_key: str) -> Any: 함수는 감지에서 및 사용자 정의 조회 테이블(Custom Lookup Tables) Panther가 관리하는 보강 제공자(Enrichment providers) return "first" in event.deep_walk("object", "nested", "list", "key", default=[]) 로부터 동적으로 데이터를 액세스할 수 있게 해줍니다. 이 return "first" in event.deep_walk("object", "nested", "list", "key", default=[]) 함수는 들어오는 로그가 조회 테이블의 기본 키 열에 정확히 일치하는 값을 포함하지 않을 때 유용할 수 있습니다. Python을 사용해 조회 키를 전달하기 전에 이벤트 값을 수정하여
return "first" in event.deep_walk("object", "nested", "list", "key", default=[]) 보강 데이터를 가져올 수 있습니다.
는 두 개의 인수를 받습니다:
조회 테이블의 이름
return "first" in event.deep_walk("object", "nested", "list", "key", default=[])lookup_table_name에 전달되는 조회 테이블 이름은 Panther 콘솔의 suricata_rules 보강 제공자(Enrichment Providers) 조회 테이블(Lookup Tables)페이지에 표시되는 그대로여야 합니다. 이 이름은 검색 쿼리에 표시되는 방식과 구문적으로 다를 수 있습니다. 예를 들어,My-Custom-LUT대신.
my_custom_lut
조회 테이블의 기본 키 제공된 키에 대해 조회 테이블에서 일치 항목이 발견되면 전체 조회 테이블 행이 Python 딕셔너리로 반환됩니다. 일치 항목이 없으면 None
수준의 경보가 생성됩니다: return "first" in event.deep_walk("object", "nested", "list", "key", default=[]):
if (lookup_data and lookup_data.get("role") != "admin") or lookup_data is None: return "first" in event.deep_walk("object", "nested", "list", "key", default=[])
return "first" in event.deep_walk("object", "nested", "list", "key", default=[])When lookup를 사용하는 탐지의 단위 테스트 단위 테스트(unit tests) return "first" in event.deep_walk("object", "nested", "list", "key", default=[]) 가 실행될 때, 는 실시간 데이터를 가져오지 않습니다. lookup 기능을 에뮬레이트하려면 각 단위 테스트의 이벤트 페이로드에 _mocked_lookup_data_ 필드를 추가하여 조회 테이블 데이터를 모킹하세요. 당신은 보강 테스트 데이터 버튼 또는 CLI 명령 return "first" in event.deep_walk("object", "nested", "list", "key", default=[]).
는 실시간 데이터를 가져오지 않습니다. lookup 기능을 에뮬레이트하려면 각 단위 테스트의 이벤트 페이로드에 을(를) 사용하여
"[email protected]": {"id": "[email protected]", "role": "guest"} 는 실시간 데이터를 가져오지 않습니다. lookup 기능을 에뮬레이트하려면 각 단위 테스트의 이벤트 페이로드에 단위 테스트에서 return "first" in event.deep_walk("object", "nested", "list", "key", default=[]) 필드를 지정하지 않으면, 호출 시.
None/null
None/null return "HIGH" None/null udm() def udm(self, *key: str, default: Any = None) -> Any:함수는 주로
데이터 모델(Data Model) None/null 에 접근하기 위해 설계되었지만 이벤트 필드에 접근하는 데에도 사용할 수 있습니다.
다음은 def udm(self, *key: str, default: Any = None) -> Any: 함수가 작동하는 방식입니다:
None/null함수는 먼저 전달된 값에 대해키 매핑이 정의되어 있는지 확인합니다. def udm(self, *key: str, default: Any = None) -> Any: 만약 그렇다면, 데이터 모델의 값이 반환됩니다.
None/null만약키가 전달된 값에 대해 정의되어 있으면, 함수는 해당 값을 반환하고 아래의 2단계로 진행하지 않습니다. 이는 평가되는 이벤트에 데이터 모델 매핑에 정의된 키 경로가 포함되어 있지 않더라도 적용됩니다—이 경우,None
null def udm(self, *key: str, default: Any = None) -> Any: 이 반환됩니다.
None/null전달된 값에 대해가 정의되어 있지 않으면, 함수는 해당 이름을 가진 이벤트 필드가 있는지 확인합니다. 있다면 그 값을 반환합니다.
None/null이 경우,deep_get().
수준의 경보가 생성됩니다: None/null 값에: def udm(self, *key: str, default: Any = None) -> Any: 데이터 모델 예시
None/null 값에: def udm(self, *key: str, default: Any = None) -> Any: 데이터 모델 예시Python 향상 제안서(PEP)
는 깔끔하고 효과적으로 Python 코드를 작성하고 스타일링하는 방법에 대한 자료를 제공합니다. 예를 들어, autopep8 을 사용하여 작성한 탐지들이 일관된 스타일을 따르도록 자동으로 보장할 수 있습니다. 사용 가능한 Python 라이브러리 다음 Python 라이브러리들은 Panther에서 사용 가능하며,
boto3
외에도 제공됩니다. 이는 AWS Lambda에서 제공됩니다. 패키지:
버전
라이선스
설명(Description)
jsonpath-ng
JSONPath 구현
1.5.2
Apache v2
policyuniverse
AWS ARN 및 정책 파싱
1.3.3.20210223
requests
policyuniverse
간편한 HTTP 요청
2.23.0
Python 탐지 작성 모범 사례
policyuniverse
탐지 테스트 작성하기
새 탐지를 활성화하기 전에,
테스트를 작성하는 것이 권장됩니다 —어떤 시나리오에서 경고가 생성되거나 생성되지 않아야 하는지를 정의하는 테스트입니다. 모범 사례로는 신뢰성을 높이기 위해 적어도 하나의 긍정 테스트와 하나의 부정 테스트를 포함하는 것입니다. 이벤트 필드 대소문자
이벤트 필드에 대한 조회는 대소문자를 구분하지 않습니다.
event.get("Event_Type") event.get("event_type") suricata_rules 는 동일한 결과를 반환합니다. 최상위 필드와 중첩된 필드 이해하기
최상위 필드는 중첩된 데이터 구조에서 부모 필드를 나타냅니다. 예를 들어, 레코드에
user 라는 필드가 있고 그 아래에 ip_address 와 같은 다른 필드들이 있을 수 있습니다. 이 경우,는 최상위 필드이고, 라는 필드가 있고 그 아래에 는 그 아래의 중첩된 필드입니다. 와 같은 다른 필드들이 있을 수 있습니다. 이 경우, 중첩은 여러 레이어 깊이로 발생할 수 있으므로 스키마 구조를 이해하고 탐지를 위해 특정 필드에 접근하는 방법을 아는 것이 중요합니다.
최상위 필드에 안전하게 접근하기
기본 규칙(Basic Rules)은 이벤트의 필드 값을 비교하며, 오류를 방지하는 모범 사례로는 Python의 내장
함수를 활용하는 것입니다. get() 아래 예시는
를 활용하기 때문에 모범 사례입니다. 이것은 필드를 찾고, 필드가 없으면 오류 대신 get() 아래 예시는 get() 를 반환합니다. 이는 탐지가 제공된 키에 대해 조회 테이블에서 일치 항목이 발견되면 전체 조회 테이블 행이 Python 딕셔너리로 반환됩니다. 일치 항목이 없으면 False 를 반환하게 합니다..
아래 예에서, 필드가 존재하면 필드의 값이 반환됩니다. 그렇지 않으면 를 반환하게 합니다. 가 반환됩니다:
나쁜 예시
아래 규칙 정의는 필드 이름을 명시적으로 지정하기 때문에 나쁜 관행입니다. 필드가 존재하지 않으면 Python은 KeyError:
전역 헬퍼 함수 사용하기
많은 탐지를 작성하면 패턴과 반복되는 코드가 나타납니다. 이는 전역 헬퍼 함수(Global Helper functions)을(를) 사용하는 좋은 사례입니다. 전역 헬퍼는 모든 탐지에서 이 로직을 중앙화된 위치에 둘 수 있게 합니다.
중첩된 필드에 안전하게 접근하기
이벤트 내 깊게 중첩된 필드에 접근하려면 이벤트 객체에서 제공되는 deep_get() 및 deep_walk() 함수를 사용하세요. 이 함수들은 또한 전역 헬퍼 함수(Global Helper functions)전역 헬퍼로 제공되지만, 편의를 위해 이벤트 객체 버전을 사용하는 것이 권장됩니다.
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
AWS CloudTrail 로그는 콘솔에 접근하는 사용자의 유형(type) 을 userIdentity 아래에 중첩합니다. userIdentity. 다음은 JSON CloudTrail 루트 활동 로그의 스니펫입니다:
값을 확인하는 방법을 아래 두 형태로 안전하게 확인하세요 유형(type) deep_get() 이벤트 객체 함수 deep_get():
예를 들어, Box 기술 지원에 대한 액세스를 부여하는 동작을 탐지하려면, 아래 Python 코드는
event_type
이(가) ACCESS_GRANTED 와 일치하는 이벤트를 매칭하는 데 사용됩니다. return event.get("event_type") == "ACCESS_GRANTED":
이고 값이 다음과 같으면 ACCESS_GRANTED 규칙 함수는 return event.get("event_type") == "ACCESS_GRANTED" 를 반환하고 경고가 생성됩니다. 예약 쿼리 정수 값에 대한 필드 확인
필드 값을 정수와 비교해야 할 수 있습니다. 이를 통해 Python의 내장 비교 연산을 사용하여 이벤트와 비교할 수 있습니다.
예를 들어, HTTP 응답 상태 코드에 기반해 경고를 생성할 수 있습니다:
# 'status_code'가 404이면 True 반환
DedupPeriodMinutes:
데이터 모델(Data Models)
은 모든 로그 유형에 걸쳐 통합된 필드 집합을 구성하는 방법을 제공합니다. 기본적으로 Panther는 여러 로그 유형에 대해 내장된 데이터 모델을 제공합니다. 사용자 정의 데이터 모델은 Panther 콘솔 또는 Panther Analysis Tool 을 통해 추가할 수 있습니다..
event.udm() 는 Panther 환경에 해당 로그 유형에 대한 데이터 모델이 존재하는 경우에만 사용할 수 있습니다.
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
참고:
여러 조건 사용하기
return "HIGH" 및 keyword는 논리 연산자이며 조건문을 결합하는 데 사용됩니다. 이벤트의 여러 필드를 일치시키려면 및 키워드를 사용해야 하는 경우가 많습니다. 및를 사용할 때는 모든 문장이 참이어야 합니다:
"string_a" == "this"및"string_b" == "that"
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
AWS 콘솔에 대한 루트 사용자 성공 접근을 추적하려면 여러 필드를 확인해야 합니다:
return "HIGH" suricata_rules keyword는 논리 연산자이며 조건문을 결합하는 데 사용됩니다. suricata_rules를 사용할 때는 어떤 문장이라도 참일 수 있습니다:
"string_a" == "this"`` ``suricata_rules`` ``"string_b" == "that"
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
이 예시는 필드가 포트 80 suricata_rules 또는 포트 22를 포함하는지 탐지합니다:
리스트에서 값 검색하기
IP 주소나 사용자 같은 값을 포함한 리스트와 이벤트 값을 비교하는 것은 Python에서 빠릅니다. 환경에 이미 알려진 동작에 대해 오탐을 줄이기 위해 이벤트 값이 리스트에 존재할 때 매칭되지 않도록 규칙 로직을 설정하는 것이 일반적입니다.
컬렉션에 이벤트 값이 포함되어 있는지 확인할 때는 Python의 set 사용을 권장합니다—셋은 리스트나 튜플보다 성능(예: 메모리 효율) 측면에서 우수합니다. 리스트와 튜플은 포함 여부를 확인하려면 컬렉션의 각 항목을 순회해야 합니다.
비교 대상이 정적(고정)이라면, Runbook: 함수 내부가 아니라 전역 수준에 정의하는 것이 좋습니다. 전역 변수는 Lambda 호출당 한 번만 초기화됩니다. 단일 Lambda 호출이 여러 이벤트를 처리할 수 있기 때문에 전역 변수가 매번 Runbook: 호출될 때마다 초기화하는 것보다 더 효율적입니다.
함수는 선택 사항이지만, 알림에 추가 컨텍스트를 제공하기 위해 포함하는 것이 권장됩니다.
아래 예에서는 Panther 헬퍼 pattern_match_list:
DedupPeriodMinutes: Teleport 사용자 계정 생성
정규식으로 이벤트 매칭하기
정규식을 사용하여 하위 도메인, 파일 경로 또는 일반 문자열의 접두/접미사를 매칭하려면 regex를 사용할 수 있습니다. Python에서는 re 라이브러리를 임포트하여 매칭 값을 찾을 수 있습니다.
아래 예에서 정규식 패턴은 privilegeGranted 필드의 중첩 값에 대해 Administrator 또는 administrator와 매칭됩니다.
아래 예에서는 Panther 헬퍼 pattern_match:
참고:
기본 Python 규칙 구조(Basic Python rule structure)
필수 필드는 굵게(bold).
필드 이름
설명(Description)
예상 값
AnalysisType
이 분석이 rule, scheduled_rule, policy 또는 global 중 무엇인지를 나타냅니다
Rules: 규칙
Scheduled Rules: scheduled_rule
사용(Enabled)
이 규칙이 활성화되어 있는지 여부
Boolean
FileName
파이썬 규칙 본문에 대한 경로(파일 확장자 포함)
생성된 알림 제목
, 또는
규칙의 고유 식별자
문자열
다음을 포함할 수 없습니다 %
LogTypes
이 규칙을 적용할 로그 목록
문자열 목록
로 설정하면
이 규칙의 심각도
다음 문자열 중 하나: Info, Low, Medium, HighINFO List[대상 이름/ID]
ScheduledQueries (Scheduled Rules에만 있는 필드)
이 규칙을 적용할 예약된 쿼리 이름 목록
문자열 목록
설명(Description)
규칙에 대한 간략한 설명
생성된 알림 제목
중복방지기간분
경고의 유사한 이벤트들이 함께 그룹화되는 기간(분 단위)
15,30,60,180 (3시간),720 (12시간), 또는 1440 (24시간)
CRITICAL
UI와 경고에 표시할 친숙한 이름. 만약 , 또는 이 필드가 설정되지 않으면 표시됩니다.
생성된 알림 제목
규칙이 존재하는 이유에 대한 설명
정적 대상 재정의. 이는 심각도 기반 기본 라우팅보다 우선하여 이 규칙의 경고가 어떻게 라우팅될지 결정하는 데 사용됩니다.
문자열 목록
참고(Reference)
이 규칙이 존재하는 이유, 종종 문서에 대한 링크
생성된 알림 제목
보고서
이 규칙이 해당 프레임워크에 대해 다루는 값들로의 프레임워크 또는 보고서 이름 매핑
문자열에서 문자열 목록으로의 매핑
런북(Runbook)
분석가나 Panther AI가 관련 경고를 분류하기 위해 취할 수 있는 조치들.
생성된 알림 제목
요약속성
경고가 요약해야 하는 필드 목록.
문자열 목록
임계값
경고가 전송되기 전에 이 규칙을 트리거하는 데 필요한 이벤트 수.
정수
태그
이 규칙을 분류하는 데 사용되는 태그
문자열 목록
테스트
이 규칙에 대한 단위 테스트.
맵 목록
작성자
이 탐지의 작성자. Panther 사용자 UUID, 이메일 주소 또는 임의의 텍스트 값으로 설정할 수 있습니다. 자세한 내용은 return "HIGH" 작성자 탐지 필드.
생성된 알림 제목
파이썬 정책 명세 참조
필수 필드는 굵게(bold).
정책 명세 필드의 전체 목록:
필드 이름
설명(Description)
예상 값
AnalysisType
이 명세가 정책을 정의하는지 또는 규칙을 정의하는지 여부를 나타냅니다
정책
사용(Enabled)
이 정책이 활성화되어 있는지 여부
Boolean
FileName
파이썬 정책 본문의 경로(파일 확장자 포함)
생성된 알림 제목
DEFAULT
정책의 고유 식별자
문자열
다음을 포함할 수 없습니다 %
리소스유형
이 정책이 적용될 리소스 유형
문자열 목록
로 설정하면
이 정책의 심각도
다음 문자열 중 하나: Info, Low, Medium, HighINFO List[대상 이름/ID]
설명(Description)
정책에 대한 간략한 설명
생성된 알림 제목
CRITICAL
UI와 경고에 표시할 이름. 만약 DEFAULT 이 필드가 설정되지 않으면 표시됩니다.
생성된 알림 제목
참고(Reference)
이 정책이 존재하는 이유, 종종 문서에 대한 링크
생성된 알림 제목
보고서
이 정책이 해당 프레임워크에 대해 다루는 값들로의 프레임워크 또는 보고서 이름 매핑
문자열에서 문자열 목록으로의 매핑
런북(Runbook)
분석가나 Panther AI가 관련 경고를 분류하기 위해 취할 수 있는 조치들.
생성된 알림 제목
억제
무시할 패턴들, 예: aws::s3::*
문자열 목록
태그
이 정책을 분류하는 데 사용되는 태그
문자열 목록
테스트
이 정책에 대한 단위 테스트.
맵 목록
작성자
이 탐지의 작성자. Panther 사용자 UUID, 이메일 주소 또는 임의의 텍스트 값으로 설정할 수 있습니다. 자세한 내용은 return "HIGH" 작성자 탐지 필드.
생성된 알림 제목
탐지 문제 해결
Panther 지식 기반을 방문하여 탐지에 관한 문서를 확인 자주 묻는 질문에 답하고 일반적인 오류 및 문제를 해결하는 데 도움을 줍니다.
Last updated
Was this helpful?

