# Google Threat Intelligence (Beta)

## 개요

{% hint style="info" %}
Google Threat Intelligence enrichment는 Panther 버전 1.123부터 오픈 베타로 제공되며, 모든 고객이 사용할 수 있습니다. 버그 리포트와 기능 요청 사항은 Panther 지원 팀에 공유해 주세요.
{% endhint %}

[Google Threat Intelligence](https://www.virustotal.com/) 는 포괄적인 위협 인텔리전스 데이터를 제공합니다. 이 통합은 [Google Threat Intelligence IoC Stream API](https://gtidocs.virustotal.com/docs/ioc-stream-guide) 를 사용하여 사용자가 팔로우하는 Google Threat Intelligence 컬렉션에서 Indicators of Compromise(IoC)의 거의 실시간 피드를 수집하고, 이를 Panther에 수집된 로그 이벤트와 매칭하여 높은 정확도의 알림을 생성합니다.

{% hint style="warning" %}
Panther에서 Google Threat Intelligence enrichment를 사용하려면 [Premium API key](https://virustotal.readme.io/reference/public-vs-premium-api) 와 Google Threat Intelligence 계정에서 활성화된 IoC 스트림 구독이 필요합니다.

IoC 스트림은 Google Threat Intelligence 사용자에 연결됩니다. 즉, API 키를 소유한 사용자가 팔로우하는 컬렉션의 IoC만 받을 수 있습니다. Panther에 제공하는 API 키가 수집하려는 컬렉션을 구독한 동일한 Google Threat Intelligence 사용자에게 속해 있는지 확인하세요.
{% endhint %}

## Panther에서 Google Threat Intelligence enrichment가 작동하는 방식

기본적으로 Google Threat Intelligence는 Panther 환경의 모든 로그 소스에 대해 실행되도록 구성되어 있습니다([원하는 경우 로그 유형에 대해 비활성화할 수도 있습니다](#enabling-disabling-or-modifying-google-threat-intelligence-enrichment-for-a-log-type)). Panther는 각 수신 로그 이벤트가 디택션 엔진을 통과하기 전에, 모든 로그 유형 전반에서 Google Threat Intelligence의 Panther 관리형 enrichment와 일치하는지 확인하려고 시도합니다.

Panther가 [일치를 식별하면](#how-a-match-between-a-log-event-and-google-threat-intelligence-is-made) 수신 이벤트와 Google Threat Intelligence 항목 사이에서 일치가 발견된 경우, Google Threat Intelligence 데이터는 최상위 `p_enrichment` 키 아래에 일치하는 로그 이벤트에 추가됩니다. 이후 디택션 로직과 검색에서 이를 참조할 수 있습니다.

Panther는 구독한 Google Threat Intelligence 컬렉션에서 매시간 새 IoC를 가져옵니다. 각 가져오기는 마지막 성공 실행 이후 스트림에 추가된 IoC만 가져오며, 이전에 가져온 IoC는 조회 테이블에 유지됩니다(IoC `id`)를 기준으로 중복 제거). 구성된 최대 보관 기간보다 오래된 IoC는 각 새로 고침 시 자동으로 필터링됩니다.

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

### 로그 이벤트와 Google Threat Intelligence 간 일치가 이루어지는 방식

로그 이벤트는 Google Threat Intelligence의 Panther 관리형 enrichment 데이터로 enrichment됩니다( `p_enrichment`) 아래) 다음 사이에서 일치가 발견되는 경우:

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

## Google Threat Intelligence enrichment 설정

### 1단계: Google Threat Intelligence IoC 컬렉션 구성

Panther에서 Google Threat Intelligence enrichment를 설정하기 전에, Panther가 위협 인텔리전스 데이터를 가져올 수 있도록 Google Threat Intelligence 계정에서 IoC 스트림 구독을 구성해야 합니다.

1. 에 로그인하세요 [Google Threat Intelligence](https://www.virustotal.com/).
2. 로 이동하세요 **IoC Collections** 섹션으로 대시보드에서 이동하세요.

<figure><img src="/files/7ecfeade4ca72b284a2ccd64eef0993e6a50d6da" alt="Google Threat Intelligence IoC Collections page showing available collections"><figcaption></figcaption></figure>

3. 관심 있는 컬렉션을 찾아 클릭하세요.

<figure><img src="/files/823245ee2f733578bd68d7f976411a34dce5c262" alt="Google Threat Intelligence collection detail page with Follow button"><figcaption></figcaption></figure>

4. 모니터링하려는 각 컬렉션에 대해:
   * 클릭하세요 **Follow**.
   * 스트림에서 새 IoC를 받도록 토글을 활성화하세요.
   * 클릭하세요 **기본 설정 저장**.

<figure><img src="/files/8e550bacf53e7c28f7fc1670e0a935145e223331" alt="Follow dropdown with IoC stream toggle enabled"><figcaption></figcaption></figure>

5. 구독하려는 모든 컬렉션에 대해 반복하세요.

{% hint style="info" %}
IoC 스트림에 대한 자세한 안내는 [Google Threat Intelligence IoC Stream Guide](https://gtidocs.virustotal.com/docs/ioc-stream-guide).
{% endhint %}

### 2단계: Panther에서 Google Threat Intelligence enrichment 생성

Panther에서 Google Threat Intelligence enrichment를 구성하려면:

1. Panther Console의 왼쪽 탐색 모음에서 다음을 클릭하세요 **Configure** > **Enrichments**.
2. 오른쪽 상단에서 다음을 클릭하세요 **Create New**.
3. 클릭하세요 **Google Threat Intelligence**.

<figure><img src="/files/26aebfc7ebff07dd99adfbc9e4e47ed2ccc962ab" alt="Panther enrichment sources page with Google Threat Intelligence card"><figcaption></figcaption></figure>

4. 의 **Configuration** 탭에서 **Settings** 양식에 다음 필드의 값을 입력하세요:
   * **Enrichment Name**: 통합을 설명하는 이름을 입력하세요.
   * **API Token**: Google Threat Intelligence API 키를 입력하세요.
   * **Indicator TTL (Days)**: enrichment 테이블에 보관할 IoC의 최대 일수를 설정하세요. 이 기준보다 오래된 IoC는 각 새로 고침 중 자동으로 필터링되며 영구적으로 제거됩니다.

<figure><img src="/files/89c66a7b7b1a801577881991bcfe8b580be187ea" alt="Google Threat Intelligence Settings form"><figcaption></figcaption></figure>

5. 클릭하세요 **Setup**.
6. 의 **Verification** 탭에서 통합이 성공적으로 생성되었는지 확인한 다음 **View Enrichments**.
   * 새 Google Threat Intelligence 구성이 **Configure** > **Enrichments** 페이지에 표시됩니다.

<figure><img src="/files/e4cbcd559d08606a5e27fde157906802b25cbb2c" alt="Google Threat Intelligence Verification page confirming setup is complete"><figcaption></figcaption></figure>

{% hint style="info" %}
Google Threat Intelligence enrichment를 추가한 후 수신 로그 데이터가 enrichment되기 시작하기까지 몇 분 정도 지연이 있을 수 있습니다. 이는 초기 데이터 동기화가 완료될 시간을 확보하기 위한 것입니다.
{% endhint %}

## 로그 유형에 대해 Google Threat Intelligence enrichment 활성화, 비활성화 또는 수정

Google Threat Intelligence enrichment는 Panther 인스턴스의 각 로그 유형에 대해 기본적으로 활성화되어 있습니다.

특정 로그 유형에 대해 Google Threat Intelligence enrichment를 비활성화(또는 나중에 활성화)하거나 로그 유형의 selector를 변경하려면:

1. Panther Console의 왼쪽 탐색 모음에서 다음을 클릭하세요 **Configure** > **Enrichments**.
2. Enrichments 목록에서 수정하려는 Google Threat Intelligence 소스를 찾아 해당 이름을 클릭하세요.
3. 다음을 클릭하세요 **Enriched Log Types** 탭.
4. 오른쪽에서 다음을 클릭하세요 **Edit Log Types**.
   * 이 enrichment를 새 로그 유형에 대해 활성화하려면 다음을 클릭하세요 **Add Log Type**.
     * 새로 생성된 행에서 **Log Type** 을 선택하고 **Selectors** 필드에서 하나 이상의 이벤트 필드를 선택하세요.
   * 로그 유형에 대해 이 enrichment를 비활성화하려면 해당 로그 유형의 행을 찾아 휴지통 아이콘을 클릭하세요.
     * 로그 유형이 목록에 보이지 않으면 **Auto-mapped Log Types**옆의 드롭다운 화살표를 클릭하세요. 해당 로그 유형의 행을 찾아 편집 아이콘을 클릭하세요.
   * 로그 유형의 selector를 변경하려면 **Selectors** 필드를 클릭하여 이벤트 필드 선택을 추가하거나 제거하세요.
5. 오른쪽 상단에서 다음을 클릭하세요 **저장**.

## Google Threat Intelligence enrichment 테이블 항목 예시

아래는 Panther에 의해 정규화된 Google Threat Intelligence IoC 항목의 예시입니다. 구독한 컬렉션의 각 IoC는 고유한 행을 생성하며, indicator 값은 `match` 필드에 저장됩니다.

```json
{
  "match": ["198.51.100.42"],
  "type": "ip_address",
  "id": "198.51.100.42",
  "gti_url": "https://www.virustotal.com/gui/ip-address/198.51.100.42",
  "last_analysis_date": "2025-03-10T14:30:00Z",
  "tags": ["malware", "c2"],
  "country": "US",
  "as_owner": "예시 ISP",
  "asn": 12345,
  "network": "198.51.100.0/24",
  "continent": "NA",
  "regional_internet_registry": "ARIN",
  "reputation": -15,
  "last_analysis_stats": {
    "malicious": 12,
    "suspicious": 3,
    "undetected": 55,
    "harmless": 2,
    "timeout": 0
  },
  "p_event_time": "2025-03-10T14:30:00Z",
  "p_log_type": "GTI.IoCStream",
  "p_parse_time": "2025-03-10T15:00:00Z",
  "p_row_id": "abc123def456ghi789",
  "p_schema_version": 0
}
```

### `GTI.IoCStream` 스키마

다음은 Panther 관리형 `GTI.IoCStream` 스키마로, Google Threat Intelligence IoC 데이터가 Panther에 저장되는 방식을 나타냅니다. 구독한 컬렉션의 각 indicator는 개별 행이 됩니다.

```yaml
스키마: GTI.IoCStream
설명: GTI IoC Stream API에서 가져온 Google Threat Intelligence(GTI) 침해 지표(IoC)로, 파일, IP, 도메인 및 URL을 포함합니다
referenceURL: https://gtidocs.virustotal.com/reference/ioc-collection-object
필드:
  - name: match
    필수: true
    설명: indicator 값(예: 파일 해시, IP 주소, 도메인, URL).
    유형: array
    요소:
      유형: string
      indicator들:
        - ip
        - domain
        - md5
        - sha1
        - sha256
        - url
  - name: type
    필수: true
    설명: 'indicator 유형: file, ip_address, domain 또는 url.'
    유형: string
  - name: gti_url
    설명: Google Threat Intelligence에서 이 indicator로 연결되는 직접 링크.
    유형: string
  - name: id
    설명: 침해 지표의 고유 식별자.
    유형: string
  - name: last_analysis_date
    설명: indicator가 마지막으로 스캔된 시간을 나타내는 UTC 타임스탬프.
    유형: timestamp
    timeFormats:
      - unix
    isEventTime: true
  - name: tags
    설명: 이 indicator와 관련된 대표 속성 목록.
    유형: array
    요소:
      유형: string
  - name: last_modified_date
    설명: indicator 정보가 마지막으로 업데이트된 시간을 나타내는 UTC 타임스탬프(file/domain/url 유형).
    유형: timestamp
    timeFormats:
      - unix
  - name: last_modification_date
    설명: indicator 정보가 마지막으로 업데이트된 시간을 나타내는 UTC 타임스탬프(ip_address 유형).
    유형: timestamp
    timeFormats:
      - unix
  - name: first_seen_itw_date
    설명: indicator가 실제 환경에서 처음 관찰된 UTC 타임스탬프.
    유형: timestamp
    timeFormats:
      - unix
  - name: last_seen_itw_date
    설명: 실제 환경에서 indicator가 가장 최근에 관찰된 시점의 UTC 타임스탬프.
    유형: timestamp
    timeFormats:
      - unix
  - name: creation_date
    설명: 가능한 경우 파일 메타데이터 또는 도메인 WHOIS 데이터에서 추출한 UTC 타임스탬프.
    유형: timestamp
    timeFormats:
      - unix
  - name: last_submission_date
    설명: indicator가 Google Threat Intelligence에 가장 최근 게시된 날짜의 UTC 타임스탬프.
    유형: timestamp
    timeFormats:
      - unix
  - name: type_tags
    설명: 특정 파일 유형과 관련된 더 광범위한 태그.
    유형: array
    요소:
      유형: string
  - name: threat_severity
    설명: 심각도 수준(SEVERITY_NONE, LOW, MEDIUM, HIGH 또는 UNKNOWN)과 계산된 타임스탬프를 포함한 위협 심각도 수준 및 세부 정보.
    유형: json
  - name: meaningful_name
    설명: 파일의 모든 이름 중 가장 의미 있는 이름.
    유형: string
  - name: type_description
    설명: 파일 유형을 설명합니다(예: PE32 실행 파일, PDF 문서).
    유형: string
  - name: country
    설명: IP 주소가 지리적으로 위치한 국가를 나타내는 ISO-3166 국가 코드.
    유형: string
  - name: as_owner
    설명: 해당 IP가 속한 자율 시스템의 소유자.
    유형: string
  - name: asn
    설명: 해당 IP가 속한 자율 시스템 번호.
    유형: bigint
  - name: network
    설명: 해당 IP가 속한 IPv4 네트워크 범위.
    유형: string
    indicator들:
      - net_addr
  - name: categories
    설명: 카테고리화 서비스와 도메인 또는 URL에 할당된 범주를 매핑하는 사전.
    유형: json
  - name: whois
    설명: 관련 whois 서버에서 반환된 WHOIS 정보.
    유형: string
  - name: url
    설명: 스캔된 원본 URL.
    유형: string
    indicator들:
      - url
  - name: last_final_url
    설명: 원본 URL이 리디렉션되는 경우 최종 목적지 URL.
    유형: string
    indicator들:
      - url
  - name: md5
    설명: 파일의 MD5 해시.
    유형: string
    indicator들:
      - md5
  - name: sha1
    설명: 파일의 SHA-1 해시.
    유형: string
    indicator들:
      - sha1
  - name: sha256
    설명: 파일의 SHA-256 해시.
    유형: string
    indicator들:
      - sha256
  - name: gti_confidence_score
    설명: 악성일 가능성을 나타내는 신뢰도 점수(0-100).
    유형: bigint
  - name: reputation
    설명: 커뮤니티 투표를 기반으로 계산된 점수.
    유형: bigint
  - name: size
    설명: 바이트 단위 파일 크기.
    유형: bigint
  - name: type_extension
    설명: 파일 확장자를 지정합니다.
    유형: string
  - name: type_tag
    설명: 검색에서 필터링하기 위한 파일 유형 태그.
    유형: string
  - name: names
    설명: 파일과 연결된 모든 파일 이름.
    유형: array
    요소:
      유형: string
  - name: first_submission_date
    설명: indicator가 Google Threat Intelligence에 처음 제출된 UTC 타임스탬프.
    유형: timestamp
    timeFormats:
      - unix
  - name: times_submitted
    설명: indicator가 Google Threat Intelligence에 게시된 횟수.
    유형: bigint
  - name: unique_sources
    설명: 파일이 게시된 서로 다른 소스의 수.
    유형: bigint
  - name: tlsh
    설명: 파일의 TLSH locality-sensitive hash.
    유형: string
  - name: permhash
    설명: 파일의 Permhash.
    유형: string
  - name: vhash
    설명: 내부 유사도 클러스터링 알고리즘 값.
    유형: string
  - name: capabilities_tags
    설명: 파일 기능과 관련된 태그(프리미엄 전용).
    유형: array
    요소:
      유형: string
  - name: downloadable
    설명: 파일을 다운로드할 수 있는지 여부(프리미엄 전용).
    유형: boolean
  - name: continent
    설명: ISO-3166 형식을 사용하는 지리적 지역 코드.
    유형: string
  - name: jarm
    설명: TLS 핑거프린팅용 JARM 해시.
    유형: string
  - name: last_https_certificate_date
    설명: SSL 인증서를 가져온 UTC 타임스탬프.
    유형: timestamp
    timeFormats:
      - unix
  - name: regional_internet_registry
    설명: RIR 지정(AFRINIC, ARIN, APNIC, LACNIC 또는 RIPE NCC).
    유형: string
  - name: whois_date
    설명: 마지막 WHOIS 레코드 새로 고침의 UTC 타임스탬프.
    유형: timestamp
    timeFormats:
      - unix
  - name: last_http_response_code
    설명: HTTP 응답 상태 코드.
    유형: bigint
  - name: last_http_response_content_length
    설명: 바이트 단위 응답 콘텐츠 크기.
    유형: bigint
  - name: last_http_response_content_sha256
    설명: HTTP 응답 본문 콘텐츠의 SHA256 해시.
    유형: string
    indicator들:
      - sha256
  - name: outgoing_links
    설명: 페이지에서 발견된 다른 도메인으로의 링크.
    유형: array
    요소:
      유형: string
      indicator들:
        - url
  - name: redirection_chain
    설명: 리디렉션 기록 URL(최종 URL 제외).
    유형: array
    요소:
      유형: string
      indicator들:
        - url
  - name: title
    설명: 웹페이지 제목.
    유형: string
  - name: has_content
    설명: URL에 콘텐츠가 포함되어 있는지 여부.
    유형: boolean
  - name: last_dns_records_date
    설명: DNS 레코드를 가져온 UTC 타임스탬프.
    유형: timestamp
    timeFormats:
      - unix
  - name: last_update_date
    설명: WHOIS의 업데이트 날짜(UTC).
    유형: timestamp
    timeFormats:
      - unix
  - name: registrar
    설명: 도메인을 등록한 회사.
    유형: string
  - name: last_analysis_stats
    설명: malicious, suspicious, undetected, harmless, timeout, confirmed-timeout, failure 및 type-unsupported 판정 수를 포함한 최신 스캔 결과 요약.
    유형: json
  - name: trid
    설명: TrID 파일 유형 식별 결과이며, 각 항목에는 감지된 file_type과 그 확률이 포함됩니다.
    유형: array
    요소:
      유형: json
  - name: available_tools
    설명: 파일에 사용할 수 있는 추가 분석 도구 목록(예: sigcheck, exiftool).
    유형: array
    요소:
      유형: string
  - name: detectiteasy
    설명: Detect It Easy 파일 유형 식별 결과로, filetype과 type, name, info를 포함한 일치 값 배열이 포함됩니다.
    유형: json
  - name: popular_threat_classification
    설명: suggested_threat_label, popular_threat_name 및 popular_threat_category를 포함한 일반적인 디택션 이름과 범주를 기반으로 한 위협 분류.
    유형: json
  - name: exiftool
    설명: ExifTool 유틸리티로 추출한 메타데이터로, 파일 유형, MIME 유형, CPU 아키텍처 및 기타 형식별 메타데이터 필드를 포함합니다.
    유형: json
  - name: crowdsourced_ai_results
    설명: 크라우드소싱된 AI 분석 결과로, 각 항목에는 자연어 분석 요약, 소스, 범주, 판정 및 결과 ID가 포함됩니다.
    유형: array
    요소:
      유형: json
  - name: sources
    설명: IoC 항목과 연결된 서로 다른 소스.
    유형: array
    요소:
      유형: json
```

## 디택션에서 Google Threat Intelligence 데이터를 사용하는 예시

Google Threat Intelligence enrichment 데이터는 알려진 위협을 식별하기 위한 디택션 로직에 사용할 수 있습니다. 다음 예시는 이벤트가 Google Threat Intelligence indicator와 일치했는지, 그리고 악성으로 표시되었는지 확인합니다:

```python
def 룰(event):
    enrichment = event.get('p_enrichment', {})
    gti_data = enrichment.get('GTI.IoCStream', {})

    if not gti_data:
        return False

    # malicious 판정을 위한 분석 통계를 확인합니다
    stats = gti_data.get('last_analysis_stats', {})
    malicious_count = stats.get('malicious', 0)

    return malicious_count > 0
```

## Google Threat Intelligence enrichment 문제 해결

### 일반적인 문제

* **데이터가 가져와지지 않음**: Google Threat Intelligence 계정에 활성화된 IoC 컬렉션 구독이 있는지 확인하세요. Panther가 데이터를 수신하려면 최소 하나의 컬렉션을 팔로우하고 활성화해야 합니다. 또한 Panther에 구성된 API 키가 해당 컬렉션을 구독한 동일한 Google Threat Intelligence 사용자에게 속하는지도 확인하세요. IoC 스트림은 사용자별 범위로 지정되므로, 다른 사용자의 키를 사용하면 빈 스트림이 반환됩니다.
* **API 키 문제**: Google Threat Intelligence API 키가 유효한지, [Premium API key](https://virustotal.readme.io/reference/public-vs-premium-api), 그리고 IoC 스트림 액세스에 적절한 권한이 있는지 확인하세요.
* **데이터 최신성**: 사용 사례에 적합한지 확인하기 위해 **Indicator TTL (Days)** 설정을 점검하세요. 이 임계값보다 오래된 IoC는 자동으로 필터링됩니다.

추가 문제 해결을 위해 Panther Knowledge Base를 방문하여 [enrichment에 관한 문서 보기](https://help.panther.com/Enrichment) 를 통해 자주 묻는 질문에 대한 답변을 확인하고 일반적인 오류와 문제를 해결하세요.


---

# 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/google-threat-intelligence.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.
