IBM Guardium のログを収集する
このドキュメントでは、Bindplane を使用して IBM Guardium ログを Google Security Operations に取り込む方法について説明します。
IBM Guardium は、データベースとファイル システムのリアルタイム モニタリング、監査、保護を提供するデータベース アクティビティ モニタリングとデータ保護プラットフォームです。Guardium には、脆弱性評価、データ検出と分類、データベース アクティビティのモニタリング、コンプライアンス レポート機能が用意されています。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または
systemdを使用する Linux ホスト - Bindplane エージェントと IBM Guardium Collector 間のネットワーク接続
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
- IBM Guardium CLI への特権アクセス
- 暗号化された syslog のサポート(省略可)のための IBM Guardium バージョン 9.1 以降
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者としてコマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sc query observiq-otel-collector
サービスは RUNNING と表示されます。
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sudo systemctl status observiq-otel-collector
サービスが [アクティブ(実行中)] と表示されます。
その他のインストール リソース
その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。
syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを見つける
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yamlの内容全体を次の構成に置き換えます。receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/guardium: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: GUARDIUM raw_log_field: body ingestion_labels: log_source: guardium service: pipelines: logs/guardium_to_chronicle: receivers: - udplog exporters: - chronicle/guardium
構成パラメータ
各プレースホルダを次のように置き換えます。
レシーバーの構成:
- UDP syslog には
udplogを使用します(Guardium で最も一般的)。 - 必要に応じて、TCP syslog に
tcplogを使用します。 - リッスン アドレス
0.0.0.0:514は、ポート 514 のすべてのインターフェースでリッスンします。
- UDP syslog には
エクスポータの構成:
creds_file_path: 取り込み認証ファイルのフルパス:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: 前の手順の顧客 ID。endpoint: リージョン エンドポイント URL:- 米国:
malachiteingestion-pa.googleapis.com - ヨーロッパ:
europe-malachiteingestion-pa.googleapis.com - アジア:
asia-southeast1-malachiteingestion-pa.googleapis.com
- 米国:
log_type:GUARDIUMでなければなりません。ingestion_labels: YAML 形式の省略可能なラベル。
構成ファイルを保存する
編集が完了したら、ファイルを保存します。
- Linux:
Ctrl+O、Enter、Ctrl+Xの順に押します。 - Windows: [ファイル>保存] をクリックします。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart observiq-otel-collectorサービスが実行されていることを確認します。
sudo systemctl status observiq-otel-collectorログでエラーを確認します。
sudo journalctl -u observiq-otel-collector -f
Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。
管理者としてコマンド プロンプトまたは PowerShell を開きます。
net stop observiq-otel-collector && net start observiq-otel-collectorサービス コンソール:
Win+Rキーを押し、「services.msc」と入力して Enter キーを押します。- observIQ OpenTelemetry Collector を見つけます。
右クリックして [再起動] を選択します。
サービスが実行されていることを確認します。
sc query observiq-otel-collectorログでエラーを確認します。
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
IBM Guardium の syslog 転送を構成する
CLI を使用して syslog の宛先を構成する
IBM Guardium のイベントの syslog 宛先を作成するには、コマンドライン インターフェースにログインして、Bindplane エージェント ホストの IP アドレスを定義する必要があります。
- SSH を使用して、CLI ユーザーとして IBM Guardium Collector にログインします。
次のコマンドを入力して、syslog の宛先を構成します。
UDP Syslog の場合(推奨):
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP udpTCP syslog の場合:
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP:514 tcp特定の重大度の場合:
store remotelog add non_encrypted daemon.alert BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.err BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.warning BINDPLANE_AGENT_IP udpBINDPLANE_AGENT_IPは、Bindplane エージェントがインストールされているホストの IP アドレスに置き換えます。
次のコマンドを実行して、構成を確認します。
show remotelog出力には、構成したリモート syslog の宛先が表示されます。
暗号化された syslog を構成する(省略可)
暗号化された Syslog 転送が必要な場合は、IBM Guardium バージョン 9.1 以降で TCP 経由の TLS 暗号化がサポートされています。
- リモート syslog レシーバで使用される認証局から PEM 形式の公開証明書を取得します。
- Guardium Collector の CLI にログインします。
以下のコマンドを入力します。
store remotelog add encrypted daemon.all BINDPLANE_AGENT_IP:6514 tcpプロンプトが表示されたら、BEGIN 行と END 行を含む PEM 形式の CA 証明書を貼り付けて、
Ctrl+Dを押します。Guardium は証明書を
/etc/pki/rsyslog/ca.pemとして保存します。
メッセージ テンプレートを構成する(省略可)
Guardium は、CEF(Common Event Format)や LEEF(Log Event Extended Format)など、複数のメッセージ形式をサポートしています。デフォルトの形式は、ほとんどのデプロイに適しています。
メッセージ テンプレートをカスタマイズするには:
- 管理者権限を持つユーザーとして、Guardium アプライアンスの GUI にログインします。
- [管理コンソール] > [構成] > [グローバル プロファイル] に移動します。
- [Message Template] セクションで、目的の形式でテンプレートを編集します。
- [保存] をクリックします。
syslog にアラートを送信するようにポリシーを構成する
IBM Guardium のポリシーは、イベントに反応し、イベント情報をリモート syslog レシーバに転送する役割を担います。
ポリシー アラートのアクションを構成する
- Guardium アプライアンスの GUI にログインします。
- [ツール] タブをクリックします。
- 左側のナビゲーションで [ポリシー ビルダー] を選択します。
- [ポリシー ファインダー] ペインで、既存のポリシーを選択して [ルールを編集] をクリックします。
- [このルールを個別に編集] をクリックします。
- [アクセスルールの定義] が表示されます。
- [アクションを追加] をクリックします。
- [アクション] リストから、次のいずれかのアラートタイプを選択します。
- 試合ごとのアラート: ポリシー違反ごとに通知が届きます。
- Alert Daily: その日に初めてポリシー違反が発生したときに通知が届きます。
- Alert Once Per Session: 固有のセッションごとにポリシー違反ごとに通知が提供されます。
- アラートの粒度(時間単位): 選択した期間ごとに通知が送信されます。
- [メッセージ テンプレート] リストから必要なテンプレートを選択するか、[デフォルト] のままにします。
- [通知タイプ] で [SYSLOG] を選択します。
- [追加]、[適用] の順にクリックします。
- [保存] をクリックします。
- Google SecOps に転送するポリシー内のすべてのルールについて、このプロセスを繰り返します。
ポリシーをインストールする
IBM Guardium の新しいポリシーまたは編集されたポリシーは、更新されたアラート アクションまたはルールの変更が行われる前にインストールする必要があります。
- [管理コンソール] タブをクリックします。
- 左側のナビゲーションで、[構成> ポリシーのインストール] を選択します。
- [ポリシー インストーラ] ペインで、前の手順で変更したポリシーを選択します。
- プルダウン リストから [インストールとオーバーライド] を選択します。
- すべての検査エンジンにポリシーをインストールする確認が表示されます。
- [OK] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| deviceNtDomain | about.administrative_domain | 関連エンティティの管理ドメイン |
| deviceExternalId | about.asset.asset_id | アセット ID |
| filePath、fileHash | about.file.full_path | ファイルのフルパス |
| _hash、fileHash | about.file.sha256 | ファイルの SHA256 ハッシュ |
| fsize | about.file.size | ファイルのサイズ |
| dvchost | about.hostname | 関連エンティティのホスト名 |
| dvc | about.ip | 対象エンティティの IP アドレス |
| smac、dmac、dvcmac | about.mac | 関連エンティティの MAC アドレス |
| deviceProcessName、Subject、Emne、Path | about.process.command_line | プロセスのコマンドライン |
| dvcpid | about.process.pid | プロセス ID |
| filePermission | about.resource.attribute.permissions | リソースに関連付けられた権限 |
| extensions.auth.type | 認証タイプ | |
| sender_ip | intermediary.ip | 仲介者の IP アドレス |
| intermediary | 仲介エンティティの詳細 | |
| Received、Generated、timestamp | metadata.collected_timestamp | イベントが収集されたときのタイムスタンプ |
| msg, signature_name | metadata.description | イベントの説明 |
| metadata.event_type | イベントのタイプ(USER_LOGIN、NETWORK_CONNECTION) | |
| device_event_class_id、event_name、eventType | metadata.product_event_type | プロダクト固有のイベントタイプ |
| externalId | metadata.product_log_id | プロダクトログ ID |
| metadata.product_version | プロダクトのバージョン | |
| network.application_protocol | ネットワーク接続で使用されるアプリケーション プロトコル | |
| deviceDirection | network.direction | ネットワーク トラフィックの方向 |
| requestMethod | network.http.method | リクエストで使用される HTTP メソッド |
| requestClientApplication | network.http.user_agent | HTTP リクエストのユーザー エージェント文字列 |
| proto | network.ip_protocol | 使用された IP プロトコル |
| in | network.received_bytes | 受信したバイト数 |
| どうなるでしょうか | network.sent_bytes | 送信されたバイト数 |
| session_id | network.session_id | ネットワーク接続のセッション識別子 |
| sntdom、Domain、Domene | principal.administrative_domain | プリンシパルの管理ドメイン |
| sourceServiceName、source_program | principal.application | プリンシパルに関連付けられたアプリケーション |
| prin_host、Device_name、Enhetsnavn、shost、principal_hostname、client_hostname | principal.asset.hostname | プリンシパル アセットのホスト名 |
| sender_ip、src_ip、src、principal_ip、client_ip | principal.asset.ip | プリンシパル アセットの IP アドレス |
| Group_name, Gruppenavn | principal.group.group_display_name | プリンシパル グループの表示名 |
| prin_host、Device_name、Enhetsnavn、shost、principal_hostname、client_hostname | principal.hostname | プリンシパルのホスト名 |
| sender_ip、src_ip、src、principal_ip、client_ip | principal.ip | プリンシパルの IP アドレス |
| smac | principal.mac | プリンシパルの MAC アドレス |
| sourceTranslatedAddress | principal.nat_ip | プリンシパルの NAT IP アドレス |
| sourceTranslatedPort | principal.nat_port | プリンシパルの NAT ポート |
| spt、client_port | principal.port | プリンシパルが使用するポート |
| sproc | principal.process.command_line | プリンシパル プロセスのコマンドライン |
| spid | principal.process.pid | プリンシパルのプロセス ID |
| spriv | principal.user.attribute.roles | プリンシパル ユーザーに関連付けられたロール |
| suser、usrName、CustomerName | principal.user.user_display_name | プリンシパル ユーザーの表示名 |
| dbUser、usrName、db_user、os_user、suid、db_username | principal.user.userid | プリンシパルのユーザー ID |
| security_result | セキュリティ結果の詳細 | |
| security_result.action | セキュリティ結果で実行されたアクション | |
| act、Action_Taken | security_result.action_details | 実施された措置の詳細 |
| 猫 | security_result.category_details | セキュリティ結果のカテゴリの詳細 |
| msg_data_2、alert_description、Type、Scan_Type | security_result.description | セキュリティ結果の説明 |
| operation_label、operasjon_label、permission_label、tillatelse_label、infection_channel_label、spyware_Grayware_Type_label、threat_probability_label | security_result.detection_fields | セキュリティ結果の検出に使用されるフィールド |
| mwProfile、alert_name | security_result.rule_name | セキュリティ結果をトリガーしたルールの名前 |
| severity、event_severity | security_result.severity | セキュリティ結果の重大度レベル |
| reason、ruleDesc、appcategory、Result | security_result.summary | セキュリティ結果の概要 |
| Spyware、Virus_Malware_Name、Unknown_Threat | security_result.threat_name | 検出された脅威の名前 |
| oldFilePath | src.file.full_path | ソースファイルのフルパス |
| oldFileSize | src.file.size | ソースファイルのサイズ |
| oldFilePermission | src.resource.attribute.permissions | ソースリソースの権限 |
| os_user | src.user.userid | ソースユーザーのユーザー ID |
| dntdom | target.administrative_domain | ターゲットの管理ドメイン |
| destinationServiceName, service_name | target.application | ターゲットに関連付けられているアプリケーション |
| prin_host、dest_host、server_hostname | target.asset.hostname | ターゲット アセットのホスト名 |
| dst_ip、dest_ip、server_ip、IPv6_Address | target.asset.ip | ターゲット アセットの IP アドレス |
| temp_dhost、dest_host、server_hostname | target.hostname | ターゲットのホスト名 |
| dst_ip、dst、dest_ip、server_ip、IPv6_Address | target.ip | ターゲットの IP アドレス |
| dmac | target.mac | ターゲットの MAC アドレス |
| destinationTranslatedAddress | target.nat_ip | ターゲットの NAT IP アドレス |
| destinationTranslatedPort | target.nat_port | ターゲットの NAT ポート |
| dpt、dstPort、dest_port、server_port | target.port | ターゲットで使用されるポート |
| dproc、full_sql | target.process.command_line | ターゲット プロセスのコマンドライン |
| File_name、Object、Objekt、Infected_Resource | target.process.file.full_path | ターゲット プロセス ファイルのフルパス |
| dpid、full_sql_id | target.process.pid | ターゲットのプロセス ID |
| session_start | target.resource.attribute.creation_time | ターゲット リソースの作成時刻 |
| additional_environment_name、additional_db_protocol_version、additional_dbProtocolVersion、additional_operation_name、additional_signature_id、resource_Type_label | target.resource.attribute.labels | ターゲット リソースに関連付けられたラベル |
| session_end | target.resource.attribute.last_update_time | ターゲット リソースの最終更新日時 |
| db_name、database_name | target.resource.name | ターゲット リソースの名前 |
| db_type、server_type | target.resource.resource_subtype | ターゲット リソースのサブタイプ |
| target.resource.resource_type | ターゲット リソースのタイプ | |
| リクエスト | target.url | ターゲットに関連付けられた URL |
| dpriv、roles | target.user.attribute.roles | ターゲット ユーザーに関連付けられているロール |
| temp_duser、CustomerName | target.user.user_display_name | 対象ユーザーの表示名 |
| temp_duid、User、Bruker、db_username | target.user.userid | ターゲットのユーザー ID |
| metadata.product_name | 商品名 | |
| metadata.vendor_name | ベンダー名 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。