Cisco スイッチのログを収集する
このドキュメントでは、Bindplane エージェントを使用して Cisco スイッチログを Google Security Operations に取り込む方法について説明します。パーサーは、SYSLOG メッセージからフィールドを抽出し、特定されたパターンとキーワードに基づいて統合データモデル(UDM)にマッピングします。DHCP、SSH、ログイン試行、ネットワーク トラフィック、システム ステータスの更新など、さまざまなイベントを処理し、それらを分類して、関連するセキュリティの詳細でデータを拡充します。
始める前に
- Google SecOps インスタンスがあることを確認します。
- Windows 2016 以降、または
systemd
を使用する Linux ホストを使用していることを確認します。 - プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
- Cisco スイッチに対する特権アクセス権があることを確認します。
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: CISCO_SWITCH 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
Cisco スイッチで Syslog を構成する
- Cisco スイッチにログインします。
enable
コマンドを入力して、権限を昇格させます。Switch> enable Switch#
conf t
コマンドを入力して、構成モードに切り替えます。Switch# conf t Switch(config)#
次のコマンドを入力します。
logging host <bindplane-server-ip> transport <tcp/udp> port <port-number> logging source-interface <interface>
<bindplane-server-ip>
は Bindplane Agent の IP アドレスに、<port-number>
は構成済みのポートに置き換えます。<tcp/udp>
は、Bindplane Agent で構成されたリスニング プロトコルに置き換えます。(例:udp
)。<interface>
は、Cisco インターフェース ID に置き換えます。
次のコマンドを入力して、優先度レベルを設定します。
logging trap Informational logging console Informational logging severity Informational
syslog ファシリティを設定します。
logging facility local6
次のコマンドを入力して、タイムスタンプを有効にします。
service timestamps log datetime
保存して終了します。
次のコマンドを入力して、再起動後も設定が維持されるように構成します。
copy running-config startup-config
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
アクション | security_result.action_details | このフィールドの値は、未加工ログの action フィールドから取得されます。 |
日 | ||
説明 | metadata.description | このフィールドの値は、未加工ログの description フィールドから取得されます。 |
説明 | security_result.description | このフィールドの値は、未加工ログの description フィールドから取得されます。 |
destination_ip | target.asset.ip | このフィールドの値は、未加工ログの destination_ip フィールドから取得されます。 |
destination_ip | target.ip | このフィールドの値は、未加工ログの destination_ip フィールドから取得されます。 |
destination_port | target.port | このフィールドの値は、未加工ログの destination_port フィールドから取得されます。 |
device | principal.asset.hostname | このフィールドの値は、未加工ログの device フィールドから取得されます。 |
device | principal.hostname | このフィールドの値は、未加工ログの device フィールドから取得されます。 |
device | target.asset.hostname | このフィールドの値は、未加工ログの device フィールドから取得されます。 |
device | target.hostname | このフィールドの値は、未加工ログの device フィールドから取得されます。 |
device_ip | principal.asset.ip | このフィールドの値は、未加工ログの device_ip フィールドから取得されます。 |
device_ip | principal.ip | このフィールドの値は、未加工ログの device_ip フィールドから取得されます。 |
device_ip | target.asset.ip | このフィールドの値は、未加工ログの device_ip フィールドから取得されます。 |
device_ip | target.ip | このフィールドの値は、未加工ログの device_ip フィールドから取得されます。 |
facility | principal.resource.type | このフィールドの値は、未加工ログの facility フィールドから取得されます。 |
header_data | metadata.product_log_id | このフィールドの値は、未加工ログの header_data フィールドから取得されます。 |
header_data | target.asset.ip | このフィールドの値は、未加工ログの header_data フィールドから取得されます。 |
header_data | target.ip | このフィールドの値は、未加工ログの header_data フィールドから取得されます。 |
hostname | principal.asset.hostname | このフィールドの値は、未加工ログの hostname フィールドから取得されます。 |
hostname | principal.hostname | このフィールドの値は、未加工ログの hostname フィールドから取得されます。 |
ip | principal.asset.ip | このフィールドの値は、未加工ログの ip フィールドから取得されます。 |
ip | principal.ip | このフィールドの値は、未加工ログの ip フィールドから取得されます。 |
ip_address | principal.asset.ip | このフィールドの値は、未加工ログの ip_address フィールドから取得されます。 |
ip_address | principal.ip | このフィールドの値は、未加工ログの ip_address フィールドから取得されます。 |
ip_protocol | network.ip_protocol | このフィールドの値は、未加工ログの ip_protocol フィールドから取得されます。 |
mac | principal.mac | このフィールドの値は、未加工ログの mac フィールドから取得されます。 |
ニーモニック | network.dhcp.opcode | このフィールドの値は、未加工ログの mnemonic フィールドから取得されます。 |
ニーモニック | metadata.product_event_type | このフィールドの値は、未加工ログの mnemonic フィールドから取得されます。 |
月 | ||
p_ip | principal.asset.ip | このフィールドの値は、未加工ログの p_ip フィールドから取得されます。 |
p_ip | principal.ip | このフィールドの値は、未加工ログの p_ip フィールドから取得されます。 |
ポート | target.port | このフィールドの値は、未加工ログの port フィールドから取得されます。 |
priority | ||
プロトコル | network.ip_protocol | このフィールドの値は、未加工ログの protocol フィールドから取得されます。 |
reason | ||
ルール | security_result.rule_id | このフィールドの値は、未加工ログの rule フィールドから取得されます。 |
sec_result_action | security_result.action | このフィールドの値は、未加工ログの sec_result_action フィールドから取得されます。 |
重要度 | ||
ソース | principal.asset.ip | このフィールドの値は、未加工ログの source フィールドから取得されます。 |
ソース | principal.ip | このフィールドの値は、未加工ログの source フィールドから取得されます。 |
source_ip | network.dhcp.ciaddr | このフィールドの値は、未加工ログの source_ip フィールドから取得されます。 |
source_ip | principal.asset.ip | このフィールドの値は、未加工ログの source_ip フィールドから取得されます。 |
source_ip | principal.ip | このフィールドの値は、未加工ログの source_ip フィールドから取得されます。 |
source_mac | network.dhcp.chaddr | このフィールドの値は、未加工ログの source_mac フィールドから取得されます。 |
source_port | principal.port | このフィールドの値は、未加工ログの source_port フィールドから取得されます。 |
概要 | security_result.summary | このフィールドの値は、未加工ログの summary フィールドから取得されます。 |
時間 | ||
タイムゾーン | ||
ユーザー | principal.user.userid | このフィールドの値は、未加工ログの user フィールドから取得されます。 |
ユーザー | target.user.userid | このフィールドの値は、未加工ログの user フィールドから取得されます。 |
when | ||
年 | ||
extensions.auth.type | MACHINE | |
metadata.log_type | CISCO_SWITCH | |
metadata.vendor_name | Cisco | |
metadata.product_name | Cisco スイッチ | |
network.application_protocol | DHCP | |
network.dhcp.type | リクエスト |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。