> 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/data-onboarding/supported-logs/cloudflare.md).

# Cloudflare 로그

## 개요

Panther는 Cloudflare 로그를 Cloudflare의 [Logpush](https://developers.cloudflare.com/logs/about/) 서비스로 수집할 수 있으며, 이 서비스는 로그를 Amazon Web Services (AWS) S3, Google Cloud Storage (GCS), 또는 Azure Blob Storage로 직접 스트리밍합니다.

{% hint style="info" %}
Cloudflare의 Logpush는 Cloudflare Enterprise 고객에게만 제공된다는 점에 유의하세요. 이 페이지의 일부 Cloudflare 로그 유형(예: [감사 로그](https://developers.cloudflare.com/logs/reference/log-fields/account/audit_logs))는 Logpush 없이 가져올 수 있지만, Panther에서 지원하는 스키마는 Logpush로 전달될 때의 데이터 구조에 의존합니다.
{% endhint %}

{% hint style="info" %}
Panther는 Cloudflare에서 제공되는 30개 이상의 로그 유형 중 4개를 기본적으로 지원합니다. Cloudflare 데이터세트에 지원되지 않는 로그 유형이 포함되어 있다면, 대신 [S3 Data Transport 소스](/ko/data-onboarding/data-transports/aws/s3.md).

다음 중 아무거나 연결할 수 있습니다: [Panther에서 관리하는 Cloudflare 스키마](#supported-log-types) (제외 [`Cloudflare.Firewall`](#cloudflare.firewall))를 이 사용자 지정 로그 소스에 그대로 연결할 수 있습니다. Firewall 로그의 경우, 관리형 [`Cloudflare.Firewall`](#cloudflare.firewall) 스키마를 복제한 다음 `kind` 필드를 편집하여 `required: true`.

추가 로그 유형의 경우, 새 사용자 지정 스키마를 생성할 때는 [스키마 추론](https://docs.panther.com/data-onboarding/custom-log-types#how-to-infer-a-schema) 샘플 이벤트에서 구조를 자동으로 생성하는 기능을 사용하세요.
{% endhint %}

## Cloudflare 로그를 Panther에 온보딩하는 방법

Cloudflare 로그는 S3 버킷, GCS 버킷 또는 Azure Blob 소스로 스트리밍하여 Panther로 수집할 수 있습니다.

### 사전 요구 사항

{% tabs %}
{% tab title="AWS S3" %}

* AWS 계정에 새 S3 버킷을 만드세요.
  * Cloudflare 로그 전용으로 새 S3 버킷을 만드는 것을 권장합니다. 기본 설정을 사용할 수 있습니다.
  * 버킷을 생성하는 리전을 기록해 두세요. Cloudflare에 이를 제공해야 합니다.
    {% endtab %}

{% tab title="GCP GCS" %}

* Google Cloud Platform (GCP) 계정에 새 GCS 버킷을 만드세요.
  * Cloudflare 로그 전용으로 새 GCS 버킷을 만드는 것을 권장합니다. 기본 설정을 사용할 수 있습니다.
    {% endtab %}

{% tab title="Azure Blob" %}

* Azure 계정에 새 Blob 스토리지를 만드세요.
  * Cloudflare 로그 전용으로 새 Blob 스토리지를 만드는 것을 권장합니다. 기본 설정을 사용할 수 있습니다.
    {% endtab %}
    {% endtabs %}

### 1단계: Panther에서 Cloudflare 소스 설정

1. Panther 콘솔의 왼쪽 탐색 표시줄에서 다음을 클릭합니다: **구성** > **로그 소스**.
2. 다음을 클릭합니다: **새로 만들기**.
3. “Cloudflare”를 검색한 다음 해당 타일을 클릭합니다.
   * 슬라이드아웃 패널에서, **전송 메커니즘** 오른쪽 상단의 드롭다운은 다음 값으로 미리 채워집니다 **AWS S3 버킷** 옵션. 이 선택은 그대로 두거나 다음을 선택하세요: **Google Cloud Storage** 또는 **Azure Blob Storage**.
4. 다음을 클릭합니다: **설정 시작**.
5. 선택한 Data Transport를 구성하는 방법은 Panther 문서를 따르세요: [AWS S3](/ko/data-onboarding/data-transports/aws/s3.md), [Google Cloud Storage](/ko/data-onboarding/data-transports/google/cloud-storage.md) 또는 [Azure Blob Storage](/ko/data-onboarding/data-transports/azure/blob-storage.md).

### 2단계: Logpush를 구성하여 로그를 클라우드 스토리지 위치로 스트리밍

{% hint style="info" %}
Logpush 작업의 데이터세트 유형을 선택할 때, Cloudflare에는 계정 범위 데이터와 존 범위 데이터 옵션이 있다는 점에 유의하세요. [감사 로그](#cloudflare.audit) 는 계정 범위이며, 반면 [Firewall](#cloudflare.firewall), [HttpRequest](#cloudflare.httprequest), 그리고 [Spectrum](#cloudflare.spectrum) 는 존 범위입니다.
{% endhint %}

{% tabs %}
{% tab title="AWS S3" %}

* Cloudflare의 다음 지침을 따르세요: [Amazon S3에 Logpush 사용 설정 문서](https://developers.cloudflare.com/logs/get-started/enable-destinations/aws-s3/).
  {% endtab %}

{% tab title="GCP GCS" %}

* Cloudflare의 다음 지침을 따르세요: [Google Cloud Storage에 Logpush 사용 설정](https://developers.cloudflare.com/logs/get-started/enable-destinations/google-cloud-storage/) 문서.
  {% endtab %}

{% tab title="Azure Blob" %}

* Cloudflare의 다음 지침을 따르세요: [Microsoft Azure에 Logpush 사용 설정](https://developers.cloudflare.com/logs/get-started/enable-destinations/azure/) 문서.
  {% endtab %}
  {% endtabs %}

## Panther가 관리하는 탐지

참조 [Panther에서 관리하는](/ko/detections/panther-managed.md) Cloudflare용 룰은 다음의 [panther-analysis GitHub 저장소](https://github.com/panther-labs/panther-analysis/tree/master/rules/cloudflare_rules).

## 지원되는 로그 유형

### Cloudflare.Audit

Cloudflare UI에서 이벤트 필드를 선택할 때, 다음 필드를 포함해야 합니다: `When`, `ID`, 그리고 `ResourceType` 필드도 포함해야 합니다. 이는 Panther에서 필요하기 때문입니다.

```yaml
# Panther가 생성한 코드입니다. 수정하지 마세요. (@generated)
schema: Cloudflare.Audit
파서:
  native:
    name: Cloudflare.Audit
description: 감사 로그는 Cloudflare 계정 내에서 이루어진 변경 사항의 이력을 요약합니다. 감사 로그에는 로그인 및 로그아웃 같은 계정 수준 작업과 존 구성 변경이 포함됩니다.
referenceURL: https://developers.cloudflare.com/logs/reference/log-fields/account/audit_logs
fields:
  - name: ActionResult
    description: 작업이 성공했는지 여부
    유형: boolean
  - name: ActionType
    description: 수행된 작업의 유형
    type: string
  - name: ActorEmail
    description: 작업 주체의 이메일
    type: string
    표시자:
      - 이메일
  - name: ActorID
    description: Cloudflare 시스템에서 작업 주체의 고유 식별자
    type: string
    표시자:
      - 사용자명
  - name: ActorIP
    description: 작업 주체의 물리적 네트워크 주소
    type: string
    표시자:
      - ip
  - name: ActorType
    description: 감사 추적을 시작한 사용자 유형
    type: string
  - 이름: ID
    required: true
    description: 감사 로그의 고유 식별자
    type: string
  - name: Interface
    description: 감사 로그의 진입점 또는 인터페이스
    type: string
  - name: Metadata
    description: 감사 로그 관련 추가 정보입니다. 메타데이터는 key:value 쌍으로 구성됩니다. Key와 Value 형식은 ResourceType에 따라 달라질 수 있습니다.
    유형: json
  - name: NewValue
    description: 감사 대상 항목의 새 값을 포함합니다
    유형: json
  - name: OldValue
    description: 감사 대상 항목의 이전 값을 포함합니다
    유형: json
  - name: OwnerID
    description: 작업을 수행했거나 대리로 수행된 사용자의 식별자입니다. 사용자가 직접 작업을 수행한 경우 이 값은 ActorID와 같습니다.
    type: string
    표시자:
      - 사용자명
  - name: ResourceID
    description: Cloudflare 시스템 내 리소스의 고유 식별자
    type: string
  - name: ResourceType
    required: true
    description: 변경된 리소스의 유형
    type: string
  - name: When
    required: true
    description: 변경이 발생한 시점
    type: timestamp
    timeFormats:
      - cloudflare
    isEventTime: true
```

### Cloudflare.Firewall

Cloudflare UI에서 이벤트 필드를 선택할 때, Panther에서 필요하므로 "Datetime" 필드를 포함해야 합니다.

참조: [Log Field Firewalls에 대한 Cloudflare 문서.](https://developers.cloudflare.com/logs/reference/log-fields/#firewall-events)

```yaml
schema: Cloudflare.Firewall
description: Cloudflare Firewall 로그입니다. Cloudflare UI에서 이벤트 필드를 선택할 때, Panther에서 필요하므로 "Datetime" 필드를 포함해야 합니다.
referenceURL: https://developers.cloudflare.com/logs/log-fields#firewall-events
fields:
    - name: Action
      description: Cloudflare Firewall이 이 요청에 대해 수행한 주요 작업의 코드
      type: string
    - name: ClientASN
      description: 방문자의 ASN 번호
      type: bigint
    - name: ClientASNDescription
      description: 방문자의 ASN을 문자열로 표시한 값
      type: string
    - name: ClientCountry
      description: 요청이 발생한 국가
      type: string
    - name: ClientIP
      description: 방문자의 IP 주소(IPv4 또는 IPv6)
      type: string
      표시자:
        - ip
    - name: ClientIPClass
      description: '방문자 IP 주소의 분류이며, 가능한 값은 다음과 같습니다: unknown | clean | badHost | searchEngine | whitelist | greylist | monitoringService |securityScanner | noRecord | scan | backupService | mobilePlatform | tor'
      type: string
    - name: ClientRefererHost
      description: 리퍼러 호스트
      type: string
      표시자:
        - 호스트 이름
    - name: ClientRefererPath
      description: 방문자가 요청한 리퍼러 경로
      type: string
    - name: ClientRefererQuery
      description: 방문자가 요청한 리퍼러 쿼리 문자열
      type: string
    - name: ClientRefererScheme
      description: 방문자가 요청한 리퍼러 URL 스킴
      type: string
    - name: ClientRequestHost
      description: 방문자가 요청한 HTTP 호스트 이름
      type: string
      표시자:
        - 호스트 이름
    - name: ClientRequestMethod
      description: 방문자가 사용한 HTTP 메서드
      type: string
    - name: ClientRequestPath
      description: 방문자가 요청한 경로
      type: string
    - name: ClientRequestProtocol
      description: 방문자가 요청한 HTTP 프로토콜 버전
      type: string
    - name: ClientRequestQuery
      description: 방문자가 요청한 쿼리 문자열
      type: string
    - name: ClientRequestScheme
      description: 방문자가 요청한 URL 스킴
      type: string
    - name: ClientRequestUserAgent
      description: 방문자의 user-agent 문자열
      type: string
    - name: Datetime
      required: true
      description: 엣지에서 이벤트가 발생한 날짜와 시간
      type: timestamp
      timeFormats:
        - cloudflare
      isEventTime: true
    - name: Description
      description: 이 이벤트에 대한 룰 설명
      type: string
    - name: EdgeColoCode
      description: 이 요청을 처리한 Cloudflare 데이터센터의 공항 코드
      type: string
    - name: EdgeResponseStatus
      description: 브라우저에 반환된 HTTP 응답 상태 코드
      유형: smallint
    - name: Kind
      description: '이벤트의 종류이며, 현재 가능한 값은 다음뿐입니다: firewall'
      type: string
    - name: MatchIndex
      description: 체인에서 룰 일치 인덱스
      type: bigint
    - name: Metadata
      description: 추가 제품별 정보입니다. 메타데이터는 key:value 쌍으로 구성됩니다. Key와 Value 형식은 Cloudflare 보안 제품에 따라 다를 수 있으며 시간이 지남에 따라 변경될 수 있습니다.
      유형: json
    - name: OriginResponseStatus
      description: 브라우저에 반환된 HTTP origin 응답 상태 코드
      유형: smallint
    - name: OriginatorRayID
      description: challenge/jschallenge를 발행한 요청의 RayID
      type: string
      표시자:
        - trace_id
    - name: RayID
      description: 요청의 RayID
      type: string
      표시자:
        - trace_id
    - name: Ref
      description: 이 이벤트에 대한 사용자 정의 룰 참조
      type: string
    - name: RuleID
      description: 이 요청에 의해 트리거된 Cloudflare 보안 제품별 RuleID
      type: string
    - name: Source
      description: 이 요청을 트리거한 Cloudflare 보안 제품
      type: string
```

### Cloudflare.HttpRequest

Cloudflare UI에서 이벤트 필드를 선택할 때, Panther에서 필요하므로 "EdgeStartTimestamp" 필드를 포함해야 합니다.

참조: [요청 로그 필드에 대한 Cloudflare 문서.](https://developers.cloudflare.com/logs/reference/log-fields/#http-requests)

```yaml
schema: Cloudflare.HttpRequest
description: Cloudflare HTTP 요청 로그입니다. Cloudflare UI에서 이벤트 필드를 선택할 때, Panther에서 필요하므로 "EdgeStartTimestamp" 필드를 포함해야 합니다.
referenceURL: https://developers.cloudflare.com/logs/log-fields#http-requests
fields:
    - name: BotDetectionIDs
      description: 요청에서 수행된 Bot Management 휴리스틱 디택션과 연관된 ID 목록입니다. Logpush v2에서만 사용할 수 있습니다.
      type: array
      element:
        type: bigint
    - name: BotScore
      description: Cloudflare Bot Score(Bot Management 고객에게 제공됨; 사용 설정하려면 계정 팀에 문의하세요)
      type: bigint
    - name: BotScoreSrc
      description: Bot Score가 계산되는 기반 디택션 엔진 또는 소스입니다. 가능한 값은 Not Computed | Heuristics | Machine Learning | Behavioral Analysis | Verified Bot입니다.
      type: string
    - name: BotTags
      description: 봇 트래픽의 유형(가능한 경우)입니다. 가능한 값 목록은 Bot Tags를 참조하세요. Logpush v2에서만 사용할 수 있습니다.
      type: array
      element:
        type: string
    - name: CacheCacheStatus
      description: unknown | miss | expired | updating | stale | hit | ignored | bypass | revalidated
      type: string
    - name: CacheReserveUsed
      description: 이 요청을 제공하는 데 Cache Reserve가 사용되었습니다. Logpush v2에서만 사용할 수 있습니다.
      유형: boolean
    - name: CacheResponseBytes
      description: 캐시가 반환한 바이트 수
      type: bigint
    - name: CacheResponseStatus
      description: 캐시가 엣지에 반환한 HTTP 상태 코드입니다. 모든 요청(캐시 불가능한 요청 포함)은 캐시를 거치며, CacheStatus 필드도 참조하세요
      유형: smallint
    - name: CacheTieredFill
      description: 이 요청을 제공하는 데 계층형 캐시가 사용되었습니다
      유형: boolean
    - name: ClientASN
      description: 클라이언트 AS 번호
      type: bigint
    - name: ClientCountry
      description: 클라이언트 IP 주소의 국가
      type: string
    - name: ClientDeviceType
      description: 클라이언트 장치 유형
      type: string
    - name: ClientIP
      description: 클라이언트의 IP 주소
      type: string
      표시자:
        - ip
    - name: ClientIPClass
      description: unknown | clean | badHost | searchEngine | whitelist | greylist | monitoringService | securityScanner | noRecord | scan |backupService | mobilePlatform | tor
      type: string
    - name: ClientMTLSAuthCertFingerprint
      description: mTLS 인증 중 클라이언트가 제시한 인증서의 SHA256 지문입니다. mTLS 연결의 첫 요청에서만 채워집니다. Logpush v2에서만 사용할 수 있습니다.
      type: string
      표시자:
        - sha256
    - name: ClientMTLSAuthStatus
      description: mTLS 인증 상태입니다. mTLS 연결의 첫 요청에서만 채워집니다. Logpush v2에서만 사용할 수 있습니다. 가능한 값은 unknown | ok | absent | untrusted | notyetvalid | expired입니다.
      type: string
    - name: ClientRegionCode
      description: 클라이언트 IP 주소의 ISO-3166-2 지역 코드입니다.
      type: string
    - name: ClientRequestBytes
      description: 클라이언트 요청의 바이트 수
      type: bigint
    - name: ClientRequestHost
      description: 클라이언트가 요청한 호스트
      type: string
      표시자:
        - 호스트 이름
    - name: ClientRequestMethod
      description: 클라이언트 요청의 HTTP 메서드
      type: string
    - name: ClientRequestPath
      description: 클라이언트가 요청한 URI 경로
      type: string
    - name: ClientRequestProtocol
      description: 클라이언트 요청의 HTTP 프로토콜
      type: string
    - name: ClientRequestReferer
      description: HTTP 요청 리퍼러
      type: string
      표시자:
        - 호스트 이름
    - name: ClientRequestScheme
      description: 방문자가 요청한 URL 스킴입니다. Logpush v2에서만 사용할 수 있습니다.
      type: string
      표시자:
        - 호스트 이름
    - name: ClientRequestSource
      description: 요청이 외부 소스 또는 Cloudflare 내부의 다른 서비스에서 온 것인지 식별합니다. 가능한 값 목록은 ClientRequestSource 필드를 참조하세요. Logpush v2에서만 사용할 수 있습니다.
      type: string
      표시자:
        - 호스트 이름
    - name: ClientRequestURI
      description: 클라이언트가 요청한 URI
      type: string
    - name: ClientRequestUserAgent
      description: 클라이언트가 보고한 user agent
      type: string
    - name: ClientSrcPort
      description: 클라이언트 소스 포트
      유형: int
    - name: ClientSSLCipher
      description: 클라이언트 SSL 암호화 방식
      type: string
    - name: ClientSSLProtocol
      description: 클라이언트 SSL(TLS) 프로토콜
      type: string
    - name: ClientTCPRTTMs
      description: TCP 왕복 시간(SRTT)의 평활화된 평균입니다. 연결의 초기 요청에서는 연결 설정 중에만 측정됩니다. 동일한 연결의 후속 요청에서는 해당 요청이 수신될 때까지의 전체 연결 수명 동안 측정됩니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - name: ClientXRequestedWith
      description: X-Requested-With HTTP 헤더
      type: string
    - name: ContentScanObjResults
      description: 콘텐츠 스캔 결과 목록.
      type: array
      element:
        type: string
    - name: ContentScanObjTypes
      description: 콘텐츠 유형 목록.
      type: array
      element:
        type: string
    - name: Cookies
      description: Cookies의 문자열 key-value 쌍.
      유형: json
    - name: EdgeCFConnectingO2O
      description: 요청이 Cloudflare 엣지에서 여러 존을 거쳐 순환한 경우 true입니다. 이는 orange to orange(o2o) 요청으로 간주됩니다. Logpush v2에서만 사용할 수 있습니다.
      유형: boolean
    - name: EdgeColoCode
      description: 요청을 수신한 데이터센터의 IATA 공항 코드
      type: string
    - name: EdgeColoID
      description: Cloudflare 엣지 colo ID
      type: bigint
    - name: EdgeEndTimestamp
      description: 엣지가 클라이언트에 대한 응답 전송을 완료한 시각의 타임스탬프
      type: timestamp
      timeFormats:
        - cloudflare
    - name: EdgePathingOp
      description: 이 요청에 대해 어떤 유형의 응답이 발행되었는지 나타냅니다(unknown = 특정 작업 없음)
      type: string
    - name: EdgePathingSrc
      description: 보안 검사에 따라 요청이 어떻게 분류되었는지 자세히 설명합니다(unknown = 특정 분류 없음)
      type: string
    - name: EdgePathingStatus
      description: 이 요청의 처리 방식을 결정하는 데 사용된 데이터가 무엇인지 나타냅니다(unknown = 데이터 없음)
      type: string
    - name: EdgeRateLimitAction
      description: 차단 룰이 수행한 작업입니다. 작업이 없으면 비어 있습니다
      type: string
    - name: EdgeRateLimitID
      description: 차단(ban) 또는 시뮬레이트 작업을 트리거한 속도 제한 룰의 내부 룰 ID입니다. 작업이 없으면 0입니다
      type: string
    - name: EdgeRequestHost
      description: 엣지에서 origin으로 가는 요청의 Host 헤더
      type: string
      표시자:
        - 호스트 이름
    - name: EdgeResponseBodyBytes
      description: 클라이언트에 반환된 HTTP 응답 본문의 크기입니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - name: EdgeResponseBytes
      description: 엣지가 클라이언트에 반환한 바이트 수
      type: bigint
    - name: EdgeResponseCompressionRatio
      description: 엣지 응답 압축 비율
      type: float
    - name: EdgeResponseContentType
      description: 엣지 응답 Content-Type 헤더 값
      type: string
    - name: EdgeResponseStatus
      description: Cloudflare가 클라이언트에 반환한 HTTP 상태 코드
      유형: smallint
    - name: EdgeServerIP
      description: origin에 요청을 보내는 엣지 서버의 IP
      type: string
      표시자:
        - ip
    - name: EdgeStartTimestamp
      required: true
      description: 엣지가 클라이언트로부터 요청을 수신한 시각의 타임스탬프
      type: timestamp
      timeFormats:
        - cloudflare
      isEventTime: true
    - name: EdgeTimeToFirstByteMs
      description: Cloudflare 엣지에서 측정한 TTFB(Time To First Byte)의 전체 관점입니다. TCP 연결이 설정된 후 시작되어 Cloudflare가 응답의 첫 바이트를 사용자에게 반환하기 시작할 때 끝납니다. TLS 핸드셰이크 시간(새 연결의 경우)과 origin 응답 시간이 포함됩니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - name: FirewallMatchesActions
      description: Cloudflare firewall 제품이 이 요청에 대해 수행한 작업 배열입니다. 이 작업과 연결된 개별 firewall 제품은 FirewallMatchesSources에서 찾을 수 있으며, 해당 RuleIds는 FirewallMatchesRuleIDs에서 찾을 수 있습니다. 배열의 길이는 FirewallMatchesRuleIDs 및 FirewallMatchesSources와 같습니다. 가능한 작업은 allow | log | simulate | drop | challenge | jschallenge | connectionClose | challengeSolved | challengeFailed | challengeBypassed | jschallengeSolved | jschallengeFailed | jschallengeBypassed | bypass입니다.
      type: array
      element:
        type: string
    - name: FirewallMatchesRuleIDs
      description: 요청과 일치한 firewall 제품의 RuleIDs 배열입니다. RuleID와 연결된 firewall 제품은 FirewallMatchesSources에서 찾을 수 있습니다. 배열의 길이는 FirewallMatchesActions 및 FirewallMatchesSources와 같습니다.
      type: array
      element:
        type: string
    - name: FirewallMatchesSources
      description: 요청과 일치한 firewall 제품입니다. 동일한 제품이 여러 번 나타날 수 있으며, 이는 서로 다른 룰 또는 작업이 활성화되었음을 의미합니다. RuleIDs는 FirewallMatchesRuleIDs에서, 작업은 FirewallMatchesActions에서 찾을 수 있습니다. 배열의 길이는 FirewallMatchesRuleIDs 및 FirewallMatchesActions와 같습니다. 가능한 소스는 asn | country | ip | ipRange | securityLevel | zoneLockdown | waf | firewallRules | uaBlock | rateLimit |bic | hot | l7ddos | sanitycheck | protect입니다.
      type: array
      element:
        type: string
    - name: JA3Hash
      description: SSL/TLS 클라이언트를 프로파일링하는 데 사용된 JA3 지문의 MD5 해시입니다. Logpush v2에서만 사용할 수 있습니다.
      type: string
      표시자:
        - md5
    - name: OriginDNSResponseTimeMs
      description: origin 이름에 대한 DNS 응답을 받는 데 걸린 시간입니다. 일반적으로 몇 밀리초가 걸리지만, CNAME 레코드가 사용되면 더 길어질 수 있습니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - name: OriginIP
      description: origin 서버의 IP
      type: string
      표시자:
        - ip
    - name: OriginRequestHeaderSendDurationMs
      description: 연결을 설정한 후 origin으로 요청 헤더를 전송하는 데 걸린 시간입니다. 이 값은 일반적으로 0입니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - name: OriginResponseBytes
      description: origin 서버가 반환한 바이트 수
      type: bigint
    - name: OriginResponseDurationMs
      description: upstream 응답 시간으로, 요청을 수신한 첫 번째 데이터센터에서 측정됩니다. Argo Smart Routing 및 Tiered Cache에 걸린 시간과 origin 서버에 연결하고 응답을 받는 시간이 포함됩니다. 이 필드는 OriginResponseTime을 대체합니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - name: OriginResponseHeaderReceiveDurationMs
      description: Cloudflare가 요청 헤더 전송을 완료한 후 origin이 응답 헤더를 반환하는 데 걸린 시간입니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - name: OriginResponseHTTPExpires
      description: RFC1123 형식의 origin 'expires' 헤더 값
      type: timestamp
      timeFormats:
        - '%a, %d %b %Y %H:%M:%S %Z'
    - name: OriginResponseHTTPLastModified
      description: RFC1123 형식의 origin 'last-modified' 헤더 값
      type: timestamp
      timeFormats:
        - '%a, %d %b %Y %H:%M:%S %Z'
    - name: OriginResponseStatus
      description: origin 서버가 반환한 상태
      유형: smallint
    - name: OriginResponseTime
      description: origin이 응답을 엣지에 반환하는 데 걸린 나노초 수
      type: bigint
    - name: OriginSSLProtocol
      description: origin에 연결하는 데 사용된 SSL(TLS) 프로토콜
      type: string
    - name: OriginTCPHandshakeDurationMs
      description: origin과의 TCP 핸드셰이크를 완료하는 데 걸린 시간입니다. origin 연결이 재사용되는 경우 이 값은 0입니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - name: OriginTLSHandshakeDurationMs
      description: origin과의 TLS 핸드셰이크를 완료하는 데 걸린 시간입니다. origin 연결이 재사용되는 경우 이 값은 0입니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - name: ParentRayID
      description: 이 요청이 Worker 스크립트를 사용해 만들어진 경우 부모 요청의 Ray ID
      type: string
      표시자:
        - trace_id
    - name: RayID
      description: 요청의 ID
      type: string
      표시자:
        - trace_id
    - name: RequestHeaders
      description: RequestHeaders의 문자열 key-value 쌍
      유형: json
    - name: ResponseHeaders
      description: ResponseHeaders의 문자열 key-value 쌍
      유형: json
    - name: SecurityAction
      description: 종료 작업을 트리거한 보안 룰의 룰 작업이며, 해당되는 경우
      type: string
    - name: SecurityActions
      description: Cloudflare 보안 제품이 이 요청에 대해 수행한 작업 배열입니다. 이 작업과 연결된 개별 보안 제품은 FirewallMatchesSources에서 찾을 수 있으며, 해당 RuleIds는 FirewallMatchesRuleIDs에서 찾을 수 있습니다. 배열의 길이는 FirewallMatchesRuleIDs 및 FirewallMatchesSources와 같습니다. 가능한 작업은 allow | log | simulate | drop | challenge | jschallenge | connectionClose | challengeSolved | challengeFailed | challengeBypassed | jschallengeSolved | jschallengeFailed | jschallengeBypassed | bypass입니다.
      type: array
      element:
        type: string
    - name: SecurityLevel
      description: 이 요청 시점에 구성된 보안 수준입니다. IP Reputation 시스템의 민감도를 결정하는 데 사용됩니다.
      type: string
    - name: SecurityRuleDescription
      description: 종료 작업을 트리거한 보안 룰의 룰 설명이며, 해당되는 경우
      type: string
    - name: SecurityRuleID
      description: 종료 작업을 트리거한 보안 룰의 룰 ID이며, 해당되는 경우
      type: string
    - name: SecurityRuleIDs
      description: 요청과 일치한 보안 룰 ID 배열입니다. RuleID와 연결된 방화벽 제품은 FirewallMatchesSources에서 찾을 수 있습니다. 배열의 길이는 FirewallMatchesActions 및 FirewallMatchesSources와 같습니다.
      type: array
      element:
        type: string
    - 이름: SecuritySources
      description: 요청과 일치한 Cloudflare 보안 제품 배열입니다. 같은 제품이 여러 번 나타날 수 있으며, 이는 활성화된 서로 다른 룰 또는 동작을 나타냅니다. RuleID는 FirewallMatchesRuleIDs에서 찾을 수 있고, 동작은 FirewallMatchesActions에서 찾을 수 있습니다. 배열의 길이는 FirewallMatchesRuleIDs 및 FirewallMatchesActions와 같습니다. 가능한 소스는 asn | country | ip | ipRange | securityLevel | zoneLockdown | waf | firewallRules | uaBlock | rateLimit |bic | hot | l7ddos | sanitycheck | protect 입니다.
      type: array
      element:
        type: string
    - 이름: SmartRouteColoID
      description: Argo Smart Routing을 사용하는 경우 원본 서버에 연결하는 데 사용된 Cloudflare 데이터센터입니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - 이름: UpperTierColoID
      description: Tiered Cache를 사용하는 경우 캐시된 복사본을 확인한 “upper tier” 데이터센터입니다. Logpush v2에서만 사용할 수 있습니다.
      type: bigint
    - 이름: WAFAction
      description: 트리거된 경우 WAF가 취한 동작
      type: string
    - 이름: WAFAttackScore
      description: WAF 디택션 모듈이 생성한 전체 요청 점수입니다.
      type: bigint
    - 이름: WAFFlags
      description: '추가 구성 플래그: simulate (0x1) | null'
      type: string
    - 이름: WAFMatchedVar
      description: 가장 최근에 일치한 변수의 전체 이름
      type: string
    - 이름: WAFProfile
      description: low | med | high
      type: string
    - 이름: WAFRCEAttackScore
      description: RCE 공격에 대한 WAF 점수.
      type: bigint
    - 이름: WAFRuleID
      description: 적용된 WAF 룰의 ID
      type: string
    - 이름: WAFRuleMessage
      description: 트리거된 룰과 연결된 룰 메시지
      type: string
    - 이름: WAFSQLiAttackScore
      description: SQLi 공격에 대한 WAF 점수.
      type: bigint
    - 이름: WAFXSSAttackScore
      description: XSS 공격에 대한 WAF 점수.
      type: bigint
    - 이름: WorkerCPUTime
      description: 워커가 있으면, 워커를 실행하는 데 소비된 시간(마이크로초)입니다
      type: bigint
    - 이름: WorkerStatus
      description: worker daemon에서 반환된 상태
      type: string
    - 이름: WorkerSubrequest
      description: 이 요청이 worker 하위 요청인지 여부
      유형: boolean
    - 이름: WorkerSubrequestCount
      description: 이 요청을 처리할 때 워커가 보낸 하위 요청 수
      type: bigint
    - 이름: WorkerWallTimeUs
      description: 워커 호출의 시작과 끝 사이에 경과한 실제 시간(마이크로초)입니다.
      type: bigint
    - 이름: ZoneID
      description: 내부 zone ID
      type: bigint
    - 이름: ZoneName
      description: zone의 사람이 읽을 수 있는 이름(예: cloudflare.com)입니다. Logpush v2에서만 사용할 수 있습니다.
      type: string
    - 이름: JA4
      description: SSL/TLS 클라이언트를 프로파일링하는 데 사용되는 JA4 지문입니다.
      type: string
    - 이름: JA4Signals
      description: 이 JA4 지문에 대해 계산된 요청 간 통계입니다. JA4Signals 필드는 값이 숫자인 key:value 쌍으로 구성됩니다.
      유형: json
    - 이름: LeakedCredentialCheckResult
      description: 유출된 자격 증명 검사 결과
      type: string
```

### Cloudflare.Spectrum

Cloudflare UI에서 이벤트 필드를 선택할 때는 Panther에 필요하므로 "Timestamp" 필드를 반드시 포함하세요.

참조: [Log Field Spectrum Events에 대한 Cloudflare 문서.](https://developers.cloudflare.com/logs/reference/log-fields/#spectrum-events)

```yaml
schema: Cloudflare.Spectrum
description: Cloudflare Spectrum 로그입니다. Cloudflare UI에서 이벤트 필드를 선택할 때는 Panther에 필요하므로 "Timestamp" 필드를 반드시 포함하세요.
referenceURL: https://developers.cloudflare.com/logs/log-fields#spectrum-events
fields:
    - 이름: Application
      description: 이벤트가 발생한 애플리케이션의 고유 공개 ID
      type: string
    - name: ClientASN
      description: 클라이언트 AS 번호
      type: bigint
    - 이름: ClientBytes
      description: Spectrum 서비스가 클라이언트에서 읽은 바이트 수
      type: bigint
    - name: ClientCountry
      description: 클라이언트 IP 주소의 국가
      type: string
    - name: ClientIP
      description: 클라이언트의 IP 주소
      type: string
      표시자:
        - ip
    - 이름: ClientMatchedIpFirewall
      description: 연결이 어떤 IP Firewall 룰과도 일치했는지 여부; UNKNOWN | ALLOW | BLOCK_ERROR | BLOCK_IP | BLOCK_COUNTRY | BLOCK_ASN | WHITELIST_IP |WHITELIST_COUNTRY | WHITELIST_ASN
      type: string
    - 이름: ClientPort
      description: 클라이언트 포트
      유형: int
    - 이름: ClientProto
      description: 클라이언트가 사용한 전송 프로토콜; tcp | udp | unix
      type: string
    - 이름: ClientTcpRtt
      description: 클라이언트와 Spectrum 사이의 TCP 왕복 시간(나노초)
      type: bigint
    - 이름: ClientTlsCipher
      description: 클라이언트와 Spectrum 사이에서 협상된 암호화 방식
      type: string
    - 이름: ClientTlsClientHelloServerName
      description: 클라이언트에서 Spectrum으로 전송된 Client Hello 메시지의 서버 이름
      type: string
    - 이름: ClientTlsProtocol
      description: 클라이언트와 Spectrum 사이에서 협상된 TLS 버전; unknown | none | SSLv3 | TLSv1 | TLSv1.1 | TLSv1.2 | TLSv1.3
      type: string
    - 이름: ClientTlsStatus
      description: 클라이언트에서 Spectrum으로의 TLS 세션 상태를 나타냅니다; UNKNOWN | OK | INTERNAL_ERROR | INVALID_CONFIG | INVALID_SNI | HANDSHAKE_FAILED | KEYLESS_RPC
      type: string
    - 이름: ColoCode
      description: 요청을 수신한 데이터센터의 IATA 공항 코드
      type: string
    - 이름: ConnectTimestamp
      description: 연결의 양쪽 경로(client/edge, edge/origin 또는 nexthop)가 모두 성립된 타임스탬프
      type: timestamp
      timeFormats:
        - cloudflare
    - 이름: DisconnectTimestamp
      description: 연결이 종료된 타임스탬프
      type: timestamp
      timeFormats:
        - cloudflare
    - 이름: Event
      description: connect | disconnect | clientFiltered | tlsError | resolveOrigin | originError
      type: string
    - 이름: IpFirewall
      description: 연결 시점에 IP Firewall이 활성화되어 있었는지 여부
      유형: boolean
    - 이름: OriginBytes
      description: Spectrum이 원본에서 읽은 바이트 수
      type: bigint
    - name: OriginIP
      description: 원본 IP 주소
      type: string
      표시자:
        - ip
    - 이름: OriginPort
      description: 원본 포트
      유형: int
    - 이름: OriginProto
      description: 원본이 사용한 전송 프로토콜; tcp | udp | unix
      type: string
    - 이름: OriginTcpRtt
      description: Spectrum과 원본 사이의 TCP 왕복 시간(나노초)
      type: bigint
    - 이름: OriginTlsCipher
      description: Spectrum과 원본 사이에서 협상된 암호화 방식
      type: string
    - 이름: OriginTlsFingerprint
      description: 원본 인증서의 SHA256 해시
      type: string
    - 이름: OriginTlsMode
      description: 상위 연결이 암호화되는지, 그리고 어떻게 암호화되는지; unknown | off | flexible | full | strict
      type: string
    - 이름: OriginTlsProtocol
      description: Spectrum과 원본 사이에서 협상된 TLS 버전; unknown | none | SSLv3 | TLSv1 | TLSv1.1 | TLSv1.2 | TLSv1.3
      type: string
    - 이름: OriginTlsStatus
      description: Spectrum에서 원본으로의 TLS 세션 상태; UNKNOWN | OK | INTERNAL_ERROR | INVALID_CONFIG | INVALID_SNI | HANDSHAKE_FAILED | KEYLESS_RPC
      type: string
    - 이름: ProxyProtocol
      description: 주어진 연결에 적용된 프록시 프로토콜 형식; off | v1 | v2 | simple
      type: string
    - 이름: Status
      description: 연결 종료 사유를 나타내는 코드
      type: bigint
    - 이름: Timestamp
      required: true
      description: 이벤트가 발생한 타임스탬프
      type: timestamp
      timeFormats:
        - cloudflare
      isEventTime: true
```


---

# 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/data-onboarding/supported-logs/cloudflare.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.
