Splunk と Secure Network Analytics ~ App 連携とアラームログ 連携でできること ~


この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2022 （2枚目） の 21日目として投稿しています。

2017年版: https://qiita.com/advent-calendar/2017/cisco
2018年版: https://qiita.com/advent-calendar/2018/cisco
2019年版: https://qiita.com/advent-calendar/2019/cisco
2020年版: https://qiita.com/advent-calendar/2020/cisco
2020年版(2枚目): https://qiita.com/advent-calendar/2020/cisco2
2021年版: https://qiita.com/advent-calendar/2021/cisco
2021年版(2枚目): https://qiita.com/advent-calendar/2021/cisco2
2022年版(1,2): https://qiita.com/advent-calendar/2022/cisco

# はじめに

この記事では [Cisco](https://www.cisco.com/) のセキュリティ製品である [Secure Network Analytics](https://www.cisco.com/site/jp/ja/products/security/security-analytics/secure-network-analytics/index.html) (旧名称 Stealthwatch)と [Splunk社](https://www.splunk.com/ja_jp/about-splunk.html)の統合ログ管理プラットフォーム [Splunk® Enterprise](https://www.splunk.com/ja_jp/products/splunk-enterprise.html) の連携についてまとめます。
連携といっても基本的には以下の2種類があるため、それぞれについて簡単に連携手順を紹介し実際に何ができるかを整理していきます。

* Splunk の公式 SNA App を使用した連携
* SNA アラームログの Splunk 連携 (要は Splunk 側で SNA から送信された Syslog 受信)

# 背景と目的

SNA は NW 機器から Netflow を収集することでトラフィックを可視化し、さらには日々のトラフィック状況を学習した上で普段の振る舞いを逸脱するような通信が発見された場合にアラームとして気付きを与えてくれるセキュリティ製品です。

ただしこの手の製品にありがちですが、構築したはいいもののその後の運用を考えなかったために塩漬けになってしまう状況も時にはあるかと思います。如何に通信が可視化され脅威が検知されようと、そもそも見なかったら或いは気づけなかったら意味ないですよね。いつでも見える状態だけ作って放置(気が向いた時にいつか見るかもくらい。。)はもったいないです。

例えばダイエット目的で24時間ジムを契約、いつでもワークアウト可能な環境を用意しても、
それで満足してしまって通わなかったら当初の目的は果たせません(反省)。
心のハードルを下げ、継続して通えるような習慣づけ・仕組みづくりが非常に重要です。

SNA のような可視化セキュリティソリューションも同じです。導入して終わりではなく、いかに運用者の心理的・作業的負荷を下げ、どのように情報を扱い、どのようなワークフローで対応するのかという運用・仕組みづくりをセットで考える必要があります。

ということで最近では [SIEM](https://www.splunk.com/ja_jp/data-insider/what-is-siem.html) 製品を使用して NW 機器やセキュリティ製品のログの確認、分析を一元化されているお客様が増えてきています。数ある SIEM 製品の中でも特にユーザ数が多い Splunk ですが、SNA との連携についてもお客様より質問いただく機会が増えています。

既存でまとまっている資料があまりないためか、Splunk にアラームログ (Syslog)を送るための設定を App 連携 することで実現できる、と誤解されている場合が散見されます。

本記事では、それぞれの連携パターンの手順、メリットや注意点をクリアにし、少しでもイメージを掴んでいただければ幸いです。




# ① Splunk 公式 SNA App を使用した連携

#### 必要なもの : 
* **SNA version 7.0 以降**
* **Splunk® Enterprise**
 ※ SNA App は Enterprise のみ対応、Splunk Cloud 非対応
※ SNA と IPリーチャビリティがあること
* **Cisco Secure Network Analytics (Stealthwatch) App for Splunk Enterprise**

#### 連携手順 : 
1. 私自身は Splunk 環境を持っていなかったので Splunk® Enterprise の[60日無料トライアル版](https://www.splunk.com/ja_jp/download.html)をダウンロードし展開しました。Cisco Secure Network Analytics (Stealthwatch) App for Splunk Enterprise は[こちら](https://splunkbase.splunk.com/app/6398)からダウンロードできます。
　　　　
　　　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/015ca101-1b6f-1c6a-858c-efe3c05dbc3d.png)
　　　
2. Splunk UI にログインし、「Apps」の右にある歯車をクリック
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/34f12d63-f7de-d154-6daa-7d5f8c0b000c.png)
   
2. この画面ではインストール済みアプリが表示される。右上の「Install app from file」を選択
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/1f056309-6778-e94d-2e46-e407da16dc40.png)
 
    
2. 手順1. でダウンロードした App ファイルを選択しアップロード
2. インストールが上手くいくと Success と表示されるので、「Set up now」から設定
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/c9fc229a-6bd3-ade2-0ffb-164ea1e9307b.png)
    
