データ分析

AIを作ってみよう:Webセキュリティ(4/4)

更新日:

サーバクライアント通信

 

この記事では、AIを作ってみよう:Webセキュリティ(3/4) で作ったAIに可視化の要素を加えてみます。

結果をグラフで見ることができれば、状況がよく分かるようになります。

 

プログラムをコピペ

 

前回のプログラムの後ろに絵画するパートを書き加えました。全てをコピペして、「webaccess_grouping_plot.py」というファイル名で保存してください。

 

保存できたでしょうか。

追加部分は、matplotlibというライブラリを用いて、グラフを絵画しています。

何の働きがあるかは見たほうが早いので、早速実行してみましょう。

 

実行

 

使うログや実行方法は前回と同じaccess_logです。
コマンド実行ウィンドウを開いて、「python webaccess_grouping_plot.py」と打ってください。

~.jpgというファイルができるので開いて見てください。

webセキュリティ結果グラフ

横軸が「アクセス元IPアドレス」、奥行きが「アクセスされたURL文字列」、縦軸が「Webサーバが返信した通信の大きさ」です。

1つの点が1行のログを表し、色はグループを表しています。

だいたいのログが下のほうに集まっていますね。これらのログは「特徴が似かよっている」と判断します。

これに対して、1つ2つ離れたものがありますね。
特に赤い1点はどれよりも離れていて目立ちます。実はこれが前回示した攻撃ログなんです。攻撃アクセスは、通常のログとは少し違うことが多く、例えばアクセス元がいつもと違う国だったり、通信サイズが異なったりします。(今回は筆者が分かり易い数値にしましたが。)

AIはこのように数値的に近いものをグルーピングするので、我々としてはグループから外れているもの=いつもと違うもの=何か怪しいもの、と解釈すればいいわけです。

可視化するととても分かり易いですね。

AIはこれを3次元でなく多次元で見分けています。人間にはできませんね。

 

あなたのWebサーバのaccess_logも、このプログラムでそのまま分析できますので、実行してみてください。

 

  

-データ分析

Copyright© やさしいAIの始め方 , 2024 All Rights Reserved Powered by STINGER.