ITパスポート 令和7年度 問70:securityに関する問題
情報セキュリティにおける脅威のうち,脆弱性を是正するセキュリティパッチをソフトウェアに適用することが最も有効な対策になるものはどれか。
- a総当たり攻撃
- bソーシャルエンジニアリング
- cパスワードリスト攻撃
- dバッファオーバーフロー正答
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは d「バッファオーバーフロー」 です。
これは、ソフトの「箱(メモリ)」に、入りきらないほど大量のデータを無理やり詰め込んで誤作動させる攻撃です。原因はソフト側の“作りの甘さ(欠陥)”なので、開発元が配る修正プログラム(セキュリティパッチ)を当てれば穴がふさがり、防げます。
👉 覚え方:「ソフトの欠陥が原因の攻撃」はパッチで直せる。
ほかの選択肢:a 総当たり攻撃/c パスワードリスト攻撃=どちらもパスワードを破る攻撃で、長く複雑な合言葉やログイン制限で防ぐ。b ソーシャルエンジニアリング=人をだます手口で、社員教育で防ぐ。これらはパッチでは直りません。
なぜこれが正解か
正解は d。バッファオーバーフローは、プログラムが用意したメモリ領域(バッファ)を超えるデータを送り込み、本来上書きしてはいけない領域を書き換えて不正な動作(任意コード実行など)を引き起こす攻撃。原因はソフトウェアの実装上の脆弱性なので、セキュリティパッチによる修正が最も有効な対策となる。
各選択肢の解説
- a 総当たり攻撃:パスワードを片端から試す攻撃。対策はパスワード強化・ロックアウト。
- b ソーシャルエンジニアリング:人をだまして情報を聞き出す手口。対策は教育・運用ルール。
- c パスワードリスト攻撃:流出した認証情報の使い回しを突く攻撃。対策はパスワード使い回しの防止・多要素認証。
覚え方・ひっかけ注意
「パッチ=ソフトの欠陥(脆弱性)を直す薬」。よって“ソフトの作りの不具合を突く攻撃”だけがパッチで防げる。a・b・cは認証や人を狙う攻撃で、パッチでは防げないのが見分け方。
理論的背景
バッファオーバーフロー攻撃は、プログラムが確保したメモリ領域(バッファ)の境界を超えてデータを書き込むことで、隣接するメモリ領域を上書きし任意のコードを実行させる攻撃手法である。正解はdのバッファオーバーフローに対してセキュリティパッチ適用が最も有効である。
バッファオーバーフローの発生原理を技術的に詳述する。C言語・C++などの低レベル言語では、配列やバッファのサイズ検査をプログラマが明示的に行わない場合、境界外のメモリへの書き込みが発生する。スタックベースのバッファオーバーフローでは、関数の戻りアドレスが格納されるスタック領域を上書きし、攻撃者が指定したアドレスに制御フローを変更できる。ヒープベースのバッファオーバーフローでは動的に確保されたメモリのメタデータを破壊する。これらはいずれもソフトウェアのコーディングミス(脆弱性)に起因するため、ソフトウェアベンダーがパッチを提供して根本的に修正することが最も有効な対策となる。
他の選択肢が誤りである理由:総当たり攻撃(ブルートフォース・a)はパスワード空間の全パターン試行であり、アカウントロックアウト・長いパスワード・多要素認証が有効な対策であり、パッチ適用は直接有効ではない。ソーシャルエンジニアリング(b)は人間の心理的脆弱性を突く攻撃でありセキュリティ教育・手順整備が有効。パスワードリスト攻撃(c)は漏洩したパスワードリストを使う攻撃でパスワードの使い回し禁止・多要素認証が有効。
実務での使われ方
バッファオーバーフロー脆弱性は数十年にわたり最も危険なソフトウェア脆弱性の一つであり続けており、MITRE CWEトップ25(最も危険なソフトウェア脆弱性)において毎年上位にランクインしている(CWE-787:Out-of-bounds Write)。
現代のソフトウェア開発では複数の緩和策が標準的に実装されている。ASLR(Address Space Layout Randomization:アドレス空間配置ランダム化):実行のたびにコードやスタックのアドレスをランダム化し、攻撃者が上書き先アドレスを予測困難にする。DEP/NX(Data Execution Prevention / No Execute):データ領域(スタック・ヒープ)でのコード実行を禁止するメモリ保護機能。スタックカナリア:関数の戻りアドレスの手前に特定値(カナリア値)を置き、上書きされた場合にプログラムを中止する。これらはあくまで緩和策であり、根本的修正はパッチ(コードの修正)である。
試験での位置づけ
セキュリティパッチの効果的な適用対象の識別はITパスポートのセキュリティ分野で頻出の出題パターンである。各攻撃手法の仕組みと対策の対応関係を整理することが正答への近道であり、「パッチはソフトウェアの実装上の欠陥(脆弱性)を修正するもの→ソフトウェアの脆弱性に起因する攻撃に最も直接的に有効」という原則を把握していれば本問は確実に解ける。
情報処理安全確保支援士試験では、バッファオーバーフローの技術的詳細(スタック構造・ROP:Return-Oriented Programming攻撃)・CVE(Common Vulnerabilities and Exposures)・CVSS(Common Vulnerability Scoring System)によるリスク評価・パッチ管理プロセス(ITSM・脆弱性管理ツール:Qualys・Tenable等)まで出題される。
選択肢の発展補足
総当たり攻撃(a)は現代では単純なブルートフォースより、より高度な「パスワードスプレー攻撃」(少数のよく使われるパスワードを多数アカウントに試す)や「クレデンシャルスタッフィング(パスワードリスト攻撃)」として実施されることが多い。多要素認証(MFA)の普及により、パスワード単体の攻撃の効果は低下している。ソーシャルエンジニアリング(b)は技術的な対策では防ぎにくく、フィッシング訓練・セキュリティ意識向上教育・手順書の整備が主要な対策となる。近年のBEC(Business Email Compromise:ビジネスメール詐欺)はAI生成のフィッシングメールを使った高度なソーシャルエンジニアリングとして猛威を振るっており、2023年のFBI報告ではBECによる被害総額が21億ドル以上に上っている。
出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和7年度 問70/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。