2. 以下の必要な項目を入力し、「Submit」をクリック
    
    ・SMC の IPアドレス or ホスト名
・SMC の Domain ID ※確認方法については下記に後述
・SMC ユーザ名
・SMC パスワード

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/c6be7e4a-a227-5d7d-c899-30590ff41f06.png)

※SMC の Domain ID の確認方法
    * Web UI から確認する方法
    　1. https://[SMCのIP]/smc/index.html　へアクセス
    　2. 「Support」 >> 「Browse Files」
    　3. ファイルの一覧から 「smc」 >> 「config」
    　4. domain_*** というディレクトリがあり、*** の3桁の数字が Domain ID
    　     ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/4f6e0f35-4c8e-3464-b904-6b3b7a931f28.png)
    * CLI から確認する方法
  　1. CLIにログインし、ls -lsa /lancope/var/smc/config/　を実行
  　2. domain_*** というディレクトリがあり、*** の3桁の数字が Domain ID
  　    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/a36758ef-1c3d-2ebe-c4fa-c317fcff50f4.png)
                
**「Submit」 すると数秒〜数十秒でダッシュボード上に SNA のアラーム情報のグラフとテーブルが表示され、App 連携完了です**

![Screenshot 2022-12-20 at 17.45.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/e5e0ddfa-975e-2c72-d2a8-0cb44396ccb1.png)


# SNA App 連携 まとめ
:::note info
メリット
・SNA のダッシュボードにアクセスしなくても大体の情報を閲覧可能
　 ・アラーム情報、セキュリティイベント、ホストスナップショット、フロー情報の表示が SNA のダッシュボードに近く見やすい
　 ・感覚的な操作でクリックしていくと芋蔓式に情報の深掘り可能
　 ・ホスト IP やホストグループ、期間等をフィルタ指定し各種レポート作成可能
　 ・表示される情報を PDF としてエクスポート可能

・API 経由で SNA の情報を引っ張ってきて表示しているだけなので、Splunk 側のログ容量消費が無い (Splunk のログ容量はライセンス購入分に依存)
:::

:::note warn
注意点
・SNA の設定変更は不可
・ポリシ、ホストグループ設定やシステム使用状況等の管理周りの情報は閲覧不可
・表示されるのはセキュリティアラーム、セキュリティイベントのみでシステム関連アラームは表示不可
・SNA ダッシュボードで直接アクセスする場合と比較すると表示が若干遅め
・Splunk 自体がログを保持しているわけではないので、所謂 Splunk のログ検索や相関検索は実行不可
:::



# ② SNA アラームログの Splunk 連携

#### 連携手順 : 

まずは Splunk 側でログを受信するための設定をします。

1. Splunk ダッシュボードにログインし、「Settings」>> 「Add Data」
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/0d312bae-28e2-0739-c6d8-dd53532b4fe5.png)
    
