はじめに
BOX情報をSplunkで可視化する事になったので、@odorusatoshiさんの記事「Splunkを使ってBOXのファイル操作情報を可視化」をみて、この通りにやろうとしたけど、紹介されていた「Box App for Splunk」は既に無かったので自作してみた話です。
データ収集
Splunkbaseにある「Splunk Add-on for Box」を利用しました。このAdd-onはSplunk Supported addonなのでマニュアルが公開されています。
これを読めばデータ収集の方法は分かるかと思いますので、ここは割愛します。
可視化
Boxを可視化するにあたり何の情報をダッシュボード化するのかは企業や組織により様々だと思いますが、私は以下の内容を試してみました。
- 認証情報(ログイン成功数、失敗数など)
- ファイルのアップロード情報(回数、データサイズなど)
- ファイルのダウンロード情報(回数、データサイズなど)
- BOXのイベント情報(ファイル作成、編集、削除など)
- アカウント情報(新規作成、編集、削除など)
[0] フィールドについて
今回利用するフィールドにevent_type
フィールドとeventtype
フィールドという似た名前のフィールドが出てきますが、それぞれ情報が異なるので注意ください。
[1] 認証情報(ログイン成功数、失敗数など)
認証情報はevent_type
フィールドが参考になりそうだったので、それを使う事にします。
[1-1] BOX認証のイベント統計
私の環境ではevent_type
フィールドのバリューとしてLOGIN
ADMIN_LOGIN
FAILED_LOGIN
があるので、それぞれの統計を取得してみました。以下はログイン情報を取得するSPLのサンプルです。
index=<your_index> sourcetype="box:events" event_type="LOGIN"
| stats count
[1-2] BOX認証のアクセス元統計
どこからBOXの接続があったのか確認する際にeventtype="box_events_authentication"
で検索を行い、ip_address
フィールドから位置情報を算出しました。以下はどの国から何回、ログインが成功/失敗しているのかを取得するSPLのサンプルです。
index=<your_index> sourcetype="box:events" eventtype="box_events_authentication"
| iplocation ip_address
| top Country event_type
私はCountry
フィールドのみを対象としていますがRegion
フィールドやCity
フィールドを組み合わせる事でより細かい粒度にて可視化できます。私はtable情報として取得しましたが、Cluster MAPにて可視化したい場合はgeostat
を利用する事で可視化できます。
[2] ファイルのアップロード情報(回数、データサイズなど)
[2-1] BOXアップロード回数の合計値
私の環境ではevent_type
フィールドのバリューとしてUPLOAD
があるので、その統計を取得してみました。以下はアップロード回数を取得するSPLのサンプルです。
index=<your_index> sourcetype="box:events" event_type="UPLOAD"
| stats count
[2-2] BOXアップロードサイズの合計値
先ほどのevent_type="UPLOAD"
を活用して、additional_details_size
フィールドのデータサイズの統計を取得してみました。以下はアップロード回数を取得するSPLのサンプルです。
index=<your_index> sourcetype="box:events" event_type="UPLOAD"
| stats sum(additional_details_size)
これでも良いのですが、私の環境では見づらいので、アップロードサイズの合計値をバイトからギガバイトに変換しました。
index=<your_index> sourcetype="box:events" event_type="UPLOAD"
| eval A=additional_details_size/(1024*1024*1024)
| stats sum(A) as B
| eval Upload_GB=round(B,2)
| fields - B
フィールドA
とかB
とかは任意で変更ください。
[3] ファイルのダウンロード情報(回数、データサイズなど)
[2]ファイルのアップロード情報で利用したevent_type
フィールドのバリューとしてDOWNLOAD
があるので、それに置き換えるだけです。
[4] BOXのイベント情報(ファイル作成、編集、削除など)
ここまで読んでいる方は薄々気づくでしょうが、要はevent_type
フィールドを参照すればBOXのイベント情報を確認できるので、その統計を取得するSPLサンプルです。
index=<your_index> sourcetype="box:events"
| stats count by event_type
[5] アカウント情報(新規作成、編集、削除など)
私の環境ではevent_type
フィールドのバリューとしてNEW_USER
EDIT_USER
DELETE_USER
があるので、それぞれの統計を取得してみました。以下は新規ユーザ作成に関する統計を取得するSPLのサンプルです。
index=<your_index> sourcetype="box:events" event_type="NEW_USER"
| stats count
なお、eventtype=box_events_account
で検索を行うことでアカウントに関するイベントのみに絞れるので、その上でevent_type
フィールドからアカウントのイベント情報を時系列で抽出してみる方法も試してみました。
index=<your_index> sourcetype="box:events" eventtype="box_events_account"
| timechart count by event_type
[6] その他
私は組織におけるBOXの利用状況を可視化したかったので、このようなSPLで書きましたが、BOXはいつ
誰が
どのファイルを
どうした
まで取得可能です。例えば、特定の個人に関するアクティビティも取得可能なので、うまく使えば情報漏洩対策や内部脅威対策、時間外労働者の特定などに活用できるのでは無いかと感じました。
終わりに
今回はSplunkbaseからBOXを可視化するAppを見つける事ができなかったので、SPLを書いてBOXを可視化する方法を紹介しましたが、マクニカからSecurity Monitoring App for Boxといった、BOXに関する不正アクセスや設定ミスなどを検知・監視を実現するSplunk用の有償の独自App/サービスがあるようです。興味のある方はチェックしてみては如何でしょうか。なお、私はマクニカの該当App/サービスを試した事が無いので内容は知りません。