# 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에 온보딩하려면 아래 단계를 따르세요. 또한 [데이터 수집 비디오 개요](https://docs.panther.com/ko/data-onboarding/..#video-overview) 에서 Duo 로그 온보딩의 빠른 워크스루를 볼 수 있습니다.

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

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

   참고: Duo 관리자 패널에서 Admin API 애플리케이션을 생성하거나 수정할 수 있는 사람은 소유자(Owner) 역할을 가진 관리자만 가능합니다.
2. 애플리케이션에 권한 부여 **로그 읽기 권한 부여** 권한.

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

1. Panther 콘솔의 왼쪽 탐색 모음에서 클릭하세요 **구성** > **로그** **소스**.
2. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **새로 만들기.**
3. 선택하세요 **Duo** 사용 가능한 로그 소스 목록에서. 클릭하세요 **설정 시작**.
4. 다음 화면에서 소스에 대한 설명 이름(예: `내 Duo 로그`)을 입력하고 모니터링할 로그 유형을 선택하세요.
5. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **Panther 콘솔에서 필드에 값을 입력하세요:**
6. 아래 필드를 입력하세요:
   * **통합 키**: Duo 앱의 통합 키를 입력하세요.
   * **시크릿 키**: Duo 앱의 시크릿 키를 입력하세요.
   * **API 호스트명**: Duo 앱의 API 호스트명을 입력하세요.
7. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **설정**. 성공 화면으로 이동합니다:

<figure><img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-e55cedf82c6a6adc66ec5c14ebdcb164c3b1dcca%2FScreenshot%202023-08-03%20at%204.33.30%20PM.png?alt=media" 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="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-c48119abd559990173004bde99ff4907fdd2ded2%2FScreenshot%202023-08-03%20at%204.26.54%20PM.png?alt=media" 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
      required: true
      설명: 수행된 변경 유형.
      type: string
    - 이름: description
      설명: 변경된 내용을 자유 형식 텍스트 또는 직렬화된 JSON으로 자세히 설명한 문자열.
      type: string
<strong>    - 이름: description_json
</strong>      설명: 'Description' 필드가 유효한 JSON인 경우 JSON 객체로 표시됩니다. 그렇지 않으면 null.
      유형: json
    - 이름: isotimestamp
      required: true
      설명: 이벤트의 ISO8601 타임스탬프.
      type: timestamp
      시간형식: rfc3339
      isEventTime: true
    - 이름: object
      설명: '작업 대상 객체. 예: "jsmith"(사용자용), "(555) 713-6275 x456"(전화용), 또는 "HOTP 8-digit 123456"(토큰용).' 
      type: string
    - 이름: timestamp
      설명: 이벤트의 유닉스 타임스탬프.
      type: timestamp
      시간형식: unix
    - 이름: username
      required: true
      설명: 'Duo 관리자 패널에서 작업을 수행한 관리자의 전체 이름. 작업이 API로 수행된 경우 이는 "API"로 표시됩니다. 비활성 사용자 삭제와 같은 자동화된 작업은 사용자 이름에 "System"을 사용합니다. 디렉터리 동기화에서 동기화된 변경은 예시 형식인 "AD Sync: 디렉터리 이름"과 같은 사용자 이름을 가집니다.'
      type: 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의 인라인 브라우저 프롬프트 기능을 사용한 경우에만 존재합니다.
      type: object
      필드:
        - 이름: browser
          설명: 액세스에 사용된 웹 브라우저.
          type: string
        - 이름: browser_version
          설명: 브라우저 버전.
          type: string
        - 이름: flash_version
          설명: 사용된 Flash 플러그인 버전(존재하지 않으면 "uninstalled").
          type: string
        - 이름: hostname
          설명: 호스트명(존재하지 않으면 "null").
          type: string
          지표:
            - hostname
        - 이름: ip
          설명: 액세스 장치의 IP 주소(존재하지 않으면 "null").
          type: string
          지표:
            - ip
        - 이름: is_encryption_enabled
          설명: Duo Device Health 앱이 감지한 디스크 암호화 상태를 보고합니다. "true", "false" 또는 "unknown" 중 하나.
          type: string
        - 이름: is_firewall_enabled
          설명: Duo Device Health 앱이 감지한 방화벽 상태를 보고합니다. "true", "false" 또는 "unknown" 중 하나.
          type: string
        - 이름: is_password_set
          설명: Duo Device Health 앱이 감지한 시스템 암호 설정 상태를 보고합니다. "true", "false" 또는 "unknown" 중 하나.
          type: string
        - 이름: java_version
          설명: 사용된 Java 플러그인 버전(존재하지 않으면 "uninstalled").
          type: string
        - 이름: location
          설명: 사용 가능한 경우 액세스 장치의 GeoIP 위치. 응답에 모든 위치 매개변수가 포함되지 않을 수 있습니다.
          type: object
          필드:
            - 이름: city
              설명: 시 이름.
              type: string
            - 이름: country
              설명: 국가 코드.
              type: string
            - 이름: state
              설명: 주, 군, 도 또는 현.
              type: string
        - 이름: os
          설명: 장치 운영 체제 이름.
          type: string
        - 이름: os_version
          설명: 장치 운영 체제 버전.
          type: string
        - 이름: security_agents
          설명: Duo Device Health 앱이 감지한 엔드포인트에 존재하는 보안 에이전트 보고.
          type: array
          element:
            유형: json
    - 이름: alias
      설명: 로그인에 사용된 사용자 이름 별칭. 사용자가 별칭 대신 사용자 이름으로 로그인한 경우 값 없음.
      type: string
      지표:
        - username
    - 이름: application
      설명: 액세스된 애플리케이션에 관한 정보.
      type: object
      필드:
        - 이름: key
          설명: 애플리케이션의 integration_key.
          type: string
        - 이름: name
          설명: 애플리케이션의 이름.
          type: string
    - 이름: auth_device
      설명: 인증을 승인하거나 거부하는 데 사용된 장치에 관한 정보.
      type: object
      필드:
        - 이름: ip
          설명: 인증 장치의 IP 주소.
          type: string
          지표:
            - ip
        - 이름: location
          설명: 사용 가능한 경우 인증 장치의 GeoIP 위치. 모든 위치 매개변수가 포함되지 않을 수 있습니다.
          type: object
          필드:
            - 이름: city
              설명: 시 이름.
              type: string
            - 이름: country
              설명: 국가 코드.
              type: string
            - 이름: state
              설명: 주, 군, 도 또는 현.
              type: string
        - 이름: name
          설명: 인증 장치의 이름.
          type: string
    - 이름: email
      설명: 사용자의 이메일 주소(알려진 경우), 그렇지 않으면 없음.
      type: string
      지표:
        - email
    - 이름: event_type
      설명: '기록된 활동 유형. 다음 중 하나: "authentication" 또는 "enrollment".'
      type: 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".'
      type: string
    - 이름: isotimestamp
      required: true
      설명: 이벤트의 ISO8601 타임스탬프.
      type: timestamp
      시간형식: rfc3339
      isEventTime: true
    - 이름: ood_software
      설명: 인증이 최신 버전이 아닌 소프트웨어로 인해 거부된 경우 소프트웨어 이름(예: "Chrome", "Flash" 등)을 표시합니다. 인증이 성공했거나 인증 거부가 구식 소프트웨어 때문이 아닌 경우 값 없음.
      type: 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"입니다.'
      type: string
    - 이름: result
      설명: '인증 시도 결과. 다음 중 하나: "SUCCESS", "FAILURE", "ERROR", 또는 "FRAUD".'
      type: string
    - 이름: timestamp
      설명: 이벤트의 유닉스 타임스탬프.
      type: timestamp
      시간형식: unix
    - 이름: txid
      required: true
      설명: 이벤트의 거래 ID.
      type: string
      지표:
        - trace_id
    - 이름: user
      설명: 인증하는 사용자에 대한 정보.
      type: object
      필드:
        - 이름: groups
          설명: 사용자에 대한 Duo 그룹 멤버십 정보.
          type: array
          element:
            type: string
        - 이름: key
          설명: 사용자의 user_id.
          type: string
        - 이름: name
          설명: 사용자의 사용자 이름.
          type: string
          지표:
            - username
