# Open Threat Exchange (OTX) (Beta)

## 개요

{% hint style="info" %}
OTX 보강 기능은 Panther 버전 1.116부터 오픈 베타로 제공되며, 모든 고객이 사용할 수 있습니다. 버그 보고와 기능 요청은 Panther 지원 팀과 공유해 주세요.
{% endhint %}

[Open Threat Exchange (OTX)](https://otx.alienvault.com/) 는 AlienVault의 커뮤니티 기반 위협 인텔리전스 플랫폼으로, 기여자들이 협력하여 새로운 위협을 식별하는 곳입니다.

방법 알아보기 [여기에서 저장된 enrichment 데이터 보기](/ko/enrichment.md#viewing-and-managing-enrichments), 그리고 방법 알아보기 [여기에서 enrichment 데이터가 포함된 로그 이벤트 보기](/ko/enrichment.md#viewing-log-events-with-enrichment-data).

{% hint style="warning" %}
Panther에서 OTX 보강 기능을 사용하려면 OTX API 키가 필요합니다.
{% endhint %}

## Panther에서 OTX 보강 기능이 작동하는 방식

기본적으로 OTX는 Panther 환경의 모든 로그 소스에 대해 실행되도록 구성되어 있습니다([원하면 로그 유형별로 비활성화할 수도 있습니다](#enabling-disabling-or-modifying-otx-enrichment-for-a-log-type)). Panther는 모든 로그 유형의 각 수신 로그 이벤트를 디택션 엔진을 통과하기 전에 OTX Panther 관리 보강과 대조하여 일치 여부를 시도합니다.

Panther가 [일치 항목을 식별하면](#how-a-match-between-a-log-event-and-otx-is-made) 수신 이벤트와 OTX 항목 사이에서 OTX 데이터가 상위 수준 `p_enrichment` 키 아래의 일치하는 로그 이벤트에 추가됩니다. 그런 다음 디택션 로직과 검색에서 참조할 수 있습니다.

보강 소스를 사용한 디택션 작성에 대한 자세한 내용은 다음을 참조하세요 [사용자 지정 보강 데이터를 사용하여 디택션 작성](/ko/enrichment/custom.md#writing-a-detection-using-custom-enrichment-data).

### 로그 이벤트와 OTX 사이의 일치가 만들어지는 방식

로그 이벤트는 OTX Panther 관리 보강 데이터로 보강되며( `p_enrichment`) 다음 항목 사이에서 일치가 발견되면 적용됩니다:

* 각 관련 로그 유형에 대해 구성된 Selector 필드의 값 중 하나 이상.
  * 각 로그 유형에 대한 기본 Selector는 [Indicator Fields](/ko/search/panther-fields.md#indicator-fields) (다음으로 표시됨 `p_any_*`)이며, 보강 테이블의 기본 키의 indicator 필드 지정과 연결됩니다(다만 Selector는 구성 가능합니다). [이 자동 매핑에 대해 자세히 알아보려면 여기를 참조하세요](/ko/enrichment/custom.md#option-2-let-log-types-and-selectors-be-automatically-mapped-by-indicator-fields).
* 다음의 값은 `indicator` Panther의 OTX 테이블 항목에 있는 키.
  * `indicator` 는 OTX 테이블의 기본 키이며 indicator 값(IP 주소, 도메인, 파일 해시 등)을 포함합니다.
  * 다음에서 `indicator` 의 예를 확인하세요 [예시 OTX 테이블 항목](#example-otx-enrichment-table-entry) 아래.

## OTX 보강 설정

### 1단계: OTX API 키 가져오기

1. 다음 계정에 로그인하세요 [OTX](https://otx.alienvault.com/) .
2. 오른쪽 상단 모서리에서 사용자 이름을 클릭한 다음 **설정**.\
   ![](/files/fbf7c4ef51700dbf0ef6944dfb99f9f0876e50ef)
3. 다음에서 **OTX Key** 섹션에서 Panther로 데이터를 가져오는 데 사용할 API 키를 복사하세요.
   * 나중에 API 키를 교체하거나 다시 생성하는 경우 Panther의 구성을 업데이트해야 합니다.

### 2단계: Panther에서 OTX 보강 생성

Panther에서 OTX 보강을 구성하려면:

1. Panther Console의 왼쪽 탐색 표시줄에서 **구성** > **Enrichments**.
2. 오른쪽 상단에서 다음을 클릭합니다 **새로 만들기**.
3. 을 클릭합니다 **Open Threat Exchange**.\
   ![](/files/e9ac2e252415a7179d6b67accc83e03196b9a976)
4. 에서 **OTX Enrichment Settings** 양식에서 다음 필드의 값을 입력하세요:
   * **Name**: 통합에 대한 설명적인 이름을 입력하세요.
   * **API Token**: 1단계에서 가져온 API 토큰을 입력하세요.
   * **Refresh period (minutes)**: Panther가 OTX 데이터를 얼마나 자주 새로 고칠지 구성하세요. 기본 새로 고침 주기는 360분입니다.
   * **Max age (days)**: 조회 테이블에 포함할 pulse의 최대 수명을 일 단위로 구성하세요. 기본값은 365일입니다.
5. 을 클릭합니다 **Setup**.
   * 새 OTX 구성은 **구성** > **Enrichments** 페이지에 표시됩니다.

{% hint style="info" %}
새 OTX 보강은 약 10분 동안 엔트리가 0개인 정상 상태로 표시됩니다. 이 시간 동안 첫 번째 데이터 가져오기가 수행됩니다.

<img src="/files/1d7e57d4003ab2f9467971e19565f1b832cbd869" alt="" data-size="original">
{% endhint %}

## 로그 유형에 대한 OTX 보강 활성화, 비활성화 또는 수정

OTX 보강은 Panther 인스턴스의 각 로그 유형에 기본적으로 활성화되어 있습니다.

특정 로그 유형에 대해 OTX 보강을 비활성화(또는 나중에 활성화)하거나 로그 유형의 selector를 변경하려면:

1. Panther 콘솔의 왼쪽 탐색 모음에서 다음을 클릭합니다. **구성** > **Enrichments**.
2. Enrichments 목록에서 수정하려는 OTX 소스를 찾은 다음 이름을 클릭하세요.
3. 제공자 세부 정보 페이지에서 **Enriched Log Types** 제목 오른쪽에 있는 **Edit**.
   * 이 보강을 새 로그 유형에 대해 활성화하려면 **Add Log Type**.
     * 새로 표시되는 행에서 **Log Type** 을 선택하고 **Selectors** 필드에 이벤트 필드를 최소 하나 이상 선택하세요.
   * 이 로그 유형에 대해 이 보강을 비활성화하려면 해당 로그 유형의 행을 찾은 다음 휴지통 아이콘을 클릭하세요.
   * 로그 유형의 selector를 변경하려면 **Selectors** 필드를 클릭한 후 이벤트 필드 선택을 추가하거나 제거하세요.
4. 의 오른쪽 상단 모서리에서 **Enriched Log Types** 타일을 클릭하세요 **저장**.

## 예시 OTX 보강 테이블 항목

아래는 Panther가 정규화한 OTX pulse 응답의 예입니다. pulse의 각 `indicator` 는 자체 행을 생성합니다.

```json
{
  "id": "507f1f77bcf86cd799439011",
  "name": "악성 도메인 활동",
  "description": "악성 도메인 활동과 관련된 지표",
  "created": "2023-08-15T10:30:00Z",
  "modified": "2023-08-15T10:30:00Z",
  "tags": ["malware", "domain", "c2"],
  "industries": ["financial"],
  "malware_families": ["trojan", "backdoor"],
  "references": ["https://example.com/threat-report"],
  "attack_ids": ["T1016", "T1059", "T1071"],
  "indicator": "malicious-domain.com",
  "indicator_type": "domain",
  "indicator_created": "2023-08-15T10:30:00Z",
  "indicator_expiration": "2024-08-15T10:30:00Z",
  "tlp": "white",
  "adversary": "APT29",
  "target_countries": ["US", "UK"],
  "p_event_time": "2023-08-15T10:30:00Z",
  "p_log_type": "OTX.Pulses",
  "p_parse_time": "2023-08-15T11:00:00Z",
  "p_row_id": "abc123def456ghi789",
  "p_schema_version": 0
}
```

## OTX 데이터 구조

<details>

<summary>Pulses</summary>

OTX pulse는 특정 위협이나 캠페인과 관련된 위협 인텔리전스 지표를 나타냅니다. Panther에서는 pulse의 각 indicator가 pulse 메타데이터와 결합되어 보강에서 자체 행이 됩니다. 각 행에는 다음 속성이 포함됩니다:

**Pulse 메타데이터(같은 pulse의 모든 indicator에서 공유됨)**:

* `id`: pulse의 고유 식별자
* `name`: pulse의 이름/제목
* `description`: pulse에 포함된 위협 인텔리전스에 대한 설명
* `created`: pulse가 처음 생성된 시점을 나타내는 타임스탬프
* `modified`: pulse가 마지막으로 수정된 시점을 나타내는 선택적 타임스탬프
* `tags`: pulse에 적용된 분류 태그
* `industries`: 이 pulse의 위협으로 영향을 받는 대상 산업
* `malware_families`: 위협과 관련된 멀웨어 계열
* `references`: 위협 인텔리전스와 관련된 외부 참고 자료, URL 또는 인용
* `attack_ids`: 위협에 매핑된 MITRE ATT\&CK 기법 ID
* `tlp`: 정보 공유를 위한 Traffic Light Protocol(TLP) 분류
* `adversary`: pulse와 관련된 위협 행위자 또는 적대적 그룹
* `target_countries`: 이 pulse의 위협이 표적으로 삼는 국가

**Indicator별 필드(행마다 고유)**:

* `indicator`: indicator 값(IP 주소, 도메인 이름, 파일 해시, URL 등)이며, 이는 기본 키입니다
* `indicator_type`: indicator 유형(예: 'IPv4', 'domain', 'hostname', 'email', 'URL', 'FileHash-MD5', 'FileHash-SHA256')
* `indicator_created`: indicator가 생성된 시점의 타임스탬프
* `indicator_expiration`: indicator가 만료되거나 무효화되는 시점의 타임스탬프(선택 사항)

전체 [OTX.Pulses](#otx.pulses-schema) 스키마는 아래를 참조하세요.

</details>

### `OTX.Pulses` 스키마

다음은 Panther가 관리하는 `OTX.Pulses` 스키마로, Pulses가 Panther에 저장되는 방식을 나타냅니다. pulse의 각 indicator는 포함된 pulse 메타데이터와 함께 자체 행이 됩니다.

```yaml
스키마: OTX.Pulses
설명: 위협 인텔리전스 지표와 메타데이터를 포함하는 Open Threat Exchange (OTX) pulse
referenceURL: https://otx.alienvault.com
필드:
  - name: id
    필수: true
    설명: pulse의 고유 식별자.
    유형: string
  - name: name
    필수: true
    설명: 위협을 설명하는 pulse의 제목 또는 이름.
    유형: string
  - name: description
    설명: 위협, 캠페인 또는 보안 이벤트에 대한 상세 설명.
    유형: string
  - name: created
    필수: true
    설명: pulse가 생성된 시점의 타임스탬프.
    유형: timestamp
    timeFormats:
      - '%Y-%m-%dT%H:%M:%S.%N'
      - '%Y-%m-%dT%H:%M:%S'
    isEventTime: true
  - name: modified
    설명: pulse가 마지막으로 수정된 시점의 타임스탬프.
    유형: timestamp
    timeFormats:
      - '%Y-%m-%dT%H:%M:%S.%N'
      - '%Y-%m-%dT%H:%M:%S'
  - name: tags
    설명: 분류 및 필터링을 위해 pulse와 연관된 키워드 또는 레이블.
    유형: array
    요소:
      유형: string
  - name: industries
    설명: pulse에 설명된 위협의 대상 산업 부문.
    유형: array
    요소:
      유형: string
  - name: malware_families
    설명: pulse에 설명된 위협과 관련된 멀웨어 계열.
    유형: array
    요소:
      유형: string
  - name: references
    설명: pulse와 관련된 외부 소스, 보고서 또는 문서의 URL.
    유형: array
    요소:
      유형: string
  - name: tlp
    설명: 정보 공유 제한을 나타내는 Traffic Light Protocol 분류.
    유형: string
  - name: adversary
    설명: pulse와 관련된 위협 행위자, 그룹 또는 적대 세력의 이름이나 식별자.
    유형: string
  - name: target_countries
    설명: pulse에 설명된 위협이 표적으로 삼는 국가 또는 지역.
    유형: array
    요소:
      유형: string
  - name: attack_ids
    설명: 위협에 매핑된 MITRE ATT&CK 기법 ID(예: T1016, T1059).
    유형: array
    요소:
      유형: string
      indicators:
        - mitre_attack_technique
  - name: indicator
    필수: true
    설명: 실제 indicator 값(예: IP 주소, 도메인 이름, 파일 해시, URL).
    유형: string
    indicators:
      - ip
      - domain
      - md5
      - sha1
      - sha256
      - email
      - cve
  - name: indicator_type
    설명: indicator 유형(예: 'IPv4', 'domain', 'hostname', 'email', 'URL', 'FileHash-MD5', 'FileHash-SHA256').
    유형: string
  - name: indicator_created
    설명: indicator가 생성된 시점의 타임스탬프.
    유형: timestamp
    timeFormats:
      - '%Y-%m-%dT%H:%M:%S'
  - name: indicator_expiration
    설명: indicator가 만료되거나 무효화되는 시점의 타임스탬프.
    유형: timestamp
    timeFormats:
      - '%Y-%m-%dT%H:%M:%S'
```


---

# Agent Instructions: 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/enrichment/otx.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.
