# HTTP 소스

## 개요

Panther의 HTTP 로그 수집 기능을 사용하면, 귀하(또는 제3자)는 웹훅을 통해 로그 이벤트를 Panther로 직접 보낼 수 있습니다. HTTP 로그 소스를 생성하면 Panther는 요청을 보낼 수 있는 URL 엔드포인트를 제공합니다 `POST` 수집할 데이터를 포함한 요청을 보낼 수 있습니다.

직접 API 풀러가 없는 로그 소스의 경우, HTTP 소스를 사용하면 추가 인프라를 설정하지 않고도 Panther로 데이터를 수집할 수 있습니다(다른 [데이터 전송 수단](/ko/data-onboarding/data-transports.md)을 사용하는 경우처럼 [S3](/ko/data-onboarding/data-transports/aws/s3.md) 또는 [Google Cloud Storage](/ko/data-onboarding/data-transports/google/cloud-storage.md)).

{% hint style="info" %}
Panther의 HTTP 소스는 실제로는 HTTPS 소스이며, 이는 Panther가 제공하는 엔드포인트가 다음으로 시작함을 의미합니다 `https://`. 이러한 소스는 "HTTP" 또는 "HTTPS"로 혼용되어 불리지만, 항상 암호화(TLS)로 보호됩니다.
{% endhint %}

## 페이로드 요구 사항

HTTP 엔드포인트를 통해 Panther로 데이터를 보낼 때는 특정 사양이 적용됩니다.

### 최대 크기

지원되는 최대 페이로드 크기는 1MB입니다. 이 제한에는 헤더가 포함됩니다.

