Jamf Security Cloud のログを収集する

以下でサポートされています。

このドキュメントでは、 Google Cloud Storage または Amazon S3 を使用して Jamf Security Cloud ログを Google Security Operations に取り込む方法について説明します。Jamf Security Cloud は、Apple デバイス向けのモバイル脅威防御およびエンドポイント セキュリティ プラットフォームです。DNS レイヤ保護、フィッシング防止、コンテンツ フィルタリング、デバイス リスク評価を網羅する脅威検出、コンプライアンス、デバイス セキュリティ イベントログを生成します。Jamf Security Cloud は、データ ストリームを使用してログをエクスポートします。各データ ストリーム構成は、1 つのデータ型を 1 つの宛先に送信します。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • Jamf Security Cloud ポータルへの特権アクセス
  • 方法 1: Google Cloud(Google Cloud Storage、Cloud Run)への特権アクセス
  • 方法 2: AWS(S3、IAM)への特権アクセス

エクスポートするデータ ストリームのタイプを選択する

Jamf Security Cloud パーサーは、6 つのデータ ストリーム タイプすべてをサポートしています。取り込むデータ型ごとに個別のデータ ストリーム構成を作成します。

  • 脅威イベント: 悪意のあるネットワーク通信、マルウェア、危険なアプリなど、検出された脅威イベント
  • ネットワーク トラフィック: Jamf のネットワーク インフラストラクチャで処理されたネットワーク トラフィック ログ
  • アクセス イベント: Jamf Connect ゼロトラスト ネットワーク アクセス(ZTNA)ポリシーからのリクエストの許可と拒否
  • デバイスデータ: デバイスに関する情報
  • アプリの分析情報: デバイスにインストールされているアプリに関する情報
  • 脆弱性データ: 検出された各脆弱性と、その脆弱性が検出されたデバイスに関する詳細

方法 1: Google Cloud ストレージ

Jamf Security Cloud には組み込みの Google Cloud ストレージの宛先はありません。Jamf は、HTTP 統合を使用してデータを Google SecOps に直接送信することはサポートされていないと述べています。このメソッドは、汎用 HTTP データ ストリーム ターゲットを使用して、所有する Cloud Run 関数にイベントを送信します。この関数は、イベントを Google Cloud Storage バケットに書き込みます。Google SecOps は、 Google Cloud Storage V2 フィードを使用してバケットを取り込みます。

Google Cloud Storage バケットを作成する

  1. Google Cloud コンソールに移動します。
  2. プロジェクトを選択するか、新しいプロジェクトを作成します。
  3. ナビゲーション メニューで、[Cloud Storage > バケット] に移動します。
  4. [バケットを作成] をクリックします。
  5. 次の構成情報を提供してください。

    設定
    バケットに名前を付ける グローバルに一意の名前(jamf-security-cloud-logs など)を入力します。
    ロケーション タイプ ニーズに応じて選択します(リージョン、デュアルリージョン、マルチリージョン)。
    ロケーション ロケーションを選択します(例: us-central1)。
    ストレージ クラス Standard(頻繁にアクセスされるログにおすすめ)
    アクセス制御 均一(推奨)
    保護ツール 省略可: オブジェクトのバージョニングまたは保持ポリシーを有効にする
  6. [作成] をクリックします。

Cloud Run functions のサービス アカウントを作成する

  1. GCP Console で、[IAM と管理>サービス アカウント] に移動します。
  2. [サービス アカウントを作成] をクリックします。
  3. 次の構成の詳細を指定します。
    • サービス アカウント名: 「jamf-sc-receiver-sa」と入力します。
    • サービス アカウントの説明: Service account for the Cloud Run function that receives Jamf Security Cloud events と入力します。
  4. [作成して続行] をクリックします。
  5. [完了] をクリックします。

サービス アカウントにバケットへのアクセス権を付与する

  1. [Cloud Storage] > [バケット] に移動します。
  2. バケット名をクリックします。
  3. [権限] タブに移動します。
  4. [アクセス権を付与] をクリックします。
  5. 次の構成の詳細を指定します。
    • プリンシパルを追加: サービス アカウントのメールアドレス(例: jamf-sc-receiver-sa@PROJECT_ID.iam.gserviceaccount.com)を入力します。
    • ロールを割り当てる: [ストレージ オブジェクト管理者] を選択します。
  6. [保存] をクリックします。

