攻撃者は工夫を凝らし、ソフトウエアの脆弱性を意のままに操ろうとしている。だが、ソフトウエアに脆弱性が存在しても、意図したように動作させるのは容易ではない。その手口は、脆弱性の種類によって様々だ。どのようなメカニズムで脆弱性は悪用されるのか。代表的な手口を取り上げ、その恐るべきメカニズムを図解する。

 ウイルスを実行させられる深刻な脆弱性の1つが、「バッファーオーバーフロー」と呼ばれる脆弱性だ。パソコンにインストールしたソフトウエア(プログラム)にこの脆弱性があると、細工されたWebページやファイルを読み込むだけでウイルスに感染する。

 ユーザーがダブルクリックしなくてもウイルスが動き出すのは、既に実行されているプログラムを乗っ取るからだ(図1)。

図1●バッファーオーバーフロー脆弱性を悪用した攻撃のイメージ
図1●バッファーオーバーフロー脆弱性を悪用した攻撃のイメージ
攻撃者によって送り込まれたウイルスが勝手に実行されるのは、既に実行されている正規のプログラム(ソフトウエア)を“乗っ取る”からだ。ウイルスを含むデータを、実行中のプログラムの一部としてCPUに実行させる。通常は不可能な動作だが、実行中のプログラムに特定の脆弱性が存在すると可能になる。
[画像のクリックで拡大表示]

 攻撃者は、実行中のプログラムに、ウイルスを含むデータを読み込ませる。プログラムが読み込んだデータは「データ領域」に保存される。データ領域に保存されたデータは、プログラムから参照されるだけで実行されない。ところがこの脆弱性があると、データ領域のウイルスが、プログラムの一部として実行されてしまう。

▼バッファーオーバーフロー
「メモリー破壊型」脆弱性と呼ばれる場合もある。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。