バッファオーバフローとは?ばっふぁおーばふろー
バッファオーバフローとは、プログラムが確保した領域を超える長さのデータを書き込ませ、隣接するメモリを壊して制御を奪う攻撃です。処理が終わった後に戻る場所(戻り先アドレス)を書き換えて、攻撃者の用意した命令へ飛ばす形が典型。C言語のように、書き込みが領域内に収まるかの確認(境界検査)を自動で行わない言語で起きやすい脆弱性です。
最終更新:2026-10-10
この語が出る過去問を解く →背景
プログラムは、受け取ったデータを一時的に置く場所(バッファ)を決まった大きさで用意する。入力の長さを確かめずに書き込むと、はみ出した分が隣の領域を上書きしてしまう。入力欄に長い文字列を送るだけで起こせるため、作り手の確認不足がそのまま攻撃の入口になり、対策が必要とされた。
具体例
100バイト分の領域(配列)に200バイトの入力をそのままコピーする作りのプログラムに長い文字列を送り、戻り先アドレスを上書きして、攻撃者が好きな命令を実行できるようにする。対策は入力の長さの検査、安全な関数の使用、OSの機能であるDEP(Data Execution Prevention:データ用の領域に置かれた命令の実行を禁止する)やASLR(Address Space Layout Randomization:メモリ上の配置を毎回ばらばらにする)です。
試験での引っ掛け
「メモリ不足で異常終了するだけの現象」ではなく、攻撃者が好きな命令を実行できる状態(任意コード実行)につながる深刻な脆弱性です。またJavaやPythonのように境界検査がある言語では原則起きない点も押さえましょう。
関連用語
出た過去問
出典:平成29年度 春期 ITパスポート試験 問80(IPA)
情報セキュリティを脅かすもののうち,ソフトウェアの脆弱性を修正するパッチを適用することが最も有効な対策となるものはどれか。
正解:バッファオーバフロー
要点:バッファオーバフローはプログラムの欠陥。修正パッチが有効
バッファオーバフローは、プログラムが確保した領域を超えるデータを書き込んでしまう実装上の不具合を突く攻撃で、原因はソフトウェアそのものの欠陥にある。したがって修正パッチの適用が最も直接的で有効な対策になる。総当たり攻撃はパスワード強度や試行回数制限、ソーシャルエンジニアリングは教育と運用ルール、ポートスキャンはファイアウォールなど、対策の性質が異なる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。