알러트 대상

대상은 Panther의 룰 및 정책에서 알러트를 수신하는 통합입니다

개요

대상(Destination)은 룰과 정책에서 발생한 알러트를 수신하는 통합입니다.

기본적으로 알러트는 심각도에 따라 라우팅되며 동시에 여러 대상에 전달될 수 있습니다. 예를 들어, 단일 알러트가 Jira 티켓을 생성하고 PagerDuty 인시던트를 생성하며 Amazon Simple Notification Service(SNS)를 통해 이메일을 보냅니다.

룰 또는 정책별로 대상 설정을 재정의하려면 디텍션의 Python 함수나 메타데이터에서 대상을 설정하면 됩니다. 라우팅이 어떻게 결정되는지에 대한 자세한 설명은 알러트 라우팅 시나리오 에 대해 아래에서 자세히 알아보세요.

알러트에서 해당 알러트를 수동으로 특정 대상으로 라우팅하도록 선택할 수 있습니다. 수동으로 알러트를 라우팅하려는 각 대상은 수동 알러트 라우팅이 활성화되어 있어야 합니다. 자세한 내용은 수동 디스패치 아래 시나리오를 참조하세요.

circle-info

버전 1.42 이후부터 Panther는 알려진 고정 IP 주소에서 알러트를 전송합니다. 이를 통해 고객은 이 IP 주소에서 오는 알러트를 허용하도록 대상을 구성할 수 있습니다. 해당 주소는 게이트웨이 공인 IP로 표기되어 있으며 Panther 콘솔에서 설정 > 일반 으로 이동한 다음 페이지 하단으로 스크롤하면 찾을 수 있습니다.

대상 구성 방법

아래 페이지를 따라 특정 알러트 대상을 설정하는 방법을 알아보세요.

지원되는 대상

Panther는 다음 대상에 대한 지원되는 통합을 제공합니다:

기본적으로 지원되지 않는 대상을 설정하기

Panther에서 기본적으로 지원하지 않는 대상으로 알러트를 받고 싶다면 커스텀 웹후크나 API 워크플로를 사용하는 것을 고려하세요.

Panther의 커스텀 웹후크

Panther의 커스텀 웹후크 대상은 Tines, TheHive 또는 SOCless와 같은 서드파티(API 지원)를 연동하는 데 사용하세요.

Panther API

도달하려는 대상에 공개 API가 없는 경우(예: 내부 애플리케이션) 다음을 폴링하여 알러트를 수신할 수 있습니다. Panther API 예약된 일정으로 알러트를 확인합니다. 알러트를 조회하고 조작하는 데 사용할 수 있는 API 작업은 알러트 (REST) 및 알러트 및 오류 (GraphQL)을 참조하세요.

그러나 알러트를 Panther에서 매 스키마 추론 프로세스는 최대 15분이 걸릴 수 있습니다. 프로세스가 완료되는 동안 이 페이지를 떠나도 됩니다. 또한 이 프로세스를 조기에 중지하고 프로세스가 실행되는 동안 추론된 스키마를 유지할 수도 있습니다. 분 또는 시간 단위로 가져오는 방식—예를 들어—은 커스텀 웹후크나 지원되는 통합처럼 알러트가 생성되는 즉시 대상에 전송되는 방식보다 지연을 초래할 수 있습니다.

대상 수정 또는 삭제

  1. Panther 콘솔에 로그인하십시오.

  2. 왼쪽 사이드바 메뉴에서 구성 > 알러트 대상.

  3. 대상의 오른쪽에 있는 점 세 개 아이콘을 클릭합니다.

    • 나타나는 드롭다운 메뉴에서 클릭합니다 삭제 대상을 삭제하려면.

    • 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 편집을 클릭 표시 이름, 심각도 수준 및 기타 구성을 수정하려면.

알러트 라우팅 시나리오

알러트가 라우팅되는 대상은 디택션에 설정된 대상 구성(있는 경우) 또는 대상 자체의 구성에 따라 달라집니다.

circle-info

