バッファオーバフローとは?
バッファオーバフローとは、確保した領域を超える長さのデータを書き込ませ、隣接するメモリを破壊する脆弱性。スタック上の戻り番地を書き換えて攻撃者の用意したコードへ制御を移せば、任意コード実行に至る。境界検査を持たないC/C++で起きやすい。
ばっふぁおーばふろー
バッファオーバフローの意味
確保した領域を超える長さのデータを書き込ませ、隣接するメモリを破壊する脆弱性。スタック上の戻り番地を書き換えて攻撃者の用意したコードへ制御を移せば、任意コード実行に至る。境界検査を持たないC/C++で起きやすい。
バッファオーバフローの具体例
入力長を検査しない文字列コピー関数へ長大なデータを渡し、戻り番地を上書きする。対策は境界検査のあるAPIの使用に加え、スタック保護、配置をランダム化するASLR、データ領域の実行を禁止するDEPなどの緩和機構。
バッファオーバフローは試験でどう引っ掛けられる?
実行環境の緩和機構は攻撃の成立確率を下げるだけで、根本対策は入力長の検査を実装すること。またヒープ領域でも発生するため「スタック特有の問題」と決めつけないこと。
バッファオーバフローと関連する用語
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。