変化点検出の研究に対する悩み

IMG_1458.JPG
※兵庫の日本海側の綺麗な海岸岩


ネットワークセキュリティを変化点検出の観点から研究しています。

しかし、色々悩みもあるわけです。

一応、自分の中で解決したので、それを残しておこうと思います。

まずは、悩んでいたことを紹介します。

僕は、ネットワークセキュリティを、

ネットワーク情報だけでなく、サーバー負荷情報も同時に検証することで、セキュリティ効率をあげよう

と考えていました。

しかし、そこには様々な問題が立ちはだかっていたのです。

ようするに、今のChangeFinderという変化点検出エンジンで、適当にパラメータの変化点を調べて結果を出す、という手法の問題点を簡単に証明できない

という問題です。


例えば、今の僕の勝手に作ったネットワーク環境で、何のノイズもないまま攻撃を加えます(これを手法1とする)。

当然ノイズはないので、適当にどれかのパラメータを時系列にかけていけば、攻撃を検出することができます(これを環境Aとする)。

誰が見ても、

「これは理想的な状態だから、検出できるに決まっているし、通常状態でやると正常も異常と判断するだろう」

と考えます。

僕もそう思います。

しかし、これが良くない手法であるという証明は、ネットワークセキュリティの研究においては証明するのが非常に難しいと思ってしまいます。

その理由は、

通常状態の定義があいまいだから

です。

ここで、通常状態という環境をどうにかして構築(これを環境Bとする)したとしても、それは「仮想的で都合のいい環境」である可能性を捨てきれませんよね。

その「仮想的な」通常状態において、攻撃を加えたとき、手法1を改良した別の手法(これを手法2とする)で、手法1より精度よく検出できたとしても、「仮想的な」通常状態は特殊な状態である可能性も捨てきれず、それがいい手法であるかどうかに説得力を持たせることができない気がするのです。

独自のトラフィック発生によって作った「仮想的な通常状態」は、またある意味では「特殊な状態」であることを否定するすべがない

ように思います。

では、通常状態とはなんなのか。

その状態を定義することが、一番難しいのではないでしょうか。
あるサーバーには通常であっても、あるサーバーではその振る舞いは異常であることが起こりえるのではないか、ということです。

さらに、それは一般的なネットワークにおいても同じように言えるのではないか、とも考えてしまいます。

ある環境では手法2が精度よく検出できたとしても、ある環境では手法1の方が精度がいい、ということにならない、と証明できないのではないでしょうか。

全ての環境で比べることなどできないのですから。

まだ、大きなネットワークで、それなりに比較可能な環境であれば、そのパーセンテージである程度優劣をつけることは可能ですが、今の僕の環境だと、結局独りよがりの手法に落ちてしまうのではないか、と思ってしまいます。

環境も自分、手法も自分で作る必要があるので。

だから、

検証方法にある程度ルールが決まっている方法、(例えばこの特定のデータに対して、あらかじめどの時点で起きたか分かっているインシデントをどれくらいの割合で検出できていれば優秀であるなど)、結局は世間にある一般的なデータ(DARPAなどのデータ)で比較可能な手法を考えないと、その手法が優れている証明ができない気がする

のです。

つまり、ある理論がある理論より正しいと証明することが、非常に難しいことに思えるのです。

通常状態の定義が、それぞれのサーバーや環境において、違ってくるためです。

だから、結局、「手法1を手法2に改良した」理由を説明することが難しいように感じます。
「環境Bにあうような手法2を考えただけじゃないのか」という問いにどのように答えていいかわかりません。

自分が作った環境Bが、ネットワークセキュリティにおいて、環境Aより妥当な環境であることを、どう説明すればいいのでしょうか。

見えない可能性を除去するすべが非常に難しいのではないのか、また、実験環境における不確実性を除去するのが難しい

と考えてしまうのです。

生命科学でいう、「コンタミネーションの排除」が難しいのと同類と考えています。
生物分子を扱う科学者が、実験環境で「コンタミネーションの排除」に死力を尽くすのと同じ問題に思えるのです。
生命科学でのウィルスと同じように、PCでもウィルスと呼ぶのは、こういう面でも近いと考えることができるのはないでしょうか。

これは、研究をしていく上で、環境Aと環境Bのような極端な例ならまだしも、もっと進めていくと、必ず当たる壁のように感じます。

だから、そもそもサーバー負荷をパラメータとして扱うなどと考えたところで、比較し証明する方法(研究の効果を実証するために、公開されているリファレンスデータでの検証を行うこと。サーバー負荷情報とネットワーク情報を同時に計測しているようなリファレンスデータは公開されていない。DARPAと呼ばれる、ネットワーク情報のみのリファレンスデータしかない。)がないのだから、DARPAのデータなど、検証可能なデータを用いることができる手法を考えていかないといけないのではないか、

と思ってしまいますがどうなのでしょうか。

ネットワークセキュリティの分野では、小規模な独自の環境を作る必要があるような研究は、不可能なのではと考えてしまいます。

それなら、ある程度大規模なネットワーク情報(府大のデータ)やDARPAのデータを使って検証できるような手法に変えるべきなのではないでしょうか。

サーバー負荷とかを考えずに。
—————————————-

このように、ネットワークセキュリティを、サーバー負荷情報も同時に検証することで、セキュリティ効率をあげようと考えていました。

しかし、上記のような壁に当たってしまい、悩んでいました。

そして、教授などと議論していった結果、一応はある結論に至ったわけです。

その結論を次の記事で紹介します。