> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/alerts/alert-runbooks.md).

# 알러트 런북

## 개요

알러트 룰북은 알러트를 유발한 문제를 조사하고 해결하기 위한 지침 모음입니다. 설명적인 룰북을 제공하는 것이 권장됩니다. 왜냐하면 [Panther AI 알러트 분류](/ko/alerts.md#panther-ai-alert-triage) 그 점을 고려하기 때문입니다. 효과적인 룰북 작성 방법을 알아보세요 [아래](#tips-for-writing-an-effective-runbook).

룰북은 디택션에서 정의됩니다:

* Python 디택션에서는 동적 [`runbook()` 함수](/ko/detections/rules/python.md#runbook) 또는 정적 [`런북` 필드](/ko/detections/rules/python.md#python-rule-specification-reference).
* Simple 디택션에서는 정적 [`런북` 필드](/ko/detections/rules/writing-simple-detections.md#simple-detection-rule-specification-reference).
* 상관 분석 룰에서는 정적 [`런북` 필드](/ko/detections/correlation-rules/correlation-rule-reference.md#correlation-rule-top-level-fields).

{% hint style="info" %}
정적 **런북** 필드는 저장 시 적용되며 최대 10,000자를 지원하는 반면, 동적 `runbook()` 함수는 모든 이벤트에 대해 런타임에 평가되며 1,000자로 제한됩니다. 에 대한 더 엄격한 제한은 `runbook()` 파이프라인 성능을 위한 안전장치로 존재합니다.
{% endhint %}

Panther는 여러 알러트 룰북을 제공합니다 [Panther가 관리하는 탐지](/ko/detections/panther-managed.md)—이를 [`panther-analysis` 리포지토리에서 확인하세요](https://github.com/panther-labs/panther-analysis).

### 룰북 예시

```python
def runbook(event):
    user_arn = event.deep_get("userIdentity", "arn", default="이 사용자")
    source_ip = event.deep_get("sourceIPAddress", default="이 IP 주소")
    
    return f"""
    1. 알러트 24시간 전 {user_arn}의 모든 API 호출을 찾아보세요
    2. 소스 IP {source_ip}가 알려진 클라우드 제공업체 IP 범위 또는 VPN 엔드포인트와 연관되어 있는지 확인하세요
    3. 지난 7일 동안 {user_arn} 또는 {source_ip}와 관련된 다른 알러트를 찾아보세요
    """
```

<details>

<summary>추가 룰북 예시</summary>

{% hint style="info" %}
이 섹션의 룰북 예시는 YAML로 작성됩니다 `런북` 필드 값이지만 Python으로 변환할 수 `runbook` 있는 함수들.
{% endhint %}

사용자 행동 분석 룰북:

```yaml
룰북: |
  1. 알러트 24시간 전 해당 사용자 ARN의 모든 API 호출을 찾아 정상 행동을 파악하세요
  2. 이 작업이 지난 90일 동안 이 사용자에 의해 수행되었는지 확인하세요
  3. 지난 7일 동안 이 사용자로부터 발생한 다른 알러트 또는 의심스러운 활동이 있는지 확인하세요
```

리소스 액세스 패턴 룰북:

```yaml
룰북: |
  1. 알러트 전후 1시간 동안 이 S3 버킷에 대한 모든 액세스 시도를 조회하세요
  2. 액세스 주체가 지난 30일간의 활동을 기준으로 이 버킷에 대한 정당한 액세스 권한을 가지고 있는지 확인하세요
  3. 액세스한 객체 키가 민감한 데이터 패턴과 일치하는지 확인하세요
```

네트워크/IP 분석 룰북:

```yaml
룰북: |
  1. 알러트 전후 6시간 동안 소스 IP에서 발생한 모든 API 호출을 찾아보세요
  2. 해당 IP가 알려진 클라우드 제공업체, VPN, 또는 사내 네트워크 범위와 연관되어 있는지 확인하세요
  3. 이 사용자의 로그인 위치에서 지리적 불일치가 있는지 찾아보세요
```

권한 상승 조사 룰북:

```yaml
룰북: |
  1. 알러트 48시간 전 이 사용자 또는 역할에 대한 IAM 정책 변경을 조회하세요
  2. 정책 변경 후 24시간 동안 새로 부여된 권한을 사용한 모든 API 호출을 찾아보세요
  3. 이 사용자가 지난 90일 동안 유사한 권한 상승 행위를 수행했는지 확인하세요
```

데이터 유출 조사 룰북:

```yaml
룰북: |
  1. 알러트 전후 24시간 동안 이 사용자가 외부 대상에 전송한 총 데이터량을 계산하세요
  2. 데이터 전송량을 해당 사용자의 30일 평균 기준선과 비교하세요
  3. 목적지 IP 또는 도메인이 클라우드 스토리지 또는 파일 공유 서비스와 연관되어 있는지 확인하세요
```

인증 실패 분석 룰북:

```yaml
룰북: |
  1. 첫 번째 실패 전 1시간 동안 이 사용자의 인증 실패 시도 수를 세세요
  2. 다른 IP에서의 실패 시도 이후 성공적인 인증이 발생했는지 확인하세요
  3. 알러트 전후 24시간 동안 이 사용자의 비밀번호 재설정 또는 MFA 변경이 있는지 찾아보세요
```

</details>

## 효과적인 룰북 작성 팁

Panther AI 또는 사람이 따라갈 수 있는 효과적인 룰북을 작성하려면:

* 서로 이어지는 2\~3개의 집중된 조사 단계를 제공하세요.
  * 단계는 구체적이고 명확하며 실행 가능해야 합니다. 예를 들면:
    * **좋음(구체적, 실행 가능)**: "이 알러트 전후 6시간 동안 {user\_arn}의 모든 API 호출을 AWS CloudTrail에서 조회하여 어떤 작업이 수행되었는지 식별하세요."
    * **나쁨(모호하고 명확한 결과가 없음)**: "관련 사용자 활동을 검색하세요."
  * 맥락을 수집하고 스토리를 구성하는 데 도움이 되도록, 다음에 답할 수 있는 단계를 사용해 보세요:
    1. **무슨 일이 발생했나요?** (즉각적 맥락)
    2. **이게 정상인가요?** (기준선 비교)
    3. **그 밖에 무엇이 의심스럽나요?** (상관 관계)
* 모호함을 피하기 위해 특정 알러트 필드를 이름으로 참조하세요.
  * 예를 들어, `sourceIPAddress` "IP" 대신 사용하고 `userIdentity:arn` "사용자" 대신 사용하세요.
* 데이터 검색을 위한 시간 범위를 표시하세요(예: "24시간 전" 또는 "30분 전후"). 검색할 시간을 결정할 때는 다음 지침을 사용하세요:
  * 최근 의심스러운 활동을 찾는 경우: 전후 1\~6시간
  * 행동 기준선을 설정하는 경우: 30\~90일의 기록
  * 상관 검색을 실행하는 경우: 24시간\~7일
  * 장기 패턴을 찾는 경우: 90일

<details>

<summary>룰북 템플릿</summary>

{% hint style="info" %}
이 섹션의 룰북 템플릿은 YAML로 작성됩니다 `런북` 필드 값이지만 Python으로 변환할 수 있는 [Python `runbook` 함수](/ko/detections/rules/python.md#runbook).
{% endhint %}

일반 룰북 템플릿:

```yaml
룰북: |
  1. [작업]을 [시간 범위] 내 [특정 필드] 기준으로 수행
  2. [확인/비교/검증] [특정 조건]
  3. [시간 범위] 내 [관련 활동]을 [검색/찾기]
```

AWS CloudTrail 룰북 템플릿:

```yaml
룰북: |
  1. [시간 범위] 내 [userIdentity:arn]의 모든 API 호출을 CloudTrail에서 조회
  2. [sourceIPAddress]가 알려진 [조건]과 일치하는지 확인
  3. [시간 범위] 내 이 [사용자/리소스/작업]과 관련된 다른 알러트를 찾기
```

인증 룰북 템플릿:

```yaml
룰북: |
  1. [알러트 전 시간 범위] 내 [사용자]의 [인증 이벤트] 수를 계산
  2. [IP/위치/디바이스에 관한 조건]인지 확인
  3. [시간 범위] 내 [성공한 인증/비밀번호 변경/계정 수정]을 찾기
```

</details>

## Panther AI가 알러트 룰북을 사용하는 방법

When [Panther AI가 알러트를 분류하면](/ko/alerts.md#panther-ai-alert-triage), 알러트 룰북을 읽고 이를 자율적으로 실행합니다. 위의 팁에 따라 룰북을 작성하면 [위의 팁](#tips-for-writing-an-effective-runbook) Panther AI가 가능한 최상의 알러트 분류를 수행하는 데 도움이 될 수 있습니다.

[디택션 데모를 확인하세요 `runbook` AI 알러트 분류에 미치는 영향을 여기서 확인하세요](/ko/ai/examples.md#using-a-detection-runbook-to-direct-ai-alert-triage).

<details>

<summary>Panther AI의 룰북 기반 알러트 분류 기능</summary>

When [알러트를 분류할 때](/ko/alerts.md#panther-ai-alert-triage) 그리고 디택션의 `runbook`, Panther AI는 이를 통해 여러 기능에 접근할 수 있습니다 [도구](/ko/ai.md#tools) (다만 도구 이름을 지정할 필요는 없으며—Panther AI가 사용할 도구를 결정하도록 할 수 있습니다):

<table><thead><tr><th width="155.81253051757812">기능/도구</th><th>하는 일</th><th>예시 룰북 단계</th></tr></thead><tbody><tr><td>로그 검색</td><td>필터를 사용해 모든 로그 유형의 이벤트를 검색</td><td>"알러트 24시간 전 해당 사용자 ARN의 모든 AWS CloudTrail 이벤트를 찾아보세요"</td></tr><tr><td>구조화된 쿼리</td><td>SQL 유사 구문으로 데이터 레이크 테이블을 조회</td><td>"지난 1시간 동안 이 버킷의 모든 GetObject 작업에 대한 S3 서버 액세스 로그를 조회하세요"</td></tr><tr><td>디택션 세부 정보</td><td>디택션 룰의 소스 코드와 메타데이터를 가져오기</td><td>"디택션 룰 로직을 검토하여 이 알러트를 유발한 임계값이 무엇인지 이해하세요"</td></tr><tr><td>관련 알러트</td><td>룰, 사용자, IP 또는 기타 필드로 알러트를 찾기</td><td>"지난 30일 동안 이 룰에서 동일한 사용자에 대한 다른 모든 알러트를 찾아보세요"</td></tr><tr><td>알러트 세부 정보</td><td>완전한 알러트 맥락과 이벤트를 가져오기</td><td>"모든 이벤트와 맥락 필드를 포함한 전체 알러트 세부 정보를 가져오세요"</td></tr><tr><td>과거 AI 분석</td><td>과거 AI 분류 응답을 검색</td><td>"유사한 권한 상승 패턴이 이전에 분석되었는지 확인하세요"</td></tr><tr><td>스키마 정보</td><td>로그 유형 필드 정의를 가져오기</td><td>"상관 분석에 사용할 수 있는 필드를 이해하기 위해 Okta SystemLog 스키마를 검토하세요"</td></tr><tr><td>지표 보강</td><td>IP, 도메인, 해시 평판을 확인</td><td>"소스 IP가 알려진 위협 행위자 또는 프록시 서비스와 연관되어 있는지 확인하세요"</td></tr><tr><td>데이터 프로파일링</td><td>열 값 분포를 분석</td><td>"지난 7일 동안 이 사용자에게서 가장 흔한 이벤트 이름을 요약하세요"</td></tr></tbody></table>

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/alerts/alert-runbooks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
