バッファオーバーフローってなんなんだ?



メモリ上のデータ
そもそもパソコンがデータを扱うときには、一旦メモリの上に読み込みます。
メモリは、データを載せる一本のテープ、帯と考える事ができます。
読み込まれたデータはここに順序良く並べられていきます。
そして、データが必要になった時に再び先頭から読み込んでいきます。



バッファオーバーフロー
バッファオーバーフローとは、メモリ上のデータが定められた
境界線を越えて漏れ出してしまうことを言います。
漏れ出したデータは、隣接する領域のデータを上書きしてしまいます。
右の絵ではデータ2の内容が隣に漏れ出してしまっています。 こうなってはもうデータ3は使い物にならなくなります。

それだけでなく、バッファオーバフローを悪用して不正な操作をコンピュータに行わせることも可能になります。
今回のWinnyの脆弱性は、まさにこの点を突かれてしまったのです。
Winnyを強制的に終了させる命令を使って、わざとバッファオーバーフローを発生させると、
コンピュータにその命令を実行させて強制終了させることができるようになってしまいます。
下の絵のように、Winnyを終了させる命令を使いデータ3の内容を上書きした状態で
コンピュータがデータ3の内容を実行しようとするとWinnyが強制終了するのです。


戻る