API監視の研究
シグネチャを使用しないウイルス検知を実現するために、私たちは検査対象を 実際に実行させ、得られた情報からウイルスかどうかを判定しています. その際API監視手法を用いて情報を取得します.
API監視
API(Application Programming Interface)は、コンポーネント,アプリケーション、 OSなどで使用する機能の集合です. 通常、APIは特定的機能を提供する1つ、あるいは複数のDLL(Dynamic Link Library)で構成されています. DLLはWindowsOS環境で呼び出し可能な関数が含まれているファイルで、 このDLLに含まれている関数がAPI関数です.
そのため、あるアプリケーションのAPI関数の使用を監視することで、その動作をリアルタイムで 追跡することが可能になります. そこで、ウイルスに特有の動作をとるAPI関数だけを監視し、 そのAPI関数の引数を取得することで検査対象の動作情報を得ることができます. そして取得した動作情報をウイルス判断基準と照らし合わせることで検査対象が ウイルスであるかどうかを判定します.
ウイルス判定基準
一般的なメール感染型ウイルスの行動の内、
- 短期間大量のメール発信
- システム上重要なファイルの改ざん
- アンチウイルスソフトのプロセスの停止、削除
といった行動については、これらが検出された段階で検査対象はウイルスだと 判断できます.しかし、
- レジストリの作成、改ざん、削除
- システム上重要でないファイルの改ざん
- 外部との通信、接続待ちポートの増加
等の行動については、一般のアプリケーションも行う可能性がある行動であるから、複数の種類の行動 が検出された場合はウイルスとするなど基準を設ける必要があります.
環境
上記の手法を用いたウイルス検出ソフトを利用し、ウイルス検出端末上でのウイルスの行動を監視するのですが、その環境は ウイルスに感染することが前提となるため端末としてVMware WorkStation上で動作するWindowsXpを使用しました. このVMwareはコンピュータ上に仮想的に端末を実現するソフトウェアであり、何回でも環境のリカバリが出来ます. またウイルス検出端末はVMwareを動作させている端末としか通信できない設定になっており、外部にウイルスが流出しないような 設定になっています.そこで、環境をより現実の運用に近づけるように専用のDNSとメールサーバを用意しました.

現在はこの環境を用いてウイルス検出についての実験を行っています.