# Docusign 로그

## 개요

Panther는 수집을 지원합니다 [Docusign](https://www.docusign.com/) HTTP를 통한 Connect 웹훅 이벤트. [Docusign Connect](https://developers.docusign.com/platform/webhooks/connect/) 는 전자서명 워크플로의 특정 이벤트가 발생할 때 Panther와 같은 외부 애플리케이션에 알림을 보내는 웹훅을 구성할 수 있게 해줍니다.

Docusign Connect 웹훅은 봉투(발송, 전달, 완료 또는 무효화), 수신인, 템플릿, 신원 인증 등 다양한 엔티티에 대한 실시간 알림을 제공할 수 있습니다. 다음에서 [사용 가능한 이벤트 트리거의 전체 목록을 확인하세요](https://developers.docusign.com/platform/webhooks/connect/event-triggers/).

Panther에서 Docusign 로그 통합을 통해 다음을 수행할 수 있습니다:

* **무단 액세스 및 사기 감지**: 인증 실패 시도, 의심스러운 수신인 행동, 비정상적인 서명 패턴 및 예기치 않은 봉투 수정 추적
* **템플릿 보안 모니터링**: 문서 템플릿의 생성, 수정 또는 삭제 모니터링
* **계정 활동 모니터링**: 관리자 조치 및 구성 변경 추적

### 보안 모니터링에 일반적으로 사용되는 Docusign 이벤트 트리거

다음 [이벤트 트리거](https://developers.docusign.com/platform/webhooks/connect/event-triggers/) 는 보안 모니터링에 일반적으로 사용됩니다:

* `recipient-authentication-failure`: 인증 실패
* `envelope-voided`: 봉투 취소(잠재적 사기)
* `envelope-corrected`: 문서 수정(잠재적 변조)
* `template-created`, `template-modified`, `template-deleted`: 템플릿 변경
* `recipient-declined`: 문서 거부

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

### 필수 조건

* Docusign Connect 웹훅을 구성하려면 Docusign 계정에서 관리자 권한이 있어야 합니다. 자세한 내용은 [Docusign Connect 문서](https://developers.docusign.com/platform/webhooks/connect/) 를 참조하세요.

### 1단계: Panther에서 새 Docusign 소스 생성

1. Panther 콘솔의 왼쪽 네비게이션 바에서 클릭하세요 **Configure** > **로그 소스**.
2. 클릭 **새로 만들기**.
3. "Docusign"을 검색한 다음 해당 타일을 클릭하세요.
4. 클릭 **설정 시작**.

   <figure><img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-9d04bf957982eb5ec4d3d04fe3b7e79497ad773f%2FScreenshot%202025-09-25%20at%201.34.37%E2%80%AFPM.png?alt=media" alt="An arrow is drawn from a tile labeled &#x22;Docusign&#x22; to a &#x22;Start Setup&#x22; button."><figcaption></figcaption></figure>
5. Panther의 [HTTP 소스 구성에 대한 지침](https://docs.panther.com/ko/data-transports/http#how-to-set-up-an-http-log-source-in-panther)을(를) 5단계부터 시작하여 따르세요.
   * 설정 중에, **인증 방식**에 대해 **기본 인증** 또는 **HMAC**.
     * 을(를) 사용해야 합니다 **HMAC**, 다음의 경우 **헤더 이름**, 입력 `X-Docusign-Signature-1`. [여기에서 Connect 웹훅에 HMAC을 사용하는 방법에 대해 자세히 알아보세요](https://developers.docusign.com/platform/webhooks/connect/hmac/).
   * 이후 Docusign에서 웹훅을 설정할 때 필요하므로 구성한 인증 정보를 저장하세요.
   * 이 소스로 전송되는 페이로드는 다음의 적용을 받습니다 [모든 HTTP 소스에 대한 페이로드 요구사항](https://docs.panther.com/ko/data-transports/http#payload-requirements).
   * HTTP 엔드포인트 생성이 완료될 때까지 다음 단계로 진행하지 마세요.

### 2단계: Docusign Connect 웹훅 구성

아래 단계를 따라 Docusign Connect 웹훅을 구성하세요. 이 과정에서 추가 지원이 필요하면 다음을 참조하세요 [Docusign의 Connect 구성 생성 문서](https://support.docusign.com/s/document-item?language=en_US&_gl=1*jyc3me*_gcl_au*MTM1MDY1NDYyMS4xNzUzODgzNTcx\&bundleId=vob1727899215236\&topicId=xwi1583277389681.html&_LANG=enus).

1. 관리자 계정으로 Docusign에 로그인하세요.
2. 탐색 바에서 클릭하세요 **통합** > **Connect**.
3. 클릭 **구성 추가** > **사용자 정의**.
4. 다음을 구성하세요 [웹훅 Connect 필드](https://support.docusign.com/s/document-item?language=en_US\&bundleId=vob1727899215236\&topicId=zjq1665170940873.html&_LANG=enus):
   * **이름**: 설명적인 이름을 입력하세요. 예:  `Panther Security Integration`.
   * **게시할 URL**: 다음을 입력하세요 **HTTP 소스 URL** 1단계에서 Panther에서 생성한 URL입니다.
   * **트리거 이벤트**: 다음을 선택하세요 [이벤트 트리거](https://developers.docusign.com/platform/webhooks/connect/event-triggers/) 모니터링하려는 항목
     * **데이터 포함**: 각 범주에 대해 Panther로 전송되는 이벤트에 포함되길 원하는 필드를 선택하세요. 이러한 필드에 대해서는 이 [Docusign 문서](https://support.docusign.com/s/document-item?language=en_US\&bundleId=vob1727899215236\&topicId=zbg1608069790210.html&_LANG=enus).

{% hint style="warning" %}
에 대해 **봉투(Envelope)** 및 **수신자(Recipient)** 이벤트의 경우, 다음을 비워두는 것이 권장됩니다 **문서** 및 **첨부파일** 선택하지 않음. 이렇게 하면 페이로드 크기를 줄여 이벤트 전달 지연을 방지할 수 있습니다. 다음에서 자세히 알아보세요 [대신 eSignature API를 통해 문서를 검색하는 방법은 여기에서 확인하세요](https://support.docusign.com/s/document-item?language=en_US&_gl=1*jyc3me*_gcl_au*MTM1MDY1NDYyMS4xNzUzODgzNTcx\&bundleId=vob1727899215236\&topicId=oza1583277387805.html&_LANG=enus).
{% endhint %}

* **HMAC 서명 포함**: 1단계에서 Panther에서 HMAC 인증을 사용한 경우 이 항목을 선택하세요.

  * 의 **1.** 필드에 HMAC 값을 입력하세요 **헤더 이름** 1단계에서 Panther에 입력한 값입니다. Docusign은 이 값을 `X-Docusign-Signature-1` 헤더와 연관하여 전송합니다.
  * 자세한 내용은 다음을 참조하세요 [Docusign Connect와 함께 HMAC 보안을 사용하는 Docusign 문서](https://developers.docusign.com/platform/webhooks/connect/hmac/).

  <figure><img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-8ba4ac9041f9dbe6328d489d7dc58b56155b3f5e%2Fhmac_docusign.webp?alt=media" alt="Under an &#x27;Integration and Security Settings&#x27; header is an &#x27;Include HMAC Signature (Recommended)&#x27; checkbox. Beneath, there is a field under a &#x27;Key&#x27; header that is circled." width="258"><figcaption></figcaption></figure>

  * **기본 인증 헤더 포함**: 1단계에서 Panther에서 기본 인증을 사용한 경우 이 항목을 선택하세요.
* **사용자 이름**: 다음을 입력하세요 **사용자 이름** 1단계에서 Panther에 입력한 값입니다.
* **비밀번호**: 다음을 입력하세요 **비밀번호** 1단계에서 Panther에 입력한 값입니다.

5. 클릭 **구성 추가**.

## 지원되는 로그 유형

### Docusign.Connect

봉투 상태 변경, 수신자 작업, 문서 워크플로 업데이트 등과 관련된 알림을 제공하는 Docusign Connect 웹후크 이벤트입니다.

참조: [Docusign Connect JSON SIM 이벤트 모델](https://developers.docusign.com/platform/webhooks/connect/json-sim-event-model/)

```yaml
스키마: Docusign.Connect
설명: 봉투 상태 변경, 수신자 작업 및 문서 워크플로 업데이트 등에 대해 알림을 제공하는 Docusign Connect 웹후크 이벤트
참조 URL: https://developers.docusign.com/platform/webhooks/connect/json-sim-event-model
필드:
  - 이름: event
    필수: true
    설명: 웹후크를 트리거한 이벤트 유형(예: recipient-sent, envelope-completed).
    타입: 문자열
  - 이름: uri
    설명: 봉투 리소스의 REST API URI.
    타입: 문자열
  - 이름: retryCount
    설명: 이 웹후크 전달에 대한 재시도 시도 횟수.
    타입: 문자열
  - 이름: configurationId
    설명: 이 웹후크를 생성한 Connect 구성 ID.
    타입: 문자열
  - 이름: apiVersion
    설명: 이 이벤트에 사용된 Docusign API 버전.
    타입: 문자열
  - 이름: generatedDateTime
    필수: true
    설명: Docusign에서 이벤트가 생성된 시각.
    타입: 타임스탬프
    시간 형식:
      - rfc3339
    isEventTime: true
  - 이름: data
    필수: true
    설명: 이벤트 정보를 포함하는 주요 이벤트 데이터.
    타입: 객체
    필드:
      - 이름: accountId
        설명: 발신자의 계정을 식별하거나 Recipient Connect의 경우 수신자의 계정을 식별합니다.
        타입: 문자열
        지표:
          - trace_id
      - 이름: userId
        설명: 이벤트와 관련된 사용자 ID
        타입: 문자열
        지표:
          - trace_id
      - 이름: recipientId
        설명: 이 이벤트와 관련된 수신자 ID
        타입: 문자열
        지표:
          - trace_id
      - 이름: envelopeId
        설명: 이벤트에 관련된 봉투를 식별합니다.
        타입: 문자열
        지표:
          - trace_id
      - 이름: name
        설명: 관련 템플릿 이벤트의 이름 또는 봉투가 재할당된 사람의 이름.
        타입: 문자열
      - 이름: email
        설명: 봉투가 재할당된 사람의 이메일 주소.
        타입: 문자열
        지표:
          - 이메일
      - 이름: routingOrder
        설명: 봉투가 재할당된 사람의 라우팅 순서.
        타입: 문자열
      - 이름: created
        설명: 템플릿이 생성/편집/삭제된 UTC 날짜 및 시간.
        타입: 타임스탬프
        시간 형식:
          - rfc3339
      - name: templateId
        description: 생성/편집/삭제된 템플릿 ID입니다.
        타입: 문자열
        지표:
          - trace_id
      - name: clickwrapId
        description: 합의되거나 거부된 엘라스틱 템플릿을 식별합니다.
        타입: 문자열
        지표:
          - trace_id
      - name: agreementId
        description: 엘라스틱 템플릿 내의 합의를 식별합니다.
        타입: 문자열
        지표:
          - trace_id
```

## 사용자 정의 디택션 패턴

Docusign용 사용자 정의 디텍션을 작성할 때 다음과 같은 일반 패턴을 사용할 수 있습니다:

```python
# 특정 이벤트 유형 확인
event_type = event.get('event')

# 인증 실패 모니터링
if event_type == 'recipient-authentication-failure':
    return True
    
# 봉투 무효화 모니터링(잠재적 사기 지표)  
if event_type == 'envelope-voided':
    return True
```

```python
# 봉투 및 발신자/수신자 데이터 접근
envelope_id = deep_get(event, 'data', 'envelopeId')
account_id = deep_get(event, 'data', 'accountId')
```

## Docusign 로그 쿼리하기

다음에서 Docusign 로그를 쿼리하려면 [Data Explorer](https://docs.panther.com/ko/search/data-explorer):

```sql
-- 최근 Docusign 이벤트 보기
SELECT event, generatedDateTime, data:envelopeId, data:email
FROM panther_logs.docusign_connect
WHERE p_occurs_since('1 day')
ORDER BY p_event_time DESC;

-- 인증 실패 모니터링
SELECT *
FROM panther_logs.docusign_connect  
WHERE event = 'recipient-authentication-failure'
  AND p_occurs_since('7 days')
ORDER BY p_event_time DESC;

-- 봉투 상태 변경 추적
SELECT event, data:envelopeId, data:accountId, generatedDateTime
FROM panther_logs.docusign_connect
WHERE event LIKE 'envelope-%'
  AND p_occurs_since('1 day')
ORDER BY generatedDateTime DESC;
```
