攻撃者は工夫を凝らし、ソフトウエアの脆弱性を意のままに操ろうとしている。だが、ソフトウエアに脆弱性が存在しても、意図したように動作させるのは容易ではない。その手口は、脆弱性の種類によって様々だ。どのようなメカニズムで脆弱性は悪用されるのか。代表的な手口を取り上げ、その恐るべきメカニズムを図解する。
ウイルスを実行させられる深刻な脆弱性の1つが、「バッファーオーバーフロー▼」と呼ばれる脆弱性だ。パソコンにインストールしたソフトウエア(プログラム)にこの脆弱性があると、細工されたWebページやファイルを読み込むだけでウイルスに感染する。
ユーザーがダブルクリックしなくてもウイルスが動き出すのは、既に実行されているプログラムを乗っ取るからだ(図1)。
攻撃者は、実行中のプログラムに、ウイルスを含むデータを読み込ませる。プログラムが読み込んだデータは「データ領域」に保存される。データ領域に保存されたデータは、プログラムから参照されるだけで実行されない。ところがこの脆弱性があると、データ領域のウイルスが、プログラムの一部として実行されてしまう。
「メモリー破壊型」脆弱性と呼ばれる場合もある。