JFrog Artifactory のログを収集する

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

このドキュメントでは、Bindplane を使用して Jfrog Artifactory ログを Google Security Operations に取り込む方法について説明します。パーサーは、2 つの異なる JFrog Artifactory ログ形式を処理します。grok パターンを使用して、各形式のフィールドを識別して抽出します。次に、これらのフィールドを UDM にマッピングし、いずれかの形式で JSON ペイロードを処理して、いずれの形式にも一致しないログをドロップします。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
  • Jfrog Artifactory インスタンスへの特権アクセス権があることを確認します。

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

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

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

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

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. 構成ファイルにアクセスします。

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

    ```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: '/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
            ingestion_labels:
                log_type: 'JFROG_ARTIFACTORY'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    ```
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

  4. <customer_id> は、実際の顧客 ID に置き換えます。

  5. /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

JFrog Artifactory Syslog を構成する

  1. Jfrog Artifactory インスタンスに接続します。
  2. vi を使用して $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml ファイルを編集します。

    vi $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml
    
  3. 次の syslog アペンダーをファイルに追加します。

    <appender name="SYSLOG" class= "ch.qos.logback.classic.net.SyslogAppender">
        <syslogHost>Bindplane-Agent-IP</syslogHost>
        <facility>SYSLOG</facility>
        <suffixPattern>[%thread] %logger %msg</suffixPattern>
    </appender>
    
    • syslogHost の Bindplane-Agent-IP を、Bindplane エージェント用に構成された実際の IP アドレスに置き換えます。
  4. ファイルに構成データを追加します。

    <root>
    < level value="debug"/>
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="FILE"/>
    <appender-ref ref="SYSLOG"/>
    </root>
    
  5. キーボードの ESC(エスケープ)ボタンをクリックし、:wq と入力して、ファイルを保存します。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
操作 read_only_udm.metadata.product_event_type 未加工ログの action の値は小文字に変換されてマッピングされます。
datetime read_only_udm.metadata.event_timestamp 未加工ログの datetime フィールドが解析され、タイムスタンプに変換されます。
hostname read_only_udm.principal.hostname 未加工ログの hostname フィールドから直接マッピングされます。
id read_only_udm.metadata.product_log_id 未加工ログの id フィールド(JSON ペイロードから)から直接マッピングされます。
ip read_only_udm.principal.ip 未加工ログの ip フィールドから直接マッピングされます。「USER_RESOURCE_ACCESS」にハードコードされています。「JFROG_ARTIFACTORY」にハードコードされます。「Artifactory」にハードコードされます。「JFROG」にハードコードされます。
owner read_only_udm.principal.user.userid username が未加工ログ(JSON ペイロード)に存在しない場合にマッピングされます。
repo_name read_only_udm.target.resource.name 未加工ログの repo_name フィールドから直接マッピングされます。
repo_type read_only_udm.target.resource.resource_subtype 未加工ログの repo_type フィールドから直接マッピングされます。
scope read_only_udm.target.resource.name 未加工ログの scope フィールド(JSON ペイロードから)から直接マッピングされます。
scope read_only_udm.target.resource.resource_subtype 未加工ログに scope が存在する場合は「scope」にハードコードされます。
sequenceId read_only_udm.metadata.product_log_id 引用符が sequenceId フィールドから削除され、マッピングされます。
subject read_only_udm.about.labels.key 未加工ログに subject が存在する場合は「subject」にハードコードされます。
subject read_only_udm.about.labels.value 未加工ログの subject フィールド(JSON ペイロードから)から直接マッピングされます。
type read_only_udm.metadata.product_event_type 未加工ログの type フィールド(JSON ペイロードから)から直接マッピングされます。
ユーザー read_only_udm.principal.user.userid 未加工ログの user フィールドから直接マッピングされます。
ユーザー名 read_only_udm.principal.user.userid 未加工ログの username フィールド(JSON ペイロードから)から直接マッピングされます。

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