```

### Duo.OfflineEnrollment

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

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

```yaml
스키마: Duo.OfflineEnrollment
파서:
    네이티브:
        이름: Duo.OfflineEnrollment
설명: Windows 로그온용 Duo 오프라인 등록 이벤트.
참조URL: https://duo.com/docs/adminapi#offline-enrollment-logs
필드:
    - 이름: action
      required: true
      설명: 오프라인 등록 작업. "o2fa_user_provisioned", "o2fa_user_deprovisioned" 또는 "o2fa_user_reenrolled" 중 하나.
      type: string
    - 이름: description
      설명: 애플리케이션이 보고한 Duo Windows 로그온 클라이언트 시스템에 대한 정보.
      type: string
    - 이름: description_json
      설명: 'Description' 필드가 유효한 JSON인 경우 JSON 객체로 표시됩니다. 그렇지 않으면 null.
      유형: json
    - 이름: isotimestamp
      required: true
      설명: 이벤트의 ISO8601 타임스탬프.
      type: timestamp
      시간형식: rfc3339
      isEventTime: true
    - 이름: object
      required: true
      설명: Duo Windows 로그온 통합의 이름.
      type: string
    - 이름: timestamp
      설명: 이벤트의 유닉스 타임스탬프.
      type: timestamp
      시간형식: unix
    - 이름: username
      required: true
      설명: Duo 사용자 이름.
      type: 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".'
      type: string
    - 이름: credits
      설명: 이 이벤트에 소모된 전화 통신 크레딧 수.
      유형: int
    - 이름: isotimestamp
      required: true
      설명: 이벤트의 ISO8601 타임스탬프.
      type: timestamp
      시간형식: rfc3339
      isEventTime: true
    - 이름: phone
      required: true
      설명: 이 이벤트를 시작한 전화번호.
      type: string
    - 이름: timestamp
      설명: 이벤트의 유닉스 타임스탬프.
      type: timestamp
      시간형식: unix
    - 이름: type
      required: true
      설명: 이벤트 유형. "sms" 또는 "phone" 중 하나.
      type: string
```
