Jamf 위협 이벤트 로그 수집

다음에서 지원:

이 문서에서는 Google Security Operations 피드를 설정하여 Jamf 위협 이벤트 로그를 수집하는 방법과 로그 필드가 Google SecOps 통합 데이터 모델 (UDM) 필드에 매핑되는 방식을 설명합니다. 이 문서에는 지원되는 Jamf 위협 이벤트 버전도 나와 있습니다.

자세한 내용은 Google SecOps에 데이터 수집을 참조하세요.

일반적인 배포는 Jamf 위협 이벤트와 Google SecOps에 로그를 전송하도록 구성된 Google SecOps 피드로 구성됩니다. 고객 배포마다 다를 수 있으며 더 복잡할 수도 있습니다.

배포에는 다음 구성요소가 포함됩니다.

  • Jamf Protect: Jamf Security Cloud로 구성되어 있으며 네트워크 위협 로그를 수집하는 Jamf Protect 플랫폼입니다.

  • Google SecOps 피드: Jamf Protect에서 로그를 가져오고 로그를 Google SecOps에 작성하는 Google SecOps 피드입니다.

  • Google SecOps: Google SecOps는 Jamf Protect의 로그를 보관하고 분석합니다.

수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다. 이 문서의 정보는 JAMF_THREAT_EVENTS 수집 라벨이 있는 파서에 적용됩니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Jamf Protect 원격 분석 설정
  • Jamf Protect 버전 4.0.0 이상
  • 배포 아키텍처의 모든 시스템은 UTC 시간대로 구성됩니다.

SIEM 설정 > 피드에서 피드 설정

Amazon S3 V2 또는 웹훅을 사용하여 Google SecOps에서 수집 피드를 설정할 수 있습니다.

Amazon S3 V2를 사용하여 수집 피드 설정

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. JAMF 피드 팩을 클릭합니다.
  4. Jamf Protect 위협 이벤트 피드를 찾습니다.
  5. 소스 유형으로 Amazon S3 V2를 선택합니다.
  6. 다음 필드의 값을 지정합니다.

    • S3 URI: 버킷 URI입니다.
      • s3://your-log-bucket-name/
        • your-log-bucket-name을 실제 S3 버킷 이름으로 바꿉니다.
    • 소스 삭제 옵션: 수집 환경설정에 따라 삭제 옵션을 선택합니다.
    • 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다. 기본값은 180일입니다.
    • 액세스 키 ID: S3 버킷에서 읽을 권한이 있는 사용자의 액세스 키입니다.
    • 보안 비밀 액세스 키: S3 버킷에서 읽을 수 있는 권한이 있는 사용자의 보안 비밀 키입니다.

    고급 옵션

    • 피드 이름: 피드를 식별하는 미리 채워진 값입니다.
    • 애셋 네임스페이스: 피드와 연결된 네임스페이스입니다.
    • 수집 라벨: 이 피드의 모든 이벤트에 적용되는 라벨입니다.
  7. 피드 만들기를 클릭합니다.

웹훅을 사용하여 수집 피드 설정

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. JAMF 피드 팩을 클릭합니다.
  4. Jamf Protect 위협 이벤트 피드를 찾습니다.
  5. 소스 유형 목록에서 웹훅을 선택합니다.
  6. 다음 필드의 값을 지정합니다.
    • 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예: \n).
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
  7. 피드 만들기를 클릭합니다.

이 제품군 내에서 다양한 로그 유형에 대해 여러 피드를 구성하려면 제품별 피드 구성을 참고하세요.

웹훅 피드에 대한 API 키 만들기

  1. Google Cloud 콘솔 > 사용자 인증 정보로 이동합니다.

    사용자 인증 정보로 이동

  2. 사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.

  3. Google Security Operations API에 대한 API 키 액세스를 제한합니다.