イベントを受信する Cloud Run 関数を作成する

  1. 強力な認証トークンを生成し、後で参照できるように保存します(例: openssl rand -hex 32 を実行します)。Jamf Security Cloud はこのトークンをリクエスト ヘッダーで送信します。関数は、このトークンがないリクエストを拒否します。
  2. GCP Console で、[Cloud Run] に移動します。
  3. [サービスを作成] をクリックします。
  4. [関数] を選択します(インライン エディタを使用して関数を作成します)。
  5. [構成] セクションで、次の構成の詳細を指定します。

    設定
    サービス名 jamf-sc-receiver
    リージョン Cloud Storage バケットと一致するリージョンを選択します(例: us-central1)。
    ランタイム [Python 3.12] 以降を選択します。
  6. [認証] で、[未認証の呼び出しを許可] を選択します。

  7. [コンテナ、ネットワーキング、セキュリティ] を開きます。

  8. [セキュリティ] タブに移動します。

    • サービス アカウント: jamf-sc-receiver-sa を選択します。
  9. [コンテナ] タブに移動します。

    1. [変数とシークレット] をクリックします。
    2. 環境変数ごとに [+ 変数を追加] をクリックします。
    変数名 値の例 説明
    GCS_BUCKET jamf-security-cloud-logs Cloud Storage バケットの名前
    GCS_PREFIX jamf-security-cloud/ ログファイルの接頭辞
    AUTH_TOKEN <your-generated-token> Jamf Security Cloud が X-Auth-Token ヘッダーで送信するトークン
  10. [作成] をクリックします。

  11. サービスが作成されるまで待ちます。サービスを作成すると、インライン コードエディタが自動的に開きます。

  12. [エントリ ポイント] フィールドに「main」と入力します。

  13. インライン コードエディタで、次の 2 つのファイルを作成します。

    • 最初のファイル: main.py

      import hashlib
      import os
      from datetime import datetime, timezone
      
      import functions_framework
      from google.cloud import storage
      
      BUCKET = os.environ["GCS_BUCKET"]
      PREFIX = os.environ.get("GCS_PREFIX", "jamf-security-cloud/")
      AUTH_TOKEN = os.environ["AUTH_TOKEN"]
      
      storage_client = storage.Client()
      
      @functions_framework.http
      def main(request):
              if request.headers.get("X-Auth-Token") != AUTH_TOKEN:
                      return ("Unauthorized", 401)
      
              body = request.get_data()
              if not body:
                      return ("OK", 200)
      
              now = datetime.now(timezone.utc)
              digest = hashlib.sha256(body).hexdigest()[:12]
              object_name = f"{PREFIX}{now:%Y/%m/%d}/{now:%Y%m%dT%H%M%S%f}_{digest}.json"
              storage_client.bucket(BUCKET).blob(object_name).upload_from_string(
                      body, content_type="application/json"
              )
              return ("OK", 200)
      
    • 2 つ目のファイル: requirements.txt

      functions-framework==3.*
      google-cloud-storage==2.*
      
  14. [保存して再デプロイ] をクリックします。

  15. サービス URLhttps://jamf-sc-receiver-abc123-uc.a.run.app など)をコピーして保存します。次のセクションでホスト名を使用します。

Jamf Security Cloud で汎用 HTTP データ ストリームを構成する

  1. Jamf Security Cloud ポータルにログインします。
  2. [インテグレーション> データ ストリーム] に移動します。
  3. [新しい構成] をクリックします。
  4. データ ストリームのタイプ([脅威イベント] など)を選択します。
  5. データ ストリームのターゲット タイプとして [Generic HTTP] を選択します。
  6. [続行] をクリックします。
  7. 次の構成の詳細を指定します。
    • Protocol: [https] を選択します。
    • Server Hostname/IP: Cloud Run サービスのホスト名(jamf-sc-receiver-abc123-uc.a.run.app など)を入力します。
    • ポート: 「443」と入力します。
    • エンドポイント: 「/」と入力します。
    • 追加のヘッダー: [ヘッダーを追加] をクリックし、名前 X-Auth-Token を入力して、生成されたトークンを値として入力します。
  8. [Test Configuration] をクリックし、テストが成功したことを確認します。
  9. [構成を有効にする] 切り替えボタンをクリックして、データ ストリームを有効にします。
  10. [保存] をクリックします。
  11. エクスポートする追加のデータ ストリーム タイプごとに、上記の手順を繰り返します。

