見出し画像

TWLogAIAN:悲願 AIアシスト機能を搭載した!

今朝は4時から開発開始です。昨日の方針転換した異常ログを機械学習で検知する処理を気合をいれて組み込むためです。
最初はデータを読み込む時に特徴抽出+学習して異常ログを検知する方法を考えていましたが、全文検索エンジンに読み込んだ後の検索時に異常検知のアルゴリズムと特徴量の取得方法を指定して計算する方法にしました。

検索時に異常ログを検知する設定

検知するアルゴリズムは、

検知アルゴリズム

3種類に対応しました。

で紹介されているIsolation ForestとTWSNMP FCで使っているLocal Outiler Factor、復刻版のTWSNMPで試したTensorflow.jsで実装したAutoEncoderです。
特徴量の計算方法は、

特徴量の計算方法

です。ログから抽出した数値データをベクトル化する方法と、そのデータに曜日と時間帯のデータを加えたもの、

で紹介されている攻撃のキーワードの数を数えたもの(SQLインジェクションのキーワードの数を数えてベクトル化するという融合です。)、

で紹介されているアクセスログから特徴量を計算する方法を組み込みました。
Isolation Forestが一番高速で、それなりの結果が得られます。

Auto Encoderによる異常ログの検知

一番時間がかかるのが、いわいるAIのAuto Encoderです。詳しく検証していませんが、かなりまともに異常ログを検知しているような気がします。

AIは学習時間が長すぎるので待ち時間の表示に工夫が必要そうです。
そのあたりを、朝食後に考えようと思います。

明日に続く


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