Forescout NAC のログを収集する
このドキュメントでは、Bindplane を使用して Forescout Network Access Control(NAC)ログを Google Security Operations に取り込む方法について説明します。このパーサーは、Forescout NAC からの syslog 形式と CEF 形式の両方のログを処理します。grok パターンを使用してフィールドを抽出し、統合データモデル(UDM)にマッピングし、キーワードと抽出されたフィールドに基づいてイベントを分類します。また、ログイン/ログアウト、ネットワーク接続、メール イベント、システム ステータスの更新を処理します。重大度のマッピングやユーザー コンテキストの拡充など、「CounterACT」イベントと「Virtual Firewall」イベントを処理するための特定のロジックが実装されています。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows 2016 以降、または
systemd
を使用する Linux ホスト - プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
- ForeScout CounterAct v8.0 以降のバージョンがインストールされていること
- ForeScout CounterAct コア拡張モジュール Syslog プラグイン v3.5 がインストールされていること
- Forescout Appliance と CounterACT プラグインへの特権アクセス
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
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_file_path: '/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: 'FORESCOUT_NAC' 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 エージェントを再起動するには、サービス コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
CounterACT Syslog プラグインをインストールする
- [Forescount Base Plugins] ページに移動し、プラグインの .fpi ファイルをダウンロードします。
- CounterACT Console がインストールされているマシンにファイルを保存します。
- CounterACT Console にログインします。
- [Options>Plugins>Install] を選択します。
- 保存したプラグインの FPI ファイルを参照して選択します。
- [インストール] をクリックします。
- 続行するには、使用許諾契約に同意します。
- インストールが完了したら、[閉じる] をクリックします。
- [Plugin] ペインでプラグインを選択し、[Start] をクリックします。
- プラグインを開始する CounterACT アプライアンスを選択します(環境内のすべてのアプライアンスでプラグインを実行することをおすすめします)。
- [OK] をクリックします。
- [閉じる] をクリックします。
Forescout CounterACT Syslog プラグインで Syslog を構成する
- [Plugins] ペインで、[Syslog > Configure] をクリックします。
- ダイアログでアプライアンスまたは Enterprise Manager を選択し、[OK] をクリックします。
- [Send Events To] で [Add] をクリックします。
- 次の構成の詳細を指定します。
- サーバー アドレス: Bindplane エージェントの IP アドレスを入力します。
- サーバーポート: Bindplane エージェントのポート番号を入力します(UDP の場合は
514
など)。 - Server Protocol: [UDP] を選択します。
- ID: syslog メッセージを識別するための自由形式のテキスト フィールド。
- 省略可: ファシリティ: メッセージの優先度フィールドの一部として送信される Syslog メッセージ ファシリティ。ファシリティ値が指定されていない場合は、
local5
に設定されます。 - 重大度: [情報] を選択します。
- [Syslog Trigger] タブに移動します。
- [「Syslog にメッセージを送信」アクションで生成されたメッセージのみを送信する] チェックボックスはオンにしないでください。
- [Include timestamp and CounterACT device identifier in all messages] チェックボックスのみをオンにします。
- [オプション] をクリックして、syslog メッセージをトリガーするイベントタイプを定義します。
- NAC ポリシーログを含めます。
- NAC ポリシーの一致 / 不一致イベントを含めます。
- 他のイベントを選択します(利用可能な場合)。
- [Default Action Configuration] タブに移動します。
- 次の構成の詳細を指定します。
- サーバー アドレス: Bindplane エージェントの IP アドレスを入力します。
- サーバーポート: Bindplane エージェントのポート番号を入力します(UDP の場合は
514
など)。 - Server Protocol: [UDP] を選択します。
- メッセージ ID: Syslog メッセージを識別するための自由形式のテキスト フィールド。
- 省略可: ファシリティ: メッセージの優先度フィールドの一部として送信される Syslog メッセージ ファシリティ。ファシリティ値が指定されていない場合、
local5
に設定されます。 - 重大度: [情報] を選択します。
- [OK] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
act |
security_result.action_details |
CEF ログの act フィールドから直接マッピングされます。 |
app |
network.application_protocol |
CEF ログの app フィールドから直接マッピングされます。 |
Available_memory |
additional.fields |
event_type が「システム統計情報」の場合に kv_data から抽出されます。キーは「Available memory」で、値は抽出された文字列です。 |
Available_swap |
additional.fields |
event_type が「システム統計情報」の場合、kv_data から抽出されます。キーは「Available swap」で、値は抽出された文字列です。 |
application_status |
additional.fields |
event_type が「Application status」の場合に kv_data から抽出されます。キーは「Application status」、値は抽出された文字列です。 |
Assigned_hosts |
additional.fields |
event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「Assigned hosts」、値は抽出された文字列です。 |
Category |
security_result.description |
et_lower が「nac policy log」の場合の security_result.description の一部。他の詳細情報と連結されます。 |
command |
principal.process.command_line |
CEF ログの rnmsg フィールドから抽出されます(「command:」で始まる場合)。 |
Connected_clients |
additional.fields |
event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「Connected clients」、値は抽出された文字列です。 |
CPU_usage |
additional.fields |
event_type が「システム統計情報」の場合、kv_data から抽出されます。キーは「CPU 使用率」で、値は抽出された文字列です。 |
cs1 |
additional.fields |
CEF ログの cs1 フィールドから直接マッピングされます。キーは「Compliancy Policy Name」です。 |
cs2 |
additional.fields |
CEF ログの cs2 フィールドから直接マッピングされます。キーは「Compliancy Policy Subrule Name」です。 |
cs3 |
additional.fields |
CEF ログの cs3 フィールドから直接マッピングされます。キーは「Host Compliancy Status」です。 |
cs4 |
additional.fields |
CEF ログの cs4 フィールドから直接マッピングされます。キーは「Compliancy Event Trigger」です。 |
data |
security_result.description |
パーサーのさまざまな部分で使用され、情報を抽出して最終的な UDM フィールドに反映されます。単一の UDM フィールドに直接マッピングされません。 |
details |
security_result.description |
「ログ」イベントの解析やユーザー セッションの変更など、いくつかのケースで security_result.description を入力するために使用されます。特定の情報についてさらに解析される場合があります。 |
Destination |
target.ip 、target.hostname |
kv_data または data から解析されます。IP アドレスに変換できる場合は、target.ip にマッピングされます。それ以外の場合は target.hostname にマッピングされます。 |
deviceExternalId |
about.asset.asset_id |
CEF ログの deviceExternalId フィールドから直接マッピングされます(「Forescout.CommandCenter:」という接頭辞が付きます)。 |
dhost |
target.hostname |
CEF ログの dhost フィールドから直接マッピングされます。 |
dmac |
target.mac |
CEF ログの dmac フィールドから直接マッピングされます。 |
dntdom |
target.administrative_domain |
CEF ログの dntdom フィールドから直接マッピングされます。 |
dst |
target.ip |
CEF ログの dst フィールドから直接マッピングされます。 |
dpt |
target.port |
CEF ログの dpt フィールドから直接マッピングされます。 |
duser |
target.user.user_display_name |
CEF ログの duser フィールドから直接マッピングされます。 |
dvc |
about.ip |
CEF ログの dvc フィールドから直接マッピングされます。 |
dvchost |
about.hostname |
CEF ログの dvchost フィールドから直接マッピングされます。 |
EM_connection_status |
additional.fields |
event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「EM connection status」で、値は抽出された文字列です。 |
Engine_status |
additional.fields |
event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「Engine status」、値は抽出された文字列です。 |
event_type |
metadata.description 、security_result.summary |
ログ メッセージから解析されます。UDM イベントタイプとその他のフィールドを特定するために使用されます。イベントが「GENERIC_EVENT」の場合、説明にも使用されます。 |
eventtype |
additional.fields |
CEF ログの eventtype フィールドから直接マッピングされます。キーは「eventtype」です。 |
externalId |
metadata.product_log_id |
CEF ログの externalId フィールドから直接マッピングされます。 |
from\[...\] to\[...\] |
principal.ip 、target.ip |
「from[...] to[...]」パターンから送信元と宛先の IP を抽出します。 |
Host |
principal.ip 、principal.hostname |
et_lower が「block event」の場合に kv_data から解析されます。IP に変換できる場合は principal.ip にマッピングし、それ以外の場合は principal.hostname にマッピングします。 |
Hostname |
principal.hostname 、principal.asset.hostname |
プロパティ変更検出イベントに存在する場合、principal.hostname および principal.asset.hostname にマッピングされます。 |
Installed_Plugins |
additional.fields |
event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「Installed Plugins」、値は抽出された文字列です。 |
iporhost |
intermediary.ip 、intermediary.hostname |
header_data から解析されます。IP に変換できる場合は intermediary.ip にマッピングし、それ以外の場合は intermediary.hostname にマッピングします。 |
Is Virtual Firewall blocking rule |
security_result.action 、security_result.rule_name |
「true」の場合、security_result.action を「BLOCK」に、security_result.rule_name を「Virtual Firewall blocking」に設定します。 |
log_description |
security_result.summary |
存在する場合に security_result.summary に直接マッピングされます。 |
log_type |
metadata.log_type |
定数値「FORESCOUT_NAC」に設定します。 |
MAC |
principal.mac |
プロパティ変更検出イベントの kv_data から解析され、MAC アドレスとしてフォーマットされます。 |
mail_from |
network.email.from |
mail_details から抽出された mail_from フィールドから直接マッピングされます。 |
mail_subject |
network.email.subject |
mail_details から抽出された mail_subject フィールドから直接マッピングされます。 |
mail_to |
network.email.to |
mail_details から抽出された mail_to フィールドから直接マッピングされます。 |
Match |
security_result.rule_name |
et_lower が「nac policy log」の場合、Match フィールドから直接マッピングされます。 |
metadata.event_type |
metadata.event_type |
ログメッセージ内の特定のフィールドとキーワードの存在など、パーサー内のさまざまな条件によって決定されます。デフォルトは GENERIC_EVENT で、解析されたデータに基づいて更新されます。たとえば、USER_LOGIN 、USER_LOGOUT 、NETWORK_CONNECTION 、SCAN_NETWORK 、STATUS_UPDATE 、EMAIL_TRANSACTION 、USER_UNCATEGORIZED などがあります。 |
metadata.product_name |
metadata.product_name |
ほとんどのイベントでは「FORESCOUT NAC」に設定します。product フィールドが存在する場合は、その値に設定します。CEF イベントの場合、「CounterAct」に設定されます。 |
metadata.vendor_name |
metadata.vendor_name |
ほとんどのイベントでは「FORESCOUT」に設定されます。CEF イベントの場合、cs1Label フィールドが存在する場合はそこから取得され、存在しない場合は「ForeScout Technologies」に設定されます。 |
msg |
metadata.description |
CEF ログの msg フィールドから直接マッピングされます。 |
pid |
intermediary.process.pid |
header_data から抽出された pid フィールドから直接マッピングされます。 |
policy_details |
security_result.description |
et_lower が「nac policy log」の場合の security_result.description の一部。他の詳細情報と連結されます。 |
product |
metadata.product_name |
存在する場合に metadata.product_name に直接マッピングされます。 |
proto |
network.ip_protocol |
CEF ログの proto フィールドから直接マッピングされます。 |
Reason |
security_result.description |
et_lower が「ブロック イベント」の場合、Reason フィールドから直接マッピングされます。 |
resource |
principal.resource.name |
CEF ログの resource フィールドから直接マッピングされます。 |
rnmsg |
security_result.description 、principal.process.command_line |
「command:」で始まる場合、「command:」の後の部分が principal.process.command_line にマッピングされます。それ以外の場合は security_result.description にマッピングされます。 |
rt |
metadata.event_timestamp |
CEF ログの rt フィールドから直接マッピングされ、タイムスタンプに変換されます。 |
Rule |
security_result.rule_id |
et_lower が「nac policy log」の場合、Rule フィールドから直接マッピングされます。 |
security_result.severity |
security_result.severity |
severity_level フィールドから取得されます。0 ~ 3 は LOW に、4 ~ 6 は MEDIUM に、7 ~ 8 は HIGH に、9 ~ 10 は CRITICAL にマッピングされます。 |
security_result.severity_details |
security_result.severity_details |
CEF ログの severity フィールドから直接マッピングされます。 |
Service |
target.port 、network.ip_protocol |
解析してポートとプロトコルを抽出します。ポートは target.port に、プロトコルは network.ip_protocol にマッピングされます。 |
session_id |
network.session_id |
session_id フィールドから直接マッピングされます。 |
severity |
security_result.severity_details |
CEF ログの severity フィールドから直接マッピングされます。 |
severity_level |
security_result.severity |
security_result.severity の決定に使用されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。