# 1Password 로그

## 개요

Panther는 다음을 통해 1Password 이벤트 로그를 가져옵니다. [1Password 이벤트 API](https://support.1password.com/events-api-reference/) 매 1분마다. Panther는 특히 다음의 1Password 이벤트를 모니터링합니다:

* 사용자의 1Password 계정에 대한 로그인 시도
* 수정되었거나 액세스되었거나 사용된 공유 금고의 항목
* 활동 로그의 감사 이벤트

Panther는 장치가 오프라인일 때 생성된 1Password 이벤트도 수집합니다.

{% hint style="info" %}
작업을 유발하는 [OnePassword.ItemUsage](#onepassword.itemusage) 이벤트가 발생한 시점부터 로그가 Panther에 수집될 때까지 최대 하루 정도의 지연이 있을 수 있습니다. Panther는 이벤트가 사용 가능해지면 즉시 가져오지만 일부 장치는 1Password와 하루에 한두 번만 동기화합니다.
{% endhint %}

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

Panther에서 1Password를 로그 소스로 설정하려면 1Password 계정에서 액세스 토큰을 생성한 다음 Panther에서 1Password 로그 소스를 구성해야 합니다.

### 1단계: 1Password에서 액세스 토큰 생성

1. [로그인](https://start.1password.com/signin) 하여 1Password 계정에 접속한 후, 클릭합니다 **통합** 사이드바에서.
2. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **디렉터리** 페이지 상단에 있습니다.
3. 아래로 스크롤하여 "이벤트 보고(Events Reporting)" 섹션을 찾은 다음 클릭합니다 **Panther**.\ <img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-1bb76e3581f33c19d4470994e0a92f1e8aadfc31%2FSIEM%20Integrations.png?alt=media" alt="In the &#x22;Events Reporting&#x22; section in 1Password, there is a tile labeled Panther. In the image, there is a red square around it." data-size="original">
4. 시작하려면 다음 단계를 따르세요: **시스템 이름** 통합을 위해, 그런 다음 클릭합니다 **통합 추가**.
5. 베어러 토큰의 이름을 입력하고 토큰 만료를 선택합니다.
6. 토큰이 접근할 이벤트 유형을 선택하세요:
   * 로그인 시도
     * Panther로 [OnePassword.SignInAttempt](#onepassword.signinattempt) 이벤트를 수집할 계획이라면 이 옵션을 선택하세요.
   * 항목 사용 이벤트
     * Panther로 [OnePassword.ItemUsage](#onepassword.itemusage) 이벤트를 수집할 계획이라면 이 옵션을 선택하세요.
   * 감사 이벤트
     * Panther로 [OnePassword.AuditEvent](#onepassword.auditevent) 이벤트를 수집할 계획이라면 이 옵션을 선택하세요.
7. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **토큰 발급** 하여 액세스 토큰 키를 생성합니다.
   * 1Password 베어러 토큰 발급 또는 취소에 대한 추가 정보는 [1Password 문서](https://support.1password.com/events-reporting/#appendix-issue-or-revoke-bearer-tokens).
8. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **에 저장** 하고 토큰을 저장할 금고를 선택하세요.
9. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **통합 세부정보 보기** 로 토큰을 확인하세요.
   * 다음 단계에서 이 토큰이 필요합니다.

### 2단계: Panther에서 새 1Password 로그 소스 생성

1. Panther 콘솔의 왼쪽 탐색 창에서 **구성** > **로그** **소스**.
2. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **새로 만들기.**
3. “1Password”를 검색한 다음 해당 타일을 클릭하세요.
4. 슬라이드 아웃 패널에서 클릭하세요 **설정 시작**.
5. 다음 화면에서 소스의 이름을 입력하세요(예: `내 1Password 로그`.
6. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **Panther 콘솔에서 필드에 값을 입력하세요:**
7. 페이지에서 **자격 증명(Credentials)** 페이지에서 양식을 작성하세요:
   * Panther는 이 값을 **액세스 토큰 키** 를 1Password 계정에서 복사하여 액세스 토큰 필드에 입력하세요.
   * 1Password 계정의 지역과 요금제를 선택하세요.
8. 를 선택하고 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>

{% hint style="warning" %}
**참고:** 기본적으로 1Password 로그에는 금고나 로그인 자격 증명과 같은 객체에 대한 사람이 읽을 수 있는 값이 포함되어 있지 않습니다. 다음을 [조회 테이블 사용 가이드](https://docs.panther.com/guides/using-lookup-tables-1password-uuids) 을 참조하여 1Password의 범용 고유 식별자(UUID) 값을 사람이 읽을 수 있는 이름으로 변환하세요.
{% endhint %}

## Panther가 제공하는 디텍션

Panther의 내장된 [Github의 panther-analysis에 있는 1Password 룰](https://github.com/panther-labs/panther-analysis/tree/master/rules/onepassword_rules).

## 지원되는 로그 유형

### OnePassword.ItemUsage

이들은 1Password 항목 사용 이벤트입니다. 자세한 내용은 [1Password 이벤트 API 참조 문서](https://developer.1password.com/docs/events-api/reference/#item-usage).

```yaml
스키마: OnePassword.ItemUsage
파서:
    네이티브:
        이름: OnePassword.ItemUsage
설명: OnePassword 항목 사용
참고URL: https://support.1password.com/events-api-reference/#item-usage
필드:
    - name: uuid
      required: true
      설명: 이벤트의 UUID.
      type: string
    - 이름: timestamp
      required: true
      설명: rfc3339 표준 형식의 이벤트 날짜 및 시간.
      type: timestamp
      timeFormats:
        - rfc3339
      isEventTime: true
    - 이름: used_version
      설명: 액세스된 항목의 버전.
      type: bigint
    - 이름: vault_uuid
      설명: 항목이 있는 금고의 UUID.
      type: string
    - 이름: item_uuid
      설명: 액세스된 항목의 UUID.
      type: string
    - 이름: action
      설명: 항목이 사용된 방법에 대한 세부사항. 동작은 1Password 8.4.0 이상을 사용하는 클라이언트 앱에서만 캡처됩니다.
      type: string
    - name: user
      설명: 항목에 액세스한 사용자 객체.
      type: object
      필드:
        - name: uuid
          설명: 항목에 액세스했거나 계정에 로그인하려고 시도한 사용자의 UUID.
          type: string
        - 이름: name
          설명: 이벤트가 생성될 때 채워진 사용자 이름.
          type: string
        - 이름: email
          설명: 이벤트가 생성될 때 채워진 사용자의 이메일 주소.
          type: string
          지표:
            - 이메일
    - name: client
      설명: 항목에 액세스할 때 사용된 클라이언트 객체.
      type: object
      필드:
        - name: app_name
          설명: 항목에 액세스한 1Password 앱의 이름.
          type: string
        - 이름: app_version
          설명: 앱의 버전 번호.
          type: string
        - 이름: platform_name
          설명: 항목에 액세스한 플랫폼의 이름.
          type: string
        - 이름: platform_version
          설명: 1Password가 설치된 브라우저나 컴퓨터의 버전 또는 1Password 커맨드라인 도구가 설치된 머신의 CPU.
          type: string
        - 이름: os_name
          설명: 항목에 액세스한 운영체제의 이름.
          type: string
        - 이름: os_version
          설명: 항목에 액세스한 운영체제의 버전.
          type: string
        - 이름: ip_address
          설명: 항목에 액세스한 IP 주소.
          type: string
          지표:
            - ip
```

### OnePassword.SignInAttempt

이들은 1Password 로그인 시도입니다. 자세한 내용은 [1Password 이벤트 API 참조 문서](https://developer.1password.com/docs/events-api/reference/#sign-in-attempts).

```yaml
스키마: OnePassword.SignInAttempt
파서:
    네이티브:
        이름: OnePassword.SignInAttempt
설명: OnePassword 로그인 시도
참고URL: https://support.1password.com/events-api-reference/#sign-in-attempts
필드:
    - name: uuid
      required: true
      설명: 이벤트의 UUID.
      type: string
    - 이름: session_uuid
      설명: 이벤트를 생성한 세션의 UUID.
      type: string
    - 이름: timestamp
      required: true
      설명: rfc3339 표준 형식의 이벤트 날짜 및 시간.
      type: timestamp
      timeFormats:
        - rfc3339
      isEventTime: true
    - name: category
      설명: 로그인 시도 카테고리.
      type: string
    - 이름: type
      설명: 로그인 시도의 유형 세부사항.
      type: string
    - 이름: country
      설명: 이벤트가 발생한 곳의 국가 코드.
      type: string
    - 이름: details
      설명: 방화벽 규칙 등 사용자의 로그인을 차단하는 추가 정보와 같은 로그인 시도에 대한 추가 정보.
      type: object
      필드:
        - 이름: value
          설명: 로그인 시도의 국가, 대륙 또는 IP 주소
          type: string
    - 이름: target_user
      설명: 로그인 시도가 시도된 사용자 객체.
      type: object
      필드:
        - name: uuid
          설명: 항목에 액세스했거나 계정에 로그인하려고 시도한 사용자의 UUID.
          type: string
        - 이름: name
          설명: 이벤트가 생성될 때 채워진 사용자 이름.
          type: string
        - 이름: email
          설명: 이벤트가 생성될 때 채워진 사용자의 이메일 주소.
          type: string
          지표:
            - 이메일
    - name: client
      설명: 로그인 시도에 사용된 클라이언트 객체.
      type: object
      필드:
        - name: app_name
          설명: 항목에 액세스한 1Password 앱의 이름.
          type: string
        - 이름: app_version
          설명: 앱의 버전 번호.
          type: string
        - 이름: platform_name
          설명: 항목에 액세스한 플랫폼의 이름.
          type: string
        - 이름: platform_version
          설명: 1Password가 설치된 브라우저나 컴퓨터의 버전 또는 1Password 커맨드라인 도구가 설치된 머신의 CPU.
          type: string
        - 이름: os_name
          설명: 항목에 액세스한 운영체제의 이름.
          type: string
        - 이름: os_version
          설명: 항목에 액세스한 운영체제의 버전.
          type: string
        - 이름: ip_address
          설명: 항목에 액세스한 IP 주소.
          type: string
          지표:
            - ip
    - 이름: location
      설명: 이벤트가 발생한 위치.
      type: object
      필드:
        - 이름: country
          설명: 이벤트가 발생한 곳의 국가 코드.
          type: string
        - 이름: region
          설명: 이벤트가 발생한 곳의 지역 코드.
          type: string
        - 이름: city
          설명: 이벤트가 발생한 곳의 도시 코드.
          type: string
        - 이름: longitude
          설명: 이벤트가 발생한 곳의 경도.
          type: float
        - 이름: latitude
          설명: 이벤트가 발생한 곳의 위도.
          type: float
```

### OnePassword.AuditEvent

이들은 활동 로그(Activity Log)의 1Password 감사 이벤트입니다. 자세한 내용은 [1Password 이벤트 보고 감사 이벤트 문서](https://developer.1password.com/docs/events-api/audit-events/).

```yaml
스키마: OnePassword.AuditEvent
설명: OnePassword 감사 이벤트
참고URL: https://developer.1password.com/docs/events-api/audit-events/
필드:
    - name: uuid
      required: true
      설명: 이벤트의 UUID.
      type: string
    - 이름: timestamp
      required: true
      설명: rfc3339 표준 형식의 이벤트 날짜 및 시간.
      type: timestamp
      timeFormats:
        - rfc3339
      isEventTime: true
    - 이름: actor_uuid
      설명: ActorUUID 필드.
      type: string
      지표:
        - actor_id
    - 이름: actor_details
      설명: 작업을 수행한 팀 구성원의 세부사항.
      type: object
      필드:
        - name: uuid
          설명: 팀 구성원의 UUID.
          type: string
          지표:
            - actor_id
        - 이름: name
          설명: 팀 구성원의 이름.
          type: string
          지표:
            - username
        - 이름: email
          설명: 팀 구성원의 이메일.
          type: string
          지표:
            - 이메일
    - 이름: action
      required: true
      설명: 수행된 작업.
      type: string
    - 이름: object_type
      required: true
      설명: 이벤트로 인해 영향을 받은 객체의 유형.
      type: string
    - 이름: object_uuid
      설명: 이벤트로 인해 영향을 받은 객체의 UUID.
      type: string
    - 이름: object_details
      설명: 이벤트로 인해 영향을 받은 팀 구성원의 세부사항. 이 속성은 작업 대상이 팀 구성원인 이벤트에 대해서만 반환됩니다.
      type: object
      필드:
        - name: uuid
          설명: 팀 구성원의 UUID.
          type: string
          지표:
            - actor_id
        - 이름: name
          설명: 팀 구성원의 이름.
          type: string
          지표:
            - username
        - 이름: email
          설명: 팀 구성원의 이메일.
          type: string
          지표:
            - 이메일
    - 이름: aux_id
      설명: 활동에 대한 추가 정보의 id.
      type: bigint
    - 이름: aux_uuid
      설명: 활동에 대한 추가 정보의 UUID.
      type: string
    - 이름: aux_details
      설명: 활동에 대한 추가 정보와 관련된 팀 구성원의 세부사항. 이 속성은 활동에 대한 추가 정보가 팀 구성원과 관련된 경우에만 반환됩니다.
      type: object
      필드:
        - name: uuid
          설명: 팀 구성원의 UUID.
          type: string
          지표:
            - actor_id
        - 이름: name
          설명: 팀 구성원의 이름.
          type: string
          지표:
            - username
        - 이름: email
          설명: 팀 구성원의 이메일.
          type: string
          지표:
            - 이메일
    - 이름: aux_info
      설명: 활동에 대한 추가 정보.
      type: string
    - 이름: session
      설명: 클라이언트에 대해 수집된 세션 정보.
      type: object
      필드:
        - name: uuid
          설명: 이벤트를 생성한 세션의 UUID.
          type: string
        - 이름: login_time
          설명: 세션 로그인 날짜 및 시간.
          type: timestamp
        - 이름: device_uuid
          설명: 로그인 장치의 UUID.
          type: string
        - 이름: ip
          설명: 로그인 장치의 IP 주소.
          type: string
          지표:
            - ip
    - 이름: location
      설명: 이벤트가 발생한 곳의 위치 객체.
      type: object
      필드:
        - 이름: country
          설명: 이벤트가 발생한 곳의 국가 코드.
          type: string
        - 이름: region
          설명: 이벤트가 발생한 곳의 지역 코드.
          type: string
        - 이름: city
          설명: 이벤트가 발생한 곳의 도시 코드.
          type: string
        - 이름: longitude
          설명: 이벤트가 발생한 곳의 경도.
          type: float
        - 이름: latitude
          설명: 이벤트가 발생한 곳의 위도.
          type: float
```
