Partner SA 酒徳です。こんにちは。もうre:invent 2016まで1ヶ月を切りましたね!今年はどんな発表があるのか、今から楽しみですね。
本日のやってみようシリーズは、Splunk Cloud第6回目になります。本日は高度なセキュリティ脅威の検知をSplunkで実現することができる有償Appsの「Splunk Enterprise Security(ES)」についてSCSK内藤様にご紹介頂きます。
設定(構築)する内容
「Splunk Enterprise Security(ES)」では、CIM(Common Information Model)という情報共通化標準を使って、異なるソースのログを表示できるように定義されています。
そこで必要なのがデータモデルという機能です。データモデルは、マシンデータのアクセス方法と役割を表したもので、データの関係性を定義します。検知、調査に必要なデータのフィールドをデータモデルと紐付けることで、ダッシュボードやレポートをそのまま利用できるようになります。
今回は、無償で7日間使うことができるSANDBOX環境を使ってデータモデルの作成とピボットツールを使った検索、そしてESのダッシュボードを使った操作感などをご紹介したいと思います。
「Splunk Enterprise Security(ES)」のサンドボックス環境を準備(7日間、無料で利用できます)
- データモデルを作成
- ピボットツールを使った検索
- ESのダッシュボードをピックアップ
1)Splunk Enterprise Securityの環境準備
以下サイトから「FREE ONLINE SANDBOX」を選択し、「CONTINUE」をクリックします。
http://splunk.force.com/SplunkCloud?prdType=EnterpriseSecurity
Splunk.comのアカウントでログインしましょう。
「VIEW MY INSTANCE」をクリックするとSplunkWebが開きます。次の画面が表示されたらチェックを入れてOKをクリックします。
以下の画面が表示されれば、準備完了です!
ここで少し余談となりますが、URLの「en-US」の部分を「ja-JP」に置き換えると日本語の画面に切り替わります。デフォルトでは「en-US」となっておりますので、「ja-JP」に置き換えてみてください。以降の手順は全て日本語画面を使って説明させていただきます。
2)データモデルを作成
データモデルでは非構造データからオブジェクト指向可能な階層を作ることができるため、Splunkの技術も経験もないユーザーやデータアナリストなどが、レポートやダッシュボードを作れるようになります。
では、試しにサンプルログを使って新しいデータモデルを作成してみましょう。
「設定」タブでデータモデルをクリックします。
タイトルとIDに任意の名前を入力し、「作成」をクリックします。
3)親オブジェクトを作成
データモデルは一個以上のオブジェクトで構成され、オブジェクトに対してある条件を割り当てていきます。データモデルの中では、オブジェクトは親子関係で構成されます。
■参考情報:データモデルについて
http://docs.splunk.com/Documentation/Splunk/latest/Knowledge/Aboutdatamodels
「オブジェクトの追加」からルートイベントを選択します。
「オブジェクト名」「オブジェクトID」には任意の名前、「制約」には親となるサーチ文を入力します。ここでは以下のように入力します。「プレビュー」を表示して問題がなければ「保存」をクリックします。
-----------------------------------------------
オブジェクト名:root_object
オブジェクトID:root_object
制約:sourcetype=linux_secure
-----------------------------------------------
続いて、属性を修正します。属性は利用可能なフィールドをルートレベルで定義します。
「属性の追加」を展開して自動抽出を選択します。
追加するフィールドにチェックを入れます。フィールドが表示されない場合は「名前で追加」をクリックして手入力で追加します。名前変更の欄にはフィールドと同じ名前を入力してください。
追加フィールド:action,app,USER,src_ip,src_port
ここで、「編集」をクリックしてsrc_portのタイプを「文字列」から「数値」へ変更します。修正が終わりましたら、「保存」をクリックします。
親オブジェクトの作成と属性の変更完了後は以下のような画面となります。
今回は自動抽出を使って属性を追加しましたが、evalを使って新たなフィールドを作成することも可能です。
4)子オブジェクトを作成
linux認証失敗の子オブジェクトを作成します。
オブジェクトの編集画面から「オブジェクトの追加」を展開して「チャイルド」を選択します。
「オブジェクト名」「オブジェクトID」には任意の名前、「追加の制約」には以下サーチ文を入力します。「プレビュー」を表示して問題がなければ「保存」をクリックします。
-----------------------------------------------
オブジェクト名:Access Failure
オブジェクトID:Access_Failure
追加の制約:action=”failure”
-----------------------------------------------
続けて認証成功の子オブジェクトを作成します。
今度は以下の内容を入力し、同じように「プレビュー」を表示して問題がなければ「保存」をクリックします。
-----------------------------------------------
オブジェクト名:Access Success
オブジェクトID:Access_Success
追加の制約:action=”success”
-----------------------------------------------
さらに認証失敗のログに対して、「Top 10」という子オブジェクトも作成します。手順は先ほどと同様ですが、継承元に「Access Failure」を選択します。
5)データモデル権限を変更
データモデルの権限を変更するため、データモデル「test_linux」のアクション編集から「権限の編集」を選択します。
表示「すべてのApp」の読み取り権限(全員)にチェックを入れて保存をクリックします。
6)ピボットを使ってデータモデルを検索してみよう
ピボットは選択したデータモデルのさまざまな側面を表すテーブルやデータの視覚エフェクトを持つレポートを素早く設計することができるツールです。サーチ言語を使用せずにレポートを作成することができるツールです。
オブジェクトを利用して、データモデル「test_linux」のアクション欄で「ピボット」をクリックします。
「Access Failure」をクリックします。
検索途中でかまいませんので、行の分割で「src_ip」を選択し、「テーブルに追加」をクリックします。
続いて、フィルタの条件を追加します。以下の通り、入力して「テーブルに追加」をクリックします。
-----------------------------------------------
フィルタタイプ:制限
制限方法:aこの属性
制限:最も高い10カウント
-----------------------------------------------
IPごとにイベントの数が集計され、認証失敗のイベントが多いTop10のIPが一覧で表示されます。
そのままクリック1つで可視化もできます。「横棒」を選択すると先ほどの集計結果が横棒グラフで表示されます。他にも単一値、円グラフ、折れ線グラフなど統計結果にあわせてグラフを選択することができます。
7)データモデルとフィールドの紐付け設定を確認
では、ESのAppsと共にインストールされるデータモデルの一部を確認していきます。「設定」をクリックして「データモデル」の一覧画面を開きます。
一覧のタイトルから「Authentication」をクリックします。
この「Authentication」データモデルは通常の認証成功、失敗だけでなく、特権認証やインセキュアな認証が子オブジェクトとして定義されています。
以下画面をご覧いただくとわかりますが、Authenticationオブジェクトの制約には「tag=authentication」という記述があります。このタグというものは、一連のフィールド情報を管理、標準化するために使用されています。
実は第2回の記事でご紹介したエイリアスという機能も同じ目的で使用されています。エイリアスは異なるフィールド名を使用する2つの異なるソースにデータを参照させるために使用しました。それに対してタグは複数ソースのイベントをグループ化するために使用します。
8)Splunk Enterprise Security(ES)の画面を見てみましょう!
前置きが長くなりましたが、ES画面の一部をご紹介します。
ESのホーム画面から「Incident Review」をクリックします。
任意でStatus、Name、Owner、Search、Security Domain、Time、Tagを入力し、「実行」ボタンをクリックすると、自動的に5段階のUrgency(緊急度)で振り分けられた結果とイベントが表示されます。これにより緊急度が高い場合にアラート通知を行うといった設定も可能になります。緊急度がHIGH以上のイベントを通知対象とすることで余分なアラート通知を抑制することが可能です。
次に、ES Appsのホーム画面から「Security Posture」をクリックします。
次の画面では自動的に5段階に振り分けられた緊急度の情報を使って、ソース全体での統計結果を1つの画面にまとめて表示しています。ソース全体で何件のイベントが発生しているか、昨日と比較してどのくらいイベント数が増減しているかなど、直感的に見てわかるようなダッシュボードの画面です。
9)Splunk Enterprise Security(ES)のレポート
最後にESのレポートをいくつかご紹介します。
ESでは、様々な用途・シーンで使うことができるようにレポートも多数用意されています。例えばMalwareでは28個、IDSでは24個ものレポートが用意されています。
以下にレポート画面の一部を掲載いたします。
例)Malware感染が多いシグネチャのTop10
例)繰り返しMalware感染するシグネチャのTop10
例)攻撃回数が多いシグネチャ
例)IDS検知イベントのカウント数(重要度ごと)
まとめ
いかがでしたでしょうか?
今回は有償Appsの「Splunk Enterprise Security(ES)」をご紹介しました。
ESは複数のデータモデルで構成されていているため、ESの仕組みを少しでもわかってもらえるようにデータモデル作成の演習を行いました。
実際に構築する際は、タグ、エイリアスなどを使用してフィールドとの紐付けが必要です。紐付けを行うことですぐにダッシュボードやレポート画面が使えるようになります。
ESは不正な通信、怪しい通信を検知するための検知アルゴリズムを独自で持っているため、SIEMとして使うことができる便利なAppsです。ぜひ、ESではどんなことができるのかをSANDBOX環境を使って確認してみてください。
次回Part7では、Splunkの有償Apps「Splunk IT Service Intelligence」を使って、サーバ運用やシステム運用でSplunkを活用する方法をご紹介します。お楽しみに!
参考情報
Splunk Cloudの導入実績
世界中のお客様の、セキュリティ分析、ビジネス業務分析、ITオペレーション分析などのSplunk Cloud活用事例は以下サイトをご参照下さい。
http://www.splunk.com/en_us/customers.html#filter/filter1/CloudSolutions
ライセンス体系とコスト
Splunk Cloudは1日に取り込むデータ量に応じた課金体系となっています。
http://www.splunk.com/en_us/products/pricing.html#tabs/cloud
お問い合わせ先
- Splunk Cloudご利用に際してのお問い合わせは下記宛先までお願いいたします。
SCSK株式会社 Splunk製品担当(https://www.scsk.jp/product/common/splunk/)
[email protected]
03-5166-2826
- SCSKでは、Splunk導入に関する設計、構築、サポート等トータルサービスをご提供いたします。業種問わず様々なお客様への幅広い導入実績から、ニーズに合った最適なサービスをご提案させていただきます。
また、サポート体制も整っておりますので、導入後の運用もご安心下さい。
お気軽に上記お問い合わせ先までご連絡ください。
****
OpsJAWS メインページはこちら。
クラウド運用にご興味ある方は、こちらからOpsJAWSに登録ください。