VMware Workspace ONE UEM 로그 수집

다음에서 지원:

이 파서는 VMware Workspace ONE UEM (이전 명칭: VMware AirWatch)에서 Syslog, CEF 또는 키-값 쌍 형식으로 로그를 추출합니다. 사용자 이름, 타임스탬프, 이벤트 세부정보와 같은 필드를 정규화하여 UDM에 매핑합니다. 파서는 다양한 Workspace ONE UEM 이벤트 유형을 처리하여, 다양한 로그 형식의 특정 이벤트 데이터 및 로직에 따라 사용자, 대상, 기타 UDM 필드를 채웁니다.

시작하기 전에

  • Google Security Operations 인스턴스가 있는지 확인합니다.
  • VMware Workspace ONE 콘솔에 대한 권한이 있는지 확인합니다.
  • systemd가 있는 Windows 또는 Linux 호스트가 있는지 확인합니다.
  • 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.

Google SecOps 처리 인증 파일 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 수집 에이전트로 이동합니다.
  3. 처리 인증 파일을 다운로드합니다.

Google SecOps 고객 ID 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 프로필로 이동합니다.
  3. 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.

BindPlane 에이전트 설치

  1. Windows 설치의 경우 다음 스크립트를 실행합니다.
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Linux 설치의 경우 다음 스크립트를 실행합니다.
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. 추가 설치 옵션은 이 설치 가이드에서 확인할 수 있습니다.

Syslog를 수집하고 Google SecOps로 전송하도록 BindPlane 에이전트 구성

  1. BindPlane이 설치된 머신에 액세스합니다.
  2. 다음과 같이 config.yaml 파일을 수정합니다.

    receivers:
      tcplog:
        # Replace the below port <54525> and IP (0.0.0.0) with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: 
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 다음 명령어를 사용하여 BindPlane 에이전트를 다시 시작하여 변경사항을 적용합니다. sudo systemctl bindplane restart

VMware Workspace ONE UEM에서 syslog 구성

  1. Workspace ONE UEM 콘솔에 로그인합니다.
  2. 설정 > 시스템 > 고급 > Syslog로 이동합니다.
  3. Syslog 사용 설정 옵션을 선택합니다.
  4. 다음 입력 매개변수의 값을 지정합니다.
    • IP 주소/호스트 이름: BindPlane 에이전트의 주소를 입력합니다.
    • 포트: 지정된 포트를 입력합니다 (기본값: 514).
    • 프로토콜: BindPlane 에이전트 구성에 따라 UDP 또는 TCP를 선택합니다.
    • 로그 유형 선택: Google SecOps로 전송할 로그(기기 관리 로그, 콘솔 활동 로그, 규정 준수 로그, 이벤트 로그)를 선택합니다.
    • 로그 수준 (예: 정보, 경고, 오류)을 설정합니다.
  5. 저장을 클릭하여 설정을 적용합니다.

UDM 매핑 표