특정 대상이 한 디택션의 알러트만 받게 하려면 심각도 수준이나 로그 유형이 없는 대상을 만든 다음 디택션을 해당 대상으로 가리키도록 구성할 수 있습니다(사용하여 destinations(), OutputIds, 또는 대상 재정의 필드). 자세한 내용은 Panther의 지식 베이스 문서를 참조하십시오: 단일 Panther 알러트를 특정 알러트 대상으로 라우팅하려면 어떻게 하나요?arrow-up-right

라우팅 시나리오는 우선순위가 높은 것부터 낮은 것 순으로 아래에 설명되어 있습니다. 한 시나리오가 충족되면 알러트 라우팅은 중지됩니다(즉, 다음 시나리오는 호출되지 않습니다).

시나리오 1: 디택션에 동적으로 정의된 대상

Python 디택션은 다음을 정의할 수 있습니다 destinations() function 어떤 대상이 알러트를 받아야 하는지를 결정합니다. 이 방식으로 정의된 대상은 다른 모든 구성보다 우선합니다.

디택션의 Python 본문에 destinations() 함수가 정의되어 있지 않거나, 정의되어 있지만 destinations() 함수가 정의되어 반환한다면, 는 선택적, Panther는 아래의 시나리오 2로 넘어가서 알러트 대상을 찾습니다.

만약 destinations() 함수가 반환한 목록이 비어 있으면 ([]), 해당 알러트는 어떤 대상으로도 라우팅되지 않습니다.

Under a "Detect" header, rule() and destinations() functions are shown.

시나리오 2: 디택션에 정적으로 정의된 대상

Panther는 시나리오 1이 충족되지 않을 경우 이 시나리오로 이동합니다.

정적 대상 재정의는 디택션의 YAML 파일이나 콘솔에서 정의할 수 있습니다:

  • CLI 워크플로에서는 디텍션의 YAML 파일에서 OutputIds 필드에 붙여넣으세요.

  • 콘솔에서는 디택션의 룰 설정내에서 대상을 정의하며, 대상 오버라이드 필드에 붙여넣으세요.

"재정의(Overrides)"는 이 대상 정의 방법이 보다 우선함을 의미합니다를(을) 아래에서 확인하십시오.

시나리오 3: 대상 구성

디택션에 대상이 정의되어 있지 않으면(위의 시나리오 12에서 설명된 대로), 대상 자체의 구성이 호출됩니다. 특정 대상으로 알러트가 라우팅되려면 다음 조건들이 충족되어야 합니다:

  • 사용자를 사용할 것이며, 심각도 수준 대상에 구성된 심각도 수준은 알러트의 심각도 수준을 포함해야 합니다.

  • 사용자를 사용할 것이며, 알러트 유형 대상에 구성된 항목에는 알러트의 유형이 포함되어야 합니다.

  • 대상이 특정 알러트만 수락하도록 구성된 경우 로그 유형그 목록에는 알러트와 연결된 로그 유형이 포함되어야 합니다.

circle-exclamation

시나리오 4: 수동 알러트 발송

알러트를 대상으로 수동으로 발송하려는 이유는 여러 가지가 있습니다. 때때로 자동으로 의도한 모든 대상으로 전달되지 않은 알러트를 수신할 수 있습니다. 이는 잘못된 구성, 알러트가 일회성 특수 사례이거나 대상을 테스트하기 위한 경우일 수 있습니다.

알러트를 대상으로 수동 발송할 수 있도록 하려면:

  1. 다음으로 이동합니다 구성 > 알러트 대상.

  2. 수동 발송을 활성화하려는 대상을 클릭하세요.

  3. 다음을 활성화하세요 수동 발송 허용 토글.

  1. 팝업에서, 클릭하세요 활성화.

  1. 하단에서, 클릭하세요 대상 업데이트.

이제 이 대상으로 알러트를 수동 발송할 수 있습니다. 자세한 사용법은 수동 발송 알러트 Dispatch Alert 사용 방법에 대한 정보를 참조하세요.

대상 예시

다음 예시는 사용자가 Okta에 여러 번 로그인 실패한 경우를 기반으로 대상에서 알러트를 수신하는 방법을 보여줍니다.

