コンピュータウィルス

概要

コンピュータウイルス (computer virus) とは、広義ではコンピュータに被害をもたらす不正なプログラムの一種です。

狭義では、宿主となるプログラムに感染して動作するプログラムであり、以下のいずれか

の特性を持ちます。


(1) 自己伝染機能

自らの機能によって他のプログラムに自らを複製又はシステム機能を利用して自らを他のシステムに複製することにより、 他のシステムに伝染する機能

(2) 潜伏機能

発病するための特定時刻、一定時間、処理回数等の条件を記憶させて、発病するまで症状を出さない機能

(3) 発病機能

プログラム、データ等のファイルの破壊を行ったり、設計者の意図しない動作をする等の機能


ワーム

独立して自己増殖、データ破壊・改ざんが実行可能なプログラムです。

あるシステムからあるシステムに感染しようとする時に宿主となるファイルを必要としません。

ネットワークを介して、攻撃先のシステムのセキュリティホールを悪用して侵入する事が多いといえます。


自己複製プログラムとは

クワイン(Quine)

クワインとは、自身のソースコードと完全に同じ文字列を出力するプログラムのことです。
クワインは競技プログラミングの題材になるテーマですが、本質的にはコンピュータウイルスと同じ動きを実現します。
つまるところ、コンピュータウイルスとは、コンパイラ(及び必要なライブラリ)と自信のソースコードを出力できるプログラムを保持し、実行したものとみることもできます。

複製の方法

コンピュータウイルスの複製の方法は様々です。
単純に自己のファイルをコピーするだけでなく、別のプログラムを書き換えて自己のコードを埋め込む、寄生型のような物もあります。
ウィルスは所詮プログラムなので、exeをいくら作ったところで実行してもらえなければ動けません。なので、他のプログラムに擬態したり、寄生したりして、実行してもらおうとするのです。

また、単純に自己のファイルをコピーするだけでは、バイナリパターンが同じになり、ウイルスソフトウェアに検出されてしまいます。
ソフトウェア自身が、自身をを若干ずつ変化させる仕組みを取り入れることがよくあります。


ウイルスの検出方法

パターンマッチング手法

ウイルスの特徴的な部分をパターンとしてリストし、そのパターンに合致したものをウイルスとして検出する。

ただし、定義ファイルにない未知のウイルスを検知することは出来ない。


ヒューリスティック手法

ウイルスと思われる挙動を認識して定義ファイルにない未知のウイルスを検知することができる。


コンペア手法

ウイルスデータと原本データを照合する方法です。


関連ページ