見出し画像

TWSNMPのレポート(サーバー)

ネットワーク上のデバイス(パソコンやスマフォ)が通信しているサーバーと通信の目的が気になると思います。TWSNMPにはNetFlow/IPFIX/Syslogのデータからサーバーに関するレポートを作成する機能があります。サーバーの怪しさは信用スコアで表現しています。この記事では、このサーバーレポート機能について説明します。

レポートWindowの表示方法

と同じです。

サーバーレポート

ネットワーク上のデバイス(パソコンやスマフォ)が通信しているサーバーに関するレポートです。

画像1

世界地図:
通信しているサーバーの位置を示します。色は、信用スコアを示しています。
<Copy>ボタン:
表示しているリストをクリップボードにコピーします。
<CSV><Excel>ボタン:
表示しているリストをCSVファイルまたは、Excelファイルで保存します。
フィルター:
リストの項目を入力した文字列でフィルター表示します。
<再計算>ボタン:
信用スコアの再計算を開始します。
<再表示>ボタン:
レポートを最新の状態に更新します。
<調査>ボタン:
調査対象のサーバーのIPアドレスを入力するダイアログを表示します。
<グラフ更新>ボタン:
現在表示されているリスト項目で世界地図の表示を更新します。フィルターでリストの表示項目を絞った後に特定の条件のサーバーだけ地図に表示したい場合に便利です。
<位置情報>ボタン:
選択したサーバーのIPアドレスから位置を特定できる場合に、ブラウザーを起動してGoogle Mapにサーバーの位置をポイントします。
<IP情報>ボタン:
選択したサーバーのIPアドレスに関する情報を表示します。IPアドレスの所有者やブラックリストの掲載有無を表示します。
<ルール追加>ボタン:
選択したサーバーの情報から信用スコアを計算するためのルールを作成するためのダイアログを表示します。
<削除>ボタン:
選択したサーバーをレポートから削除します。確認のメッセージがでます。
<閉じる>ボタン:
レポートWindowを閉じます。

リストに表示する項目は次の内容です。

信用スコア:
サーバーの怪しさを示すスコアです。偏差値になっています。
サーバー:
サーバーのIPアドレスです。
サーバー名:
サーバーの名前です。DNSや登録したノードから自動設定します。
サービス名:
このサーバーで提供しているサービスのリストです。よく知られたサービスだけリストの表示するようになっています。WEBサーバー、DNSサーバーなどです。
サービス数:
このサーバーが提供しているサービスの数です。
回数:
このサーバーに関する情報が提供された数です。NetFlowのレポート回数、ログからの場合はログの件数です。
バイト:
このサーバーが通信したデータのバイト数です。NetFlowなどで通信のバイト数が提供された場合に記録します。概ね通信量を示しています。
位置:
IPアドレスから位置情報を取得できた時に表示されます。国コード、緯度経度、都市名があります。
初回:
最初にこのサーバーの通信を発見した日時です。
最終:
最後にこのサーバーの通信を記録した日時です。
サービス:
このサーバーが提供しているサービスの詳細です。
ID:
このレポート上でサーバーを管理するためのIDです。

IPアドレス調査ダイアログ

モニタしているNetFlowなどの情報から自動的に登録されたサーバーのIPアドレス以外に一時的に調べたいIPアドレスを手動で入力するためのダイアログです。

画像2

アドレス:
調べたいIPアドレスを入力します。
名前:
調べた結果未登録のアドレスの場合レポートに表示するサーバー名を入力します。登録済みのIPアドレスの場合は利用しません。
<Cancel>ボタン:
何もしないで、ダイアログを閉じます。
<実行>ボタン:
アドレスの調査を実行します。

位置情報の表示

選択したサーバーのIPアドレスから位置情報が取得できた場合に、ブラウザーを起動してGoogle Mapにサーバーの位置を表示することができます。

画像3

位置情報取得するためには、マップ設定のGeo IP DBに位置情報データベースファイルを登録しておく必要があります。

IP情報表示

選択したサーバーのIPアドレスに関する詳細情報を表示します。

画像4

リストにはRDAP(Whois)によるIPアドレスの所有者に関する情報とDNSブラックリスト(DNSBL)で調べたIPアドレスのブラックリスト掲載の有無が表示されます。ブラックリストは複数のサーバーに問い合わせいます。

ルール追加ダイアログ

選択したサーバーの情報から信用スコアを計算するためのルールを追加するためのダイアログです。

画像5

種別:
ルールの種類を指定します。後で説明します。
サーバー:
サーバーのIPアドレスです。
サーバー名:
サーバーの名前です。(ルールには使いません。)
サービス:
ルールに使用するサービスです。
サーバー位置:
ルールに使用するサーバーの位置情報です。国コードだけ利用します。
<Cancel>ボタン:
何もしないでダイアログを閉じます。
<Save>ボタン:
ルールを追加します。

ルールの種類は、

画像6

です。

サーバー限定サービス:
サービスを特定のサーバーだけに限定するルールです。例えば、DHCPサーバーやDNSサーバーは1台に限定して登録したサーバー以外がサービスしているのを見つけるためのものです。
禁止サービス:
指定した種類のサービスを禁止するルールです。例えば、暗号化されていないhttpやtelnetを禁止するためのものです。
禁止サーバー:
指定したサーバーとの通信を禁止するルールです。
禁止サーバー&サービス:
指定したサーバーへ指定したサービスでのアクセスを禁止するルールです。
禁止サーバー位置:
指定した位置(国コード)にあるサーバーとの通信を禁止するルールです。例えば、ロシアにあるサーバーと通信していることを禁止するためのものです。
禁止サーバー位置&サービス:
指定した位置(国コード)にあるサーバーと指定したサービスでの通信を禁止するためのルールです。

信用スコアの計算

サーバーの信用スコアは、次のような条件に時に減点することで計算します。

・IPアドレスから名前が解決できない。
・設定したルールに違反している。

100点から減点した点数から全サーバーの偏差値を計算します。平均的なサーバーは50です。

サーバーレポートの情報源

今のところNetFlow,IPFIXのデータからレポートを作成できます。ユーザーレポートと同じ様にsyslogから情報を取り出す仕組みも組み込んであります。
Sonic Wallなどのファイヤーウォールでは、WELF形式のフローログを出力するので、

画像7

のようなポーリングを定義すれば、レポートを作成するはずですが、まだ十分テストしていません。ログから抽出するための定義は、

"WELFFLOW":  &grokEnt{Pat: `src=%{IP:src}:%{:sport}:.+ dst=%{IP:dst}:%{BASE10NUM:dport}:.+proto=%{WORD:prot}/.+ sent=%{BASE10NUM:sent} .+rcvd=%{BASE10NUM:rcvd}`},

のようなものです。必要な変数は、

src:
送信元IPアドレス
sport:
送信元ポート番号
dst:
宛先IPアドレス
dport:
宛先ポート番号
prot:
プロトコル名
sent:
送信バイト数
rcvd:
受信バイト数

試してみてうまくいったら教えてください。他のメーカーのネットワーク機器でも対応できると思います。うまくいったら教えてください。


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