バッファオーバーフロー

バッファーオーバーフローとは

バッファーオーバーフローとは、特殊な入力によってバッファ領域をあふれさせ、不正処理をさせる攻撃です。

バッファとは、データを保持するために用意されたメモリ領域のことです。プログラムのあるセクションから別のセクションへ、あるいはプログラム間でデータを移動する際に使用されます。

バッファオーバーフローは、不正な入力によって引き起こされることがよくあります。すべての入力が一定のサイズ以下であると仮定し、バッファがそのサイズになるように作成されている場合、異常なトランザクションがより大きなデータを生成すると、バッファの終わりを超えて書き込むことができます。

隣接するデータや実行コードが上書きされてしまうと、メモリアクセスエラー、不正な結果、クラッシュなど、プログラムの動作が不安定になる可能性があります。
バッファオーバーフローを引き起こすように設計されたデータを送信することで、実行コードが格納されていることがわかっている領域に書き込みを行い、悪意のあるコードに置き換えることも可能です。