ManageEngine ADManager Plus のログを収集する

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

このドキュメントでは、Bindplane エージェントを使用して ManageEngine ADManager Plus ログを Google Security Operations に取り込む方法について説明します。

ManageEngine ADManager Plus は、ユーザーの作成と変更、ロールベースのセキュリティ、詳細なレポートなど、AD 管理を簡素化するウェブベースのソリューションを提供します。ADManager Plus と Splunk および Syslog サーバーの統合により、組織は ADManager Plus で実行されたすべての Active Directory、Microsoft 365、Google Workspace 管理アクションのログを転送できます。

始める前に

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

  • Google SecOps インスタンス
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト
  • Bindplane エージェントと ManageEngine ADManager Plus 間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
  • ManageEngine ADManager Plus 管理コンソールへの特権アクセス

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. [ダウンロード] をクリックして、Ingestion Authentication File をダウンロードします。
  4. 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-otel-collector/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sc query observiq-otel-collector
    

サービスは RUNNING と表示されます。

Linux のインストール

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

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-otel-collector/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sudo systemctl status observiq-otel-collector
    

サービスが [アクティブ(実行中)] と表示されます。

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

その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。

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

構成ファイルを見つける

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

構成ファイルを編集します。

  1. config.yaml の内容全体を次の構成に置き換えます。

    receivers:
      tcplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/admanager_plus:
        compression: gzip
        creds_file_path: '<CREDS_FILE_PATH>'
        customer_id: '<CUSTOMER_ID>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: ADMANAGER_PLUS
        raw_log_field: body
        ingestion_labels:
          log_source: admanager_plus
    
    service:
      pipelines:
        logs/admanager_to_chronicle:
          receivers:
            - tcplog
          exporters:
            - chronicle/admanager_plus
    
  2. 各プレースホルダを次のように置き換えます。

    • レシーバーの構成:

      • レシーバは tcplog を使用して、TCP ポート 514 で syslog データを受信します。
      • listen_address: ポート 514 のすべてのインターフェースでリッスンするには、0.0.0.0:514 に設定します。
    • エクスポータの構成:

      • <CREDS_FILE_PATH>: 取り込み認証ファイルのフルパス:
        • Linux: /opt/observiq-otel-collector/ingestion-auth.json
        • Windows: C:\\Program Files\\observIQ OpenTelemetry Collector\\ingestion-auth.json
      • <CUSTOMER_ID>: 前の手順の顧客 ID。
      • endpoint: リージョン エンドポイント URL:
        • 米国: malachiteingestion-pa.googleapis.com
        • ヨーロッパ: europe-malachiteingestion-pa.googleapis.com
        • アジア: asia-southeast1-malachiteingestion-pa.googleapis.com
        • 完全なリストについては、リージョン エンドポイントをご覧ください。
      • log_type: Chronicle に表示されるとおりに ADMANAGER_PLUS に設定します。
      • ingestion_labels: YAML 形式の省略可能なラベル。

構成ファイルを保存する

編集が完了したら、ファイルを保存します。

  • Linux: Ctrl+OEnterCtrl+X の順に押します。
  • Windows: [ファイル>保存] をクリックします。

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

Linux

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

    sudo systemctl restart observiq-otel-collector
    
  2. サービスが実行されていることを確認します。

    sudo systemctl status observiq-otel-collector
    
  3. ログでエラーを確認します。

    sudo journalctl -u observiq-otel-collector -f
    

Windows

  1. Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。

    • 管理者としてコマンド プロンプトまたは PowerShell を使用します。

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Services コンソールを使用する場合:

      1. Win+R キーを押して「services.msc」と入力し、Enter キーを押します。
      2. observIQ Distro for OpenTelemetry Collector を見つけます。
      3. 右クリックして [再起動] を選択します。
  2. サービスが実行されていることを確認します。

    sc query observiq-otel-collector
    
  3. ログでエラーを確認します。

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

ManageEngine ADManager Plus の syslog 転送を構成する

  1. ADManager Plus にログインします。
  2. [管理者] タブに移動します。
  3. [System Settings] で [Integrations] をクリックします。
  4. [ログ転送] で、[Syslog] をクリックします。

  5. 次のフィールドを構成します。

    • Syslog サーバー: Syslog サーバーの名前を入力します。Bindplane エージェント ホストの IP アドレスまたはホスト名を入力します。
    • ポート: ポート番号を入力します。「514」と入力します。
    • プロトコル: ログの転送に適したプロトコル(TCP または UDP)を選択します。[TCP] を選択します。
    • Syslog Standard: 目的の syslog メッセージ形式(RFC 3164、RFC 5424、RawLog)を選択します。[RFC 5424](推奨)を選択します。
    • Data Format: データ形式を入力します。環境に合わせてデータ形式を構成します。
  6. [保存] をクリックして、構成を保存します。

