> 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/duo.md).

# 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)

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

Panther에 Duo 로그를 온보딩하려면 아래 단계를 따르세요. 또한 다음을 볼 수도 있습니다: [데이터 수집 동영상 개요](/ko/data-onboarding.md#video-overview) Duo 로그 온보딩을 빠르게 살펴보려면.

### 1단계: Duo 애플리케이션 만들기

1. 안내를 따르세요 [여기](https://duo.com/docs/adminapi#first-steps) 새 Duo 애플리케이션을 만듭니다.

   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>

* 선택적으로 하나 이상의 [디택션 팩](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">스키마: Duo.Administrator
파서:
    네이티브:
        이름: Duo.Administrator
설명: Duo 관리자 로그 이벤트.
참조 URL: https://duo.com/docs/adminapi#administrator-logs
필드:
    - 이름: action
      필수: true
      설명: 수행된 변경 유형입니다.
      유형: string
    - 이름: description
      설명: 변경된 내용을 자세히 설명하는 문자열입니다. 자유 형식 텍스트 또는 직렬화된 JSON일 수 있습니다.
      유형: string
<strong>    - 이름: description_json
</strong>      설명: 'Description' 필드가 유효한 JSON이면 JSON 객체로 표시됩니다. 그렇지 않으면 null입니다.
      유형: json
    - 이름: isotimestamp
      필수: true
      설명: 이벤트의 ISO8601 타임스탬프입니다.
      유형: timestamp
      시간 형식: rfc3339
      이벤트 시간 여부: true
    - 이름: object
      설명: '작업이 수행된 대상 객체입니다. 예: 사용자의 경우 "jsmith", 전화의 경우 "(555) 713-6275 x456", 토큰의 경우 "HOTP 8-digit 123456".'
      유형: string
    - 이름: timestamp
      설명: 이벤트의 Unix 타임스탬프입니다.
      유형: timestamp
      시간 형식: unix
    - 이름: username
      필수: true
      설명: 'Duo Admin Panel에서 작업을 수행한 관리자의 전체 이름입니다. 작업이 API로 수행된 경우 "API"가 됩니다. 비활성 사용자 삭제와 같은 자동 작업의 username은 "System"입니다. Directory Sync에서 동기화된 변경 사항의 username은 (예: "AD Sync: name of directory") 형식입니다.'
      유형: string
      지표:
        - username
</code></pre>

### Duo.Authentication

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

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

```yaml
스키마: Duo.Authentication
파서:
    네이티브:
        이름: Duo.Authentication
설명: Duo 인증 로그 이벤트(v2).
참조 URL: https://duo.com/docs/adminapi#authentication-logs
필드:
    - 이름: access_device
      설명: Duo로 보호되는 리소스에 액세스하는 데 사용된 엔드포인트의 브라우저, 플러그인 및 운영 체제 정보입니다. 값은 애플리케이션이 Duo의 인라인 브라우저 프롬프트 기능에 액세스한 경우에만 존재합니다.
      유형: object
      필드:
        - 이름: browser
          설명: 액세스에 사용된 웹 브라우저입니다.
          유형: string
        - 이름: browser_version
          설명: 브라우저 버전입니다.
          유형: string
        - 이름: flash_version
          설명: 사용된 Flash 플러그인 버전입니다. 있으면 표시하고, 없으면 "uninstalled"입니다.
          유형: string
        - 이름: hostname
          설명: 호스트 이름입니다. 있으면 표시하고, 없으면 "null"입니다.
          유형: string
          지표:
            - hostname
        - 이름: ip
          설명: 액세스 장치의 IP 주소입니다. 있으면 표시하고, 없으면 "null"입니다.
          유형: string
          지표:
            - ip
        - 이름: is_encryption_enabled
          설명: Duo Device Health 앱이 디택션한 디스크 암호화 상태를 보고합니다. "true", "false", "unknown" 중 하나입니다.
          유형: string
        - 이름: is_firewall_enabled
          설명: Duo Device Health 앱이 디택션한 방화벽 상태를 보고합니다. "true", "false", "unknown" 중 하나입니다.
          유형: string
        - 이름: is_password_set
          설명: Duo Device Health 앱이 디택션한 시스템 비밀번호 상태를 보고합니다. "true", "false", "unknown" 중 하나입니다.
          유형: string
        - 이름: java_version
          설명: 사용된 Java 플러그인 버전입니다. 있으면 표시하고, 없으면 "uninstalled"입니다.
          유형: string
        - 이름: location
          설명: 가능하면 액세스 장치의 GeoIP 위치입니다. 응답에 모든 위치 매개변수가 포함되지 않을 수 있습니다.
          유형: object
          필드:
            - 이름: city
              설명: 도시 이름입니다.
              유형: string
            - 이름: country
              설명: 국가 코드입니다.
              유형: string
            - 이름: state
              설명: 주, 군, 도, 또는 현입니다.
              유형: string
        - 이름: os
          설명: 장치 운영 체제 이름입니다.
          유형: string
        - 이름: os_version
          설명: 장치 운영 체제 버전입니다.
          유형: string
        - 이름: security_agents
          설명: Duo Device Health 앱이 디택션한 엔드포인트에 존재하는 보안 에이전트를 보고합니다.
          유형: array
          요소:
            유형: json
    - 이름: alias
      설명: 로그인에 사용된 사용자 이름 별칭입니다. 사용자가 사용자 이름 별칭이 아니라 사용자 이름으로 로그인한 경우 값이 없습니다.
      유형: string
      지표:
        - username
    - 이름: application
      설명: 액세스한 애플리케이션 정보입니다.
      유형: object
      필드:
        - 이름: key
          설명: 애플리케이션의 integration_key입니다.
          유형: string
        - 이름: name
          설명: 애플리케이션 이름입니다.
          유형: string
    - 이름: auth_device
      설명: 인증을 승인하거나 거부하는 데 사용된 장치에 대한 정보입니다.
      유형: object
      필드:
        - 이름: ip
          설명: 인증 장치의 IP 주소입니다.
          유형: string
          지표:
            - ip
        - 이름: location
          설명: 가능하면 인증 장치의 GeoIP 위치입니다. 모든 위치 매개변수가 포함되지 않을 수 있습니다.
          유형: object
          필드:
            - 이름: city
              설명: 도시 이름입니다.
              유형: string
            - 이름: country
              설명: 국가 코드입니다.
              유형: string
            - 이름: state
              설명: 주, 군, 도, 또는 현입니다.
              유형: string
        - 이름: name
          설명: 인증 장치의 이름입니다.
          유형: string
    - 이름: email
      설명: Duo에 알려진 경우 사용자의 이메일 주소입니다. 그렇지 않으면 없음입니다.
      유형: string
      지표:
        - email
    - 이름: event_type
      설명: '기록된 활동 유형입니다. "authentication" 또는 "enrollment" 중 하나입니다.'
      유형: string
    - 이름: factor
      설명: '인증 요소입니다. "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" 중 하나입니다.'
      유형: string
    - 이름: isotimestamp
      필수: true
      설명: 이벤트의 ISO8601 타임스탬프입니다.
      유형: timestamp
      시간 형식: rfc3339
      이벤트 시간 여부: true
    - 이름: ood_software
      설명: 인증이 오래된 소프트웨어 때문에 거부된 경우 해당 소프트웨어 이름, 즉 "Chrome", "Flash" 등을 표시합니다. 인증이 성공했거나 거부 사유가 오래된 소프트웨어가 아닌 경우 값이 없습니다.
      유형: string
    - 이름: reason
      설명: '인증 시도 결과의 사유를 제공합니다. 결과가 "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". 결과가 "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"입니다. 결과가 "ERROR"이면 "error"입니다. 결과가 "FRAUD"이면 "user_marked_fraud"입니다.'
      유형: string
    - 이름: result
      설명: '인증 시도 결과입니다. "SUCCESS", "FAILURE", "ERROR", 또는 "FRAUD" 중 하나입니다.'
      유형: string
    - 이름: timestamp
      설명: 이벤트의 Unix 타임스탬프입니다.
      유형: timestamp
      시간 형식: unix
    - 이름: txid
      필수: true
      설명: 이벤트의 트랜잭션 ID입니다.
      유형: string
      지표:
        - trace_id
    - 이름: user
      설명: 인증하는 사용자 정보입니다.
      유형: object
      필드:
        - 이름: groups
          설명: 사용자에 대한 Duo 그룹 멤버십 정보입니다.
          유형: array
          요소:
            유형: string
        - 이름: key
          설명: 사용자의 user_id입니다.
          유형: string
        - 이름: name
          설명: 사용자의 username입니다.
          유형: string
          지표:
            - username
```

### Duo.OfflineEnrollment

Duo Authentication for Windows Logon 오프라인 등록 이벤트입니다.

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

```yaml
스키마: Duo.OfflineEnrollment
파서:
    네이티브:
        이름: Duo.OfflineEnrollment
설명: Duo Authentication for Windows Logon 오프라인 등록 이벤트입니다.
참조 URL: https://duo.com/docs/adminapi#offline-enrollment-logs
필드:
    - 이름: action
      필수: true
      설명: 오프라인 등록 작업입니다. "o2fa_user_provisioned", "o2fa_user_deprovisioned", 또는 "o2fa_user_reenrolled" 중 하나입니다.
      유형: string
    - 이름: description
      설명: 애플리케이션이 보고한 Duo Windows Logon 클라이언트 시스템에 대한 정보입니다.
      유형: string
    - 이름: description_json
      설명: 'Description' 필드가 유효한 JSON이면 JSON 객체로 표시됩니다. 그렇지 않으면 null입니다.
      유형: json
    - 이름: isotimestamp
      필수: true
      설명: 이벤트의 ISO8601 타임스탬프입니다.
      유형: timestamp
      시간 형식: rfc3339
      이벤트 시간 여부: true
    - 이름: object
      필수: true
      설명: Duo Windows Logon 통합의 이름입니다.
      유형: string
    - 이름: timestamp
      설명: 이벤트의 Unix 타임스탬프입니다.
      유형: timestamp
      시간 형식: unix
    - 이름: username
      필수: true
      설명: Duo 사용자 이름입니다.
      유형: string
      지표:
        - username
```

### Duo.Telephony

Duo 전화 로그 이벤트입니다.

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

```yaml
스키마: Duo.Telephony
파서:
    네이티브:
        이름: Duo.Telephony
설명: Duo 전화 로그 이벤트입니다.
참조 URL: https://duo.com/docs/adminapi#telephony-logs
필드:
    - 이름: context
      설명: '이 전화 이벤트가 시작된 방식입니다. "administrator login", "authentication", "enrollment", 또는 "verify" 중 하나입니다.'
      유형: string
    - 이름: credits
      설명: 이 이벤트에 사용된 전화 크레딧 수입니다.
      유형: int
    - 이름: isotimestamp
      필수: true
      설명: 이벤트의 ISO8601 타임스탬프입니다.
      유형: timestamp
      시간 형식: rfc3339
      이벤트 시간 여부: true
    - 이름: phone
      필수: true
      설명: 이 이벤트를 시작한 전화번호입니다.
      유형: string
    - 이름: timestamp
      설명: 이벤트의 Unix 타임스탬프입니다.
      유형: timestamp
      시간 형식: unix
    - 이름: type
      필수: true
      설명: 이벤트 유형입니다. "sms" 또는 "phone" 중 하나입니다.
      유형: string
```


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/data-onboarding/supported-logs/duo.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
