自己複製するコンピュータ プログラムの概念は、複雑なオートマタの動作に関する初期の理論にまで遡ることができます。[ 1 ]ジョン・フォン・ノイマンは、理論的にはプログラムが自己複製できることを示しました。これは、計算可能性理論における妥当性結果を構成しました。フレッド・コーエンはコンピュータ ウイルスで実験を行い、ノイマンの仮説を確認し、初歩的な暗号化を使用して検出可能性や自己難読化などのマルウェアの他の特性を調査しました。彼の 1988 年の博士論文は、コンピュータ ウイルスを主題としていました。[ 2 ]
コーエンの指導教官であるレナード・アドレマンは、一般的には、ウイルスの存在をアルゴリズムで判定することは決定不能であるという厳密な証明を提示した。[ 3 ]この問題は、広範なプログラム群の中でウイルスが存在しないことを判定する問題と混同してはならない。この問題は、すべてのウイルスを認識する能力を必要としないという点で異なっている。
アドルマンの証明は、マルウェアの計算可能性理論において今日までで最も深遠な成果であり、カントールの対角線論法と停止問題に依拠している。皮肉なことに、後にヤングとヤングによって、暗号ウイルスの概念を提示することで、アドルマンの暗号学における研究がリバースエンジニアリングに非常に強いウイルスを構築するのに理想的であることが示された。[ 4 ]暗号ウイルスとは、公開鍵とランダムに生成された対称暗号初期化ベクトル(IV)およびセッション鍵(SK)を含み、それらを使用するウイルスである。
暗号ウイルスによる恐喝攻撃では、ウイルスはランダムに生成されたIVとSKを使用して、被害者のマシン上の平文データを暗号化します。次に、IV+SKはウイルス作成者の公開鍵を使用して暗号化されます。理論的には、被害者は暗号文を復号するために、ウイルス作成者と交渉してIV+SKを取り戻さなければなりません(バックアップがない場合)。ウイルスの解析では、復号に必要なIVとSK、またはIVとSKを復元するために必要な秘密鍵ではなく、公開鍵が明らかになります。この結果は、計算複雑性理論を使用してリバースエンジニアリングに強いマルウェアを設計できることを初めて示したものです。
コンピュータウイルスの研究で増加している分野は、生物学的ウイルスの研究に応用されているロトカ・ボルテラ方程式などのモデルを使用して、ワームの感染行動を数学的にモデル化することです。コンピュータウイルスの伝播、捕食者コードのようなウイルスによるウイルスとの戦い、 [ 5 ] [ 6 ]パッチの有効性など、さまざまなウイルスの伝播シナリオが研究者によって研究されています。
近年、挙動に基づくマルウェア検出の研究が盛んに行われている。挙動検出のほとんどの手法は、システムコール間の依存関係の分析に基づいている。実行されたバイナリコードは、straceやより精度の高い汚染分析を用いてトレースされ、システムコール間のデータフロー依存関係が計算される。その結果は有向グラフとなる。ノードはシステムコールであり、エッジは依存関係を表す。たとえば、システムコールによって返された結果(結果として直接的に、または出力パラメータを介して間接的に)は、後でシステムコールのパラメータとして使用されます。システムコールを使用してソフトウェアを分析するというアイデアの起源は、Forrest ら[ 7 ]の研究に見出すことができる。Christodorescuら[ 8 ]は、マルウェア作成者はプログラムのセマンティクスを変更せずにシステムコールを簡単に並べ替えることができないため、システムコールの依存関係グラフがマルウェア検出に適していると指摘している。彼らは、マルウェアと正規ソフトウェアのシステムコールの依存関係グラフの差を計算し、結果として得られたグラフを検出に使用して、高い検出率を達成している。Kolbitsch ら[ 9 ]は、記号式を事前に計算し、実行時に観測されたシステムコールパラメータで評価している。
評価によって得られた結果が実行時に観測されたパラメータ値と一致するかどうかを観察することで、依存関係を検出します。マルウェアは、トレーニング セットとテスト セットの依存関係グラフを比較することによって検出されます。 Fredrikson ら[ 10 ]は、マルウェア システム コールの依存関係グラフで特徴を明らかにするアプローチについて説明しています。彼らは、概念分析とリープ マイニングを使用して重要な動作を抽出します。[ 11 ] Babic ら[ 12 ]は最近、ツリー オートマトンからの文法推論に基づくマルウェアの検出と分類の両方のための新しいアプローチを提案しました。彼らのアプローチは、依存関係グラフからオートマトンを推論し、そのようなオートマトンがマルウェアの検出と分類にどのように使用できるかを示しています。
静的および動的なマルウェア解析技術を組み合わせる研究も現在行われており、両方の欠点を最小限に抑える努力がなされています。Islam ら[ 13 ]などの研究者による研究では、マルウェアやマルウェアの亜種をより良く分析および分類するために、静的および動的な技術を統合する作業が行われています。