CA ACF2 ログを収集する
パーサーのバージョン: 2.0
このドキュメントでは、Bindplane エージェントを使用して CA ACF2 ログを Google Security Operations に取り込む方法について説明します。
Broadcom ACF2(Access Control Facility 2)for z/OS は、IBM z/OS システムのアクセス制御、認証、監査を提供するメインフレーム セキュリティ プロダクトです。ACF2 は、認証試行、データセット アクセス違反、リソース アクセス イベント、TSO コマンド ロギング、データベース変更などのセキュリティ イベントを IBM System Management Facility(SMF)レコード(デフォルト タイプ 230)に記録します。これらの SMF レコードは、BMC AMI Defender for z/OS などのサードパーティ エージェントを使用して Chronicle に転送する必要があります。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または
systemdを使用する Linux ホスト - Bindplane エージェントと BMC AMI Defender for z/OS エージェント間のネットワーク接続
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します
- ACF2 がアクティブな z/OS LPAR に BMC AMI Defender for z/OS がインストールされ、実行されている
amihlq.CZAGENT.PARMデータセット内の BMC AMI Defender パラメータ ファイルを変更するためのアクセス権- z/OS で CZAGENT 開始タスクを開始または変更する権限
Bindplane エージェントの Google SecOps 認証情報を取得する
Bindplane エージェントを Google SecOps に対して認証するには、次のいずれかの方法を選択します。
- 新規デプロイ: Chronicle API を使用します(オプション 1)。
- 以前のデプロイ: 2027 年 7 月 20 日に Ingestion API が廃止されるまで、取り込み認証ファイル(オプション 2)を引き続き使用します。
オプション 1: Chronicle API のサービス アカウントを作成する(推奨)
- Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
- [IAM と管理] > [サービス アカウント] に移動します。
- [サービス アカウントを作成] をクリックします。
- 次の構成情報を指定します。
- サービス アカウント名: アカウントの名前を入力します(例:
bindplane-ingest)。 - サービス アカウントの説明: 説明を入力します(例:
Bindplane agent log ingestion)。
- サービス アカウント名: アカウントの名前を入力します(例:
- [作成して続行] をクリックします。
- [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
- [続行] をクリックして [完了] をクリックします。
- 作成したサービス アカウントをクリックし、[キー] タブに移動します。
- [鍵を追加] > [新しい鍵を作成] の順にクリックします。
- [JSON] を選択し、[作成] をクリックします。キーファイルがパソコンにダウンロードされます。
- 鍵ファイルを Bindplane コレクタ ディレクトリ(Linux の場合は
/opt/observiq-otel-collector/ingestion-auth.json、Windows の場合はC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)にingestion-auth.jsonとして保存するか、config.yamlのcreds_file_pathを保存先のパスと一致するように更新します。 - [IAM と管理] > [設定] に移動し、[プロジェクト番号] をコピーします。これはエクスポータの構成に必要です。
オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- 取り込み認証ファイルをダウンロードします。
- 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サービスは active (running) と表示されます。
その他のインストール リソース
その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを探します。
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yamlの内容全体を次の構成に置き換えます。receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/acf2_logs: 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: 'YOUR_CUSTOMER_ID' endpoint: chronicle.googleapis.com log_type: CA_ACF2 raw_log_field: body ingestion_labels: env: production source: acf2 service: pipelines: logs/acf2_to_chronicle: receivers: - udplog exporters: - chronicle/acf2_logs各プレースホルダを次のように置き換えます。
レシーバーの構成:
listen_address:0.0.0.0:514に設定して、UDP ポート 514 のすべてのインターフェースをリッスンします。- root 以外で実行されている Linux システムの場合は、ポート
1514以降を使用します。 - このポートを BMC AMI Defender SERVER ステートメントの構成と一致させます。
- root 以外で実行されている Linux システムの場合は、ポート
エクスポータの構成:
creds_file_path: サービス アカウントの JSON キーファイルのフルパス(オプション 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:YOUR_CUSTOMER_IDをcustomer IDに置き換えます。詳細については、Google SecOps のお客様 ID を取得するをご覧ください。location:<LOCATION>は、Google SecOps インスタンスのリージョン(us、europe、asia-southeast1など)に置き換えます。エクスポーターは、chronicle.googleapis.comの先頭にこの値を付加します。完全なリストについては、リージョン エンドポイントをご覧ください。project:<PROJECT_NUMBER>を [IAM と管理] > [設定] のプロジェクト番号に置き換えます。endpoint:chronicle.googleapis.comに設定したままにします。log_type:CA_ACF2(ACF2 ログの Chronicle 取り込みラベル)に設定します。ingestion_labels: ログを分類するオプションのラベル(必要に応じてカスタマイズ)
以前の Ingestion API エクスポータ
オプション 2 の取り込み認証ファイルを使用する場合は、
exportersブロックを次のように置き換えます。creds_file_pathを取り込み認証ファイルのパスに設定します。インスタンスが米国以外にある場合は、malachiteingestion-pa.googleapis.comをリージョン エンドポイント(europe-malachiteingestion-pa.googleapis.comなど)に置き換えます。exporters: chronicle/acf2_logs: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: CA_ACF2 raw_log_field: body ingestion_labels: env: production source: acf2
構成ファイルを保存する
編集が完了したら、ファイルを保存します。
- 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"
ACF2 SMF レコードを転送するように BMC AMI Defender for z/OS を構成する
$$$SERVR parameter member
- Sign in to the z/OS system using TSO/ISPF or a 3270 emulator.
- Navigate to the BMC AMI Defender parameter library:
- Enter
ISPFat the TSO READY prompt. - Select option 2 (Edit).
- In the ISPF Library field, enter the data set name:
amihlq.CZAGENT.PARM(replaceamihlqwith your installation high-level qualifier). - Press Enter.
- Enter
- Edit the $$$SERVR メンバーを編集します。
- $$$SERVR member.
- Press Enter.
- Locate the SERVER statement section (approximately line 40-60).
- Uncomment one of the SERVER statements by removing the leading semicolon (
;). Configure the SERVER statement with the Bindplane agent IP address and port:
SERVER bindplane-host-ip:514 TRANS(UDP) MAXMSG(2000)- Replace
bindplane-host-ipwith the IP address of the Bindplane agent host (for example,192.168.1.100). - If using a non-standard port (for example,
1514), specify:bindplane-host-ip:1514. TRANS(UDP)specifies UDP transport protocol (recommended for syslog).MAXMSG(2000)sets the maximum message length to 2000 bytes (ACF2 records may require larger sizes).
- Replace
Verify the OPTIONS statement for syslog format:
- Scroll up to locate the OPTIONS statements (approximately line 10-30).
Ensure one of the following OPTIONS statements is uncommented based on your preferred format:
OPTIONS IF(RFC 3164) SIEM(RFC 3164) TIMESTAMP INSTNAME(SIEM.Agent)- RFC 3164: Standard syslog format (recommended for Chronicle)
- CEF: Common Event Format (alternative)
- LEEF: Log Event Extended Format (alternative)
- JSON: JSON format (alternative)
Save the changes:
- Press F3 to exit the editor.
- Type
SAVEwhen prompted. - Press Enter.
Edit the $$$CONFG パラメータ メンバーの横に E と入力して、ACF2 SMF レコード収集を有効にします
amihlq.CZAGENT.PARMデータセット メンバー リストで、$$$CONFG member:- Type
Enext to the $$$CONFG メンバーを編集します。 - Enter キーを押します。
- Type
ACF2 SMF レコード選択スイッチを見つけます(
ACF2またはSMF 230を検索します)。ACF2 の SELECT ステートメントのコメント化を解除します。
SELECT IF(ACF2) SMF(ACF2)- これにより、ACF2 SMF レコード(デフォルト タイプ 230)の収集が有効になります。
- サイトで ACF2 に別の SMF レコードタイプを使用している場合は、TSO で
ACF SHOW SYSTEMSコマンドを使用してタイプを確認します。
変更を保存します。
- F3 キーを押してエディタを終了します。
- プロンプトが表示されたら、「
SAVE」と入力します。 - Enter キーを押します。
amihlq.CZAGENT.PARMデータセット メンバー リストで、$$$ACF2 or SMFACF2 exists.If the member does not exist, create it:
- Type
C(Create) on the command line. - Enter the member name:
$$$ACF2.
- Type
SMF ACF2 ステートメント パラメータ メンバーを作成または編集する
メンバーを編集し、次の SMF ACF2 ステートメントを追加します。
SMF ACF2(230) FACILITY(SECURITY4) SEVERITY(INFORMATIONAL)
ACF2(230): ACF2 の SMF レコードタイプを指定します(デフォルトは 230。ACF SHOW SYSTEMSで確認してください)。FACILITY(SECURITY4): syslog ファシリティを Security(4)に設定します。SEVERITY(INFORMATIONAL): デフォルトの重大度を「情報」に設定します。- 無効なパスワードまたは権限違反は、重大度 ERROR で自動的に送信されます。
- リソース違反は、重大度 ERROR で自動的に送信されます。
必要に応じて、特定の ACF2 サブタイプと重大度を構成します。
SMF ACF2(230) +
FACILITY(SECURITY4) +
SEVERITY(INFORMATIONAL) +
SUBTYPES(P SEV(ERROR)) +
SUBTYPES(V SEV(ERROR)) +
SUBTYPES(D SEV(ERROR))
- サブタイプ P: 無効なパスワードまたは権限イベント(ERROR の重大度)
- サブタイプ V: リソース違反(重大度: エラー)
- サブタイプ D: データセット アクセス違反(重大度: エラー)
変更を保存します。
- F3 キーを押してエディタを終了します。
- プロンプトが表示されたら、「
SAVE」と入力します。 - Enter キーを押します。
BMC AMI Defender パラメータ ファイルを更新する
- ISPF を終了して、TSO READY プロンプトに戻ります。
MODIFY コマンドを発行して、パラメータ ファイルを再読み込みします。
F CZAGENT,PARMSCZAGENTは、BMC AMI Defender の開始タスク名に置き換えます(異なる場合)。- このコマンドは、エージェントを停止せずにパラメータ ファイルを再読み込みします。
CZAPRINT 出力をチェックして、構成を確認します。
- ISPF で、オプション 3.4(DSLIST)を選択します。
- データセット名のパターン
CZAGENT.CZAPRINT(またはサイト固有の命名規則)を入力します。 - Enter キーを押します。
- 最新の CZAPRINT データセットの横に「
B」(参照)と入力します。 - Enter キーを押します。
Syslog サーバーへの接続が成功したことを示すメッセージを検索します。
CZA0070I Connected to server bindplane-host-ip:514CZA0100I SMF ACF2 statement processed
CZAGENT 開始タスクが実行されていない場合は、開始します。
S CZAGENT
ACF2 ログの転送を確認する
テスト ACF2 セキュリティ イベントを生成します。
- TSO で、アクセス権のないデータセットにアクセスしようとします。
- 無効なパスワードでログオンを試みます(テスト アカウントを使用)。
- ACF2 によってロギングされる TSO コマンドを実行します。
Bindplane エージェントのログを調べて、ACF2 syslog メッセージが受信されたことを確認します。
Linux:
sudo journalctl -u observiq-otel-collector -f | grep ACF2Windows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log" | findstr ACF2
Google SecOps コンソールにログインし、ACF2 ログが取り込まれていることを確認します。
- [検索> UDM 検索] に移動します。
次のクエリを入力します。
metadata.log_type = "CA_ACF2"ACF2 セキュリティ イベントが検索結果に表示されることを確認します。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| extensions.auth.mechanism | 使用される認証メカニズム。 | |
| extensions.auth.type | 認証のタイプ。 | |
| sum | metadata.description | イベントの説明。 |
| metadata.event_type | イベントタイプ。 | |
| event_type, cat | metadata.product_event_type | サービス固有のイベントタイプ。 |
| product_version | metadata.product_version | プロダクトのバージョン。 |
| ターミナル | principal.hostname | プリンシパルに関連付けられたホスト名。 |
| name | principal.user.user_display_name | ユーザーの表示名。 |
| usrName | principal.user.userid | ユーザー ID。 |
| security_result.action | セキュリティ システムによって実行されたアクション。 | |
| security_result.category | セキュリティ結果のカテゴリ。 | |
| クラス | security_result.category_details | セキュリティ結果カテゴリに関する追加の詳細。 |
| reason | security_result.severity | セキュリティ結果の重大度。 |
| reason | security_result.severity_details | 詳細な重大度情報。 |
| logstr | security_result.summary | セキュリティ結果の概要。 |
| job_id | target.application | ターゲットとなるアプリケーション。 |
| job_group | target.group.group_display_name | グループの表示名。 |
| target.namespace | ターゲットの Namespace。 | |
| dsn | target.resource.name | リソースの名前。 |
| vol | target.resource.parent | 親リソース。 |
| res、dsn | target.resource.product_object_id | 商品固有のオブジェクト ID。 |
| target.resource.resource_type | リソースのタイプ。 | |
| name | target.user.user_display_name | ターゲット ユーザーの表示名。 |
| usrName | target.user.userid | 対象ユーザーのユーザー ID。 |
| product_name | metadata.product_name | イベントを生成するプロダクトの名前。 |
| vendor_name | metadata.vendor_name | ベンダーの名前。 |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。