룰 및 예약된 룰

룰 및 예약된 룰은 로그에서 의심스러운 활동을 탐지한 다음 알러트를 생성합니다

개요

룰과 예약 룰은 로그 데이터를 실행하여 의심스러운 활동을 감지하고 신호를 생성하는 논리의 조각입니다 신호 (및 선택적으로 알러트). 룰은 실시간 이벤트를 분석하는 반면, 예약 룰은 데이터 레이크에서 쿼리된 이벤트를 분석합니다. 이러한 디택션 유형은 클라우드 리소스 구성에 적용되는 정책과는 다릅니다.

Panther는 다수의 Panther 관리 룰 및 예약 룰 을(를) Python으로 제공하며, 이는 이미 작성되어 지속적으로 업데이트됩니다. 콘솔에서 심플 디텍션 빌더 를 사용하거나 Python을(를) 작성하여 커스텀 룰을 생성할 수 있습니다; CLI 워크플로우에서는 룰을 심플 디텍션(YAML)으로 또는 Python로 작성할 수 있습니다. 예약 룰은 Python (콘솔 또는 CLI 워크플로우에서)로 작성할 수 있습니다.

circle-info

다음 도구를 사용하세요: AI 디텍션 빌더 자연어로부터 디텍션 코드를 생성하려면

만약 경고를 생성할 만큼 단독으로 가치가 없는(적어도 단독으로는) 작업을 위한 룰이나 예약 룰을 만들고 싶다면, 이들이 알러트를 생성하지 않도록 구성할 수 있습니다 (오직 신호만 생성하도록). 그런 다음 해당 룰들을 상관 룰.

룰은 도출(derivation)을 사용할 수 있으며, 이는 하나의 베이스 디텍션에서 하나 이상의 파생 디텍션을 생성할 수 있게 해줍니다. 또한 Sigma 룰을 Panther 룰로 변환할 수 있습니다.

룰의 일반적인 예에는 로그를 분석하는 것이 포함됩니다:

  • 알려지지 않았거나 예상치 못한 위치에서의 인증

  • SaaS 서비스에 대한 관리 변경과 같은 민감한 API 호출

  • 데이터베이스나 가상 머신과 같은 민감한 데이터 소스에 대한 네트워크 트래픽 접근

룰 vs 예약 룰

룰과 예약 룰은 모두 로그 이벤트를 실행하는 논리를 정의하지만—룰은 실시간 이벤트를 분석하는 반면 예약 룰은 데이터 레이크에서 쿼리된 이벤트를 분석합니다.

    • 룰은 Panther로 전송된 데이터를 분석하는 기본 메커니즘입니다. 룰은 지원되는 로그 소스같은 하나 이상의 정의된 로그 유형 세트를 수용하거나, 당신의 커스텀 데이터를(을) 수용함으로써 작동합니다. 룰은 낮은 대기시간으로 디텍션 및 알러트를 제공한다는 장점이 있습니다.

    • 사용 사례: 다른 데이터와의 조인이 필요하지 않은 높은 신호성 로그.

    • 룰은 스트리밍 룰, 실시간 룰, 저지연 룰로도 알려질 수 있습니다.

  • 예약 룰

    • 예약 룰은 관련된 예약 검색.

    • 에서 출력된 개별 행을 수용하여 작동합니다. 사용 사례: 과거의 시간 창을 검색하거나, 데이터에 대한 통계 분석을 실행하거나, 별도의 데이터 스트림을 조인하는 경우.

Python vs 심플 디텍션 YAML 사용

로컬에서 룰을 작성하는 경우(CLI 워크플로우에서) Python 또는 심플 디텍션으로 생성할 수 있습니다. (예약 룰은 Python으로만 작성할 수 있습니다.) 아래에 두 가지 룰 생성 방식의 장점이 설명되어 있습니다.

으로 표시됩니다. 그런 다음 심플 디텍션 빌더를 사용하여 콘솔에서 디텍션을 편집(또는 새로 생성)할 수 있습니다. 동일한 디텍션 로직이 Python과 YAML로 모두 작성된 예는 아래의.

룰 예시

룰과 예약 룰은 모두 한 번에 하나의 이벤트를 분석합니다. 이들은 이벤트 임계값과 중복 제거를 사용하여 시간 창 내에서 이벤트 그룹화를 생성합니다.