Google SecOps サービス アカウントを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [フィード] に移動します。
  3. [Add New Feed] をクリックします。
  4. [単一フィードを設定] をクリックします。
  5. [ソースタイプ] として [Google Cloud Storage V2] を選択します。
  6. [ログタイプ] として [JAMF Security Cloud] を選択します。
  7. [サービス アカウントを取得する] をクリックします。一意のサービス アカウントのメールアドレスが表示されます(例:)。

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. このメールアドレスをコピーします。これを次のステップで使用します。

Google SecOps サービス アカウントにバケットへのアクセス権を付与する

  1. [Cloud Storage] > [バケット] に移動します。
  2. バケット名をクリックします。
  3. [権限] タブに移動します。
  4. [アクセス権を付与] をクリックします。
  5. 次の構成の詳細を指定します。
    • プリンシパルを追加: Google SecOps サービス アカウントのメールアドレスを貼り付けます。
    • ロールを割り当てる: [Storage オブジェクト閲覧者] を選択します。
  6. [保存] をクリックします。

Google Cloud Storage から取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. [単一フィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Jamf Security Cloud logs)。
  5. [ソースタイプ] として [Google Cloud Storage V2] を選択します。
  6. [ログタイプ] として [JAMF Security Cloud] を選択します。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    フィールド
    ストレージ バケット URI gs://jamf-security-cloud-logs/jamf-security-cloud/
    ソース削除オプション 必要に応じて削除オプションを選択します。
    最大ファイル経過日数 デフォルトは 180 日
    アセットの名前空間 アセットの名前空間
    取り込みラベル このフィードのイベントに適用されるラベル
    • jamf-security-cloud-logs は、実際のバケット名に置き換えます。
    • URI の末尾には必ず末尾のスラッシュ(/)を含めてください。
  9. [次へ] をクリックします。

  10. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

方法 2: Amazon S3

Jamf Security Cloud Data Streams がネイティブでサポートするクラウド ストレージの宛先は、お客様所有の AWS S3 のみです。Jamf Security Cloud はイベントを S3 バケットに直接書き込み、Google SecOps は Amazon S3 V2 フィードを使用してイベントを取り込みます。

Jamf Security Cloud 用に AWS S3 バケットと IAM ロールを構成する

  1. バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
  2. バケットの名前リージョンを後で参照できるように保存します(例: jamf-security-cloud-logs)。
  3. Jamf Security Cloud がバケットにデータをアップロードするために引き受ける IAM ロールを作成します。このロールには、バケットに対する s3:PutObject 権限と、信頼できるエンティティとしてリストされている Jamf の AWS アカウントが必要です。

  4. IAM ロール ARN を保存して、後で参照できるようにします。

Jamf Security Cloud でお客様所有の AWS S3 データ ストリームを構成する

  1. Jamf Security Cloud ポータルにログインします。
  2. [インテグレーション> データ ストリーム] に移動します。
  3. [新しい構成] をクリックします。
  4. データ ストリームのタイプ([脅威イベント] など)を選択します。
  5. データ ストリームのターゲット タイプとして [Customer-owned AWS S3] を選択します。
  6. [続行] をクリックします。
  7. 次の構成の詳細を指定します。
    • Amazon S3 バケット名: バケット名(jamf-security-cloud-logs など)を入力します。
    • Jamf が想定する IAM ロール: Jamf Security Cloud 用に作成した IAM ロールの ARN を入力します。
    • リージョン: S3 バケットのリージョンを選択します。
  8. [構成を作成] をクリックします。
  9. 省略可: [詳細設定] で、メッセージ形式として [JSON] を選択します。

  10. [構成を有効にする] 切り替えボタンをクリックして、データ ストリームを有効にします。

  11. [保存] をクリックします。

  12. エクスポートする追加のデータ ストリーム タイプごとに、上記の手順を繰り返します。