다음과 같이 할 수 있습니다 [압축하여](#compression) 처리량을 최대화하기 위해 전송 전에 페이로드를 압축할 수 있습니다.

### 압축

페이로드는 선택적으로 압축된 상태로 전송할 수 있습니다. 압축 사양에 대해 자세히 알아보려면 다음을 참조하세요 [Panther에서 압축된 데이터 수집](/ko/data-onboarding/data-transports.md#ingesting-compressed-data-in-panther).

### 스트림 유형

Panther는 HTTP 소스를 통해 수집된 데이터의 스트림 유형을 자동으로 추론합니다. 다음 스트림 유형이 지원됩니다:

* JSON
* 줄
* JSON 배열
* XML

다음에서 [각 스트림 유형의 설명과 예시를 확인하세요](/ko/data-onboarding/custom-log-types/reference.md#stream-type).

## 인증

인증된 소스의 요청만 처리하도록 HTTPS 엔드포인트를 보호하기 위해 Panther는 다양한 인증 모드를 제공합니다.

### **공유 비밀**

공유 비밀 인증(토큰 인증이라고도 함)을 사용하면, 소스 설정 중에 헤더 이름과 공유 비밀 값을 구성합니다. 다음 요청을 보내는 엔터티는 `POST` Panther에 대한 요청에는 해당 이름과 비밀 값을 가진 헤더를 포함해야 합니다. Panther는 구성과 일치하는 헤더와 비밀이 포함된 페이로드만 수락합니다.

이 방법이 공유 비밀이라고 불리는 이유는 비밀이 Panther와 요청을 보내는 엔터티 사이에 공유되기 때문입니다 `POST` 예: 로그 이벤트를 내보내는 서드파티 SaaS 도구.

### HMAC

HMAC 인증을 사용하면, 소스 설정 중에 헤더 이름, 비밀 키 값, 해싱 알고리즘을 구성합니다.

다음을 보내는 엔터티는 `POST` Panther에 대한 요청에서는 각 요청의 페이로드를 해시하고, 비밀 키 값을 사용해 서명을 생성한 다음, 그 서명을 헤더에 포함해야 합니다. 그러면 Panther는 헤더에서 서명을 가져와 동일한 서명 계산을 비밀 키로 수행합니다. 서명이 일치하는 요청만 수락됩니다.

#### HMAC 해시 서명 계산하기

HMAC 인증을 사용하여 HTTP 소스를 설정한 후에는 각 `POST` 요청마다 해시 서명을 계산하여 새 엔드포인트로 전송해야 합니다. 이렇게 하려면:

1. HMAC hex digest와 Panther에 입력한 비밀 키를 사용해 요청 페이로드의 해시를 계산합니다.
2. 해시를 16진수 문자열로 변환합니다.
   * 여기에서 [HMAC 해시 서명을 생성하는 예시 코드 조각](#example-code-snippet-for-generating-the-hmac-hash-signature) 아래.
3. 요청 헤더에 16진수 문자열 값을 다음과 같이 포함합니다 `{"<header name>": "sha256=<hex string>"}` 또는 `{"<header name>": "sha1=<hex string>"}`는 선택한 해싱 알고리즘에 따라 다릅니다.

<details>

<summary>HMAC 해시 서명을 생성하는 예시 코드 조각</summary>

다음 코드 조각을 사용하여 `<hex_string>` 값을 생성할 수 있습니다(가정: `sha256` 해싱 알고리즘):

```python
import hmac, hashlib

def signature(body: bytes, secret: bytes) -> str:
    sig = hmac.new(secret, body, hashlib.sha256).hexdigest()
    return f"sha256={sig}"
```

</details>

### Bearer

베어러 인증을 사용하면, 소스 설정 중에 베어러 토큰 값을 정의합니다. 다음 요청을 보내는 엔터티는 `POST` Panther에 대한 요청에는 다음 형식의 헤더를 포함해야 합니다 `Authorization: Bearer <token_value_here>`. Panther는 일치하는 베어러 토큰이 있는 요청만 수락합니다.

### 기본

기본 인증을 사용하면, 소스 설정 중에 사용자 이름과 비밀번호를 정의합니다. 다음 요청을 보내는 엔터티는 `POST` Panther에 대한 요청에는 다음 형식의 헤더를 포함해야 합니다 `Authorization: Basic aGVsbG8=`. 다음 문자열은 `기본` 키워드 뒤에 오는 것은 [RFC 7617](https://datatracker.ietf.org/doc/html/rfc7617#section-2)을 따르며, 즉 발신자는 다음 값의 인코딩된 문자열을 보내야 합니다 `username:password` 다음을 사용하여 `base64`. Panther는 사용자 이름과 비밀번호가 일치하는 요청만 수락합니다.

### **없음**

매우 권장되지는 않지만, 인증 없이 엔드포인트를 구성할 수 있습니다. 이는 Panther가 들어오는 요청에 대해 *어떠한* 인증 검사도 수행하지 않음을 의미하며, 사실상 URL을 모든 `POST` 요청에 열어두는 것과 같습니다.

{% hint style="warning" %}
엔드포인트에 인증을 설정하는 것을 강력히 권장합니다. **없음** 는 발신자가 제공하는 헤더를 제어할 수 없는 상황에서 제공됩니다.
{% endhint %}

## Panther에서 HTTP 로그 소스를 설정하는 방법

Panther에서 HTTP 로그 소스를 설정하려면 아래 단계를 따르세요. 또한 다음을 볼 수 있습니다 [데이터 수집 비디오 개요](/ko/data-onboarding.md#video-overview) 에서 HTTP 소스 설정을 빠르게 살펴볼 수 있습니다.

### Panther에서 HTTP 로그 소스 생성하기

1. 왼쪽 탐색 모음에서 Panther Console의 **구성** > **로그 소스**.
2. 를 클릭하세요. 오른쪽 상단에서 **새로 만들기.**
3. 을 클릭하세요. **HTTP** 타일.
4. 를 클릭할 수 있습니다.  **구성** 페이지의 **Panther Console을 통해 파일 업로드로 사용자 지정 인리치먼트 데이터 가져오기** 섹션에서 다음 필드의 값을 입력하세요:
   * **소스 이름**: 소스에 대한 설명적인 이름을 입력합니다.
   * **스키마 - 선택 사항**: 이 소스가 수집할 하나 이상의 로그 유형을 선택합니다.
     * 이 필드는 선택 사항입니다. 소스 생성 후에도 이 소스에 스키마를 연결할 수 있습니다. 스키마가 연결되기 전에 HTTP 소스로 전송된 데이터는 [스키마 추론](/ko/data-onboarding/custom-log-types.md#inferring-a-custom-schema-from-http-data-received-in-panther).
5. 에서 **인증 유형 선택** 섹션에서 다음을 선택합니다 **인증 방법** 선택한 [인증 모드에 따라](#authentication)**.**\
   ![Under an Authentication header is the question: How would you like Panther to authenticate data sent to this log source? Then, in an open dropdown menu, are five options: Shared Secret, HMAC, Bearer, Basic, None](/files/6ef1a7e6caa54dd299d535994a35512e5d348e04)
6. 아래 지침을 따르세요 **인증 방법** 선택한 항목에 대해:
   * **공유 비밀**: 다음을 입력하세요 **헤더 이름**를 생성하고, 다음을 생성합니다 **공유 비밀 값**.
     * 다음을 안전하게 복사하세요 **공유 비밀 값**를 안전한 위치에 보관하세요. 이 값이 표시되는 것은 이때가 마지막입니다 **공유 비밀 값**.
   * **HMAC**: 다음을 입력하세요 **헤더 이름**를 생성하고, 다음을 생성합니다 **비밀 키 값**를 입력하고 다음을 선택합니다 **해싱 알고리즘** (다음 중 하나) **SHA 256** 또는 **SHA 1**).
     * 다음을 안전하게 복사하세요 **비밀 키 값**를 안전한 위치에 보관하세요. 이 값이 표시되는 것은 이때가 마지막입니다 **비밀 키 값**.
   * **Bearer**: 다음을 입력하세요 **베어러 토큰**.
     * 입력하는 값에는 "Bearer"를 포함하지 마세요.
     * 다음을 안전하게 보관하세요 **베어러 토큰** 값. Panther 콘솔에서는 표시되지 않습니다.
   * **기본**: 입력 **사용자 이름** 및 **비밀번호** 값을.
     * 다음을 안전하게 보관하세요 **비밀번호** 값. Panther 콘솔에서는 표시되지 않습니다.
   * **없음**: 추가 구성은 필요하지 않습니다.
7. 클릭 **설정**. 성공 화면으로 이동됩니다:\\

   <figure><img src="/files/e0820e5acb9452e294cfe3ba72060f0fbbfd3b32" alt="The success screen reads, &#x22;Everything looks good! Panther will now automatically pull &#x26; process logs from your account&#x22;" width="281"><figcaption></figcaption></figure>

   * 다음을 확인해 두세요 **HTTP 소스 URL**. 웹훅은 다음을 수행해야 합니다 `POST` 이 엔드포인트로 요청을 보냅니다.
   * 선택적으로 하나 이상의 [디택션 팩](https://docs.panther.com/detections/panther-managed/packs).
   * 아직 하지 않았다면, 다음을 클릭하세요 **스키마 연결 또는 추론** 하여 소스에 하나 이상의 스키마를 연결합니다. 또는 다음을 수행할 수 있습니다 [데이터를 수신한 후 스키마를 추론](/ko/data-onboarding/custom-log-types.md#how-to-infer-a-schema).
   * The **이벤트가 처리되지 않을 때 알러트 트리거** 설정의 기본값은 **YES**입니다. 일정 시간이 지난 후 로그 소스에서 데이터 흐름이 중단되면 알러트를 받게 되므로 이 설정을 활성화된 상태로 유지하는 것을 권장합니다. 시간 범위는 구성 가능하며 기본값은 24시간입니다.\\

   <figure><img src="/files/7db146cd7acee3d0704a4a8b2157f230cfa22168" alt="The &#x22;Trigger an alert when no events are processed&#x22; toggle is set to YES. The &#x22;How long should Panther wait before it sends you an alert that no events have been processed&#x22; setting is set to 1 Day" width="320"><figcaption></figcaption></figure>

   * 엔드포인트 생성에는 최대 5분이 걸릴 수 있으며, 일반적으로 3분 이내에 완료됩니다.
     * 생성 과정을 모니터링하려면 다음을 클릭하세요 **로그 소스 보기**. 소스의 세부 정보 페이지로 이동하며, 여기서 다음을 볼 수 있습니다 **소스 상태**:\\

       <figure><img src="/files/7001d21878a0e003989222d9dbfb91f559bb57a3" alt="" width="375"><figcaption></figcaption></figure>

## HTTP 로그 소스로 데이터 보내기

HTTP 로그 소스를 생성한 후에는 다음을 수행하여 Panther로 데이터를 보낼 수 있습니다 `POST` 소스 URL로 요청을 보냅니다.

요청이 다음을 통과하도록 하세요 [인증 방법](#authentication) 소스에 대해 구성한.

### 다음을 사용하는 예 `curl`

```sh
curl --data '{ "hello": "world" }' \
    -H "x-custom-secret: mysecret" \
    https://{YOUR_URL}
```

## 오류 처리

HTTP 엔드포인트가 다음을 반환하는 경우 `4xx` 또는 `5xx` 상태 코드, Panther는 해당 요청을 자동으로 재시도하지 않습니다. 서버 가용성에 일시적인 문제가 있었을 수 있으므로, 발신자가 요청을 재시도하는 것이 권장됩니다. 오류가 계속되면 다음으로 [Panther 지원팀에 문의하세요](/ko/resources/help.md#contact-panther-support).

## 수집된 로그 보기

로그 소스가 구성된 후에는 다음을 사용하여 수집된 데이터를 검색할 수 있습니다 [검색](/ko/search/search-tool.md) 또는 [Data Explorer](/ko/search/data-explorer.md).


---

# 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/data-onboarding/data-transports/http.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.
