SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

Splunk CIMを活用する

データマネジメント
2020.09.28

こんにちは。SB C&Sの岩田です。

前回の記事では、「Splunk CIMを理解する」ということでCIMの概念や活用するメリットについてご紹介し、その中でAdd-onによるデータの取り込みやAdd-onが提供されていないデータの取り込みについても少し触れさせていただきました。

そこで今回は、"Add-onが提供されていない"データを取り込んだ際のCIM活用方法をご紹介します!

CIMのおさらい

CIMは"Common Information Model"の略称で情報共通化標準のことをいい、このCIMにより異なるソースのログを表示できるようにあらかじめ定義されたSplunkが提供する独自のデータモデルです。

CIMに準拠していないデータでCIMモデルを活用するには?

CIM準拠のAdd-onが提供されているデータの場合はSplunkへデータを取り込む際に"CIMに準拠したフィールド"に置き換えて取り込むことができますが、Add-onが提供されていない場合は個別にCIM準拠フィールドを定義する、マッピングの作業が必要になります。
(だからこそ、CIMに準拠したAdd-onであれば「取り込みデータを理解し定義する」という作業を行わずともデータが取り込めるので非常に便利というわけです!)

CIMマッピングの流れ

CIMのデータモデルの中身はデータの大分類とフィールドのまとまりで構成されている、ということは前の記事でもご紹介しましたが、データの大分類にも更に中身があり、"マクロ"と"タグ"が予め定義されています。

         CIM12.png

CIMデータモデルに含まれるデータ大分類の中のマクロとタグそしてフィールドを、取り込んだデータを紐づけていくイメージになります。

マッピングの大まかな流れはこんな感じです。

    CIM15.png

CIMにマッピングしてみる

今回はデモデータを用いて、CIMデータモデルの中の「Network Traffic」モデルに準拠させCIMデータモデルが定義されている「Infosec App for Splunk」を使ってデータの可視化を行うまでをご紹介したいと思います。

0. 下準備
デモデータを取り込み、「Network Traffic」のデータモデルで定義されているフィールド名と照らし合わせてみます。
今回使用するデモデータはCIMに準拠していないデータなので、フィールド名がCIMのデータモデルとマッチしていない状態になっています。
※デモデータの取り込み方法はこちらの記事をご参照ください。

     CIM14.png
このとき大事なのは取り込んだデータのフォーマットを理解し、CIMのデータモデルにどのフィールドをマッチさせるか考えることです。
        CIM16.png
ここはデータ定義をつくる前に整理しておく必要があります!

また、CIMデータモデルを使って可視化するために、下記Appsもインストールしておきます。
InfoSec App for Splunk」「Punchcard Custom Visualization」「Force Directed App for Splunk

1. データ定義をまとめるAppを作成する
これから作成するデータ定義をまとめるAppsを Appの管理 > Appの作成 で作成します。
ここでは「Infosec add-on」と名付けて作成しました。
        EV_infosecaddon-2.png

2. フィールドを抽出する
データを取り込んだ際、Splunk側で自動的にフィールド抽出をしてくれるのですが、自動認識しなかったりフィールド名を環境に合わせて変更したい場合はフィールド抽出をすることも必要です。

3. CIMに準拠したフィールドに定義する
取り込んだデータのフィールドをCIMのデータモデルで定義されているフィールドに定義します。
定義の方法はいくつかありますが、今回は複数のフィールド値をまとめて定義することができるフィールドエイリアスを使いました。

        CIM_EV_Alias.png

上記では"clientip"として取り込んだ送信元IPアドレス値のフィールドをCIM準拠の送信元フィールドである"src"として認識できるようにエイリアスを作成しました。
その他にも送信元ポートや宛先IPアドレス&ポート、アプリケーションなどのフィールドをCIM準拠のフィールドに合わせてエイリアスを作っていきます。

4. 取り込みデータとデータモデルで定義済みのタグを紐づける
イベントタイプを作成し、CIMデータモデルの大分類の中で定義済みのタグと取り込んだデータのソースタイプを紐づける設定をします。
今回紐付けようとしている「NetworkTraffic」のデータモデルには"network"と"communicate"のタグがついているので、それをイベントタイプで紐づけます。

        CIM_Tag.png

5. データモデルで定義済みのマクロを編集する
データモデルで定義されているマクロは、デフォルトだと全指定の状態になります。
そのため、必要に応じマクロに対し取り込んだデータのインデックス値など指定し、CIMデータモデルで認識させるデータ範囲を指定します。

        CIM20.png

以上でCIMへのデータマッピングは完了です!

CIM準拠の「Infosec App for Splunk」でデータを可視化

Infosec Appは、下記のようにあらかじめCIMのデータモデルがダッシュボードに定義されています。そのため、NetworkTrafficのデータモデルできちんとデータが見れるようになっていれば、取り込みデータがCIM準拠モデルにマッピングでききている、ということになります。

        CIM19.png

ここで豆知識ですが、ダッシュボードのサーチ文の中に「summariesonly=true」が入っている場合は、CIMデータモデル側で高速化設定をしてあげる必要があります。

         CIM17.png

高速化の方法は下記をご参照ください。

        CIM18.png

では早速、「Infosec App」の中のネットワークトラフィックの表示項目をみてみましょう!

        スクリーンショット 2020-09-16 10.58.31.png

CIMのデータモデル「NetworkTraffic」に準拠し、データが表示できるようになりました。

まとめ

このように、Add-onが提供されていなくても、自らデータ定義を作成することでCIMのデータモデルに準拠させることが可能です。
CIMは異なるデータソースのログを標準化することで相関分析も可能にしてくれる非常に便利な定義になりますので、是非ご活用いただければと思います。

最後までお読みくださりありがとうございました。

splunk_banner.png

他のおすすめ記事はこちら

著者紹介

SB C&S株式会社
技術統括部 第2技術部 2課
岩田 潤子