本年度は「ある未知のプログラムの振舞い情報を収集し、このプログラムが、検査者が検査したいと考える振舞いを持つか否かを判定する方法」の1つの実現(インスタンス)である未知ウイルス検出プログラムを解析し、モデルおよび各記述の詳細をオブジェクト指向ならびにメタモデルの観点で検討した。まず、オブジェクト指向開発における統一モデリング言語であるUML(Unified Modeling Language)を用いて、振舞いの仕様・検出プログラムのモデルを図式化してプログラムの構造を分析した。検出プログラムは、(1)動作環境の抽象モデル、(2)ウイルスの振舞いパターンの定義、(3)パターンに基づく検出の定義の3つの部分から構成され、一階述語論理(Extended ML)で記述された仕様に対し、プログラム(Standard ML)が定義されている。これらの仕様部分と(3)が(2)の振舞いを検出することを満たすことの証明が振舞いパターン検出フレームワークにおけるフローズン・スポットとなる。(2)の定義が振舞いを変更する場合のホット・スポット、定義されたプログラムが動作環境を変更する場合のホット・スポットとなる。検出プログラムの記述をJavaに移行しているが、振る舞いのパターンとその振る舞いを検出するプログラムを作成する過程を証明という形式で定義し、そのプロセスを再利用する方式をJavaに導入することは厳密な証明の定義が困難であることから適切とはいえないと考えられる。一方、オブジェクトおよび継承・関連といったオブジェクト間の関係だけでは表現しきれないモデルに対して、オブジェクト間にまたがる「横断的関心事(crosscutting concern)」を陽に扱うアスペクト指向の概念がメタモデルを実現する上で有効であり、オブジェクトの振る舞いを捕らえるためのメタな記述をJavaの上に提供できることから、次年度以降アスペクトによるフローズン・スポットの記述を検討することとした。
|