1. 「Monitor」をクリック
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/3760ef67-ec4f-af5f-2e00-f2f49cfacd81.png) 

  
1. 「TCP / UDP」をクリック
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/d9d001b1-8152-76f7-8595-a53b89ba2802.png)
                                                                               
1. UDPでデータを受け取る際のポートを指定し、「Next」で先に進む
    
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/75f52ecb-dccb-f740-fb06-9b58f6f07ae4.png)
           
1. 各項目で以下を設定
    Source type : 「Select」を選択し、下のドロップダウンの検索窓に syslog と入力し選択
App context : 「Search & Reporting (search)」 を選択
Host :  「IP」 を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/eec7cefb-3a00-cc40-136c-50e245c26aaa.png)
        
1. 「Review」で先に進む
1. 「Submit」で設定完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/e02be3f2-b5bd-6d47-c977-3b102e519e84.png)

次に SNA 側でアラームログを送信するための設定をします。

1. SNA SMC の Web UI にログインし、「Configure」>> 「Response Management」>> 「Syslog Formats」タブに移動し、「Add New」より Splunk用の Syslog フォーマットのテンプレートを作成
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/b81e161e-5d04-a6e5-4cb5-3be77e7bc3e5.png)
    
1. Splunk での検索が容易となるようなフィールド名を付与し、送信したい項目を選択してテンプレート作成、「Save」で保存
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/14f5161e-b02e-dfbf-a298-6129c18aa04b.png)
    
1. 「Actions」タブに移動し、「Add New Action」>> 「Syslog Message」より、Splunk へログを送信するアクションを定義
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/a7782991-0b7a-3f43-deb0-2f7b0f67ac5e.png)
    
1. ログの送信先として Splunk の IPアドレス、ポート番号を設定し、「Syslog Format」では手順2. で作成した Splunk 用 Syslog テンプレートを選択、「Save」で保存
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/10aa9da1-dd29-2f09-7822-76c66536fbc1.png)
    
1. 「Rules」タブに移動し、「Actions・・・」から既存のルールを編集、もしくは「Add New Rule」からルールを追加し、どのような条件でアラームログを外部に送信するか定義
    
    ![Screenshot 2022-12-20 at 13.11.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/42341d86-77e8-d385-3581-12768a044c23.png)
    
1. 例ではシビリティが Major 以上のアラームが発生した際に通知する設定とし、「Associated Actions」ではログを Splunk へ送信するよう手順4. で作成したアクションを選択、「Save」で保存
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/b5999cd9-f838-3480-ba32-719724c01333.png)
    
以上で設定は完了です。
Splunk 側でログが受信できているかを確認していきます。

Splunk の 「Search & Reporting」より、検索窓に SNA 絡みのキーワード (stealthwatch、SMCのIP、syslog で送信されるフィールド名等)を入力すると SNA より送信されたログを確認可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960623/4c82daf5-70da-3a51-3a3c-13ba3358ea0e.png)

# SNA アラームログ連携 まとめ
:::note info
メリット
・所謂 Splunk のログ検索や相関検索が可能
　 ・Syslog として扱われるので SNA だけではなく他製品のログも併せてログ監視、分析可能
　 ・グラフ表示、テーブル表示も好きなようにカスタマイズ可能
・SNA 側でどのアラームログを送るか取捨選択可能のため、システム関連アラームについても確認可能

:::

:::note warn
注意点
・SNA の Response Management で外部通知設定したアラームのみ確認可能
・ログ流量分だけ Splunk の容量ストレージ消費
・フロー検索、アラーム発生に関連するフロー情報の確認不可
・自分で作り込まない限りダッシュボードに表示するグラフ情報等はない
:::

# 全体まとめ

SNA App 連携、アラームログ連携はそれぞれカバー範囲が異なる部分があるため、
どちらか一方を設定すれば十分というものではなく、両方設定した上で適宜運用に合わせて活用するのがよいかと思います。




# 免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、シスコの意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、シスコや他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任からシスコを免責することに同意したものとします。