Elasticsearch Machine Learningでファイアーウォールログから異常を検知する
「Elasticsearch Machine Learning(以下、ML)」を使って、ファイアーウォールのログから異常を検知をしてみました。
MLの概要は以前書いたこちらの記事を御覧ください。
今回は細かな設定手順の話は書いていません。
”MLでどんな感じで異常検知ができるか” について書いています。
対象のファイアウォール
パロアルトネットワークス社の次世代ファイアウォールのログを使います。
MLで異常検知させるためには、データベース(Elasticsearch)にログを入れる必要があるので、(株)エーピーコミュニケーションズ(私の所属している会社)のPALallaxを使って格納します。
どのフィールドを見るか
異常検知は、
- いつもと違う
- 他と違う
を検知しますが、何を(※)異常とするかはユーザが選択する必要があります。
※トラフィック量、エラーログ数、通信対象の国・・などなど
今回はアプリケーションと通信対象の国(宛先)を対象としてみました。
約2週間 観測しました。
*観測期間中に傾向を学習します
アプリケーション
異常とみなした通信が発生した場合、画面上の色が変わります。
横軸は時間です。
普段使われていない、「ip-in-ip」と「yum」アプリケーションについて異常と判断されています。
--
--
通信対象の国
こちらは、普段通信をしていない国への通信が発生したため異常と検知しています。
おわりに
パロアルトのログには、アプリケーションやユーザ、送信元/宛先国など詳細な情報が含まれています。
それらの情報を使って異常検知の仕組みを考えていくと、今までは見過ごしていた攻撃や感染、またはその予兆に気付けるかもしれません。
今後、自社製品で精度の高い異常検知ができるように、ML含め考えていきたいと思います。