BMC AMI Defender のログを収集する
このドキュメントでは、Bindplane エージェントを使用して BMC AMI Defender ログを Google Security Operations に取り込む方法について説明します。
BMC AMI Datastream for z/OS は、z/OS システム アクティビティをモニタリングし、System Management Facility(SMF)レコードを収集、処理して、分散 SIEM システムにリアルタイムで配信するメインフレーム エージェント プログラムです。エージェントは、RACF、ACF2、Top Secret、TCP/IP、CICS、IMS、その他の z/OS システムとアプリケーション イベントの SMF レコードを RFC 3164 準拠の syslog メッセージとして再フォーマットし、UDP、TCP、TLS プロトコル経由で送信します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または Bindplane エージェント用の
systemdを使用する Linux ホスト - Bindplane エージェント ホストと BMC AMI Datastream を実行している z/OS LPAR 間のネットワーク接続
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
- z/OS LPAR にインストールされ、実行されている BMC AMI Datastream for z/OS バージョン 6.1 以降
- z/OS の amihlq.PARM データセット内のパラメータ ファイルを編集する権限(通常は TSO/ISPF アクセス権またはバッチジョブ送信権限が必要)
- BMC AMI Datastream 構成を変更する権限(通常、パラメータ データセットに対する RACF 読み取りアクセス権が必要)
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: tcplog: listen_address: "0.0.0.0:1514" exporters: chronicle/bmc_datastream: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'your-customer-id-here' endpoint: malachiteingestion-pa.googleapis.com log_type: BMC_AMI_DEFENDER raw_log_field: body service: pipelines: logs/datastream_to_chronicle: receivers: - tcplog exporters: - chronicle/bmc_datastream各プレースホルダを次のように置き換えます。
レシーバーの構成:
listen_address: リッスンする IP アドレスとポート:0.0.0.0:1514: ポート 1514 のすべてのインターフェースをリッスンします(Linux の非 root ユーザーにおすすめ)0.0.0.0:514: 標準の syslog ポートのすべてのインターフェースでリッスンします(Linux で root が必要)。- 1 つのインターフェースでリッスンする特定の IP アドレス
エクスポータの構成:
creds_file_path: 取り込み認証ファイルのフルパス:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:customer ID。詳細については、Google SecOps の顧客 ID を取得するをご覧ください。endpoint: リージョン エンドポイント URL:- 米国:
malachiteingestion-pa.googleapis.com - ヨーロッパ:
europe-malachiteingestion-pa.googleapis.com - アジア:
asia-southeast1-malachiteingestion-pa.googleapis.com - 完全なリストについては、リージョン エンドポイントをご覧ください。
- 米国:
log_type:BMC_AMI_DEFENDER
UDP syslog の構成例
UDP 転送(低レイテンシ、ファイア アンド フォーゲット)を優先する場合:
receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/bmc_datastream: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6' endpoint: malachiteingestion-pa.googleapis.com log_type: BMC_AMI_DEFENDER raw_log_field: body service: pipelines: logs/datastream_to_chronicle: receivers: - udplog exporters: - chronicle/bmc_datastream
構成ファイルを保存する
編集が完了したら、ファイルを保存します。
- 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"
BMC AMI Defender の syslog 転送を構成する
TSO/ISPF を使用してパラメータ ファイルを編集する
- BMC AMI Datastream がインストールされている z/OS LPAR の TSO/ISPF にログインします。
- [ISPF Primary Option Menu] で、2 と入力して [EDIT] を選択します。
[編集 - エントリ パネル] で、次の情報を入力します。
- ISPF ライブラリ: パラメータ データセット名を
'amihlq.PARM'形式で入力します。ここで、amihlq はインストール時に選択した上位修飾子です(例:'PROD.CZAGENT.PARM')。 - メンバー:
$$$CONFG.
- ISPF ライブラリ: パラメータ データセット名を
Press Enter to open the member for editing.
Configure the SIEM type
- In the
$$$CONFGメンバーを入力し、[SIEM タイプを設定するスイッチ] というラベルの付いたセクションを見つけます。 適切な行の先頭のセミコロンを削除して、1 つの SIEM タイプをコメント解除します。
- 標準の syslog 形式の場合は、
SWITCH ON(RFC3164)のコメントを解除します。 - Common Event Format の場合は、
SWITCH ON(CEF)のコメントを解除します。 - JSON 形式の場合は、
SWITCH ON(JSON)のコメントを解除します。 - IBM QRadar LEEF 形式の場合は、
SWITCH ON(LEEF)のコメントを解除します。 - Splunk 形式の場合は、
SWITCH ON(Splunk)のコメントを解除します。
- 標準の syslog 形式の場合は、
F3 キーを押して保存し、メンバーを終了します。
syslog サーバーを構成する
[Edit - Entry Panel] で、次のように入力します。
- ISPF Library:
'amihlq.PARM'(前と同じ)と入力します。 - メンバー: 「
$$$SERVR.
- ISPF Library:
Press Enter to open the member for editing.
Locate the section corresponding to your selected SIEM type. For example:
- For RFC3164: Locate the section labeled
; RFC3164 - For CEF: Locate the section labeled
; CEF - TRANS(TCP) Recommended - For JSON: Locate the section labeled
; JSON - TRANS(TCP) Recommended
- For RFC3164: Locate the section labeled
Uncomment the SERVER statement by removing the leading semicolon.
Edit the SERVER statement with the following values:
- Replace
ip.addr.examplewith the IP address of the Bindplane agent host (for example,192.168.1.100). If using TCP (recommended), the statement should look like:
SERVER 192.168.1.100:1514 TRANS(TCP) MAXMSG(2000)If using UDP, the statement should look like:
SERVER 192.168.1.100:514 TRANS(UDP) MAXMSG(2000)
- Replace
If you selected CEF, JSON, or Splunk format and are using TCP transport, locate the OPTIONS statement section and uncomment the FRAMING parameter:
OPTIONS FRAMING(OCTETCOUNT)Press F3 to save and exit the member.
Refresh the BMC AMI Datastream configuration
- From the ISPF Primary Option Menu, enter 6 to select COMMAND.
On the TSO Command Processor screen, enter the following MVS console command:
F czagentname,PARMSReplace
czagentnamewith the name of the BMC AMI Datastream started task (typicallyCZAGENTor the instance name configured during installation).Press Enter to execute the command.
Verify the configuration was refreshed by checking the system log for message CZA0001I indicating the parameter file was successfully processed.
Verify syslog transmission
- From the ISPF Primary Option Menu, enter 6 to select COMMAND.
Enter the following command to display BMC AMI Datastream statistics:
F czagentname,STATSPress Enter to execute the command.
Check the system log for message CZA0350I showing the number of messages sent to the syslog server.
Verify the Bindplane agent is receiving messages by checking the Bindplane agent logs:
- Linux:
sudo journalctl -u observiq-otel-collector -f - Windows: Check
C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log
- Linux:
Alternative: Edit parameter file using batch job
If you do not have TSO/ISPF access, you can edit the parameter files using a batch job:
Create a batch job with the following JCL:
//EDITPARM JOB (ACCT),'EDIT DATASTREAM PARMS', // CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD * SWITCH ON(RFC3164) /* //SYSUT2 DD DSN=amihlq.PARM($$$CONFG),DISP=SHR //STEP2 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD * SERVER 192.168.1.100:1514 TRANS(TCP) MAXMSG(2000) /* //SYSUT2 DD DSN=amihlq.PARM($$$SERVR),DISP=SHR」と入力します。amihlqは、BMC AMI Datastream インストールの高レベル修飾子に置き換えます。192.168.1.100:1514は、Bindplane エージェント ホストの IP アドレスとポートに置き換えます。ジョブを送信し、正常に完了したこと(戻りコード 0)を確認します。
前のセクションで説明したように、MODIFY コマンドを発行して構成を更新します。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| aceeadsp | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| aceeaudt | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| aceeflg1 | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| aceelogu | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| aceeoper | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| aceepriv | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| aceeracf | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| aceeroa | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| aceespec | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| additional.fields | additional.fields | イベントに関する追加情報 |
| auth | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| auth_audit | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| auth_bypass | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| auth_exit | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| auth_normal | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| auth_oper | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| auth_soft | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| auth_special | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| auth_trusted | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| authinfo | security_result.description | セキュリティ結果の説明 |
| イベント | metadata.product_event_type | プロダクト固有のイベントタイプ |
| event_type | metadata.event_type | イベントのタイプ(USER_LOGIN、NETWORK_CONNECTION) |
| eventdesc | metadata.description | イベントの説明 |
| グループ | additional.fields | イベントに関する追加情報 |
| hostname | principal.hostname、principal.asset.hostname | プリンシパルのホスト名、アセットのホスト名 |
| jobid | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| jobnm | additional.fields | イベントに関する追加情報 |
| jsauth | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| name | principal.user.user_display_name | ユーザーの表示名 |
| pgm | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| privstatd | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| reas_always | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| reas_audit | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| reas_cmdviol | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| reas_globalaudit | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| reas_setropts | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| reas_special | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| reas_user | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| reas_verify | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| rtype | additional.fields | イベントに関する追加情報 |
| saf | additional.fields | イベントに関する追加情報 |
| safd | additional.fields | イベントに関する追加情報 |
| security_result.detection_fields | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| 重要度 | security_result.severity、security_result.severity_details | セキュリティ結果の重大度、重大度の詳細情報 |
| sid | additional.fields | イベントに関する追加情報 |
| timestamp | metadata.event_timestamp | イベントが発生したときのタイムスタンプ |
| tokflg1 | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| tokflg3 | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| tokpriv | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| toksus | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| tokudus | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| userid | principal.user.userid | ユーザー ID |
| 違反 | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| user_warning | security_result.detection_fields | セキュリティ結果の判断に使用されたフィールド |
| worktyped | additional.fields | イベントに関する追加情報 |
| metadata.product_name | 商品名 | |
| metadata.vendor_name | ベンダー/会社名 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。