> 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="this user")
    source_ip = event.deep_get("sourceIPAddress", default="this IP address")
    
    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으로 변환할 수 있습니다 `런북` 함수.
{% endhint %}

사용자 행동 분석 런북:

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

리소스 접근 패턴 런북:

```yaml
런북: |
  1. 알러트 전후 1시간 범위에서 이 S3 버킷에 대한 모든 접근 시도를 조회하기
  2. 지난 30일간의 활동을 바탕으로 접근 주체가 이 버킷에 합법적으로 접근할 권한이 있는지 판단하기
  3. 접근된 객체 키가 민감한 데이터 패턴과 일치하는지 확인하기
```

네트워크/IP 분석 런북:

```yaml
런북: |
  1. 알러트 전 6시간과 후 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 `런북` 함수로 변환할 수 있습니다](/ko/detections/rules/python.md#runbook).
{% endhint %}

일반 런북 템플릿:

```yaml
런북: |
  1. [시간 범위] 동안 [특정 필드]에 의해 [작업]
  2. [특정 조건] [확인/비교/검증]
  3. [시간 범위] 동안 [관련 활동] [검색/찾기]
```

AWS CloudTrail 런북 템플릿:

```yaml
런북: |
  1. [timeframe] 동안 [userIdentity:arn]이 수행한 모든 API 호출을 CloudTrail에서 조회하기
  2. [sourceIPAddress]가 알려진 [조건]과 일치하는지 확인하기
  3. [timeframe] 동안 이 [사용자/리소스/작업]에 대한 다른 알러트 찾기
```

인증 런북 템플릿:

```yaml
런북: |
  1. [알러트 전 timeframe] 동안 [사용자]의 [auth events] 개수 세기
  2. [IP/위치/장치에 대한 조건]이 있는지 확인하기
  3. [timeframe] 동안 [성공적인 인증/비밀번호 변경/계정 수정] 찾기
```

</details>

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

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

[디택션의 데모를 보세요 `런북` 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) 디택션의 `런북`를 실행하는 과정에서 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>"이 버킷의 모든 GetObject 작업에 대해 지난 1시간 동안 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.
