룰 및 예약된 룰
룰 및 예약된 룰은 로그에서 의심스러운 활동을 감지한 다음 알러트를 생성합니다
개요
룰과 예약된 룰은 로그 데이터를 실행하여 의심스러운 활동을 탐지하고 생성하는 논리의 단편입니다 신호 (및 선택적으로 알러트). 룰은 실시간 이벤트를 분석하는 반면 예약된 룰은 데이터 레이크에서 쿼리된 이벤트를 분석합니다. 이러한 디텍션 유형은 클라우드 리소스 구성에 적용되는 정책와(과) 다릅니다.
Panther는 다수의 Panther가 관리하는 룰 및 예약된 룰 Python으로 제공하며, 이미 작성되어 지속적으로 업데이트됩니다. 사용자 정의 룰은 콘솔에서 심플 디텍션 빌더 을 사용하거나 Python으로 작성하여 만들 수 있습니다; CLI 워크플로우에서는 룰을 Simple Detections(YAML)로 또는 Python으로 작성할 수 있습니다. 예약된 룰은 Python (콘솔 또는 CLI 워크플로우에서)로 작성할 수 있습니다.
다음을 사용하세요 AI 디텍션 빌더 자연어로부터 디텍션 코드를 생성하려면
단독으로는 알러트를 생성할 가치가 없는 작업에 대해 룰이나 예약된 룰을 만들고 싶다면, 이들을 알러트를 생성하지 않도록 구성 (오직 신호)만 생성하도록 상관 룰.
그런 다음 이러한 룰들을 룰은파생(derivation)을 사용할 수 있습니다 한 개의 기본 디텍션에서 하나 이상의 파생 디텍션을 생성할 수 있습니다. 또한.
Sigma 룰을 Panther 룰로 변환할 수 있습니다
룰의 일반적인 예로는 로그를 분석하여 다음을 포함합니다:
알려지지 않았거나 예상치 못한 위치에서의 인증 시도
SaaS 서비스에 대한 관리적 변경과 같은 민감한 API 호출
데이터베이스나 가상 머신과 같은 민감한 데이터 소스에 대한 네트워크 트래픽 접근
룰 vs 예약된 룰
룰
룰과 예약된 룰은 모두 로그 이벤트를 실행하는 논리를 정의하지만—룰은 실시간 이벤트를 분석하고 예약된 룰은 데이터 레이크에서 쿼리된 이벤트를 분석합니다. 룰은 Panther로 전송된 데이터를 분석하는 기본 메커니즘입니다. 룰은지원되는 로그 소스들 중 하나 이상 또는 사용자의사용자 정의 데이터
와 같은 정의된 로그 유형 집합을 수용함으로써 작동합니다. 룰은 낮은 지연 시간의 탐지 및 알러팅이라는 이점을 가집니다.
사용 사례: 다른 데이터와 조인이 필요하지 않은 높은 신호의 로그.
룰은 스트리밍 룰, 실시간 룰, 저지연 룰로도 알려질 수 있습니다.
예약된 룰 예약된 룰은 관련된.
예약된 검색으로부터 출력된 개별 행을 수용함으로써 작동합니다
사용 사례: 과거의 시간 창을 더 넓게 검색하거나, 데이터에 대한 통계 분석을 수행하거나, 별도의 데이터 스트림을 조인할 때.
Python 대 Simple Detections YAML 사용
Simple Detections YAML의 제한 사항 Python으로 룰을 작성하세요
으로 나열된 기능 중 하나를 필요로 할 때 심플 디텍션 빌더Simple Detections로 룰을 작성하세요
기술 수준이 다른 팀원들 간의 협업을 촉진하고 싶을 때. CLI 워크플로우에서 작성된 Simple Detections가 Panther에 업로드되면 콘솔에서 로 표시됩니다. 그런 다음 콘솔의 Simple Detection 빌더를 사용하여 디텍션을 편집(또는 새로 생성)할 수 있습니다..
동일한 디텍션 논리가 Python과 YAML 둘 다로 작성된 예시는 아래의
룰 예시를 참조하세요
룰과 예약된 룰의 작동 방식 Python 디텍션룰과 예약된 룰은 모두 한 번에 하나의 이벤트를 분석합니다. 이들은 이벤트 임계값과 중복 제거를 사용하여 시간 창 내에서 이벤트 그룹화를 생성합니다. 최소한 각 룰과 예약된 룰은 룰 논리를 정의해야 합니다. 에 대해서는, 이는 각 룰이 반드시 CLI 워크플로에서 작성된 심플 디텍션rule() 함수를 포함해야 함을 의미합니다; 에 대해서는, 각 룰이 적어도 하나의 Detection.
키와 하나 이상의 match expression을 포함해야 합니다. Python 룰은 또한동적 알러트 함수 인라인 필터를 정의할 수 있고, Simple Detections는
동적 알러트 키 를 사용할 수 있습니다. 두 방식 모두 을(를) 사용할 수 있으며, 이는 디텍션 논리 전에 실행됩니다.
룰은 15초를 초과하여 실행될 수 없습니다. 이럴 경우, 신호룰 오류 가 생성되고 처리가 종료됩니다. (이 제약은 예약된 룰에는 적용되지 않습니다.).
연관된 알러트의 제목
룰과 예약된 룰의 매치들은 를 생성합니다. 룰과 예약된 룰에 알러팅이 활성화되어 있으면, 룰 매치가 생성되어 이벤트 임계값 및 중복 제거 구성에 따라 알러트를 생성할 수 있습니다. 시그널, 룰 매치 및 알러트 간의 차이에 대해 더 알아보려면 여기
알러트 제목이 설정되는 방법
알러팅이 활성화된 디텍션의 경우, 결과 알러트의 제목은 해당 디텍션의 구성에 의해 결정됩니다. 별도의
중복 제거 문자열
이 명시적으로 설정되지 않으면, 알러트 제목이 또한 알러트 중복 제거에 사용됩니다.
알러트 제목 설정 시 우선순위는 다음과 같습니다:Python에서의 알러트 제목 우선순위:만약
알러트 제목 설정 시 우선순위는 다음과 같습니다:동적title() 이름 필드
함수의 출력이 사용됩니다.
가 정의되지 않은 경우, 디텍션의 표시 이름 값이 사용됩니다. 이는 다음에 정의됩니다:콘솔에서:
CLI 워크플로우에서:
title() ID 필드
함수의 출력이 사용됩니다.
YAML 파일의이전에 생성한 Snowflake 사용자 이름, 예를 들면DisplayName콘솔에서:
필드에
표시 이름이 정의되지 않은 경우, 디텍션의 ID가 사용됩니다. 이는 다음에 정의됩니다:
title() 선택적 필드 > RuleID > PolicyID 필드
Simple Detections YAML에서의 알러트 제목 우선순위:
동적 알러트 제목이 사용됩니다. 이는 다음에 정의됩니다:필드
기본 제목은
title() 이름 필드
Simple Detections YAML에서의 알러트 제목 우선순위:
가 정의되지 않은 경우, 디텍션의 표시 이름 값이 사용됩니다. 이는 다음에 정의됩니다:필드
CLI 워크플로우에서:
title() ID 필드
Simple Detections YAML에서의 알러트 제목 우선순위:
YAML 파일의이전에 생성한 Snowflake 사용자 이름, 예를 들면DisplayName필드
로 변경
개발자 워크플로우에서:
AlertTitle 1 동적 알러트 제목이 정의되지 않은 경우, 디텍션의 표시 이름 값이 사용됩니다. 이는 다음에 정의됩니다: 알러트 중복 제거 중복 제거 기간 내에 동일한 디텍션을 트리거하는 이벤트들이 동일한 중복 제거 문자열을 공유할 경우 하나의 알러트로 그룹화됩니다. True 각 룰과 예약된 룰의 기본 이벤트 임계값은 룰 이고 중복 제거 기간은
1시간입니다. 5 동적 알러트 제목이 정의되지 않은 경우, 디텍션의 표시 이름 값이 사용됩니다. 이는 다음에 정의됩니다: 이것은 함수에서 반환되는 모든 이벤트가(동일한 중복 제거 문자열을 가지는) 최초 생성 후 한 시간 내에 하나의 알러트로 그룹화된다는 것을 의미합니다. 룰 이벤트 임계값이 True 15분
인 룰 또는 예약된 룰은, 동일한 중복 제거 문자열을 가진 다섯 개 이상의 이벤트가 함수에 전달되어 반환될 때까지 알러트를 트리거하지 않습니다. 중복 제거 임계값이 1보다 큰 경우(즉 알러트가 생성되기 전에 여러 이벤트가 매치되어야 하는 경우), 와 첫 번째.
매치된 이벤트가 Python 디텍션의
알러트 함수에 대한 이벤트 매개변수로 사용됩니다
Simple Detections의 알러트 키에 대해 중복 제거 기간 중복 제거 기간을 설정할 때 다음 제약이 적용됩니다:.
Panther 콘솔의 디텍션 편집기에서 작업할 때, 최소값은 Panther 분석 도구(PAT)15분
이고 최대값은24시간5번들 업로더 또는
을 통해 디텍션을 업로드할 때, DedupPeriodMinutes 필드의 최소값은 이고 최대값은 없습니다..
중복 제거 기간은 알러트 상태 변경의 영향을 받지 않습니다. 예를 들어, 이벤트들은 중복 제거 기간 동안 계속해서 동일한 알러트로 그룹화됩니다
심지어
알러트의 상태가
이 명시적으로 설정되지 않으면, 알러트 제목이 또한 알러트 중복 제거에 사용됩니다.
해결(Resolved)으로 변경되더라도Python에서의 알러트 제목 우선순위:만약
해결(Resolved)으로 변경되더라도중복 제거 문자열이 설정되는 방법 중복 제거 문자열을 설정하는 우선순위는 다음과 같습니다:.
Python에서의 중복 제거 문자열 우선순위:
dedup()
가 정의되지 않은 경우, 알러트 제목이 사용됩니다. 알러트 제목은여기에 정의된 우선순위 순서만약
가 정의되지 않은 경우, 알러트 제목이 사용됩니다. 알러트 제목은에 의해 정의됩니다 중복 제거 문자열을 설정하는 우선순위는 다음과 같습니다:.
Simple Detections YAML에서의 중복 제거 문자열 우선순위:
의 값인
알러트 제목 설정 시 우선순위는 다음과 같습니다:이전에 생성한 Snowflake 사용자 이름, 예를 들면동적 알러트 제목이 사용됩니다. 이는 다음에 정의됩니다:GroupBy키의 값이 사용됩니다. 와 가 존재하지 않으면, 알러트 제목이 사용됩니다. 알러트 제목은
알러트 제목 설정 시 우선순위는 다음과 같습니다:이전에 생성한 Snowflake 사용자 이름, 예를 들면동적 알러트 제목이 사용됩니다. 이는 다음에 정의됩니다:어떤 방법으로 중복 제거 문자열을 설정할지는 알러트를 얼마나 세분화하여 그룹화할지에 따라 다릅니다:알러트 제목 설정 시 우선순위는 다음과 같습니다:이전에 생성한 Snowflake 사용자 이름, 예를 들면동적 알러트 제목이 사용됩니다. 이는 다음에 정의됩니다:특정 디텍션에 의해 생성된 알러트를 동일 디텍션이 트리거되었지만 하나 이상의 이벤트 필드 값이 다른 경우와 별도로 그룹화하려면,해결(Resolved)으로 변경되더라도이전에 생성한 Snowflake 사용자 이름, 예를 들면가 정의되지 않은 경우, 알러트 제목이 사용됩니다. 알러트 제목은(각각 Python 및 Simple Detections용)를 사용하여 동적으로 알러트 제목을 설정하고 따라서 중복 제거 문자열을 동적으로 설정할 수 있습니다.
특정 디텍션에 의해 생성된 알러트를 동일 디텍션이 트리거되었지만 하나 이상의 이벤트 필드 값이 다른 경우와 명확히 구분하여 그룹화하려면
알러트를 심플 디텍션 빌더 이전에 생성한 Snowflake 사용자 이름, 예를 들면 Python으로 그룹화하려는 경우(또는 전혀 를 설정하지 않은 경우), 이전에 생성한 Snowflake 사용자 이름, 예를 들면 Python(각각 Python 및 Simple Detections용)를 사용하여 중복 제거 문자열을 설정할 수 있습니다. Python 룰과 예약된 룰 작성 방법
다음을 사용하세요 AI 디텍션 빌더 콘솔에서(사용하여) 또는 로컬에서(
Simple Detections YAML )로 룰을 작성할 수 있습니다; 예약된 룰은.
(Panther 콘솔 또는 로컬에서)로 작성할 수 있습니다. stdout 이전에 생성한 Snowflake 사용자 이름, 예를 들면 stderr 자연어를 사용하여 룰을 생성 및 수정하려면
Panther AI는 디텍션 코드를 생성하고, 테스트 케이스를 추가하고, 룰 편집기에서 직접 디텍션 논리를 설명할 수 있습니다. 로컬에서 디텍션을 작성한다는 것은 자신의 머신에서 Panther 디텍션을 정의하는 Python 및/또는 YAML 파일을 만드는 것을 의미합니다. 로컬에서 디텍션을 작성한 후 일반적으로 를 통해 파일을 Panther 인스턴스에 업로드합니다 PAT.
Python 코드에서
으로 출력되는 모든 것은 CloudWatch에서 볼 수 있음을 유의하세요. SaaS/CPaaS 고객의 경우, Panther 직원이 정기적인 애플리케이션 모니터링 중 이러한 CloudWatch 로그를 볼 수 있습니다. 새 룰을 작성하기 전에, 귀하의 요구를 충족하는 기존의.
Panther가 관리하는 룰
새 룰을 작성하기 전에, 귀하의 요구를 충족하는 기존의
이 지침은 실시간 룰을 설정하는 방법을 설명합니다. 예약된 룰을 구성하려면 스케줄된 검색예약된 룰 작성 방법 을 참조하세요 아래 지침을 따라 룰 작성 방법을 배우세요:
Python에서(콘솔 또는 CLI 워크플로우에서)
콘솔의 Simple Detection 빌더에서 예약된 룰은 관련된CLI 워크플로우에서 Simple Detection으로
예약된 룰은 하나 이상의
와(과) 연관되어 있습니다. 아직 예약된 검색을 생성하지 않았다면 먼저
저장된 및 예약된 검색 생성 방법 지침을 따라 예약된 검색을 생성한 다음 이 지침으로 돌아와 예약된 룰을 생성하세요. 예약된 검색이 여러 행을 반환하면, 각 행은 룰 논리에 의해 별도의 이벤트로 처리됩니다. 트리거되는 알러트 수는 예약된 룰에 구성한 중복 제거 설정에 따라 달라집니다.
규칙 성능을 향상시키고 데이터베이스 최적화를 활용하려면 가능한 한 많은 데이터 처리(즉,
)를 SQL에서 수행하는 것이 권장됩니다.
아래 지침을 따라 예약된 룰 작성 방법을 배우세요: 룰 오류 및 예약된 룰 오류 룰 오류와 예약된 룰 오류는 디텍션 오류의 한 종류로 을 참조하세요.
다음이 발생할 때 생성됩니다: 예약된 룰은 관련된 디텍션의 코드가 예외를 발생시킬 때. 룰 또는 예약된 룰의 Python 처리가 15초를 초과하여 실행될 때. 만약 어떤
알러트 대상
이 룰 오류(또는 예약된 룰 오류)를 수신하도록 구성되어 있지 않다면, 룰 오류(또는 예약된 룰 오류)에 대한 알러트는 해당 룰 또는 예약된 룰의 알러트에 사용될 대상과 동일한 대상으로 라우팅됩니다. 자세한 내용은 panther-analysis GitHub 리포지토리.
알러트 대상에서의 라우팅 우선순위 Python 디텍션 작성하기 와 심플 디텍션 작성하기.
을 참조하세요
타임아웃이 발생하는 경우,
Value: Set the Multi-factor Authentication policies
- details
- request
Value: 'https://manage.auth0.com/'
웹 서버에서 관리자 패널에 접근할 때 탐지 및 알러트 발생
예를 들어, 웹 서버에서 관리자 패널에 접근할 때 알러트를 전송하는 룰을 작성해 보겠습니다.
다음과 같은 NGINX 로그를 고려하세요:
return event.get('remoteAddr')
- KeyPath: status Value: 200- KeyPath: request
Condition: Contains
Value: 'admin-panel'.AlertTitle: "Successful admin panel login detected from {remoteAddr}"
180.76.15.143GroupBy:- KeyPath: remoteAddr
그런 다음 다음과 같은 일이 발생합니다: 알러트가 생성되어 연결된 대상들
참조
로 전송됩니다. 기본적으로 이는 룰 심각도에 따라 설정됩니다.
알러트의 제목은 다음과 같습니다:
심각도
Successful admin panel login detected from 180.76.15.143
설명
동일한 중복 제거 문자열인
을 갖는 유사한 이벤트들은 동일한 알러트에 추가됩니다.
각 고유한 중복 제거 문자열에 대해 고유한 알러트가 생성됩니다. 이 경우 이는 요청자의 IP입니다.
알러트 수신자는 Panther에 로그인하여 모든 알러트 메타데이터와 이벤트 요약을 보고, 추가 분석을 수행하기 위해 모든 이벤트에 대한
검색을 실행할 수 있습니다.
알러트 심각도
알러트 심각도 수준을 정의하기 위해 다음 가이드라인을 따르는 것을 권장합니다:
악용 가능성
예시
정보(Info)
알러트 심각도 수준을 정의하기 위해 다음 가이드라인을 따르는 것을 권장합니다:
없음
위험 없음, 단순 정보성
운영 인식 획득
낮음(Low)
어려움
악용 시 거의 또는 전혀 위험 없음
시스템 시간 및 OS 버전과 같은 민감하지 않은 정보 유출
중간(Medium)
중간 정도의 위험
만료된 인증서, 우발적 데이터 유출 방지 미비, 암호화 설정, 감사 도구의 모범 사례 설정 등과 관련된 항목들에 대한 위험일 수 있음(예시) (해석상 해당 항목들)"}
마지막 업데이트
도움이 되었나요?

