本文へ移動
合格ノート.
基本情報技術者試験
基本情報技術者試験用語一覧を見る
テクノロジ

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

英語名:Buffer Overflow

ひとことで言うと:確保されたメモリ領域の境界を越えてデータを書き込み、隣接領域を破壊する脆弱性・攻撃。

意味をわかりやすく解説

CやC++などで入力長を十分確認せず固定長バッファへコピーすると、境界外のメモリを書き換える可能性があります。クラッシュだけでなく、制御情報を書き換えて任意コード実行につながる場合があります。

対策には境界チェック、安全なライブラリ・言語の利用、スタック保護、ASLR、DEP/NXなどがあります。複数の防御層を組み合わせることが重要です。

具体例

16バイトの配列へ長さを確認せず100バイトの入力をコピーすると、配列外のメモリを破壊する可能性があります。

似た用語との違い

SQLインジェクション

バッファオーバーフローはメモリ境界の問題、SQLインジェクションは入力をSQL命令として解釈させる問題です。

基本情報技術者試験の試験ポイント

原因は境界チェック不足。攻撃結果として任意コード実行につながる場合がある点と、防御技術を押さえます。

CHECK QUESTION

ASLRはバッファオーバーフローそのものをなくす技術ですか。

答えを見る

いいえ。メモリ配置をランダム化して攻撃を困難にする緩和策であり、境界外書込みの原因自体を修正するものではありません。

この説明は分かりやすかったですか?

基本情報技術者試験を勉強中ですか?

この用語を含む重要用語を、単語帳や4択テストで学習できます。