웹훅 피드용 Jamf Security Cloud 설정

  1. Jamf Security Cloud 애플리케이션에서 통합 > 데이터 스트림으로 이동합니다.
  2. 새 구성을 클릭합니다.
  3. 위협 이벤트 > 일반 HTTP > 계속을 선택합니다.
  4. HTTP 연결 구성 섹션에서 기본 프로토콜로 https를 선택합니다.
  5. Server Hostname/IP(서버 호스트 이름/IP) 필드에 서버 호스트 이름(예: us-chronicle.googleapis.com)을 입력합니다.
  6. 포트 필드에 서버 포트(예: 443)를 입력합니다.
  7. 엔드포인트 필드에 웹 엔드포인트를 입력합니다. (웹훅 피드 설정에서 복사한 엔드포인트 정보 필드입니다. 이미 필요한 형식입니다.)
  8. 추가 헤더 섹션에 다음 설정을 입력합니다. 각 헤더는 수동으로 입력하는 맞춤 헤더로, 대소문자를 구분합니다.

    • 헤더 이름: X-goog-api-key를 입력하고 X-goog-api-key 옵션 만들기를 클릭합니다.
    • 헤더 값 삽입: API_KEY (Google SecOps에 인증할 API 키)
    • 헤더 이름: X-Webhook-Access-Key를 입력하고 Create option X-Webhook-Access-Key를 클릭합니다.
    • 헤더 값 삽입: SECRET (피드를 인증하기 위해 생성한 보안 비밀 키)
  9. Test Configuration(구성 테스트)을 클릭합니다.

  10. 성공하면 구성 만들기를 클릭합니다.

Google SecOps 피드에 대한 자세한 내용은 피드 관리 UI를 사용하여 피드 만들기 및 관리를 참고하세요. 각 피드 유형의 요구사항은 피드 구성 API를 참고하세요.

지원되는 Jamf 위협 이벤트 로그 형식

Jamf 위협 이벤트 파서는 JSON 형식의 로그를 지원합니다.

지원되는 Jamf 위협 이벤트 샘플 로그

  • JSON

    {
      "event": {
        "metadata": {
          "schemaVersion": "1.0",
          "vendor": "Jamf",
          "product": "Threat Events Stream"
        },
        "timestamp": "2023-01-11T13:10:40.410Z",
        "alertId": "debd2e4b-9da1-454e-952d-18a00b42ffce",
        "account": {
          "customerId": "dummycustomerid",
          "parentId": "dummyparentid",
          "name": "Jamf Internal Test Accounts (root) - Jamf - CE Security Team"
        },
        "device": {
          "deviceId": "e9671102-5ccf-4e66-a6b3-b117ba257d5f",
          "os": "UNKNOWN 13.2.1",
          "deviceName": "Mac (13.2.1)",
          "userDeviceName": "darrow",
          "externalId": "0c221ae4-50af-5e39-8275-4424cc87ab8e"
        },
        "eventType": {
          "id": "303",
          "description": "Risky Host/Domain - Malware",
          "name": "ACCESS_BAD_HOST"
        },
        "app": {
          "id": "ru.freeapps.calc",
          "name": "MyFreeCalculator",
          "version": "10.4",
          "sha1": "c3499c2729730a7f807efb8676a92dcb6f8a3f8f",
          "sha256": "50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545"
        },
        "destination": {
          "name": "dummy.domain.org",
          "ip": "0000:1111:2222:3333:4444:5",
          "port": "80"
        },
        "source": {
          "ip": "198.51.100.1",
          "port": "243"
        },
        "location": "GB",
        "accessPoint": null,
        "accessPointBssid": "23:8f:cf:00:9d:23",
        "severity": 8,
        "user": {
          "email": "test.user@domain.io",
          "name": "Test User"
        },
        "eventUrl": "dummy.domain.com",
        "action": "Blocked"
      }
    }
    

필드 매핑 참조

다음 표에서는 Google SecOps 파서가 Jamf 위협 이벤트 로그 필드를 Google SecOps 통합 데이터 모델 (UDM) 필드에 매핑하는 방법을 설명합니다.

필드 매핑 참조: 이벤트 식별자에서 이벤트 유형으로

다음 표에는 JAMF_THREAT_EVENTS 로그 유형과 해당 UDM 이벤트 유형이 나와 있습니다.

