> 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/panther/detections-repo/pat/managing-enrichment.md).

# Panther Analysis Tool로 보강 공급자 관리하기

## 개요

[보강](/ko/enrichment.md) 소스(또는 Lookup Tables라고도 함)를 사용하면 들어오는 로그에 더 많은 컨텍스트를 추가할 수 있습니다. 스키마와 매핑을 관리할 수 있습니다 [사용자 지정 보강](/ko/enrichment/custom.md) 그리고 일부 Panther 관리 보강은 다음을 통해 [Panther Analysis Tool (PAT)](/ko/panther/detections-repo/pat.md).

이 가이드에서는 다음 내용을 안내합니다:

* 다음을 사용하여 사용자 지정 보강 소스에 대한 사용자 지정 스키마를 생성하고 업로드하기: [`pantherlog` 도구](/ko/panther/pantherlog.md).
* 다음 수정하기 `Selectors` 그리고 `LogTypes` 보강 소스의 YAML 구성 파일에서.
  * 로그 유형과 Selectors는 [수동으로 설정할 수 있습니다](/ko/enrichment/custom.md#option-1-manually-choose-log-types-and-selectors) 또는 [지표 필드에 의해 자동으로 매핑됩니다](/ko/enrichment/custom.md#option-2-let-log-types-and-selectors-be-automatically-mapped-by-indicator-fields).
* PAT를 통해 보강 소스의 YAML 구성 파일 업로드.
* Panther Console에서 보강 테스트하기.

{% hint style="info" %}

* 팀에서 CLI 워크플로를 사용하는 경우, Console의 디택션 팩을 통해 관리하는 대신 PAT와 CI/CD를 사용해 보강을 관리하는 것이 좋습니다.
* Panther Console에서 활성화한 후 PAT를 통해 보강 테이블을 관리하려면 먼저 Panther Console의 디택션 팩을 비활성화해야 합니다. Panther Console과 PAT를 함께 사용하여 보강 소스를 관리하는 것은 지원되지 않습니다.
  {% endhint %}

{% hint style="warning" %}
이 가이드는 다음에 적용됩니다 [사용자 지정 보강](/ko/enrichment.md#custom-enrichments) 그리고 [다음 Panther 관리 보강 소스](/ko/enrichment.md#additional-enrichment-sources).

["Bring your own API key" 로그 풀러](/ko/enrichment.md#bring-your-own-api-key-log-pullers) 그리고 [Panther 로그 소스 풀러](/ko/enrichment.md#panther-log-source-pullers) PAT를 사용하는 CLI 워크플로에서는 활성화할 수 없습니다.
{% endhint %}

### 사용자 지정 보강 vs. Panther 관리 보강

* [사용자 지정 보강](/ko/enrichment/custom.md) 는 사용자가 관리합니다. 스키마를 생성하여 업로드한 다음, 보강 테이블의 YAML 구성 파일을 업로드해야 합니다.
* Panther 관리 보강 공급자는 Panther가 관리합니다. 해당 스키마는 Panther에서 정의하며, 필요에 맞게 수정할 수 있는 YAML 구성 파일은 다음에서 찾을 수 있습니다: [panther-analysis 저장소](https://github.com/panther-labs/panther-analysis/blob/master/lookup_tables/) GitHub에서.

## PAT를 사용해 사용자 지정 및 Panther 관리 보강을 관리하는 방법

{% tabs %}
{% tab title="사용자 지정 보강" %}
**사전 요구 사항**

* YAML 구성 파일입니다. YAML 구성 파일은 직접 생성해야 합니다.
* 데이터 샘플(새 스키마를 만들어야 하는 경우) 또는 Panther에서 생성된 기존 YAML 스키마.

**1단계: 스키마 생성 및 업로드**

사용자 지정 보강은 Panther에 생성하여 업로드한 스키마와 연결되어야 합니다. 이미 Panther에서 사용자 지정 보강에 연결하려는 스키마를 생성했다면 이 단계는 건너뛸 수 있습니다.

1. 샘플 로그 데이터를 사용해 스키마를 생성합니다.
   * 다음을 사용할 수 있습니다 `pantherlog` 샘플 데이터 집합에서 스키마를 추론할 수 있습니다. 샘플 JSON 로그 파일에서 스키마를 생성하려면 다음을 사용하세요: `infer` 명령:

     ```bash
     $ ./pantherlog infer sample_logs.jsonl > schema.yml
     ```
   * 추론된 스키마를 검토하고 Panther에 업로드하기 전에 필요한 조정을 수행하는 것을 잊지 마세요. 이 프로세스에 대한 자세한 내용은 다음을 참조하세요: [pantherlog 문서](/ko/panther/pantherlog.md).
2. 스키마 업로드.
   * 스키마를 생성한 후 다음을 따라 Panther에 업로드할 수 있습니다: [Panther Analysis Tool을 사용한 로그 스키마 업로드](/ko/data-onboarding/custom-log-types.md#uploading-log-schemas-with-the-panther-analysis-tool) 지침에서 단계를 완료했습니다.

**2단계: YAML 구성 파일 생성**

* 사용자 지정 보강의 경우 YAML 구성 파일을 처음부터 생성해야 합니다. 다음을 참조하세요: [Lookup Table 사양 참조](/ko/enrichment/custom/lookup-table-specification-reference.md) 이 파일에 어떤 키가 포함되어야 하는지 확인합니다.

**3단계: PAT를 통해 사용자 지정 보강 업로드**

사용자 지정 보강 구성 파일을 생성한 후 PAT를 사용하여 Panther에 업로드할 수 있습니다 [`업로드` 명령](/ko/panther/detections-repo/pat/pat-commands.md#upload-uploading-packages-to-panther-directly):

```bash
panther_analysis_tool upload
```

업로드를 위해 API 토큰과 호스트를 `--api-token` 그리고 `--api-host`를 각각 지정해야 업로드가 수행됩니다. 기타 옵션에는 필터링, 최소 테스트 등이 있습니다.

{% hint style="warning" %}
YAML 구성 파일을 업로드하기 전에 해당 스키마를 업로드했는지 확인하세요.
{% endhint %}

**4단계: 사용자 지정 보강 테스트**

사용자 지정 보강이 올바르게 설정되었는지 테스트하는 방법은 여러 가지가 있습니다.

**방법 1: Panther Console 또는 CLI에서 테스트 데이터 보강**

{% tabs %}
{% tab title="콘솔" %}
Panther Console의 디택션 편집기에서 클릭하여 **테스트 데이터 보강** 사용자 지정 보강이 올바르게 작동하는지 확인합니다. 이를 통해 테스트 데이터를 입력하고 단위 테스트 내에서 보강 프로세스의 출력을 볼 수 있습니다.

{% hint style="warning" %}
대상 **테스트 데이터 보강** 작동하려면 단위 테스트에 `p_log_type` 올바른 로그 유형을 식별하는 것입니다. 이는 Panther의 보강 로직의 기반이 됩니다.
{% endhint %}
{% endtab %}

{% tab title="CLI" %}

* PAT의 다음을 사용하여 사용자 지정 보강이 제대로 작동하는지 확인하세요 `enrich-test-data` 명령을 사용합니다. [자세한 내용은 `enrich-test-data` 여기에서](/ko/panther/detections-repo/pat/pat-commands.md#enrich-test-data-enriching-test-data-with-enrichment-content).
  {% endtab %}
  {% endtabs %}

**방법 2: 확인 `panther_signals` 데이터베이스**

다음을 확인하여 변경 사항이 적용되었는지 확인할 수 있습니다 `panther_signals.public.correlation_signals` 다음에 대한 데이터베이스/테이블을 `p_enrichment` 필드입니다. 해당 필드에 예상한 사용자 지정 보강 세부 정보가 포함되어 있는지 확인하세요.

**방법 3: SQL 쿼리 사용**

다음도 수행할 수 있습니다 `LEFT JOIN` SQL에서 이벤트 로그와 보강 테이블 간의 JOIN을 수행할 수 있습니다. 쿼리에 선택자가 정의되어 있는지 확인하세요. 이렇게 하면 로그의 데이터가 사용자 지정 보강의 데이터와 올바르게 일치하는지 확인할 수 있습니다.

예를 들어, 이 쿼리는 사용자 지정 선택자(이는 YAML 구성 파일에서 정의한 선택자와 동일해야 합니다)를 사용해 이벤트 데이터를 사용자 지정 보강과 일치시키려고 시도합니다:

```sql
SELECT *
FROM panther_logs.public.<log_type> AS e
LEFT JOIN panther_lookups.public.<lookup_table_name> AS lt
ON e.<field_path> = lt.<field_path>
WHERE e.p_occurs_since('1 day')
```

{% endtab %}

{% tab title="Panther 관리 보강" %}
**사전 요구 사항**

* YAML 구성 파일입니다. 다음을 사용할 수 있습니다: [panther-analysis의 Panther 제공 구성 파일](https://github.com/panther-labs/panther-analysis/tree/master/lookup_tables).

**1단계: 필요한 경우 YAML 구성 파일 수정**

Panther 관리 보강을 활성화하는 경우 다음 구성 파일을 수정할 수 있습니다 [Panther가 제공합니다](https://github.com/panther-labs/panther-analysis/tree/master/lookup_tables) 필요에 맞게.

* 보강용으로 Panther가 제공한 YAML 구성 파일을 수정할 때에는 다음 내용만 수정해야 합니다: `AssociatedLogTypes` 키를 사용자 지정하려면 `Selectors`. 다음과 같은 다른 매개변수의 변경은 `Refresh` 간격은 문제를 일으키는 것으로 알려져 있습니다.

**예시**

{% hint style="warning" %}
참고로, 이 로그 유형(`Cloudflare.Firewall`) 및 Selector(`ClientIP`)이 이런 방식으로 수동 설정되지 않았더라도, `Cloudflare.Firewall` 그리고 `p_any_ip_addresses` 각각 로그 유형과 Selector로 추가됩니다. 이는 다음 때문입니다 [지표 필드에 의한 자동 매핑](/ko/enrichment/custom.md#option-2-let-log-types-and-selectors-be-automatically-mapped-by-indicator-fields).

이는 다음 때문입니다 `ClientIP` 는 다음의 하나로 지정되어 있습니다 `IP` 지표 필드입니다 `Cloudflare.Firewall` 스키마와 Tor 조회 테이블의 기본 키, `IP`, 는 다음의 하나로 지정되어 있습니다 `IP` 자체 데이터 스키마의 지표입니다, `Tor.ExitNode`.
{% endhint %}

이 예에서는 `tor_exit_nodes` 보강이 새로운 다음을 포함하도록 업데이트되고 있습니다 `LogType` 그리고 `Selector`.

* 다음의 값은`PrimaryKey` 있거나 `IP`.
* 아래 예시는 다음 중 하나를 보여줍니다 `AssociatedLogTypes` 기본적으로 포함됩니다.

```yaml
LogTypeMap:
  PrimaryKey: ip
  AssociatedLogTypes:
    - LogType: AlphaSOC.알러트
      Selectors:
        - '$.event.srcIP'
```

다음에 목록 항목을 추가해 `AssociatedLogTypes` 다음을 지원하는 `ip_address` 필드를 `Cloudflare.Firewall` 스키마:

* 참고로 `Selectors` 상위 필드 또는 중첩 필드의 JSON 경로가 될 수 있습니다.

```yaml
LogTypeMap:
  PrimaryKey: ip
  AssociatedLogTypes:
    - LogType: AlphaSOC.알러트
      Selectors:
        - '$.event.srcIP'
    - LogType: Cloudflare.Firewall
      Selectors:
        - "ClientIP"
```

**2단계: PAT를 통해 보강 업로드**

보강 구성 파일을 수정한 후 PAT를 사용하여 Panther에 업로드할 수 있습니다 [`업로드` 명령](/ko/panther/detections-repo/pat/pat-commands.md#upload-uploading-packages-to-panther-directly):

```bash
panther_analysis_tool upload
```

업로드를 위해 API 토큰과 호스트를 `--api-token` 그리고 `--api-host`를 각각 지정해야 업로드가 수행됩니다. 기타 옵션에는 필터링, 최소 테스트 등이 있습니다.

**3단계: 보강 테스트**

보강이 올바르게 설정되었는지 테스트하는 방법은 여러 가지가 있습니다.

**방법 1: Panther Console 또는 CLI에서 테스트 데이터 보강**

{% tabs %}
{% tab title="콘솔" %}
Panther Console의 디택션 편집기에서 클릭하여 **테스트 데이터 보강** 보강이 올바르게 작동하는지 확인합니다. 이를 통해 테스트 데이터를 입력하고 단위 테스트 내에서 보강 프로세스의 출력을 볼 수 있습니다.

{% hint style="warning" %}
대상 **테스트 데이터 보강** 작동하려면 단위 테스트에 `p_log_type` 올바른 로그 유형을 식별하는 것입니다. 이는 Panther의 보강 로직의 기반이 됩니다.
{% endhint %}
{% endtab %}

{% tab title="CLI" %}

* PAT의 다음을 사용하여 보강이 제대로 작동하는지 확인하세요 `enrich-test-data` 명령을 사용합니다. [자세한 내용은 `enrich-test-data` 여기에서](/ko/panther/detections-repo/pat/pat-commands.md#enrich-test-data-enriching-test-data-with-enrichment-content).
  {% endtab %}
  {% endtabs %}

**방법 2: 확인 `panther_signals` 데이터베이스**

다음을 확인하여 변경 사항이 적용되었는지 확인할 수 있습니다 `panther_signals.public.correlation_signals` 다음에 대한 데이터베이스/테이블을 `p_enrichment` 필드입니다. 해당 필드에 예상한 보강 세부 정보가 포함되어 있는지 확인하세요.

**방법 3: SQL 쿼리 사용**

다음도 수행할 수 있습니다 `LEFT JOIN` SQL에서 이벤트 로그와 보강 테이블 간의 JOIN을 수행할 수 있습니다. 쿼리에 선택자가 정의되어 있는지 확인하세요. 이렇게 하면 로그의 데이터가 보강 테이블의 데이터와 올바르게 일치하는지 확인할 수 있습니다.

예를 들어, 이 쿼리는 사용자 지정 선택자(이는 보강 구성에서 정의한 선택자와 동일해야 합니다)를 사용해 이벤트 데이터를 보강 데이터와 일치시키려고 시도합니다:

```sql
SELECT *
FROM panther_logs.public.<log_type> AS e
LEFT JOIN panther_lookups.public.<lookup_table_name> AS lt
ON e.<field_path> = lt.<field_path>
WHERE e.p_occurs_since('1 day')
```

{% endtab %}

{% tab title="SQL 사용자 지정 보강(Beta)" %}
{% hint style="info" %}
SQL 사용자 지정 보강은 Panther 버전 1.120부터 공개 베타이며, 모든 고객이 사용할 수 있습니다. 버그 보고와 기능 요청은 Panther 지원팀과 공유해 주세요.
{% endhint %}

**1단계: YAML 구성 파일 생성**

다음을 포함한 YAML 파일을 생성합니다 `Query` 필드입니다. 스키마는 쿼리 결과에서 자동 생성되므로 수동 스키마 정의가 필요하지 않습니다. 다음을 참조하세요: [사용자 지정 보강 사양 참조](/ko/enrichment/custom/lookup-table-specification-reference.md) 사용 가능한 모든 필드에 대해

**예:**

```yaml
AnalysisType: lookup_table
LookupName: panther_audit_enrichment
Enabled: true
Description: Panther 감사 활동 컨텍스트로 알러트들을 보강합니다.
Indicators:
  - Field: actor
    Indicators: [username]
Query: |
  SELECT
    id,
    actionname,
    actiondescription,
    actionresult,
    actor,
    sourceip,
    useragent,
    timestamp
  FROM panther_logs.public.panther_audit
Refresh:
  PeriodMinutes: 60
LogTypeMap:
  PrimaryKey: id
```

**2단계: PAT를 통해 업로드**

`panther_analysis_tool upload`

다른 명령과 마찬가지로 다음을 제공해야 합니다 `--api-token` 그리고 `--api-host` 인증용으로(또는 다음을 채워 넣기) `.panther_settings.yml` 파일).\
\
보강만 업로드하려면:

`panther_analysis_tool upload --filter AnalysisType=lookup_table`

{% hint style="info" %}
스키마는 SQL 쿼리 결과에서 자동 생성됩니다. 별도의 스키마 업로드는 필요하지 않습니다.
{% endhint %}

**3단계: 검증**

* Console: 생성/업데이트되었는지 확인하려면 Enrichments 페이지에서 보강을 확인하세요.
* SQL: 데이터를 확인하려면 보강 테이블을 직접 쿼리합니다:

`SELECT * FROM panther_lookups.public.name_of_your_enrichment LIMIT 1`
{% endtab %}
{% endtabs %}


---

# 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:

```
GET https://docs.panther.com/ko/panther/detections-repo/pat/managing-enrichment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
