TWSNMPのレポート(ユーザー)
TWSNMPのレポートには、ネットワーク上のWebサーバーなどを利用しているユーザーを信用スコアでランキングする機能があります。怪しいユーザーは誰か調べるためのものです。ユーザーの情報はログインに関するsyslogから取得します。
ユーザーレポートの表示
レポートWindowの表示は、
と同じです。デバイスレポートを表示したあと<ユーザー>TABをクリック
します。
ユーザー レポート
グラフ:
サーバー単位にユーザーの信用スコアの範囲毎に集計したものです。どのサーバーを利用している人に怪しい人が多いかを視覚化しています。
<Copy>ボタン:
表示しているリストの内容を、クリップボードにコピーします。
<CSV><Excel>ボタン:
表示しているリストの内容をCSVファイルまたはExcelファイルに保存します。
フィルター:
リストの表示を入力した文字列を含む内容にフィルター表示します。
<再計算>ボタン:
信用スコアを再計算します。
<再表示>ボタン:
レポートを再表示します。
<削除>ボタン:
選択したユーザーを手動で削除します。削除しても再度検知すれば、ユーザーは再登録されます。削除するのは信用スコアの計算をリセットするのが目的です。
<閉じる>ボタン:
レポートWindowを閉じます。
リストには、以下の項目が表示されます。
信用スコア:
ユーザーを信用できる度合いを示す値です。おなじみの偏差値で表現しています。50が平均的ということです。
ユーザーID:
ユーザーIDです。
サーバー:
ユーザーIDがログインしたサーバーです。
サーバー名:
サーバーの名前です。
回数:
ログイン回数です。
成功率:
ログイン成功の割合です。
クライアント数:
ログインを実施したクライアントの数です。
クライアント:
ログインを実施したクライアントのリストです。
初回:
始めて、このユーザーを見つけた日時です。
最終:
最後に、このユーザーがログインした日時です。
ID:
レポート上でユーザーを管理するためのIDです。
データ収集方法
ユーザーレポートを作成するためには、syslogからユーザーのログイン成功失敗のデータを収集する必要があります。サーバーによってログの形式は違うのでユーザーID、クライアントのIP、成功の判定条件を予め定義しておく必要があります。この条件は、
マップ設定の「抽出設定」に定義ファイルの登録しておきます。
定義ファイルの中には、
定義名|grockによる抽出条件|成功と判断する文字列
の形式で定義します。例えば
WEBLOGIN | `WebService: %{IP:client} %{USER:user} "Authentication %{GREEDYDATA:stat}"` | succeeded.
LOGIN | `Login %{GREEDYDATA:stat}: \[.+\] %{USER:user}` | Success
のような定義です。抽出する変数は、
user:
ユーザーIDです。(必須)
stat:
ログインの結果です。(必須)
client:
ログイン元を識別するIPアドレスなどです。(なくてもよいです。)
この定義ファイルを登録した後、モニタしたいサーバーのポーリングに、
のような、種別が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の運営にも貢献できるのでよろしくお願います。