2023-01-27 08:35 AM
本ドキュメントは Splunk 社の SIEM 製品である Splunk Enterprise と Secure Network Analytics (SNA) を連携してログやアラーム情報を送信する方法等について説明します。SNA のバージョンは 7.4.1、Splunk Enterprise は 9.0.3 を使用して動作を確認しました。以降では Splunk Enterprise を単に Splunk と記します。
Audit Log を外部へ送信するには Syslog over TLS を使います。7.4.1 以降では TLS セッション確立時に Syslogサーバが提示する証明書の検証を行っているため、検証に必要な証明書を事前に SNA の Trust Store にインポートしておく必要があります。設定の適用時に実際にサーバに接続して証明書の検証が行われるため、Syslog over TLS を設定する前に Trust Store に証明書をインポートする作業を先に実施します。
Audit Log の設定はアプライアンスごとに行うため、証明書もそれぞれの Trust Store にインポートします。インポートする証明書の要件については、7.4.1 のリリースノートに以下のように記載されています。
弊社ラボ環境では、Splunk に含まれているスクリプトを使用して自己署名の証明書を発行しました。Trust Store には以下のように RootCA の証明書と Splunk用の証明書の2つをインポートしています。
Trust Store への証明書インポートが完了したら、"Audit Log Destination (Syslog over TLS)の設定を行います。この画面では Splunk の IPとポート番号を指定します。設定保存時に "Config Changes Failed" エラーとなった場合、正しい証明書が Trust Store にインポートされているか確認してください。
上記設定以外に Splunk 側で 6514/tcp で Syslog over TLS を受信する設定が必要です。設定方法の詳細は Splunk 社のサイトをご確認ください。
設定が完了すると Audit Log が Splunk に送信され、Splunk 上でログが確認できるようになります。
Alarm 発生時の Syslog 送信は Response Management を使います。必要な作業は以下の通りです。
順に説明していきます。
Splunk に送信する Syslog のフォーマットは以下の通りです。
Cisco|SNA|Notification:{alarm_type_id}|{alarm_type_name}|
{alarm_severity_id}| alarm_desc=”{alarm_type_description}” details=”{details}”
dst={target_ip} src={source_ip} start={start_active_time} end={end_active_time} cat={alarm_category_name}
Alarm_ID={alarm_id} Source_HG={source_host_group_names} Target_HG={target_host_group_names}
Source_HostSnapshot={source_url} Target_HostSnapshot={target_url} dpt={port} proto={protocol}
FC_Name={device_name} FC_IP={device_ip} Domain={domain_id}
Facility や Severity については Syslog サーバ側の設定に依存しますが、ここではデフォルトのまま、Facility は 16、Severity は 3 にしています。
設定する Action は Syslog 送信です。Splunk を動かしているサーバの IP アドレスと Syslog サービスのポート番号を指定します。Syslog Format は先ほど作成した Splunk 用のフォーマットを指定します。
トリガーとなるイベントについてはここでは重要ではないため、テスト用の設定を紹介します。イベントの種類としては System Alarm や Host Alarm などがありますが、ここでは Host Alarm を使います。Rule は「イベントの Severity が informational 以上」とし、Action はイベント発生時(active)と終了時(inactive)に Syslog を送信させます。
Splunk 側で 514/udp を受信する設定は本ドキュメントでは割愛します。
設定完了後、適当なイベントを発生させると、Syslog が Splunk に送信され、Splunk の WebUI 上で確認できるようになります。
Webhook とは、イベント発生時にHTTP POST リクエストでメッセージを送信する仕組みのことです。Secure Network Analytics では 7.3.0 以降でResponse Management の Action の1つとして Webhook が利用できるようになっています。前述しました Alarm を Syslog で送信する設定において、Action を Webhook に置き換えることで Alarm が Webhook で Splunk に送られるようになります。以降では、Splunk における Webhook 受信側の設定と SNA における Webhook の設定方法について説明します。
本ドキュメントは Cisco Secure Network Analytics 向けですので、Splunk の設定に関してはあくまで参考情報としての位置付けとなります。実際に設定される際は Splunk 社より提供されているドキュメントをご参照ください。
Splunk で Webhook を受信するには、HTTP Event Collector (HEC) と呼ばれる機能を有効にします。"Settings" から "Data inputs" を開き、右上の "New Token" をクリックします。
"HTTP Event Collector" で "+Add new" をクリックします。
"Name" だけ入力して "Next" をクリックします。
何も変更せず "Review" をクリックします。
"Submit" をクリックします。
"Token has been created successfully" と表示されましたら HEC が動作する状態となっています。
"Settings > Data Inputs" から HTTP Event Collector の画面に戻り、Global Settings をクリックします。
デフォルトのグローバル設定が表示されます。8088/tcp で LISTEN しており、SSL が有効になっていることが分かります。
HTTP Event Collector は HTTP と HTTPS のどちらでも動作させることができますが、SNA 側では HTTPS のみ使用できます。SNA では TLS セッション確立時に提示された証明書の検証を行うため、HTTP Event Collector で使用している証明書の検証に必要な証明書を SMC の Trust Store にインポートします。SNA における証明書の検証動作については少し複雑であるため、本ドキュメントでは詳細は割愛させていただき、動作に必要な設定方法のみ説明します。証明書に関して必要な作業は以下の通りです。
順に説明していきます。
まず、HTTP Event Collector で使用しているSSL証明書を探します。バージョンや OS に依存しますが、Windows 10 にインストールした Splunk 9.0.3 では、C:\Program Files\Splunk\etc\auth\server.pem に入っています(server.pem にはサーバ証明書、鍵、RootCA 証明書がまとめて入っています)。この server.pem に含まれる RootCA の証明書を SMC の Trust Store にインポートします。
SNA では、アクセス先のホスト名と提示されたSSL証明書の CN が一致するかどうかもチェックしています。HTTP Event Collector がデフォルトで使用している証明書の CN は SplunkServerDefaultCert であるため、この名前から IP アドレスを引けるように、Local Resolution の設定を入れます。正しい FQDN を CN に持つ証明書を使用していて、FQDN を DNS 登録していて正しく名前解決ができる状態になっている場合は、このような Local Resolution の設定は不要です。
Splunk 側で Webhook を受信できる設定が整いましたので、次は SNA (SMC)で Webhook の設定を行います。Response Management の Actions にて、"Add New Action > Webhook" から Webhook Action を作成します。
ポイントは Webhook HTTPS URL と Basic Authentication の部分です。
Webhook HTTPS URL では HTTP Event Collector のホストを指定しますが、前述しましたようにSSL証明書の検証のため、ホスト名としてSSL証明書のCNを指定します。ここではデフォルトの証明書を使用しているため、"splunkserverdefaultcert" と指定しています。この名前から正しい IP アドレスに変換するためのSMCの設定(Local Resolution)は Splunk 側の作業の一環として実施済みです。ポート番号は HTTP Event Collector で使用しているポート番号を指定します。変更していなければデフォルトは 8088/tcp です。
Basic Authentication の設定は Splunk への接続時の認証のために必要となります。Username と Password を指定しますが、実際の認証は Password のところに入力する Token だけを使用するため、Username の部分は何でもよく、admin である必要はありません。
Password のところに入力する Token は、Splunk の HTTP Event Collector の画面で確認できます。
Webhook の入力が完了したら、右下の "Test Action"をクリックします。
ダイアログが表示されますので "Send"をクリックします。
正常に送信が完了すると Success と表示されます。
Cisco Secure Network Analytics App とは、シスコから Splunk 向けに提供している Splunk 上で動作するアプリケーションです。ここまでは SNA から Splunk に情報を送る設定について説明しましたが、この App は Splunk が SNA の REST API を使用して SNA から情報を取得して Splunk の WebUI 上に表示する機能を提供します。
インストール手順について説明します。
(1) ダウンロード
アプリケーションは以下のURLからダウンロードできます。ダウンロードするには splunk.com のアカウントを作成してログインする必要があります。
https://splunkbase.splunk.com/app/6398
ログイン状態では下図のように Download ボタンが表示されていますので、クリックしてダウンロードします。
2023年1月時点でダウンロードできるファイルは cisco-secure-network-analytics-stealthwatch-app-for-splunk-enterprise_202.tgz です。
(2) インストール
Splunk の WebUI にて、左上の "splunk enterprise" のアイコンをクリックすると、左ペインにメニューが表示され、一番上に "Apps" と歯車アイコンが表示されますので、歯車アイコンをクリックします。
"Apps" 画面が表示されますので、"Install app from file" をクリックします。
"Choose File" をクリックしてファイルを選択し、"Upload" をクリックします。
(3) 設定
インストールが完了すると以下の画面になります。次に、"Set up now" をクリックして設定を開始します。
設定前に、SNA に関して以下の情報を確認します。
ドメインID は、SMC の CLI にログインして、/lancope/var/smc/config の下を見ると分かります。下図の例では 301 がドメインID です。
ユーザ名は admin 権限のあるアカウントを指定します。
Splunk の WebUI に戻り、これらの情報を入力して "Submit" をクリックします。
Splunk と SNA が正常に連携できると Splunk の WebUI 上に SNA のダッシュボードに似た画面が表示されます。
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます