HP ProCurve ログを収集する
このドキュメントでは、Bindplane を使用して HP ProCurve スイッチログを Google Security Operations に取り込む方法について説明します。パーサー コードは、まず未加工のログ メッセージを JSON として解析しようとします。失敗した場合は、正規表現(grok
パターン)を使用して、一般的な HP ProCurve ログ形式に基づいてメッセージからフィールドを抽出します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- Windows 2016 以降、または systemd を使用する Linux ホスト
- プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
- HP ProCurve スイッチへの特権アクセス
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
Windows のインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
その他のインストール オプションについては、インストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリに、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
config.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: HP_PROCURVE raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
<customer_id>
は、実際の顧客 ID に置き換えます。/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
HP ProCurve スイッチで Syslog を構成する
- SSH を使用して HP Procurve スイッチにログインします。
次のコマンドを使用して、スイッチ インターフェースを確認します。
show ip int br
次のコマンドを使用して、スイッチで構成モードを有効にします。
console# conf t
次のコマンドを使用して、ログを送信するようにスイッチを構成します。
logging host <bindplae-server-ip> transport <udp/tcp> port <port-number> logging facility syslog logging trap informational logging buffer 65536 logging origin-id hostname logging source-interface <interface>
<bindplae-server-ip>
と<port-number>
を Bindplane IP アドレスとポート番号に置き換えます。通信プロトコルとして [UDP] または [TCP] のみを選択して、
<udp/tcp>
を置き換えます(Bindplane エージェントの構成によって異なります)。<interface>
は、スイッチから以前に受け取ったインターフェース ID(Ethernet1/1
など)に置き換えます。次のコマンドを使用して、構成モードを終了して保存します。
console# exit console# wr
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
AAAScheme | read_only_udm.security_result.detection_fields.value | キーが AAAScheme の場合、descrip フィールドから抽出された値 |
AAAType | read_only_udm.security_result.detection_fields.value | キーが AAAType の場合、descrip フィールドから抽出された値 |
シャーシ ID | read_only_udm.security_result.detection_fields.value | キーが Chassis ID の場合、description フィールドから抽出された値 |
コマンドは | read_only_udm.security_result.detection_fields.value | commandInfo フィールドの Command is の後のテキスト |
CommandSource | read_only_udm.security_result.detection_fields.value | キーが CommandSource の場合、descrip フィールドから抽出された値 |
Config-Method | read_only_udm.additional.fields.value.string_value | フィールドがログに存在する場合は、追加フィールドに config_method として配置されます。 |
ConfigDestination | read_only_udm.security_result.detection_fields.value | キーが ConfigDestination の場合、descrip フィールドから抽出された値 |
ConfigSource | read_only_udm.security_result.detection_fields.value | キーが ConfigSource の場合、descrip フィールドから抽出された値 |
Device-Name | read_only_udm.principal.hostname | フィールドがログに存在する場合は、プリンシパル ホスト名とアセット ホスト名にマッピングされます。 |
Event-ID | read_only_udm.additional.fields.value.string_value | フィールドがログに存在する場合は、追加フィールドに event_id として配置されます。 |
EventIndex | read_only_udm.security_result.detection_fields.value | キーが EventIndex の場合、descrip フィールドから抽出された値 |
IfIndex | read_only_udm.security_result.detection_fields.value | キーが IfIndex の場合、description フィールドから抽出された値 |
IP: %{IP:IPAddr} | read_only_udm.target.ip、read_only_udm.target.asset.ip | desc フィールドから抽出され、ターゲット IP とターゲット アセット IP にマッピングされた IP アドレス |
IPAddr | read_only_udm.target.ip、read_only_udm.target.asset.ip | フィールドがログに存在する場合、ターゲット IP とターゲット アセット IP にマッピングされます。 |
Notice-Type | read_only_udm.additional.fields.value.string_value | フィールドがログに存在する場合は、追加フィールドに notice_type として配置されます。 |
ポート ID | read_only_udm.security_result.detection_fields.value | キーが Port ID の場合、description フィールドから抽出された値 |
Remote-IP-Address | read_only_udm.additional.fields.value.string_value | フィールドがログに存在する場合は、追加フィールドに remote_ip_address として配置されます。 |
サービス | read_only_udm.security_result.detection_fields.value | キーが Service の場合、descrip フィールドから抽出された値 |
タスク | read_only_udm.security_result.detection_fields.value | キーが Task の場合、descrip フィールドから抽出された値 |
ユーザー | read_only_udm.principal.user.userid | フィールドがログに存在する場合、プリンシパル ユーザー ID にマッピングされます。 |
User-Name | read_only_udm.principal.user.userid | フィールドがログに存在する場合、プリンシパル ユーザー ID にマッピングされます。 |
ユーザー名 | read_only_udm.principal.user.userid | フィールドがログに存在する場合、プリンシパル ユーザー ID にマッピングされます。 |
UserService | read_only_udm.security_result.detection_fields.value | キーが UserService の場合、desc フィールドから抽出された値 |
collection_time.seconds | read_only_udm.metadata.event_timestamp.seconds | イベント タイムスタンプの秒の部分 |
データ | このフィールドには未加工のログメッセージが含まれ、解析されて他のフィールドが抽出されます。UDM にマッピングされていません。 | |
降順 | read_only_udm.security_result.description | ログメッセージから抽出された説明 |
descrip | desc フィールドから抽出された説明。Key-Value ペアとしてさらに解析されます。UDM にマッピングされていません。 |
|
説明 | read_only_udm.security_result.description | フィールドがログに存在する場合、セキュリティ結果の説明にマッピングされます。 |
descript | read_only_udm.metadata.description | フィールドがログに存在する場合は、メタデータの説明にマッピングされます。 |
event_id | read_only_udm.additional.fields.value.string_value | フィールドがログに存在する場合は、追加フィールドに event_id として配置されます。 |
eventId | read_only_udm.metadata.product_event_type | ログ メッセージから抽出されたイベント ID |
hostname | read_only_udm.principal.hostname、read_only_udm.principal.asset.hostname | ログメッセージから抽出されたホスト名が、プリンシパル ホスト名とアセット ホスト名にマッピングされる |
inter_ip | read_only_udm.additional.fields.value.string_value、read_only_udm.intermediary.ip | フィールドがログに存在し、有効な IP アドレスである場合は、仲介 IP にマッピングされます。それ以外の場合は、追加フィールドに inter_ip として配置されます。 |
notice_type | read_only_udm.additional.fields.value.string_value | フィールドがログに存在する場合は、追加フィールドに notice_type として配置されます。 |
pid | read_only_udm.principal.process.pid | フィールドがログに存在する場合、プリンシパル プロセスの PID にマッピングされます |
プログラム | ログメッセージから抽出されたプログラム情報。さらに解析して、モジュール、重大度、アクションを抽出します。UDM にマッピングされていません。 | |
proto | read_only_udm.network.application_protocol、read_only_udm.additional.fields.value.string_value | ログメッセージから抽出されたプロトコル。既知のプロトコルと一致する場合は、アプリケーション プロトコルにマッピングされます。それ以外の場合は、追加フィールドに Application Protocol として配置されます。 |
remote_ip_address | read_only_udm.principal.ip、read_only_udm.principal.asset.ip、read_only_udm.additional.fields.value.string_value | フィールドがログに存在し、有効な IP アドレスである場合、プリンシパル IP とプリンシパル アセット IP にマッピングされます。それ以外の場合は、追加フィールドに remote_ip_address として配置されます。 |
重要度 | read_only_udm.security_result.severity、read_only_udm.security_result.severity_details | / で分割した後、program フィールドから抽出された重大度。UDM の重大度レベルにマッピングされ、未加工の重大度の詳細としても保存されます。 |
src_ip | read_only_udm.principal.ip、read_only_udm.principal.asset.ip | ログメッセージから抽出され、プリンシパル IP とプリンシパル アセット IP にマッピングされた送信元 IP |
ステータス | read_only_udm.additional.fields.value.string_value | フィールドがログに存在する場合は、追加フィールドに status として配置されます。 |
targetHostname | read_only_udm.target.hostname、read_only_udm.target.asset.ip | フィールドがログに存在する場合は、ターゲット ホスト名とターゲット アセット IP にマッピングされます。 |
target_ip | read_only_udm.target.ip、read_only_udm.target.asset.ip | ログメッセージから抽出されたターゲット IP が、ターゲット IP とターゲット アセット IP にマッピングされます |
timestamp | read_only_udm.metadata.event_timestamp.seconds | ログ メッセージから抽出され、イベント タイムスタンプに変換されたタイムスタンプ |
timestamp.seconds | read_only_udm.metadata.event_timestamp.seconds | イベント タイムスタンプの秒の部分 |
ユーザー名 | read_only_udm.principal.user.userid | フィールドがログに存在する場合、プリンシパル ユーザー ID にマッピングされます。 |
read_only_udm.metadata.event_type | フィールドとロジックの組み合わせに基づいて決定されます。 - NETWORK_CONNECTION : has_principal と has_target が true の場合。- USER_LOGOUT : action が WEBOPT_LOGOUT 、LOGOUT 、SHELL_LOGOUT の場合。- USER_LOGIN : action が LOGIN または WEBOPT_LOGIN_SUC の場合。- STATUS_UPDATE : action が空でない場合、または src_ip /hostname が空でない場合。- USER_UNCATEGORIZED : has_user が true の場合。- GENERIC_EVENT : これらの条件のいずれも満たされていない場合。 |
|
read_only_udm.metadata.product_name | Procurve にハードコード |
|
read_only_udm.metadata.vendor_name | HP にハードコード |
|
read_only_udm.extensions.auth.type | event_type が USER_LOGOUT または USER_LOGIN の場合、MACHINE に設定します |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。