# Duo Security 로그

## 개요

Panther는 다음 Duo 로그를 통해 수집할 수 있습니다 [Duo API](https://duo.com/docs/adminapi#logs):

* [인증 로그(v2)](https://duo.com/docs/adminapi#authentication-logs)
* [관리자 로그](https://duo.com/docs/adminapi#administrator-logs)
* [전화 로그](https://duo.com/docs/adminapi#telephony-logs)
* [오프라인 등록 로그](https://duo.com/docs/adminapi#offline-enrollment-logs)

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

Duo 로그를 Panther에 온보딩하려면 아래 단계를 따르세요. 또한 [데이터 수집 비디오 개요](/ko/data-onboarding.md#video-overview) 를 통해 Duo 로그 온보딩에 대한 빠른 안내를 볼 수 있습니다.

### 1단계: Duo 애플리케이션 생성

1. 새 Duo 애플리케이션을 만들려면 [에 대해 더 자세히 읽어볼 수 있습니다](https://duo.com/docs/adminapi#first-steps) 의 지침을 따르세요.

   참고로, Owner 역할을 가진 관리자만 Duo Admin Panel에서 Admin API 애플리케이션을 생성하거나 수정할 수 있습니다.
2. 애플리케이션에 **로그 읽기 부여** 권한을 부여합니다.

### 2단계: Panther에서 새 Duo 소스 생성

1. Panther Console의 왼쪽 탐색 표시줄에서 **구성하세요.** > **로그** **소스**.
2. 을 클릭한 다음 **새로 만들기 를 클릭합니다.**
3. 에서 **Duo** 를 사용 가능한 로그 소스 목록에서 선택합니다. **설정 시작**.
4. 다음 화면에서 소스에 대한 설명이 포함된 이름을 입력하고(예: `내 Duo 로그`) 모니터링할 로그 유형을 선택합니다.
5. 을 클릭한 다음 **설정.**
6. 아래 필드를 채우세요:
   * **통합 키**: Duo 앱의 통합 키를 입력합니다.
   * **비밀 키**: Duo 앱의 비밀 키를 입력합니다.
   * **API 호스트명**: Duo 앱의 API 호스트명을 입력합니다.
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>

* 선택적으로 하나 이상의 [디택션 Packs](https://docs.panther.com/detections/panther-managed/packs).
* 그 **이벤트가 처리되지 않을 때 알러트 트리거** 설정의 기본값은 **예**. 이 옵션은 활성화된 상태로 두는 것을 권장합니다. 일정 시간이 지나 로그 소스에서 데이터가 더 이상 유입되지 않으면 알림을 받게 되기 때문입니다. 기간은 구성할 수 있으며 기본값은 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>

## 지원되는 로그 유형

### Duo.Administrator

Duo 관리자 로그 이벤트.

자세한 내용은 [관리자 로그에 대한 Duo 문서를 참조하세요.](https://duo.com/docs/adminapi#administrator-logs)

<pre class="language-yaml"><code class="lang-yaml">schema: Duo.Administrator
parser:
    native:
        name: Duo.Administrator
description: Duo 관리자 로그 이벤트.
referenceURL: https://duo.com/docs/adminapi#administrator-logs
fields:
    - name: action
      required: true
      description: 수행된 변경 유형입니다.
      type: string
    - name: description
      description: 변경된 내용을 상세히 설명하는 문자열로, 자유 형식 텍스트 또는 직렬화된 JSON일 수 있습니다.
      type: string
<strong>    - name: description_json
</strong>      description: 유효한 JSON인 경우 'Description' 필드를 JSON 객체로 표시합니다. 그렇지 않으면 null입니다.
      type: json
    - name: isotimestamp
      required: true
      description: 이벤트의 ISO8601 타임스탬프입니다.
      type: timestamp
      timeFormat: rfc3339
      isEventTime: true
    - name: object
      description: '작업이 수행된 대상 객체입니다. 예: 사용자인 경우 "jsmith", 전화인 경우 "(555) 713-6275 x456", 토큰인 경우 "HOTP 8-digit 123456".'
      type: string
    - name: timestamp
      description: 이벤트의 Unix 타임스탬프입니다.
      type: timestamp
      timeFormat: unix
    - name: username
      required: true
      description: 'Duo Admin Panel에서 작업을 수행한 관리자 전체 이름입니다. API를 통해 작업이 수행된 경우에는 "API"가 표시됩니다. 비활성 사용자 삭제와 같은 자동 작업의 경우 username은 "System"입니다. Directory Sync에서 동기화된 변경 사항의 경우 username은 (예시) "AD Sync: 디렉터리 이름" 형식입니다.'
      type: string
      indicators:
        - username
</code></pre>

### Duo.Authentication

Duo 인증 로그 이벤트(v2).

자세한 내용은 [Duo 인증 로그에 대한 Duo 문서.](https://duo.com/docs/adminapi#authentication-logs)

```yaml
schema: Duo.Authentication
parser:
    native:
        name: Duo.Authentication
description: Duo 인증 로그 이벤트(v2).
referenceURL: https://duo.com/docs/adminapi#authentication-logs
fields:
    - name: access_device
      description: Duo로 보호되는 리소스에 접근하는 데 사용된 엔드포인트의 브라우저, 플러그인 및 운영 체제 정보입니다. 값은 애플리케이션이 Duo의 인라인 브라우저 프롬프트 기능에 접근했을 때만 존재합니다.
      type: object
      fields:
        - name: browser
          description: 접근에 사용된 웹 브라우저입니다.
          type: string
        - name: browser_version
          description: 브라우저 버전입니다.
          type: string
        - name: flash_version
          description: 사용된 Flash 플러그인 버전입니다. 있으면 표시하고, 없으면 "uninstalled"입니다.
          type: string
        - name: hostname
          description: 호스트명입니다. 있으면 표시하고, 없으면 "null"입니다.
          type: string
          indicators:
            - hostname
        - name: ip
          description: 접근 장치의 IP 주소입니다. 있으면 표시하고, 없으면 "null"입니다.
          type: string
          indicators:
            - ip
        - name: is_encryption_enabled
          description: Duo Device Health 앱이 감지한 디스크 암호화 상태를 보고합니다. "true", "false", "unknown" 중 하나입니다.
          type: string
        - name: is_firewall_enabled
          description: Duo Device Health 앱이 감지한 방화벽 상태를 보고합니다. "true", "false", "unknown" 중 하나입니다.
          type: string
        - name: is_password_set
          description: Duo Device Health 앱이 감지한 시스템 암호 상태를 보고합니다. "true", "false", "unknown" 중 하나입니다.
          type: string
        - name: java_version
          description: 사용된 Java 플러그인 버전입니다. 있으면 표시하고, 없으면 "uninstalled"입니다.
          type: string
        - name: location
          description: 사용 가능한 경우 접근 장치의 GeoIP 위치입니다. 응답에 모든 위치 매개변수가 포함되지 않을 수 있습니다.
          type: object
          fields:
            - name: city
              description: 도시 이름입니다.
              type: string
            - name: country
              description: 국가 코드입니다.
              type: string
            - name: state
              description: 주, 군, 도 또는 현입니다.
              type: string
        - name: os
          description: 장치 운영 체제 이름입니다.
          type: string
        - name: os_version
          description: 장치 운영 체제 버전입니다.
          type: string
        - name: security_agents
          description: Duo Device Health 앱이 감지한 엔드포인트의 보안 에이전트를 보고합니다.
          type: array
          element:
            type: json
    - name: alias
      description: 로그인에 사용된 사용자 이름 별칭입니다. 사용자가 사용자 이름 별칭 대신 사용자 이름으로 로그인한 경우 값이 없습니다.
      type: string
      indicators:
        - username
    - name: application
      description: 접근한 애플리케이션에 대한 정보입니다.
      type: object
      fields:
        - name: key
          description: 애플리케이션의 integration_key입니다.
          type: string
        - name: name
          description: 애플리케이션 이름입니다.
          type: string
    - name: auth_device
      description: 인증을 승인하거나 거부하는 데 사용된 장치에 대한 정보입니다.
      type: object
      fields:
        - name: ip
          description: 인증 장치의 IP 주소입니다.
          type: string
          indicators:
            - ip
        - name: location
          description: 사용 가능한 경우 인증 장치의 GeoIP 위치입니다. 모든 위치 매개변수가 포함되지 않을 수 있습니다.
          type: object
          fields:
            - name: city
              description: 도시 이름입니다.
              type: string
            - name: country
              description: 국가 코드입니다.
              type: string
            - name: state
              description: 주, 군, 도 또는 현입니다.
              type: string
        - name: name
          description: 인증 장치의 이름입니다.
          type: string
    - name: email
      description: 사용자의 이메일 주소입니다. Duo가 알고 있는 경우에만 표시되며, 그렇지 않으면 none입니다.
      type: string
      indicators:
        - email
    - name: event_type
      description: '기록된 활동 유형입니다. "authentication" 또는 "enrollment" 중 하나입니다.'
      type: string
    - name: factor
      description: '인증 요소입니다. 다음 중 하나입니다: "phone_call", "passcode", "yubikey_passcode", "digipass_go_7_token", "hardware_token", "duo_mobile_passcode", "bypass_code", "sms_passcode", "sms_refresh", "duo_push", "u2f_token", "remembered_device", "trusted_network".'
      type: string
    - name: isotimestamp
      required: true
      description: 이벤트의 ISO8601 타임스탬프입니다.
      type: timestamp
      timeFormat: rfc3339
      isEventTime: true
    - name: ood_software
      description: 인증이 오래된 소프트웨어 때문에 거부된 경우, "Chrome", "Flash" 등 소프트웨어 이름을 표시합니다. 인증이 성공했거나 거부 사유가 오래된 소프트웨어가 아닌 경우 값이 없습니다.
      type: string
    - name: reason
      description: '인증 시도 결과의 이유를 제공합니다. result가 "SUCCESS"인 경우 다음 중 하나입니다: "allow_unenrolled_user", "allowed_by_policy", "allow_unenrolled_user_on_trusted_network", "bypass_user", "remembered_device", "trusted_location", "trusted_network", "user_approved", "valid_passcode". result가 "FAILURE"인 경우 다음 중 하나입니다: "anonymous_ip", "anomalous_push", "could_not_determine_if_endpoint_was_trusted", "denied_by_policy", "denied_network", "deny_unenrolled_user", "endpoint_is_not_in_management_system", "endpoint_failed_google_verification", "endpoint_is_not_trusted", "factor_restricted", "invalid_management_certificate_collection_state", "invalid_device", "invalid_passcode", "invalid_referring_hostname_provided", "location_restricted", "locked_out", "no_activated_duo_mobile_account", "no_disk_encryption", "no_duo_certificate_present", "touchid_disabled", "no_referring_hostname_provided", "no_response", "no_screen_lock", "no_web_referer_match", "out_of_date", "platform_restricted", "rooted_device", "software_restricted", "user_cancelled", "user_disabled", "user_mistake", "user_not_in_permitted_group", "user_provided_invalid_certificate", "version_restricted". result가 "ERROR"인 경우: "error". result가 "FRAUD"인 경우: "user_marked_fraud".'
      type: string
    - name: result
      description: '인증 시도 결과입니다. 다음 중 하나입니다: "SUCCESS", "FAILURE", "ERROR", "FRAUD".'
      type: string
    - name: timestamp
      description: 이벤트의 Unix 타임스탬프입니다.
      type: timestamp
      timeFormat: unix
    - name: txid
      required: true
      description: 이벤트의 트랜잭션 ID입니다.
      type: string
      indicators:
        - trace_id
    - name: user
      description: 인증하는 사용자에 대한 정보입니다.
      type: object
      fields:
        - name: groups
          description: 사용자에 대한 Duo 그룹 멤버십 정보입니다.
          type: array
          element:
            type: string
        - name: key
          description: 사용자의 user_id입니다.
          type: string
        - name: name
          description: 사용자의 사용자 이름입니다.
          type: string
          indicators:
            - username
```

### Duo.OfflineEnrollment

Windows 로그인용 Duo Authentication의 오프라인 등록 이벤트.

자세한 내용은 [오프라인 등록 로그에 대한 Duo 문서.](https://duo.com/docs/adminapi#offline-enrollment-logs)

```yaml
schema: Duo.OfflineEnrollment
parser:
    native:
        name: Duo.OfflineEnrollment
description: Windows 로그인용 Duo Authentication의 오프라인 등록 이벤트.
referenceURL: https://duo.com/docs/adminapi#offline-enrollment-logs
fields:
    - name: action
      required: true
      description: 오프라인 등록 작업입니다. "o2fa_user_provisioned", "o2fa_user_deprovisioned", "o2fa_user_reenrolled" 중 하나입니다.
      type: string
    - name: description
      description: 애플리케이션이 보고한 Duo Windows Logon 클라이언트 시스템 정보입니다.
      type: string
    - name: description_json
      description: 유효한 JSON인 경우 'Description' 필드를 JSON 객체로 표시합니다. 그렇지 않으면 null입니다.
      type: json
    - name: isotimestamp
      required: true
      description: 이벤트의 ISO8601 타임스탬프입니다.
      type: timestamp
      timeFormat: rfc3339
      isEventTime: true
    - name: object
      required: true
      description: Duo Windows Logon 통합의 이름입니다.
      type: string
    - name: timestamp
      description: 이벤트의 Unix 타임스탬프입니다.
      type: timestamp
      timeFormat: unix
    - name: username
      required: true
      description: Duo 사용자 이름입니다.
      type: string
      indicators:
        - username
```

### Duo.Telephony

Duo 전화 로그 이벤트.

자세한 내용은 [Duo 전화 로그에 대한 Duo 문서.](https://duo.com/docs/adminapi#telephony-logs)

```yaml
schema: Duo.Telephony
parser:
    native:
        name: Duo.Telephony
description: Duo 전화 로그 이벤트.
referenceURL: https://duo.com/docs/adminapi#telephony-logs
fields:
    - name: context
      description: '이 전화 이벤트가 시작된 방식입니다. 다음 중 하나입니다: "administrator login", "authentication", "enrollment", "verify".'
      type: string
    - name: credits
      description: 이 이벤트에 사용된 전화 크레딧 수입니다.
      type: int
    - name: isotimestamp
      required: true
      description: 이벤트의 ISO8601 타임스탬프입니다.
      type: timestamp
      timeFormat: rfc3339
      isEventTime: true
    - name: phone
      required: true
      description: 이 이벤트를 시작한 전화번호입니다.
      type: string
    - name: timestamp
      description: 이벤트의 Unix 타임스탬프입니다.
      type: timestamp
      timeFormat: unix
    - name: type
      required: true
      description: 이벤트 유형입니다. "sms" 또는 "phone" 중 하나입니다.
      type: string
```


---

# 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/supported-logs/duo.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.
