【ばっふぁおーばーふろー】
バッファオーバーフロー とは?
💡 メモリの「器」からデータをあふれさせてプログラムを乗っ取る攻撃
📌 このページのポイント
バッファオーバーフローってどういう脆弱性?
たとえば10文字分のメモリ領域を確保したのに、100文字のデータを書き込むとどうなるかな。はみ出した90文字分が隣のメモリ領域を上書きしてしまうんだ。この上書きされた領域に重要な制御データがあると、プログラムの動きが変わってしまうんだよ。
なんで任意のコードが実行できるの?
現代のOSには対策があるの?
いろいろあるよ。ASLR(メモリのアドレスをランダムにして攻撃先を予測しにくくする)、DEP/NX(データ領域でのコード実行を禁止する)、スタックカナリア(バッファとリターンアドレスの間に検知用の値を入れる)など、複数の防御層で守っているんだ。
📖 おまけ:英語の意味
「Buffer Overflow」 = バッファのあふれ
💬 buffer(緩衝領域)+ overflow(あふれる)。コップに水を注ぎすぎてあふれるイメージだよ