최소한 각 룰과 예약 룰은 룰 로직을 정의해야 합니다. Python 디텍션의 경우이는 각 디텍션이 반드시 rule() 함수를 포함해야 함을 의미합니다; CLI 워크플로우에서 작성된 심플 디텍션의 경우각각 적어도 하나의 Detection 키와 하나 이상의 매치 표현식.

을 포함해야 합니다. Python 룰은 또한 동적 알러트 함수를 정의할 수 있고, 심플 디텍션은 동적 알러트 키를 사용할 수 있습니다. 둘 다 인라인 필터를 사용할 수 있으며, 이는 디텍션 로직보다 먼저 실행됩니다.

circle-exclamation

룰과 예약 룰의 매치는 신호를 생성합니다. 룰과 예약 룰에 알러트 기능이 활성화되어 있으면, 룰 매치가 생성되어 이벤트 임계값 및 중복 제거 구성에 따라 알러트를 생성할 수 있습니다. 신호, 룰 매치 및 알러트의 차이에 대해 더 알아보려면 여기.

관련 알러트의 제목

디텍션에 알러트가 활성화되어 있을 때, 결과 알러트의 제목은 해당 디텍션의 구성에 의해 결정됩니다. 별도의 중복 문자열 이(가) 명시적으로 설정되지 않은 경우, 알러트 제목은 또한 알러트 중복 제거에 사용됩니다.

알러트 제목이 설정되는 방법

알러트 제목 설정의 우선순위는 다음과 같습니다:

Python에서의 알러트 제목 우선순위:

  1. 동적 title() 함수의 출력이 사용됩니다.

  2. 만약 title() 이 정의되어 있지 않다면, 디텍션의 표시 이름 값이 사용됩니다. 이는 다음에 정의됩니다:

    • 콘솔에서: Name 필드

    • CLI 워크플로우에서는: DisplayName YAML 파일의 필드

  3. 표시 이름이 정의되지 않은 경우, 디텍션의 ID가 사용됩니다. 이는 다음에 정의됩니다:

    • 콘솔에서: ID 필드

    • CLI 워크플로우에서는:RuleID 또는 PolicyID YAML 파일의 필드

알러트 중복 제거

중복 제거 기간 내에 동일한 중복 문자열을 공유하는 동일한 디텍션을 트리거한 이벤트들은 하나의 알러트로 그룹화됩니다.

각 룰과 예약 룰은 기본 이벤트 임계값 1 과 중복 제거 기간 1시간을 가집니다. 이는 다음에서 True 를 반환하는 모든 이벤트들이 rule 함수(같은 중복 문자열을 가진)는 첫 생성 후 한 시간 이내에 하나의 알러트로 그룹화된다는 것을 의미합니다.

이벤트 임계값이 5 과 중복 제거 기간 15분 인 룰이나 예약 룰은 15분 기간 내에 다섯 개 이상의 이벤트(같은 중복 문자열을 가진)가 rule 함수에 전달되어 True 를 반환할 때까지 알러트를 트리거하지 않습니다.

중복 임계값이 1보다 큰 경우(즉, 알러트가 생성되기 전에 여러 이벤트가 매치되어야 하는 경우), 첫 번째 매치된 이벤트가 Python 디텍션의 알러트 함수에 대한 이벤트 파라미터로 사용되고심플 디텍션의 알러트 키.

에 사용됩니다.

고유 값 임계값 지정 Python 룰의 경우, unique()

함수를 정의하여 고유 값 임계값 디텍션을 활성화할 수 있습니다. 이를 통해 룰이 총 이벤트 수가 아니라 고유 값의 개수에 기반하여 알러트하도록 할 수 있습니다. 예를 들어, 총 로그인 시도 5회 후가 아니라 서로 다른 IP 주소 5개 이상이 로그인 시도할 때 알러트하도록 설정할 수 있습니다. Python 룰의 경우, 함수가 존재할 때:

  • 임계값은 Python 룰의 경우,.

  • 이(가) 반환하는 고유 값의 추정 개수에 적용됩니다.

  • 이벤트는 여전히 중복 문자열을 기반으로 정상적으로 중복 제거됩니다.

고유 카운트는 각 중복 제거 기간이 끝날 때 리셋됩니다. 자세한 예시와 사용법은 고유 값 임계값 디텍션

을 참조하세요.

