今回の研究ですけど、本当に時間が足りなかったなーって印象です。
では簡単な反省点をまとめておきます。
■ 相関係数の計算
目標としては、一番不正アクセスとして判断の難しいHTTPに対するDoS攻撃を対象に手法を考えていったんですが、手法としてはそれなりなんですけど、相関係数を求めるピアソンの積率相関係数を使ったのが微妙かな、と。
この計算方法だと、時系列データの相関係数を得る際に窓サイズを決定して計算を逐次行うんですが、窓サイズに含まれる境で大きな値の影響を受けすぎてしまうんですよね。
後は、対象の数値が0の場合の処理と。
スピアーマンとかケンドールの順位相関を用いた方がいい結果が得られそうな気がします。
■ 検出対象について
あとは、トラフィック情報をパケット単位で扱っているんですが、対象ネットワークのクライアントとサーバの関係を考慮に入れると、もっといい結果が得られそうです。
今回は、ネットワーク単位で計算機の立場などは考慮にいれずに行ったために、クライアントの実装によっては通信の際に、送信元ポートが任意の値になるために、ランダムに数値が変化し、それがポートスキャンであるって判断されることもありました。
つまり、クライアントのポートの変化は対象としないなどの、サーバとクライアントの立場を考慮に入れられれば、そういう問題は解決できそうでした。
■ 変化点検出エンジン
時系列データの変化点検出には、NECさんが提案したChangeFinderと呼ばれる変化点検出エンジンを利用しました。
問題としては、ChangeFinderにおける窓サイズの適応的決定ですね。
一気に時系列データが変化する場合は、リアルタイムで異常を検出できますが、ある程度多くの変化がある時間域で生じる場合は、やっぱり検出遅延が起きる。
この遅延の原因ってのは、平滑化を行う際の窓サイズを固定していることが挙げられると思うんですが、これを変化量によって変化させていくことが、ChangeFinderの課題になりそうです。
■ 特徴量の工夫
特徴量の抽出方法に関しては、今回最も工夫したのですが、相関係数見る際に、相関関係がある状態から無い状態へ、または、無い状態からある状態へ、これが顕著に現れるような特徴量の抽出を今後検討していく必要があります。
あきらかに、通信量だけでも分かるようなDoS攻撃を検出はできているものの、その特徴を大きくは抽出できていないという問題があって、これはあまりに当たり前すぎる攻撃は、どの特徴量にもあたり前にDoS攻撃の特徴が現れてしまいます。
そのため相関をとると、相関関係がつよい状態が続いてることになって、その結果相関に大きな変化が現れないという結果にもなるんですよね。
やはり、無相関から有相関になるといったような特徴量を考える必要がありますね。