図3 例示したコードを悪用して戻りアドレスを書き換える様子 ポインタ渡しされているため,gets関数が直接buf配列に書き込める。標準のgets関数はバッファ・オーバーフロー問題を抱えるため,gets関数の戻りアドレスを書き換えられてしまう。 IT Pro読者の方なら,「バッファ・オーバーフロー」という言葉を何度も聞いたことがあるだろう。そう,代表的なセキュリティ・ホールの一つである。10月12日に公表されたWindows製品のセキュリティ・ホールの中にも,バッファ・オーバーフローに関するものが複数含まれる(関連記事)。 これらのセキュリティ情報を読んで,以前,バッファ・オーバーフローを悪用する攻撃(詳細については後述)を解説する記事を書いたときのことを思い出した。書き上げた記事を査読したデスクは,筆者に次のように問いかけた。「バッファ・オーバーフローを悪用して戻りアドレスが書き換え可能