Event Identifier Event Type Security Category
MALICIOUS_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
ADWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
BANKER_MALWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
POTENTIALLY_UNWANTED_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
RANSOMWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
ROOTING_MALWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
SMS_MALWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
SPYWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
TROJAN_MALWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
THIRD_PARTY_APP_STORES_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
ADMIN_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
SIDE_LOADED_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
VULNERABLE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
SSL_TRUST_COMPROMISE SCAN_NETWORK NETWORK_SUSPICIOUS
JAILBREAK SCAN_UNCATEGORIZED EXPLOIT
IOS_PROFILE SCAN_UNCATEGORIZED
OUTDATED_OS SCAN_VULN_HOST SOFTWARE_MALICIOUS
OUTDATED_OS_LOW SCAN_VULN_HOST SOFTWARE_MALICIOUS
OUT_OF_DATE_OS SCAN_UNCATEGORIZED
LOCK_SCREEN_DISABLED SCAN_UNCATEGORIZED
STORAGE_ENCRYPTION_DISABLED SCAN_UNCATEGORIZED
UNKNOWN_SOURCES_ENABLED SCAN_UNCATEGORIZED
DEVELOPER_MODE_ENABLED SCAN_UNCATEGORIZED
USB_DEBUGGING_ENABLED SCAN_UNCATEGORIZED
USB_APP_VERIFICATION_DISABLED SCAN_UNCATEGORIZED
FIREWALL_DISABLED SCAN_UNCATEGORIZED POLICY_VIOLATION
USER_PASSWORD_DISABLED SCAN_UNCATEGORIZED
ANTIVIRUS_DISABLED SCAN_UNCATEGORIZED
APP_INACTIVITY SCAN_UNCATEGORIZED
MISSING_ANDROID_SECURITY_PATCHES SCAN_UNCATEGORIZED
ACCESS_SPAM_HOST SCAN_HOST NETWORK_SUSPICIOUS
ACCESS_PHISHING_HOST SCAN_HOST PHISHING
ACCESS_BAD_HOST SCAN_HOST NETWORK_MALICIOUS
RISKY_APP_DOWNLOAD SCAN_UNCATEGORIZED SOFTWARE_SUSPICIOUS
ACCESS_CRYPTOJACKING_HOST SCAN_HOST NETWORK_SUSPICIOUS
SSL_MITM_TRUSTED_VALID_CERT SCAN_NETWORK NETWORK_SUSPICIOUS
SSL_MITM_UNTRUSTED_VALID_CERT SCAN_NETWORK NETWORK_SUSPICIOUS
SSL_STRIP_MITM SCAN_NETWORK NETWORK_MALICIOUS
SSL_MITM_UNTRUSTED_INVALID_CERT SCAN_NETWORK NETWORK_MALICIOUS
SSL_MITM_TRUSTED_INVALID_CERT SCAN_NETWORK NETWORK_MALICIOUS
LEAK_CREDIT_CARD SCAN_UNCATEGORIZED ACL_VIOLATION
LEAK_PASSWORD SCAN_UNCATEGORIZED ACL_VIOLATION
LEAK_EMAIL SCAN_UNCATEGORIZED ACL_VIOLATION
LEAK_USERID SCAN_UNCATEGORIZED ACL_VIOLATION
LEAK_LOCATION SCAN_UNCATEGORIZED ACL_VIOLATION

필드 매핑 참조: JAMF_THREAT_EVENTS

다음 표에는 JAMF_THREAT_EVENTS 로그 유형의 로그 필드와 해당 UDM 필드가 나와 있습니다.
Log field UDM mapping Logic
event.account.parentId about.resource_ancestors.product_object_id
event.account.name about.resource.name
event.account.customerId about.resource.product_object_id
event.timestamp metadata.event_timestamp
event.eventType.name metadata.product_event_type
event.alertId metadata.product_log_id
event.metadata.product metadata.product_name
event.metadata.vendor metadata.vendor_name
event.source.port princiap.port
event.device.deviceName principal.asset.assetid
event.location principal.asset.location.country_or_region
principal.asset.platform_software.platform The platform_name is extracted from the event.device.deviceName log field using a Grok pattern.

If the platform_name value is equal to Mac, then the principal.asset.platform_software.platform UDM field is set to MAC.
event.device.os principal.asset.platform_software.platform_version
event.device.deviceId principal.asset.product_object_id
event.source.ip principal.ip
event.accessPointBssid principal.mac
event.user.email principal.user.email_addresses
event.user.name principal.user.user_display_name
sourceUserName principal.user.user_display_name
event.device.externalId principal.asset.attribute.labels [event_device_externalId]
event.device.userDeviceName principal.asset.attribute.labels [event_device_userDeviceName]
event.accessPoint principal.labels [event_accessPoint]
event.action security_result.action The security_result.action UDM field is set to one of the following values:
  • ALLOW if the event.action log field value is equal to Resolved or Detected.
  • BLOCK if the event.action log field value is equal to Blocked.
event.action security_result.action_details
event.eventType.name security_result.category_details
event.eventType.description security_result.description
event.severity security_result.severity_details
event.eventType.id security_result.threat_id
event.eventType.name security_result.threat_name
event.eventUrl security_result.url_back_to_product
event.destination.port target.port
event.app.name target.application
event.app.name target.file.full_path
event.app.sha1 target.file.sha1
event.app.sha256 target.file.sha256
event.destination.ip target.ip
event.destination.name target.url
event.app.version target.labels [event_app_version]
event.app.id target.labels [event_app_id]
event.metadata.schemaVersion about.labels [event_metadata_schemaVersion]

다음 단계

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.