중복 제거 기간

  • 중복 제거 기간을 설정할 때 다음 제약이 적용됩니다: Panther 콘솔의 디텍션 편집기에서 작업할 때 최소값은 15분 이고 최대값은.

  • 24시간 입니다.대량 업로더나 Panther 분석 도구 (PAT) 를 통해 디텍션을 업로드할 때, 5 DedupPeriodMinutes

필드의 최소값은 이고 최대값은 없습니다. 중복 제거 기간은 알러트 상태 변경의 영향을 받지 않습니다. 예를 들어, 이벤트는 알러트의 상태가 Resolved.

로 변경되더라도 중복 제거 기간 동안 동일한 알러트로 계속 그룹화됩니다.

중복 문자열이 설정되는 방법

중복 문자열 설정의 우선순위는 다음과 같습니다:

  1. 동적 Python에서의 중복 문자열 우선순위: 함수의 출력이 사용됩니다.

  2. 만약 Python에서의 중복 문자열 우선순위: dedup() 가 정의되어 있지 않다면, 알러트 제목이 사용됩니다. 알러트 제목은.

이 값이 존재하지 않으면 알러트 제목이 사용됩니다. 알러트 제목은

  • 에 의해 정의됩니다. title() 또는 AlertTitle 중복 문자열을 설정하는 방법은 알러트를 얼마나 세분화하여 그룹화할지에 따라 다릅니다:

  • 특정 디텍션에 의해 생성된 알러트를 동일 디텍션에서 하나 이상의 이벤트 필드 값이 다른 알러트와 별도로 그룹화하려면, 동적으로 알러트 제목을 설정하여 결과적으로 중복 문자열을 동적으로 설정할 수 있습니다 (Python과 심플 디텍션 각각에 대해). 특정 디텍션에 의해 생성된 알러트를 동일 디텍션에서 하나 이상의 이벤트 필드 값이 다른 알러트와 구별되게 그룹화하려면 title() 또는 AlertTitle 사용하지 않은 하나 이상의 이벤트 필드를 기준으로 알러트를 그룹화하려는 경우 (또는 전혀 title() 또는 AlertTitle 를 설정하지 않은 경우), Python에서의 중복 문자열 우선순위: 또는 심플 디텍션 YAML에서의 중복 문자열 우선순위: Python 및 심플 디텍션 각각에 대해 중복 문자열을 설정하려면

다음을 사용할 수 있습니다.

룰 및 예약 룰 작성 방법 심플 디텍션 빌더 또는 Python룰은 Panther 콘솔(사용하여 )에서 또는 로컬( 또는 Python심플 디텍션 YAML Python )에서 작성할 수 있습니다; 예약 룰은

circle-info

다음 도구를 사용하세요: AI 디텍션 빌더 (Panther 콘솔 또는 로컬에서)로 작성할 수 있습니다.

자연어로 룰을 생성 및 수정하려면 다음을 사용하세요. Panther AI는 디텍션 코드를 생성하고, 테스트 케이스를 추가하며, 룰 편집기에서 직접 디텍션 로직을 설명할 수 있습니다. 로컬에서 디텍션을 작성한다는 것은 자체 머신에서 Panther 디텍션을 정의하는 Python 및/또는 YAML 파일을 생성하는 것을 의미합니다. 로컬에서 디텍션을 작성한 후, 일반적으로.

PAT 을(를) 통해 파일을 Panther 인스턴스에 업로드합니다. 또는 Python 코드에서 stdout

이(가) 있는지 확인하세요. 만약 당신(또는 Panther)이 이미 당신이 만들고자 하는 것과 유사한 룰을 생성한 경우,

파생 디텍션 을 생성하는 것을 고려하세요..

룰 작성 방법

을 생성하는 것을 고려하세요.

아래 지침을 따라 룰 작성 방법을 배우세요: Python으로 (콘솔 또는 CLI 워크플로우에서)콘솔의 심플 디텍션 빌더에서 CLI 워크플로우에서 심플 디텍션으로 예약 룰은 하나 이상의

예약 검색

circle-info

과 연관됩니다. 아직 예약 검색을 생성하지 않았다면, 먼저 예약 검색저장된 및 예약된 검색 생성 방법

지침을 따르고, 그런 다음 이 지침으로 돌아와 예약 룰을 생성하세요.

