Skyhigh Security のログを収集する

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

このドキュメントでは、Bindplane を使用して Skyhigh Security(旧 McAfee Skyhigh CASB)ログを Google Security Operations に取り込む方法について説明します。パーサーは、SYSLOG + KV 形式のログを Unified Data Model(UDM)に変換します。まず、ログ メッセージを Key-Value ペアに正規化し、抽出したフィールドを event.idm.read_only_udm オブジェクト内の対応する UDM 属性にマッピングします。特定のフィールドの有無と値に基づいてイベントタイプを分類します。

始める前に

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

  • Google SecOps インスタンス
  • Windows 2016 以降、または systemd を使用する Linux ホスト
  • プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
  • Skyhigh Cloud Connector がインストールされ、構成されている
  • Skyhigh Security Cloud Connector への特権アクセス

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Bindplane エージェントをインストールする

次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。

Windows のインストール

  1. 管理者として コマンド プロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux のインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

その他のインストール リソース

その他のインストール オプションについては、インストール ガイドをご覧ください。

Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

  1. 構成ファイルにアクセスします。
    • config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'MCAFEE_SKYHIGH_CASB'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
    • <customer_id> は、実際の顧客 ID に置き換えます。
    • /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

Bindplane エージェントを再起動して変更を適用する

  1. Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart bindplane-agent
    
  2. Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Logging クライアントをダウンロードする前の前提条件

次の詳細情報をご用意ください。

  1. 使用状況分析のユーザー権限: アカウントに「使用状況分析のユーザー」ロールが必要です。
  2. お客様 ID: Skyhigh CASBお客様 ID を確認するには、次の手順を行います。
    • Skyhigh CASB にログインします。
    • [設定] > [インフラストラクチャ] > [クライアント プロキシ管理] に移動します。
    • [Global Configuration> Tenant Authentication] をクリックします。
    • [全般設定] に、顧客 ID が表示されます。
  3. メールアドレスとパスワード: ログイン認証情報(パスワードを送信せずに SAML を使用してログインする場合は、ロギング クライアントをインストールできません)。

Skyhigh Logging Client をダウンロードしてインストールする

  1. 専用インスタンスに Logging クライアントをダウンロードします。
  2. Logging クライアントをインストールします(必要に応じて、ダウンロードした EXE ファイルを解凍します)。
  3. インストールが完了したら、ロギング クライアントを開きます。
  4. [構成] ページで、次の構成の詳細を指定します。
    1. お客様 ID: 前の手順で取得した Skyhigh CASB のお客様 ID を入力します。
    2. サービス: Skyhigh SSE を使用している場合は [SSE] を選択し、このプロダクトを Trellix ePO とともに使用している場合は [WGCS] を選択します。
    3. リージョン: データの保存場所に応じて、リージョン コードまたは国コードを選択します。
      • EU - 欧州連合
      • IN - インド
      • SG - シンガポール
      • UE - アラブ首長国連邦
      • UK - 英国
      • US - 米国
    4. 名前: ユーザー名を入力します。通常は、Secure Web Gateway または専用インスタンスへのログインに使用するメールアドレスです。
    5. パスワード: Secure Web Gateway へのログオンに使用するパスワードを入力します。SAML でログオンしている場合、Logging クライアントは使用できません。
    6. API バージョン: version 13 と入力します。
    7. ログタイプ: ウェブ、リモート ブラウザ分離(RBI)、プライベート アクセス、Cloud Firewall からのデータを含むログなど、さまざまなタイプのログをダウンロードできます。
    8. [Send as Syslogs] を選択し、次の構成の詳細を指定します。
      • Syslog-Client Host: Bindplane エージェントの IP アドレスを入力します。
      • Syslog-Client Port: Bindplane エージェントのポート番号を入力します。
      • トランスポート: Bindplane エージェントの構成に応じて、[UDP] または [TCP] を選択します。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
