前回の記事

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

バッファーオーバーフロー

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

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

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

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

 脆弱性を悪用される場合の、プログラムの処理の流れを詳しく見ていこう。

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら