問題本文
情報セキュリティにおける脅威であるバッファオーバフローの説明として,適切なものはどれか。
選択肢
- ア.特定のサーバに大量の接続要求を送り続けて,サーバが他の接続要求を受け付けることを妨害する。
- イ.特定のメールアドレスに大量の電子メールを送り,利用者のメールボックスを満杯にすることで新たな電子メールを受信できなくする。
- ウ.ネットワークを流れるパスワードを盗聴し,それを利用して不正にアクセスする。
- エ.プログラムが用意している入力用のデータ領域を超えるサイズのデータを入力することで,想定外の動作をさせる。
正解
エ. プログラムが用意している入力用のデータ領域を超えるサイズのデータを入力することで,想定外の動作をさせる。
解説
バッファオーバフロー(buffer overflow)は,プログラムが用意している入力用のデータ領域(バッファ)を超えるサイズのデータを入力させて,メモリ上の隣接領域(戻り番地等)を上書きし,想定外の動作や任意コード実行をさせる攻撃. C/C++等のメモリ境界をプログラムが管理する言語で発生しやすく,任意コード実行による侵入の常套手段として古くから知られる. DoS攻撃,メールボックス満杯化(メール爆弾),パスワード盗聴とは攻撃手法も目的も異なる. 「入力データで領域超過→想定外動作」がバッファオーバフローの本質である.
選択肢ごとの解説
- ア.誤り. 「特定のサーバに大量の接続要求を送り続け,サーバが他の接続要求を受け付けることを妨害する」のはDoS(Denial of Service)攻撃の説明. サービス妨害を狙う攻撃であり,プログラムの入力データ領域超過を狙うバッファオーバフローとは手法と目的が異なる. DoS=妨害,BOF=任意動作と区別する.
- イ.誤り. 「特定メールアドレスに大量メールを送り受信できなくする」のはメールボムやスパムによる嫌がらせ攻撃の説明. メールボックスを満杯にして新規受信を阻害するもので,プログラムの入力データ領域を超えて意図しない動作をさせるバッファオーバフローとは攻撃手法が全く異なる.
- ウ.誤り. 「ネットワークを流れるパスワードを盗聴して不正アクセスする」のは盗聴(スニッフィング)による攻撃の説明. 通信路上の情報窃取を狙う攻撃で,プログラムの入力データ領域を超過させて想定外動作を起こすバッファオーバフローとは手段・効果ともに異なる. ネットワーク攻撃とソフトウェア攻撃の違い.
- エ.正解. バッファオーバフローは,プログラムが用意する入力用データ領域を超えるサイズのデータを入力し,メモリ上の隣接領域を上書きして想定外の動作を引き起こす脆弱性攻撃. 戻り番地書換えによる任意コード実行が典型例で,侵入や権限昇格に悪用される. メモリ境界を超える入力で動作を変える点が本質となる.
ITパスポート 2014年 (平成26年 秋期) の過去問一覧へ戻る・問59