見出し画像

TWSNMPのレポート(ユーザー)

TWSNMPのレポートには、ネットワーク上のWebサーバーなどを利用しているユーザーを信用スコアでランキングする機能があります。怪しいユーザーは誰か調べるためのものです。ユーザーの情報はログインに関するsyslogから取得します。

ユーザーレポートの表示

レポートWindowの表示は、

と同じです。デバイスレポートを表示したあと<ユーザー>TABをクリック
します。

ユーザー レポート

画像1

グラフ:
サーバー単位にユーザーの信用スコアの範囲毎に集計したものです。どのサーバーを利用している人に怪しい人が多いかを視覚化しています。
<Copy>ボタン:
表示しているリストの内容を、クリップボードにコピーします。
<CSV><Excel>ボタン:
表示しているリストの内容をCSVファイルまたはExcelファイルに保存します。
フィルター:
リストの表示を入力した文字列を含む内容にフィルター表示します。
<再計算>ボタン:
信用スコアを再計算します。
<再表示>ボタン:
レポートを再表示します。
<削除>ボタン:
選択したユーザーを手動で削除します。削除しても再度検知すれば、ユーザーは再登録されます。削除するのは信用スコアの計算をリセットするのが目的です。
<閉じる>ボタン:
レポートWindowを閉じます。

リストには、以下の項目が表示されます。

信用スコア:
ユーザーを信用できる度合いを示す値です。おなじみの偏差値で表現しています。50が平均的ということです。
ユーザーID:
ユーザーIDです。
サーバー:
ユーザーIDがログインしたサーバーです。
サーバー名:
サーバーの名前です。
回数:
ログイン回数です。
成功率:
ログイン成功の割合です。
クライアント数:
ログインを実施したクライアントの数です。
クライアント:
ログインを実施したクライアントのリストです。
初回:
始めて、このユーザーを見つけた日時です。
最終:
最後に、このユーザーがログインした日時です。
ID:
レポート上でユーザーを管理するためのIDです。

データ収集方法

ユーザーレポートを作成するためには、syslogからユーザーのログイン成功失敗のデータを収集する必要があります。サーバーによってログの形式は違うのでユーザーID、クライアントのIP、成功の判定条件を予め定義しておく必要があります。この条件は、

画像2

マップ設定の「抽出設定」に定義ファイルの登録しておきます。
定義ファイルの中には、

定義名|grockによる抽出条件|成功と判断する文字列

の形式で定義します。例えば

WEBLOGIN | `WebService: %{IP:client} %{USER:user} "Authentication %{GREEDYDATA:stat}"` | succeeded.
LOGIN | `Login %{GREEDYDATA:stat}: \[.+\] %{USER:user}` | Success

のような定義です。抽出する変数は、

user:
ユーザーIDです。(必須)
stat:
ログインの結果です。(必須)
client:
ログイン元を識別するIPアドレスなどです。(なくてもよいです。)

この定義ファイルを登録した後、モニタしたいサーバーのポーリングに、

画像3

のような、種別がSYSLOG Userとなるポーリングを登録します。
定義の欄は、

フィルター条件|抽出条件の名前

のように設定します。画面の例では、

192.168.1.202 | LOGIN

となっています。これは、syslogの中から192.168.1.202という文字が含まれる行を探し抽出条件のLOGINという定義を使うということを示しています。

LOGIN | `Login %{GREEDYDATA:stat}: \[.+\] %{USER:user}` | Success

の定義を使います。この場合、

192.168.1.202 Login Success: root

というログをsyslog受信した場合、rootというユーザーがサーバー192.168.1.202にログイン成功したこと記録します。

192.168.1.202 Login Fail: test

の場合は、testというユーザーがログイン失敗です。statがSuccess以外は、失敗と判断します。

これらのデータを収集することで、特定のサーバーの特定のユーザーの信用スコアを計算することができます。

信用スコアの計算

ユーザーの信用スコアは、悪いことが見つかると減点する方法で点数をつけて全てのユーザーを偏差値を計算しています。はじめは100点、悪いことをすると1点減点、その他の悪いことをするともう1点減点ということです。偏差値にしているのは、ユーザーの信用度は、相対的にしか決められないからです。このサーバーにログインしているユーザーを怪しい順に並べるという考え方です。
ユーザーの場合の減点は、

・ログイン失敗した
・複数のクライアント(端末)からログインしている
・アクセス元のクライアントの名前が解決できない
・アクセス元のクライアントが怪しいリストに載っている

にしています。この減点の方法も、これから検討する楽しみがあることです。

参考サイト

GROKに関しては、いまのところ

を参考にしてください。そのうち記事を書きたいと思っています。

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。