はじめに
Power BI を使おうと前から思っていながら何を分析しようか、興味あるネタが無いなぁと思いつつ、ズルズル時間だけが経過してしまったため Advent Calender を動機させていただきました。
私のようにちょっと気おくれしてしまった方や初心者の方に「初学者でもこんなことができるんだ」と思っていただき、 Power BI を使ってみようと思っていただければ幸いです。
ということで、この記事は Power BI Advent Calender 2018 の15日目です。
概要
VyOS というソフトウェアルータを踏み台に自宅に SSH トンネリングで接続するため sshd をポート番号を変えてインターネットに公開しているのですが、ログにアタックされた記録があったので攻撃元の傾向を分析してみました。
ゴールは以下の分析ができることです。
- 攻撃元の国・IPの比率、分布
- 攻撃の時系列の傾向 (いつ頃の攻撃が多いとかがわかるグラフ)
- 攻撃時に使われたユーザ名の比率、傾向 (どんなユーザ名を使ってログイン試行されたかがわかるグラフ)
今回は 2 番で躓いてしまい、 1 番のみとなります。
レポートの作成
準備
auth.log をそのまま利用するには微妙なので、攻撃に関する情報のみを抽出しCSVにします。私は秀丸エディタで Grep したり正規表現で不要な行を削除するなどし、下記カラムになるように加工しました。
国コードカラムは、攻撃元 IP から国コードを返してくれるサービスを利用し、
タイムスタンプ | リモートホスト | 国コード | ポート | プロトコル | アカウント名 | メッセージ |
---|
実際の CSV はこのような感じです。ログそのものは 2015 年からありましたが攻撃の記録を抽出した結果、 2016 年 1 月~ 2018 年 11 月が分析対象期間となりました。
Power BI Desktop に CSV を取り込む
Power BI Desktop を起動し、「データを取得」から該当 CSV を選択
データの型を必要に応じ編集し、読み込み
- 今回は編集が不要だったので、「読み込み」のみを実施しました。
- 読み込みが終わると、こんな感じです。
攻撃元の分布を地図のビジュアルで表示
- 視覚化の「マップ」を選択 → フィールド (ペンキ塗りローラーのようなアイコンの左隣) の場所に「国コード」・サイズに「タイムスタンプ」を D&D → 適宜サイズ変更します。
- 書式 (ペンキ塗りローラーのようなアイコン) のカテゴリ等をいじるとこんな感じです。
攻撃元IPの比率を円グラフのビジュアルで表示
- 前項で編集したビジュアルを選択していない状態で、視覚化の「円グラフ」を選択 → フィールドの詳細に「リモートホスト」・値に「タイムスタンプのカウント」を D&D
- 書式で詳細ラベル等をいじるとこんな感じです。
おまけ
今回はここまでになりますが、最後に Power BI のすごいところをご紹介したいと思います。
既に地図にマッピングしてくれるだけで驚くところだと思うのですが、右側のグラフデータの 1 つを選択すると、左の地図にフォーカスされるんです。凄くないですか。
もう紙で何枚も印刷して「あーでもない」「こーでもない」と無駄な時間を費やさなくても、見たいデータを選択すれば良いんです。