構成後、ADManager Plus は管理アクションのログを Bindplane エージェントに転送し始めます。Bindplane エージェントは、これらのログを Google SecOps に送信します。

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
ipPhone event.idm.read_only_udm.additional.fields ipPhone != "" の場合、キー「ipPhone」と ipPhone の値を持つラベルとして統合されます。
l event.idm.read_only_udm.additional.fields キー「l」のラベルとして統合されます。l が「」でない場合は、l の値が使用されます。
lockoutTime event.idm.read_only_udm.additional.fields lockoutTime != "" の場合、キー「lockoutTime」と lockoutTime の値を持つラベルとして統合されます。
移動元 event.idm.read_only_udm.additional.fields Move_From != "" の場合、キー「Move From」と Move_From の値を持つラベルとして統合されます
移動先 event.idm.read_only_udm.additional.fields Move_To != "" の場合、キー「Move To」と Move_To の値を持つラベルとして統合されます。
msg event.idm.read_only_udm.additional.fields msg != "" の場合、キー「member」と msg の値を持つラベルとして統合されます。
sn event.idm.read_only_udm.additional.fields キー「sn」のラベルとして統合され、sn が「」でない場合は sn の値が使用されます。
st event.idm.read_only_udm.additional.fields キー「st」と値(st != "" の場合は st から)のラベルとして統合されます。
テンプレート名 event.idm.read_only_udm.additional.fields Template_Name != "" の場合、キー「Template Name」と Template_Name の値を持つラベルとして統合されます。
ステータス event.idm.read_only_udm.metadata.description Status != "" の場合、Status から取得した値
時間 event.idm.read_only_udm.metadata.event_timestamp time != "" の場合、時刻からタイムスタンプ形式に変換
event.idm.read_only_udm.metadata.event_type 派生: has_principal_user == 「true」の場合は「USER_UNCATEGORIZED」、has_principal == 「true」の場合は「STATUS_UPDATE」、それ以外の場合は「GENERIC_EVENT」
TechnicianName event.idm.read_only_udm.metadata.product_event_type TechnicianName != "" の場合、TechnicianName から値を取得します
event.idm.read_only_udm.metadata.product_name 「ADMANAGER_PLUS」に設定
event.idm.read_only_udm.metadata.vendor_name 「ADMANAGER_PLUS」に設定
ドメイン名 event.idm.read_only_udm.principal.administrative_domain Domain_Name != "" の場合、Domain_Name から取得された値
hostname event.idm.read_only_udm.principal.asset.hostname hostname != "" の場合、hostname から取得された値
郵便物 event.idm.read_only_udm.principal.email mail != "" の場合、mail から値を取得します。
hostname event.idm.read_only_udm.principal.hostname hostname != "" の場合、hostname から取得された値
co event.idm.read_only_udm.principal.location.city co != "" の場合、co から取得された値
タスク event.idm.read_only_udm.principal.resource.name Task != "" の場合、Task から取得された値
wWWHomePage event.idm.read_only_udm.principal.url wWWHomePage != "" の場合、wWWHomePage から取得された値
パスワードの種類 event.idm.read_only_udm.principal.user.attribute.labels Password_Type != "" の場合、キー「Password Type」と Password_Type の値を持つラベルとして統合されます。
countryCode event.idm.read_only_udm.principal.user.attribute.labels countryCode != "" の場合、キー「countryCode」と countryCode の値を持つラベルとして統合されます。
パスワード event.idm.read_only_udm.principal.user.attribute.labels パスワードが「」でない場合は、キー「password」とパスワードの値を持つラベルとして統合されます。
postalCode event.idm.read_only_udm.principal.user.attribute.labels postalCode != "" の場合、キー「postalCode」と postalCode の値を持つラベルとして統合されます。
primaryGroupID event.idm.read_only_udm.principal.user.attribute.labels primaryGroupID != "" の場合、キー「primaryGroupID」と primaryGroupID の値を持つラベルとして統合されます。
userAccountControl event.idm.read_only_udm.principal.user.attribute.labels userAccountControl != "" の場合、キーが「userAccountControl」、値が userAccountControl のラベルとして統合されます。
userPrincipalName event.idm.read_only_udm.principal.user.attribute.labels userPrincipalName != "" の場合、キーが「userPrincipalName」、値が userPrincipalName のラベルとして統合されます。
会社 event.idm.read_only_udm.principal.user.company_name 会社が「」でない場合は、会社から取得した値
department event.idm.read_only_udm.principal.user.department department != "" の場合、部門と統合
givenName event.idm.read_only_udm.principal.user.first_name givenName != "" の場合、givenName から取得された値
physicalDeliveryOfficeName event.idm.read_only_udm.principal.user.office_address.name physicalDeliveryOfficeName != "" の場合、physicalDeliveryOfficeName から取得された値
streetAddress event.idm.read_only_udm.principal.user.personal_address.name streetAddress != "" の場合、streetAddress から取得された値
homePhone event.idm.read_only_udm.principal.user.phone_numbers homePhone が "" でない場合は homePhone と統合されます
ユーザー名 event.idm.read_only_udm.principal.user.user_display_name User_Name != "" の場合は User_Name から値を取得し、それ以外の場合は Object_Name != "" の場合は Object_Name から値を取得します。
sAMAccountName event.idm.read_only_udm.principal.user.userid sAMAccountName != "" の場合、sAMAccountName から取得された値
アクション event.idm.read_only_udm.security_result.action_details ACTION != "" の場合、ACTION から取得された値
説明 event.idm.read_only_udm.security_result.description 説明が「」でない場合は、説明から取得された値
コンテナ名 event.idm.read_only_udm.security_result.detection_fields container_Name grok から派生: dc_label_1 != "" の場合、キー「Container_Name_DC_value1」と dc_label_1 の値を持つラベルとして統合
コンテナ名 event.idm.read_only_udm.security_result.detection_fields container_Name grok から派生: dc_label_2 != "" の場合、キー「Container_Name_DC_value2」と dc_label_2 の値を持つラベルとして統合
コンテナ名 event.idm.read_only_udm.security_result.detection_fields container_Name grok から派生: ou_label_1 != "" の場合、キー「Container_Name_OU_value1」と ou_label_1 の値を持つラベルとして統合
コンテナ名 event.idm.read_only_udm.security_result.detection_fields container_Name grok から派生: ou_label_2 != "" の場合、キー「Container_Name_OU_value2」と ou_label_2 の値を持つラベルとして統合
コンテナ名 event.idm.read_only_udm.security_result.detection_fields container_Name grok から派生: ou_label_3 != "" の場合、キー「Container_Name_OU_value3」と ou_label_3 の値を持つラベルとして統合
メインのチャネル グループ event.idm.read_only_udm.security_result.detection_fields Primary_Group grok から派生: cn_label_1 != "" の場合、キー「Primary_Group_CN_value1」と cn_label_1 からの値を持つラベルとして統合
メインのチャネル グループ event.idm.read_only_udm.security_result.detection_fields Primary_Group grok から派生: cn_label_2 != "" の場合、キー「Primary_Group_CN_value2」と cn_label_2 の値を持つラベルとして統合
メインのチャネル グループ event.idm.read_only_udm.security_result.detection_fields Primary_Group grok から派生: primary_dc_label_1 != "" の場合、キー「Primary_Group_DC_value1」と primary_dc_label_1 の値を持つラベルとして統合
メインのチャネル グループ event.idm.read_only_udm.security_result.detection_fields Primary_Group grok から派生: primary_dc_label_2 != "" の場合、キー「Primary_Group_DC_value2」と primary_dc_label_2 の値を持つラベルとして統合
accountExpires event.idm.read_only_udm.security_result.detection_fields accountExpires != "" の場合、キー「accountExpires」と accountExpires の値を持つラベルとして統合されます。
マネージャー event.idm.read_only_udm.security_result.detection_fields マネージャー grok から派生: manager_cn_value1 != "" の場合、キー「manager_cn_value1」と manager_cn_value1 の値を持つラベルとして統合
マネージャー event.idm.read_only_udm.security_result.detection_fields マネージャー grok から派生: manager_dc_value1 != "" の場合、キー「manager_dc_value1」と manager_dc_value1 の値を持つラベルとして統合
マネージャー event.idm.read_only_udm.security_result.detection_fields マネージャー grok から派生: manager_dc_value2 != "" の場合、キー「manager_dc_value2」と manager_dc_value2 の値を持つラベルとして統合
マネージャー event.idm.read_only_udm.security_result.detection_fields マネージャーの grok から派生: manager_ou_value1 != "" の場合、キー「manager_ou_value1」と manager_ou_value1 の値を持つラベルとして統合
マネージャー event.idm.read_only_udm.security_result.detection_fields マネージャーの grok から派生: manager_ou_value2 != "" の場合、キー「manager_ou_value2」と manager_ou_value2 の値を持つラベルとして統合
マネージャー event.idm.read_only_udm.security_result.detection_fields マネージャー grok から派生: manager_ou_value3 != "" の場合、キー「manager_ou_value3」と manager_ou_value3 の値を持つラベルとして統合
pwdLastSet event.idm.read_only_udm.security_result.detection_fields pwdLastSet != "" の場合、キー「pwdLastSet」と pwdLastSet の値を持つラベルとして統合されます。
ModuleName event.idm.read_only_udm.target.resource.name ModuleName != "" の場合、ModuleName から取得された値

ご不明な点がございましたら、コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。