EventReceivedTime metadata.event_timestamp yyyy-MM-dd HH:mm:ss 形式からタイムスタンプに変換
FileSize target.file.size 直接マッピングされ、uinteger に変換されます
ホスト名 principal.hostname 直接マッピングされます。
MessageSourceAddress principal.ip 直接マッピング、複数のインスタンスがある場合は統合
重大度 additional.fields.value.string_value(キー: SEVERITY) 直接マッピングされます。
SeverityValue additional.fields.value.string_value(キー: SEVERITY_VALUE) 直接マッピングされます。
SourceModuleName additional.fields.value.string_value(キー: SOURCE_MODULE_NAME) 直接マッピングされます。
SourceModuleType principal.resource.resource_subtype 直接マッピングされます。
SyslogFacility security_result.about.resource.attribute.labels.value(キー: SYSLOG_FACILITY) 直接マッピングされます。
SyslogFacilityValue security_result.about.resource.attribute.labels.value(キー: SYSLOG_FACILITY_VALUE) 直接マッピングされます。
SyslogSeverity security_result.about.resource.attribute.labels.value(キー: SYSLOG_SEVERITY) 直接マッピングされます。
SyslogSeverityValue security_result.about.resource.attribute.labels.value(キー: SYSLOG_SEVERITY_VALUE) 直接マッピングされます。
activityName metadata.product_event_type 直接マッピング、角かっこを削除
actorId principal.user.userid 直接マッピングされます。メールアドレスの場合は email_addresses にも追加されます。
actorIdType principal.user.attribute.roles.name 直接マッピングされます。
collaborationSharedLink security_result.about.resource.attribute.labels.value(キー: COLLABORATION_SHARED_LINK) 直接マッピングされます。
contentItemId target.file.full_path(contentItemType が FILE の場合) 直接マッピングされ、引用符が削除されます
contentItemId target.url(contentItemType が SAAS_RESOURCE の場合) 直接マッピングされ、引用符が削除されます
contentItemHierarchy additional.fields.value.string_value(キー: CONTENT_ITEM_HIERARCHY) 直接マッピングされ、引用符が削除されます
contentItemName target.resource.name 直接マッピングされ、引用符が削除されます
contentItemType additional.fields.value.string_value(キー: CONTENT_ITEM_TYPE) 直接マッピングされます。
incidentGroup security_result.detection_fields.value(キー: INCIDENT_GROUP) 直接マッピングされます。
incidentId metadata.product_log_id 直接マッピングされます。
incidentRiskScore security_result.detection_fields.value(キー: INCIDENT_RISK_SCORE) 直接マッピングされます。
incidentRiskSeverityId riskSeverity と組み合わせて security_result.severity を決定するために使用されます
informationAccountId target.resource.product_object_id 直接マッピングされます。
informationAnomalyCategory security_result.category_details 直接マッピングされ、引用符が削除されます
informationAnomalyCause security_result.detection_fields.value(キー: INFO_ANOMALY_CAUSE) 直接マッピングされ、引用符が削除されます
informationCategory security_result.category_details 直接マッピングされます。
informationConfigType additional.fields.value.string_value(キー: INFORMATION_CONFIG_TYPE) 直接マッピングされ、引用符が削除されます
informationContentItemParent target.resource.parent 直接マッピングされ、引用符が削除されます
informationEventId additional.fields.value.string_value(キー: INFORMATION_EVENT_ID) 直接マッピングされます。
informationExternalCollaboratorsCount additional.fields.value.string_value(キー: INFORMATION_COLLAB_COUNT) 直接マッピングされます。
informationFileTypes additional.fields.value.list_value.values.string_value(キー: FILE_TYPE) JSON 形式の文字列から抽出され、角かっこや引用符は削除されます
informationLastExecutedResponseLabel additional.fields.value.string_value(キー: INFORMATION_LAST_RESPONSE) 直接マッピングされます。
informationScanName metadata.description 直接マッピングされ、引用符が削除されます
informationScanRunDate UDM にマッピングされていません
informationSource additional.fields.value.string_value(キー: INFORMATION_SOURCE) 直接マッピングされます。
informationUniqueMatchCount additional.fields.value.string_value(キー: INFORMATION_UNQ_MATCH_COUNT) 直接マッピングされます。
informationUserAttributesSAMAccountName principal.user.user_display_name 直接マッピング、角かっこを削除
instanceId principal.resource.product_object_id 直接マッピングされます。
instanceName principal.resource.name 直接マッピングされ、引用符が削除されます
policyId security_result.rule_id 直接マッピングされます。
policyName security_result.summary 直接マッピングされ、引用符が削除されます
レスポンス security_result.action(ALLOW または BLOCK)の決定に使用されます。
riskSeverity incidentRiskSeverityId と組み合わせて security_result.severity を決定するために使用されます。大文字に変換されます
serviceNames target.application 直接マッピングされ、角かっこ、引用符、余分なスペースが削除されます
sourceIps principal.ip JSON 形式の文字列から抽出され、複数のインスタンスがある場合は統合されます
ステータス additional.fields.value.string_value(キー: STATUS) 直接マッピングされます。
threatCategory security_result.threat_name 直接マッピングされ、引用符が削除されます
totalMatchCount security_result.detection_fields.value(キー: TOTAL_MATCH_COUNT) 直接マッピングされます。
なし metadata.vendor_name MCAFEE - 静的な値
なし metadata.product_name MCAFEE_SKYHIGH_CASB - 静的な値
なし metadata.log_type MCAFEE_SKYHIGH_CASB - 静的な値
なし principal.resource.type VIRTUAL_MACHINE - instanceName または instanceId が存在する場合に設定します
なし metadata.event_type 一連の条件に基づいて決定されます。actorId、contentItemId、contentItemName が存在する場合は
- USER_RESOURCE_UPDATE_CONTENT、actorId と target が存在する場合は
- USER_UNCATEGORIZED、Hostname または MessageSourceAddress が存在する場合は
- STATUS_UPDATE、それ以外の場合は
- GENERIC_EVENT
なし security_result.severity riskSeverity と incidentRiskSeverityId の組み合わせに基づいて決定されます。
- riskSeverity が LOW で incidentRiskSeverityId が 0 の場合は LOW
- riskSeverity が MEDIUM で incidentRiskSeverityId が 1 の場合は MEDIUM
- riskSeverity が HIGH で incidentRiskSeverityId が 2 の場合は HIGH
- riskSeverity が INFO で incidentRiskSeverityId が 3 の場合は INFORMATIONAL
なし security_result.action レスポンスの値に基づいて決定されます。レスポンスに allow(大文字と小文字は区別されません)が含まれている場合は
- ALLOW、レスポンスに Violation(大文字と小文字は区別されません)が含まれている場合は
- BLOCK

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