Google SecOps の IAM ユーザーとアクセスキーを作成する

  1. IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
  2. 作成したユーザーを選択します。
  3. [セキュリティ認証情報] タブを選択します。
  4. [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
  5. [ユースケース] で [サードパーティ サービス] を選択します。
  6. [次へ] をクリックします。
  7. 省略可: 説明タグを追加します。
  8. [アクセスキーを作成] をクリックします。
  9. [.csv ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、今後の参照に備えます。
  10. [完了] をクリックします。
  11. [権限] タブを選択します。
  12. [権限ポリシー] セクションで、[権限を追加] をクリックします。
  13. [権限を追加] を選択します。
  14. [ポリシーを直接アタッチする] を選択します。
  15. AmazonS3FullAccess ポリシーを検索します。
  16. ポリシーを選択します。
  17. [次へ] をクリックします。
  18. [権限を追加] をクリックします。

Amazon S3 から取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. [単一フィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Jamf Security Cloud logs)。
  5. [ソースタイプ] として [Amazon S3 V2] を選択します。
  6. [ログタイプ] として [JAMF Security Cloud] を選択します。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    フィールド
    S3 URI s3://jamf-security-cloud-logs/
    ソース削除オプション 必要に応じて削除オプションを選択します。
    最大ファイル経過日数 デフォルトは 180 日
    アクセスキー ID S3 バケットにアクセスできるユーザー アクセスキー
    シークレット アクセスキー S3 バケットにアクセスできるユーザーのシークレット キー
    アセットの名前空間 アセットの名前空間
    取り込みラベル このフィードのイベントに適用されるラベル
    • jamf-security-cloud-logs は、実際の S3 バケット名に置き換えます。
  9. [次へ] をクリックします。

  10. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
accessPoint_label additional.fields 統合済み
action_label additional.fields 統合済み
activated_label additional.fields 統合済み
alertId_label additional.fields 統合済み
appName_label additional.fields 統合済み
appRiskIndexThreshold_label additional.fields 統合済み
appVersion_label additional.fields 統合済み
app_id_label additional.fields 統合済み
carrierName_label additional.fields 統合済み
category_label additional.fields 統合済み
deploymentState_label additional.fields 統合済み
developer_label additional.fields 統合済み
deviceId_label additional.fields 統合済み
deviceModel_label additional.fields 統合済み
deviceName_label additional.fields 統合済み
deviceRiskIndex_label additional.fields 統合済み
device_os_label additional.fields 統合済み
device_user_name_label additional.fields 統合済み
eventTimeUtcMs_label additional.fields 統合済み
eventType_label additional.fields 統合済み
hwPlatform_label additional.fields 統合済み
imei_label additional.fields 統合済み
installationTimeUtcMs_label additional.fields 統合済み
installedBy_label additional.fields 統合済み
isoCountryCode_label additional.fields 統合済み
lastMdmCheckInUtcMs_label additional.fields 統合済み
lastNetworkTrafficUtcMs_label additional.fields 統合済み
lastUpdatedUtcMs_label additional.fields 統合済み
loc_isoCountryCode_label additional.fields 統合済み
mcc_label additional.fields 統合済み
mdmId_label additional.fields 統合済み
mnc_label additional.fields 統合済み
osVersion_label additional.fields 統合済み
packageName_label additional.fields 統合済み
parentId_label additional.fields 統合済み
parentId_label_1 additional.fields 統合済み
platform_label additional.fields 統合済み
profileId_label additional.fields 統合済み
profileName_label additional.fields 統合済み
profileStatus_label additional.fields 統合済み
recordType_label additional.fields 統合済み
resellerId_label additional.fields 統合済み
routeName_label additional.fields 統合済み
signatureId_id_label additional.fields 統合済み
signatureId_name_label additional.fields 統合済み
softwareId_label additional.fields 統合済み
softwareName_label additional.fields 統合済み
softwareVersion_label additional.fields 統合済み
ssid_label additional.fields 統合済み
system_label additional.fields 統合済み
threat_result_label additional.fields 統合済み
triggerTimeUtcMs_label additional.fields 統合済み
triggerType_label additional.fields 統合済み
types_list additional.fields 統合済み
userId_label additional.fields 統合済み
user_tld_label additional.fields 統合済み
vpnActive_label additional.fields 統合済み
wanderaAppVersion_label additional.fields 統合済み
wifiActive_label additional.fields 統合済み
event_data.receiptTime metadata.collected_timestamp 直接マッピングされます。
event_data.cve.description metadata.description 直接マッピングされます。
event_data_event_dataType_description metadata.description 直接マッピングされます。
event_data.timestamp metadata.event_timestamp yyyy-MM-ddTHH:mm:ss.SSSZ として解析済み
has_principal metadata.event_type マッピング: trueSTATUS_UPDATE
has_user metadata.event_type マッピング: trueUSER_UNCATEGORIZED
event_data.md1.product metadata.product_event_type 直接マッピングされます。
md1.product metadata.product_event_type 直接マッピングされます。
event_data.device.externalId metadata.product_log_id 直接マッピングされます。
event_data.externalId metadata.product_log_id 直接マッピングされます。
md1.product metadata.product_name 直接マッピングされます。
event_data.md1.schemaVersion metadata.product_version 直接マッピングされます。
schemaVersion metadata.product_version 直接マッピングされます。
dns_answers network.dns.answers 統合済み
dns_questions network.dns.questions 統合済み
event_data.domain principal.administrative_domain 直接マッピングされます。
event_data.application principal.application 直接マッピングされます。
event_data.hostName principal.asset.hostname 直接マッピングされます。
event_data.source.ip principal.asset.ip 統合済み
event_data.device.userDeviceName principal.hostname 直接マッピングされます。
event_data.hostName principal.hostname 直接マッピングされます。
event_data.source.ip principal.ip 統合済み
event_data.source.port principal.port 名前変更済み/マッピング済み
event_data_event_dataType_id principal.process.pid 直接マッピングされます。
event_data.cve.consoleUrl principal.url 直接マッピングされます。
event_data.event_dataUrl principal.url 直接マッピングされます。
device.user.email principal.user.email_addresses 統合済み
event_data.user.userEmail principal.user.email_addresses 統合済み
event_data.account.name principal.user.user_display_name 直接マッピングされます。
event_data.user.userName principal.user.user_display_name 直接マッピングされます。
customer.customerId principal.user.userid 直接マッピングされます。
customerId principal.user.userid 直接マッピングされます。
device.user.email principal.user.userid 直接マッピングされます。
event_data.account.customerId principal.user.userid 直接マッピングされます。
event_data.customerId principal.user.userid 直接マッピングされます。
actionforBlocked security_result.action 統合済み
event_data_event_dataType_name security_result.description 直接マッピングされます。
attribution_label security_result.detection_fields 統合済み
baseScore_label security_result.detection_fields 統合済み
cve_id_label security_result.detection_fields 統合済み
exploitAvailable_label security_result.detection_fields 統合済み
permission_label security_result.detection_fields 統合済み
threats_label security_result.detection_fields 統合済み
event_data.cve.severity security_result.severity 直接マッピングされます。
event_data.blockReason security_result.summary 直接マッピングされます。
event_data.cve.cveDetailUrl security_result.url_back_to_product 直接マッピングされます。
event_data.device.deviceId target.asset.asset_id 直接マッピングされます。
event_data.destination.name target.asset.hostname 直接マッピングされます。
device.carrier.ipAddress target.asset.ip 統合済み
device.network.assignedIp target.asset.ip 統合済み
device.network.publicIp target.asset.ip 統合済み
event_data.destination.ip target.asset.ip 統合済み
event_data.destinationIp target.asset.ip 統合済み
ip target.asset.ip 統合済み
app_id_md5 target.file.md5 直接マッピングされます。
app_id_sha1 target.file.sha1 直接マッピングされます。
app_id_sha256 target.file.sha256 直接マッピングされます。
event_data.destination.name target.hostname 直接マッピングされます。
device.carrier.ipAddress target.ip 統合済み
device.network.assignedIp target.ip 統合済み
device.network.publicIp target.ip 統合済み
event_data.destination.ip target.ip 統合済み
event_data.destinationIp target.ip 統合済み
ip target.ip 統合済み
device.location.countryName target.location.country_or_region 直接マッピングされます。
event_data.location target.location.name 直接マッピングされます。
device.hw.wifiMacAddress target.mac 統合済み
device.network.bssid target.mac 統合済み
event_data.accessPointBssid target.mac 統合済み
event_data_device_os_osVersion target.platform_version 直接マッピングされます。
event_data.destination.port target.port 名前変更済み/マッピング済み
event_data.device.deviceName target.resource.name 直接マッピングされます。
event_data.user.email target.user.email_addresses 統合済み
event_data.user.email target.user.userid 直接マッピングされます。
event_data.user.name target.user.userid 直接マッピングされます。
なし metadata.event_type 定数: STATUS_UPDATE
なし metadata.product_name 定数: JAMF_SECURITY_CLOUD
なし metadata.vendor_name 定数: JAMF_SECURITY_CLOUD
なし security_result.severity 定数: INFORMATIONAL
なし target.platform 定数: WINDOWS

変更履歴

このパーサーの変更ログを表示する

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。