Progress MOVEit Transfer のログを収集する

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

このドキュメントでは、Bindplane を使用して Progress MOVEit Transfer ログを Google Security Operations に取り込む方法について説明します。

Progress MOVEit Transfer は、HTTPS、FTPS、SFTP などのプロトコルを使用して安全に暗号化されたファイル転送を提供するマネージド ファイル転送(MFT)ソリューションです。改ざんを検知できる監査ログ、ロールベース アクセス制御、HIPAA、PCI DSS、GDPR などの規制へのコンプライアンス サポートを提供します。MOVEit Transfer は、すべてのファイル転送アクティビティ、ユーザー認証イベント、管理アクションを監査データベースに記録します。

始める前に

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

  • Google SecOps インスタンス
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト
  • Bindplane エージェントと Progress MOVEit Transfer サーバー間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します
  • Progress MOVEit Transfer ウェブ管理コンソールへの SysAdmin レベルのアクセス権
  • MOVEit Transfer サーバーから Bindplane エージェント ホストへの UDP ポート 514(または選択した syslog ポート)が開いている

Bindplane エージェントの Google SecOps 認証情報を取得する

Bindplane エージェントを Google SecOps に対して認証するには、次のいずれかの方法を選択します。

  • 新規デプロイ: Chronicle API を使用します(オプション 1)。
  • 以前のデプロイ: 2027 年 7 月 20 日に Ingestion API が廃止されるまで、取り込み認証ファイル(オプション 2)を引き続き使用します。
  1. Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
  2. [IAM と管理] > [サービス アカウント] に移動します。
  3. [サービス アカウントを作成] をクリックします。
  4. 次の構成情報を指定します。
    • サービス アカウント名: アカウントの名前を入力します(例: bindplane-ingest)。
    • サービス アカウントの説明: 説明を入力します(例: Bindplane agent log ingestion)。
  5. [作成して続行] をクリックします。
  6. [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
  7. [続行] をクリックして [完了] をクリックします。
  8. 作成したサービス アカウントをクリックし、[キー] タブに移動します。
  9. [鍵を追加] > [新しい鍵を作成] の順にクリックします。
  10. [JSON] を選択し、[作成] をクリックします。キーファイルがパソコンにダウンロードされます。
  11. 鍵ファイルを ingestion-auth.json として Bindplane コレクタ ディレクトリ(Linux の場合は /opt/observiq-otel-collector/ingestion-auth.json、Windows の場合は C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)に保存するか、config.yaml の creds_file_path を更新して、保存先のパスと一致させます。
  12. [IAM と管理] > [設定] に移動し、[プロジェクト番号] をコピーします。これはエクスポータの構成に必要です。

オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイルをダウンロードします。
  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-agent/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-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. インストールが完了するまで待ちます。

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

    sudo systemctl status observiq-otel-collector
    

    サービスが active (running) と表示されます。

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

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

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

構成ファイルを探します。

  • Linux:

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

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

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

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

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/moveit_transfer:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '<CREDS_FILE_PATH>'
        customer_id: '<CUSTOMER_ID>'
        endpoint: chronicle.googleapis.com
        log_type: IPSWITCH_MOVEIT_TRANSFER
        raw_log_field: body
        ingestion_labels:
          log_source: moveit_transfer
    
    service:
      pipelines:
        logs/moveit_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/moveit_transfer
    

構成パラメータ

次のプレースホルダを置き換えます。

エクスポータの構成:

  • <CREDS_FILE_PATH>: サービス アカウントの JSON キーファイルのフルパス(オプション 1):
    • Linux: /opt/observiq-otel-collector/ingestion-auth.json
    • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
  • <CUSTOMER_ID>: 先ほどコピーした Google SecOps お客様 ID
  • location: <LOCATION> は、Google SecOps インスタンスのリージョン(us、europe、asia-southeast1 など)に置き換えます。エクスポーターは、chronicle.googleapis.com の先頭にこの値を付加します。完全なリストについては、リージョン エンドポイントをご覧ください。
  • project: <PROJECT_NUMBER> を [IAM と管理] > [設定] のプロジェクト番号に置き換えます。
  • endpoint: chronicle.googleapis.com に設定したままにします。

  • 構成の例

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/moveit_transfer:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
        endpoint: chronicle.googleapis.com
        log_type: IPSWITCH_MOVEIT_TRANSFER
        raw_log_field: body
        ingestion_labels:
          log_source: moveit_transfer
    
    service:
      pipelines:
        logs/moveit_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/moveit_transfer
    

以前の取り込み API エクスポータ

  • オプション 2 の取り込み認証ファイルを使用する場合は、exporters ブロックを次のように置き換えます。creds_file_path を取り込み認証ファイルのパスに設定します。インスタンスが米国以外にある場合は、malachiteingestion-pa.googleapis.com をリージョン エンドポイント(europe-malachiteingestion-pa.googleapis.com など)に置き換えます。

    exporters:
      chronicle/moveit_transfer:
        compression: gzip
        creds_file_path: '<CREDS_FILE_PATH>'
        customer_id: '<CUSTOMER_ID>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: IPSWITCH_MOVEIT_TRANSFER
        raw_log_field: body
        ingestion_labels:
          log_source: moveit_transfer
    

構成ファイルを保存する

編集が完了したら、ファイルを保存します。 * Linux: Ctrl+O、Enter、Ctrl+X の順に押します。 * Windows: [File] > [Save] をクリックします。

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

Linux で Bindplane エージェントを再起動するには、次の操作を行います。

  1. 次のコマンドを実行します。

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

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

    sudo journalctl -u observiq-otel-collector -f
    

Windows で Bindplane エージェントを再起動する手順は次のとおりです。

  1. 次のいずれかのオプションを選択します。

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

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • サービス コンソール:

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

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

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

Progress MOVEit Transfer の syslog 転送を構成する

監査ログエントリを syslog 経由で Bindplane エージェントに転送するように MOVEit Transfer を構成するには:

  1. SysAdmin 権限を持つユーザーとして MOVEit Transfer ウェブ管理コンソールにログインします。
  2. [SETTINGS] > [System] > [Auditing] > [Syslog] に移動します。[Configure Syslog Settings] ページが表示されます。
  3. [Syslog Logging] セクションで、[Enabled] を選択します。有効にすると、各監査ログエントリは、指定された syslog ホストと MOVEit Transfer 監査データベースの両方に送信されます。
  4. [Syslog Host] フィールドに、Bindplane エージェント ホストの IP アドレスまたはホスト名(例: 192.168.1.100)を入力します。
  5. [Syslog Port] フィールドに「514」と入力します。このフィールドを空白のままにすると、デフォルトのポート 514 に戻ります。

  6. [Syslog Facility] プルダウンで、MOVEit Transfer の syslog メッセージがリモート syslog ホストに表示されるファシリティを選択します。デフォルト値は FTP です。次の標準 syslog ファシリティを使用できます。

    • KERN
    • USER
    • メール
    • DAEMON
    • AUTH
    • Syslog
    • LPR
    • ニュース
    • UUCP
    • cron
    • AUTHPRIV
    • FTP(デフォルト)
    • LOCAL0 ~ LOCAL7
  7. [Change Logging Settings] をクリックして構成を保存します。

  8. [Send Test Syslog Message] をクリックして、指定した Bindplane エージェント ホストにテスト メッセージを送信します。BSD Syslog の実装は UDP に基づいているため、Bindplane エージェントのログを確認して、テスト メッセージが届いたことを手動で確認します。

  9. テスト メッセージが Bindplane エージェントによって受信されたことを確認します。

    • Linux:

      sudo journalctl -u observiq-otel-collector -f
      
    • Windows:

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

ファイアウォールの要件

MOVEit Transfer から Bindplane エージェントへの syslog トラフィックを許可する次のファイアウォール ルールが設定されていることを確認します。

方向 プロトコル ソース 送信先 ポート
MOVEit Transfer からのアウトバウンド UDP MOVEit Transfer サーバーの IP Bindplane エージェントのホスト IP 514

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
column1 metadata.collected_timestamp 日付一致パターン(d/M/yyyy H:mm:ss A、M/d/yyyy H:mm:ss A、MM/dd/yyyy HH:mm:ss A)を使用して変換されました
column1 metadata.event_timestamp 日付一致パターン(d/M/yyyy H:mm:ss A、M/d/yyyy H:mm:ss A、MM/dd/yyyy HH:mm:ss A)を使用して変換されました
column2 security_result.action_details 値が直接コピーされる
column3 target.hostname、target.asset.hostname column3 から直接コピーされた値
column4 principal.ip、principal.asset.ip IP の grok パターンを使用して column4 から抽出
column6 target.file.full_path folderPath と fileName の両方が存在する場合は、それらを連結した値。それ以外の場合は、fileName のみの値。
column7 target.file.full_path
column15 target.file.full_path
column7 target.user.email_addresses column2 == file_sentemail の場合は統合
column10 metadata.description 値が直接コピーされる
column11 metadata.product_event_type None でない場合、値は直接コピーされます。
column12 target.ip、target.asset.ip IP の Grok パターンを使用して column12 から抽出されます
column16 target.file.full_path folderPath と fileName の両方が存在する場合はそれらを連結した値。それ以外の場合は fileName のみ
column23 target.file.full_path
column19 target.user.user_display_name column2 == file_sentemail かつ column8 == sender の場合は値が直接コピーされ、それ以外の場合はターゲット ユーザーの値がコピーされます。
event_received_time metadata.collected_timestamp 日付一致パターン(UNIX_MS、dd/MM/yyyy HH:mm:ss、yyyy-MM-dd HH:mm:ss、MM/dd/yyyy HH:mm:ss A、yyyy/MM/dd HH:mm:ss、RFC 3339、yyyy-MM-ddTHH:mm:ss)を使用して変換されます。
timestamp metadata.event_timestamp 日付一致パターン(MMM d HH:mm:ss、MMM dd HH:mm:ss、ISO8601、yyyy-MM-dd HH:mm:ss、yyyy-MM-dd HH:mm:ss Z、MM/dd/yyyy HH:mm:ss A、yy-MM-dd HH:mm:ss、RFC 3339、yyyy-MM-ddTHH:mm:ss)を使用して変換されました
prin_ip principal.ip, principal.asset.ip 値を直接コピーする
AgentVersion metadata.product_version 値を直接コピーする
principal_host principal.hostname、principal.asset.hostname 値を直接コピーする
ユーザー名 principal.user.userid 値が直接コピーされる
company_name principal.user.company_name 値を直接コピーする
ID target.process.pid 値が直接コピーされる
InstID metadata.product_log_id 値が直接コピーされる
FileID target.resource.attribute.labels キー FileID と FileID の値を持つ additional_id_2 としてマージ
FolderID target.resource.attribute.labels キー FolderID と値 FolderID を使用して additional_id_3 として統合
FolderPath target.file.full_path FolderPath と FileName の両方が存在する場合は、それらを連結した値。それ以外の場合は FolderPath の値。
FileName target.file.full_path
FileName target.resource.attribute.labels キー FileName と値 FileName を持つファイル名として統合
ホスト principal.hostname、principal.asset.hostname 値が直接コピーされる
log_level security_result.severity INFO または DEBUG の場合は INFORMATIONAL、ERROR の場合は ERROR に設定します。
source_module_name observer.resource.attribute.labels キー source_module_name と source_module_name の値を使用して source_module_label として統合
source_module_type observer.application 値が直接コピーされる
log_msg metadata.description http_method != GET かつ file_path が空の場合は log_msg の値、それ以外の場合は log_desc、それ以外の場合は description、それ以外の場合は Message
log_desc metadata.description
説明 metadata.description
メッセージ metadata.description
ポート principal.port 値が直接コピーされ、整数に変換されます
tgtport target.port 値が直接コピーされ、整数に変換されます
パッケージ principal.process.command_line 値が直接コピーされる
srcip principal.ip、principal.asset.ip 値が直接コピーされる
ユーザー名 principal.user.userid 値が直接コピーされる
version metadata.product_version 値が直接コピーされる
http_method network.http.method 値を直接コピーする
アクション security_result.action_details 値を直接コピーする
概要 security_result.summary 値を直接コピーする
security_result security_result 直接統合
tgtip target.ip、target.asset.ip 値が直接コピーされる
application_proto network.application_protocol 大文字に変換して直接コピー
URL network.http.referral_url 値が直接コピーされる
status_code network.http.response_code 値が直接コピーされ、整数に変換されます
file_path principal.process.file.full_path 値が直接コピーされる
file_size principal.process.file.size 0 でない場合、符号なし整数に変換されます。
process_id principal.process.pid 値が直接コピーされる
session_id network.session_id 値を直接コピーする
task_id additional.fields キーが TASK_ID、値が task_id の文字列値の additional_field としてマージされます。
AgentBrand metadata.product_event_type 値を直接コピーする
Parm1 additional.fields キーが Parm1、string_value が Parm1 の additional_field_3 として統合
Parm2 additional.fields Parm2 のキー Parm2 と string_value を使用して additional_field_4 として統合
エラー additional.fields キーが Error、値が Error の string_value の additional_field_5 として統合されます。
XFerSize target.resource.attribute.labels キーが XFerSize、値が XFerSize の additional_field_1 として統合されます。
FolderPath metadata.event_type FolderPath と action_performed が Delete File と一致する場合は FILE_DELETION、tgtip または host と application_proto == HTTP の場合は NETWORK_HTTP、Username または username の場合は USER_LOGIN、tgtip、host、principal_host、IPAddress のいずれかの場合は STATUS_UPDATE、それ以外の場合は GENERIC_EVENT に設定されます。
tgtip metadata.event_type
ホスト metadata.event_type
principal_host metadata.event_type
IPAddress metadata.event_type
ユーザー名 metadata.event_type
ユーザー名 metadata.event_type
tgtip metadata.event_type column2 == sec_signon かつ tgtip または tar_host の場合は USER_LOGIN、sec_signoff かつ tgtip または tar_host の場合は USER_LOGOUT、folder_add の場合は FILE_UNCATEGORIZED、file_upload または download かつ tgtip かつ is_tgt_file_present の場合は FILE_CREATION、file_delete かつ srcip かつ is_tgt_file_present の場合は FILE_DELETION、file_rename の場合は FILE_MODIFICATION、file_dlhashchk の場合は FILE_UNCATEGORIZED、file_sentemail かつ useremail の場合は EMAIL_TRANSACTION、srcip の場合は STATUS_UPDATE、それ以外の場合は GENERIC_EVENT に設定されます。
tar_host metadata.event_type
srcip metadata.event_type
is_tgt_file_present metadata.event_type
column2 metadata.event_type
useremail metadata.event_type
security_result metadata.event_type
extensions.auth.type extensions.auth.type ログイン/ログアウト イベントの場合は MACHINE に設定します
metadata.vendor_name metadata.vendor_name 「IPS」に設定
metadata.product_name metadata.product_name 「IPSWITCH MOVEIT TRANSFER」に設定します。
target_application event.idm.read_only_udm.target.application 変更履歴からマッピング
product_event event.idm.read_only_udm.metadata.product_event_type 変更履歴からマッピング
dstip event.idm.read_only_udm.target.ip と event.idm.read_only_udm.target.asset.ip 変更履歴からマッピング
AdminTrust event.idm.read_only_udm.additional.fields 変更履歴からマッピング
Permission event.idm.read_only_udm.additional.fields 変更履歴からマッピング
log_status event.idm.read_only_udm.security_result.action.details 変更履歴からマッピング
srcip event.idm.read_only_udm.principal.ip と event.idm.read_only_udm.principal.asset.ip 変更履歴からマッピング
EventReceivedTime event.timestamp 変更履歴からマッピング
SourceModuleName observer.resource.attribute.labels 変更履歴からマッピング
SourceModuleType observer.application 変更履歴からマッピング
SourceName metadata.product_event_type 変更履歴からマッピング
Severity security_result. 変更履歴からマッピング
Hostname principal.hostname 変更履歴からマッピング
Channel security_result.about.resource.attribute.labels 変更履歴からマッピング
AgentVersion metadata.version 変更履歴からマッピング

変更ログ

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

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