로그 필드 UDM 매핑 논리
AdminAccount principal.user.userid 원시 로그의 AdminAccountprincipal.user.userid 필드에 매핑됩니다.
Application target.application 원시 로그의 Application 필드가 target.application 필드에 매핑됩니다.
ApplicationUUID additional.fields 원시 로그의 ApplicationUUID 필드가 UDM의 additional.fields 배열에 키-값 쌍으로 추가됩니다. 키는 'ApplicationUUID'입니다.
BytesReceived network.received_bytes 원시 로그의 BytesReceived 필드가 network.received_bytes 필드에 매핑됩니다.
Device target.hostname 원시 로그의 Device 필드가 target.hostname 필드에 매핑됩니다.
FriendlyName target.hostname Device를 사용할 수 없는 경우 원시 로그의 FriendlyName 필드가 target.hostname 필드에 매핑됩니다.
GroupManagementData security_result.description 원시 로그의 GroupManagementData 필드가 security_result.description 필드에 매핑됩니다.
Hmac additional.fields 원시 로그의 Hmac 필드가 UDM의 additional.fields 배열에 키-값 쌍으로 추가됩니다. 키는 'Hmac'입니다.
LoginSessionID network.session_id 원시 로그의 LoginSessionID 필드가 network.session_id 필드에 매핑됩니다.
LogDescription metadata.description 원시 로그의 LogDescription 필드가 metadata.description 필드에 매핑됩니다.
MessageText metadata.description 원시 로그의 MessageText 필드가 metadata.description 필드에 매핑됩니다.
OriginatingOrganizationGroup principal.user.group_identifiers 원시 로그의 OriginatingOrganizationGroup 필드가 principal.user.group_identifiers 필드에 매핑됩니다.
OwnershipType additional.fields 원시 로그의 OwnershipType 필드가 UDM의 additional.fields 배열에 키-값 쌍으로 추가됩니다. 키는 'OwnershipType'입니다.
Profile target.resource.name ProfileName를 사용할 수 없는 경우 원시 로그의 Profile 필드가 target.resource.name 필드에 매핑됩니다.
ProfileName target.resource.name 원시 로그의 ProfileName 필드가 target.resource.name 필드에 매핑됩니다.
Request Url target.url 원시 로그의 Request Url 필드가 target.url 필드에 매핑됩니다.
SmartGroupName target.group.group_display_name 원시 로그의 SmartGroupName 필드가 target.group.group_display_name 필드에 매핑됩니다.
Tags additional.fields 원시 로그의 Tags 필드가 UDM의 additional.fields 배열에 키-값 쌍으로 추가됩니다. 키는 '태그'입니다.
User target.user.userid 원시 로그의 User 필드가 target.user.userid 필드에 매핑됩니다. 원시 로그의 Event Category가 UDM의 additional.fields 배열에 키-값 쌍으로 추가됩니다. 키는 '이벤트 카테고리'입니다. 원시 로그의 Event Module가 UDM의 additional.fields 배열에 키-값 쌍으로 추가됩니다. 키는 'Event Module'입니다. 원시 로그의 Event Source가 UDM의 additional.fields 배열에 키-값 쌍으로 추가됩니다. 키는 'Event Source'입니다. 특정 이벤트의 파서에 의해 'SSO'로 설정됩니다. 원시 로그의 타임스탬프에서 파생됩니다. 파서는 원시 로그에서 날짜와 시간을 추출하여 UDM 타임스탬프로 변환합니다. event_name 및 기타 필드를 기반으로 파서에서 결정합니다. 매핑 로직은 파서 코드를 참고하세요. 파서에 의해 'AIRWATCH'로 설정됩니다. 원시 로그의 event_namemetadata.product_event_type 필드에 매핑됩니다. 파서에 의해 'AirWatch'로 설정됩니다. 파서에 의해 'VMWare'로 설정됩니다. 원시 로그의 domainprincipal.administrative_domain 필드에 매핑됩니다. hostname는 원시 로그의 device_name 필드에서 추출되거나 Device 또는 FriendlyName 필드에서 매핑됩니다. 원시 로그의 sys_ipprincipal.ip 필드에 매핑됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 원시 로그의 user_nameprincipal.user.userid 필드에 매핑됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 특정 이벤트에 대해 파서가 설정합니다. 특정 이벤트에 대해 파서가 설정합니다. 원시 로그의 event_categorysecurity_result.category_details 필드에 매핑됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 원시 로그의 domaintarget.administrative_domain 필드에 매핑됩니다. 'DeleteDeviceRequested' 이벤트의 원시 로그에서 DeviceSerialNumberDeviceUdid를 결합하여 구성됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 원시 로그의 sys_ip 또는 기타 IP 주소가 target.ip 필드에 매핑됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 특정 이벤트에 대해 파서가 설정합니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다. 특정 이벤트 유형의 원시 로그에서 추출됩니다.

변경사항

2024-11-15

  • 개선사항:
  • 새 유형의 로그에 관한 Grok 패턴이 추가되었습니다.

2024-10-17

  • 개선사항:
  • 새로운 유형의 로그에 대한 지원이 추가되었습니다.

2024-10-07

  • 개선사항:
  • 새로운 유형의 로그에 대한 지원이 추가되었습니다.

2024-09-23

  • 개선사항:
  • 파싱되지 않은 로그를 파싱하는 지원을 추가했습니다.

2024-06-25

  • 개선사항:
  • 'username'을 'principal.user.user_display_name'에 매핑하는 Grok 패턴을 수정했습니다.
  • 'device_type'이 'additional.fields'에 매핑되었습니다.
  • 새 유형의 로그에 관한 Grok 패턴을 추가했습니다.

2023-09-05

  • 버그 수정:
  • 중단된 로그를 파싱하는 Grok 패턴을 추가했습니다.

2023-05-05

  • 버그 수정:
  • 중단된 로그를 파싱하도록 Grok 패턴이 수정되었습니다.

2023-04-26

  • 버그 수정:
  • 다양한 유형의 syslog 형식 로그에 대한 지원을 추가했습니다.

2022-12-27

  • 버그 수정:
  • 다양한 유형의 Syslog 형식 로그에 대한 지원을 추가했습니다.
  • 여러 'event_name'을 처리하기 위한 특정 조건부 검사를 추가했습니다.

2022-09-02

  • 개선사항:
  • 파싱되지 않은 ccf 형식 로그를 파싱하는 grok를 작성했습니다.

2022-06-29

  • 개선사항:
  • event_name이 'MergeGroupCompletedEvent'인 로그를 파싱했습니다.
  • 'GroupManagementData'가 'security_result.description'에 매핑되었습니다.
  • 'EventSource', 'EventModule'을 'event.idm.read_only_udm.additional.fields'에 매핑했습니다.
  • 'cat'이 'security_result.category_details'에 매핑되었습니다.
  • 'principal.user.userid' 또는 'target.user.userid'가 있는 경우 'event.idm.read_only_udm.metadata.event_type'을 'GENERIC_EVENT'에서 'USER_UNCATEGORIZED'로 수정했습니다.

2022-06-20

  • 개선사항:
  • 이벤트 카테고리가 _udm.additional.fields(event_category)에 매핑됨
  • SecurityInformation, SecurityInformationConfirmed(event_name)의 이벤트 유형 GENERIC_EVENT를 추가하여 파싱되지 않은 로그를 처리합니다.