ITパスポート暗記無料で始める

バッファオーバフローとは?ばっふぁおーばふろー

バッファオーバフローとは、プログラムが確保した領域を超える長さのデータを書き込ませ、隣接するメモリを壊して制御を奪う攻撃です。処理が終わった後に戻る場所(戻り先アドレス)を書き換えて、攻撃者の用意した命令へ飛ばす形が典型。C言語のように、書き込みが領域内に収まるかの確認(境界検査)を自動で行わない言語で起きやすい脆弱性です。

最終更新:2026-10-10

試験情報

ITパスポートの過去問では2回出題されています(2014年度〜2017年度)。

ITパスポートの頻出用語/テクノロジ系

この語が出る過去問を解く →

背景

プログラムは、受け取ったデータを一時的に置く場所(バッファ)を決まった大きさで用意する。入力の長さを確かめずに書き込むと、はみ出した分が隣の領域を上書きしてしまう。入力欄に長い文字列を送るだけで起こせるため、作り手の確認不足がそのまま攻撃の入口になり、対策が必要とされた。

具体例

100バイト分の領域(配列)に200バイトの入力をそのままコピーする作りのプログラムに長い文字列を送り、戻り先アドレスを上書きして、攻撃者が好きな命令を実行できるようにする。対策は入力の長さの検査、安全な関数の使用、OSの機能であるDEP(Data Execution Prevention:データ用の領域に置かれた命令の実行を禁止する)やASLR(Address Space Layout Randomization:メモリ上の配置を毎回ばらばらにする)です。

試験での引っ掛け

「メモリ不足で異常終了するだけの現象」ではなく、攻撃者が好きな命令を実行できる状態(任意コード実行)につながる深刻な脆弱性です。またJavaやPythonのように境界検査がある言語では原則起きない点も押さえましょう。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では2回出題(2014年度〜2017年度)
  • 分野:テクノロジ系
  • 「メモリ不足で異常終了するだけの現象」ではなく、攻撃者が好きな命令を実行できる状態(任意コード実行)につながる深刻な脆弱性です。