Webサーバ管理者のあなた、Web開発者のあなた、セキュリティ対策はいつまでも終わりませんね。ハッカーとのいたちごっこです。
しかしやっとAIなるものが支援してくれる兆しが見えてきました。少しでも自動化できたら助かりますね。
AIなんて専門家じゃないと分からない。
このように思っているかもしれませんが、そんなことありません。現在はだいぶ難易度が下がり、AIも身近になってきました。
簡単なものであれば、あなたのサーバやパソコンで実行できます。
それを体験してもらいたいと思い、できるだけ簡単なAIを用意しました。これを機に興味を持ってもらい、一緒にAIを発展させていけたらと思います。
この記事では、統計的機械学習を使ってWebサーバのアクセスログをチェックするAIを作ります。あなたのWebサーバのアクセスログがそのまま使えるプログラムです。
まず環境の準備を見ていない人は、先にこちらを見てください。AIを作ってみよう:環境の準備から
WebアクセスチェックAI
今回作るのは「WebサーバのアクセスログをチェックするAI」です。
過去ログを読み込んでチェックするものですので、リアルタイム検知を狙うものではありません。
AIには大きく統計的機械学習とディープラーニングの2種類がありますが、今回は統計的機械学習を使います。その中でも教師なし学習という分類のKMeansというアルゴリズムを使います。
教師あり学習は答えを学習してから予測を行う一方、教師なし学習はデータを読み込んだらいきなり答えを出します。答えというよりグルーピングを行うという動作ですね。
AIの種類についてはこちらを参照してください。この分類表はあまり見かけないので貴重です。 AIの種類~ありそうで無い分類表~
プログラムの仕様
今回のプログラムは以下の仕様です。
目的:Webサーバのアクセスログを読み込み、特徴の似たグループで分類する。(ここまでがAIの仕事) 分類結果を人の目で見て、攻撃的なアクセスのグループがないかチェックする。(ということで半分は人間の目が必要な半自動化になります。)
学習データ:apache httpサーバの/var/log/httpd/access_log
・何日分でも可
・ログの出力項目はapacheのデフォルトのままが前提
欲しい結果:同じ傾向のログをグルーピングした結果
AIモデル:統計的機械学習/教師なし学習/KMeansアルゴリズム
それでは、実際にプログラムとデータを作り、実行していきましょう。
次の記事へ。 AIを作ってみよう:Webセキュリティその2