예약 검색이 여러 행을 반환하면, 각 행은 룰 로직에 의해 별도의 이벤트로 처리됩니다. 트리거되는 알러트 수는 예약 룰에 구성한 중복 제거 설정에 따라 달라집니다.

룰 성능을 개선하고 데이터베이스 최적화를 활용하려면 가능한 한 많은 데이터 처리를 SQL(즉, )에서 수행하는 것이 권장됩니다. 아래 지침을 따라 예약 룰 작성 방법을 배우세요:

  • 룰 오류 및 예약 룰 오류

  • 룰 오류 및 예약 룰 오류는 다음과 같은 유형의

디텍션 오류 로 생성됩니다: 디텍션의 코드가 예외를 발생시킬 때. 룰 또는 예약 룰의 Python 처리 시간이 15초를 초과할 때. 만약 어떤

알러트 대상지 예약 검색 로 룰 오류(또는 예약 룰 오류)를 받을 수 있도록 구성되지 않았다면, 룰 오류(또는 예약 룰 오류)에 대한 알러트는 해당 룰 또는 예약 룰의 알러트에 사용될 대상지와 동일한 대상지로 라우팅됩니다. 자세한 내용은 알러트 대상지의 라우팅 우선순위 를 참조하세요.

타임아웃이 발생한 경우,

시스템 오류 가 생성됩니다.arrow-up-right.

룰 예시 panther-analysis GitHub 리포지토리에서 룰 및 예약 룰 템플릿을 참조하세요.디텍션 작성에 대한 심층 정보는 다음을 참조하세요:.

Python 디텍션 작성

심플 디텍션 작성

Auth0 다중요소 인증 정책 비활성화

하나의 디텍션이 Python과 심플 디텍션으로 모두 어떻게 표현되는지 확인하세요: Python에서의 Auth0 다중요소 인증 정책 비활성화 디텍션arrow-up-right.

- channel

Value: 'https://manage.auth0.com/'

웹 서버에서 관리자 패널에 접근할 때 감지 및 알러트 보내기

"status": 200,

  • "time": "2019-02-06 00:00:38 +0000 UTC"

  • 우리가 만들고자 하는 디텍션은 다음을 수행합니다:

  • "admin-panel"이 포함된 모든 URL에 대한 200(성공) 웹 요청을 찾습니다

GroupBy:

  1. - KeyPath: remoteAddr 그 후, 다음과 같은 일이 발생합니다:연관된 대상지 집합에 알러트가 생성되어 전송됩니다

  2. 대상지는 기본적으로 룰 심각도에 따라 결정됩니다. 알러트의 제목은 다음과 같습니다:.

  3. Successful admin panel login detected from 180.76.15.143 180.76.15.143 같은 중복 문자열인

    • 을(를) 가진 유사한 이벤트들은 동일한 알러트에 추가됩니다.

  4. 각 고유 중복 문자열에 대해 고유한 알러트가 생성됩니다. 이 경우에는 요청자의 IP가 중복 문자열입니다. 알러트 수신자는 Panther에 로그인하여 모든 알러트 메타데이터와 이벤트 요약을 보고 추가 분석을 수행하기 위해 검색

을(를) 실행할 수 있습니다.

참고

알러트 심각도

알러트 심각도 수준을 정의하기 위해 다음 지침을 따르는 것을 권장합니다:

심각도

악용 가능성

설명

예시

정보(Info)

해당 없음

위험 없음, 단지 정보성

운영 인식 확보

낮음(Low)

어려움

악용 시 거의 또는 전혀 위험 없음

시스템 시간 및 OS 버전과 같은 민감하지 않은 정보 누출

낮음(Low)

중간(Medium)

중간 수준의 위험

악용 시 중간 정도의 위험

만료된 자격증명, 우발적 데이터 유출에 대한 보호 미비, 암호화 설정, 감사 도구의 모범 사례 설정

높음(High)

중간

악용 시 매우 심각한 피해

가시성의 큰 공백, 직접적으로 취약한 인프라, 데이터 노출과 직접 관련된 잘못된 구성

치명적(Critical)

쉬움(예: 쉬운 악용) 또는 용이함이라고 해석될 수 있음","t337":"악용 시 극심한 피해를 초래함","t338":"공개된 데이터/시스템 사용 가능, 유출된 접근 키"}}monary

마지막 업데이트

도움이 되었나요?