다음과 같이 구성했습니다:

  • 대상:

    • Slack, 룰 매치에 대한 알러트를 수신하도록 구성됨.

    • Tines(을/를 통해 설정됨 커스텀 웹후크), 룰 매치에 대한 알러트를 수신하도록 구성됨.

  • 로그 소스:

    • 귀하의 Panther 인스턴스는 다음을 수집하고 있습니다 Okta 로그.

  • event, "data", "details", "request", "path", default="<NO_REQUEST_PATH_FOUND>"

    • 사용자가 너무 많은 로그인 실패로 인해 Okta에서 잠겼을 때 알림을 받도록 “Okta User Locked Out”라는 룰을 생성했습니다:

    • 사용자를 사용할 것이며, alert_context() 사용자 이름과 사용자의 Okta ID 값을 포함합니다.

1. 이벤트 발생

사용자 중 한 명이 Okta에 여러 번 로그인 시도에 실패합니다. 결국 계정이 잠깁니다.

2. Panther가 로그를 수집하고 구성한 룰과 일치하는 이벤트를 디텍트합니다

Okta 감사 로그가 Panther 인스턴스로 스트리밍되면서 “Okta User Locked Out” 룰이 사용자가 잠긴 것을 감지합니다. An alert in the Panther Console shows that a user is locked out. The triggered rule is called "Okta User Locked Out."

3. 룰 매치가 알러트를 트리거합니다

감지된 룰 매치는 Slack 대상으로와 Tines 대상으로 알러트를 트리거합니다.

이벤트 발생 몇 분 이내에 구성한 대상인 Slack 채널에 알러트가 표시됩니다:

A Slack app posts a Panther alert that says a user is locked out. The alert includes a link to the Panther UI, a Runbook that recommends verifying IPs, a Severity of Low, and Alert Context that includes the "actor" and "id" parameters.

알러트는 또한 다음을 통해 Tines로 전송됩니다 커스텀 웹후크 목적으로 구성한 항목입니다. Tines는 alert_context() 함수에서 값을 수신하고 사용자의 Okta 계정을 자동으로 잠금 해제한 다음 Slack에 확인 메시지를 보내도록 설정되어 있습니다.

The automated process in Tines shows the sequence of events: Receive Alert from Panther, Wait 10 minutes, Unlock Okta user by ID via HTTP Request, Send Unlock message to Slack via HTTP Request.

대상 스키마

워크플로 자동화

알러트 페이로드는 일반적으로 다음과 같은 형태를 가집니다. 맞춤 웹훅, SNS, SQS 또는 기타 워크플로 자동화 위주의 대상의 경우, 알러트를 처리하는 방법을 정의하는 데 이것이 중요합니다.

Jira나 Slack과 같은 네이티브 통합의 경우, 대상이 이해할 수 있는 형태로 자동으로 처리됩니다.

사용자를 사용할 것이며, AWSDateTimearrow-up-right 스칼라 타입은 유효한 확장된 ISO 8601 날짜시간 문자열을 나타냅니다. 다음 형식의 날짜시간 문자열을 허용합니다 YYYY-MM-DDThh:mm:ss.sssZ. 초 필드 다음의 필드는 나노초 필드입니다. 1자리에서 9자리 사이의 숫자를 허용할 수 있습니다. 초 필드와 나노초 필드는 선택 사항입니다. 이 스칼라에는 타임존 오프셋이 필수입니다. 타임존 오프셋은 Z (UTC 타임존을 나타냄) 이거나 다음 형식이어야 합니다 ±hh:mm:ss. 타임존 오프셋의 초 필드는 ISO 8601 표준의 일부는 아니지만 유효한 것으로 간주됩니다.

예제 JSON 페이로드:

알러트 대상 문제 해결

Panther 지식 기반을 방문하여 알러트 대상에 관한 문서 보기arrow-up-right 자주 묻는 질문에 답하고 일반적인 오류와 문제를 해결하는 데 도움이 됩니다.

마지막 업데이트

도움이 되었나요?