IPA Webアプリケーション・ソフトウェアの脆弱性 — 頻出論点と過去問
頻出論点
1. この分野は何か
Webアプリケーションやプログラムを作るときに入り込む脆弱性とそれを突く攻撃を、どう実装・設定すれば防げるかという作り手の側から扱います。どの脆弱性にどの実装や設定が効くかを結びつけられるようになります。
2. 実際の出題のされ方
入力値の無害化や開発初期からの対策という基本概念は、ITパスポートで問われます。入力内容に含まれる有害な文字列を無害な文字列に置き換えるサニタイジングや、企画・設計段階から情報セキュリティを確保するセキュリティバイデザインの用語が出題されています。
攻撃ログからの原因推定や、ヘッダ・Cookie・セッション管理による防御策は、応用情報技術者の午前と高度試験の午前Iで出題されます。リクエストのパラメータに;とOSコマンドが続くログから悪用されかけた脆弱性を推測する問題、シェルを起動できる言語機能を避ける実装対策、URLパラメータによる自動遷移機能を悪用して偽サイトへ誘導するオープンリダイレクトが出題されています。また、HTTPレスポンスヘッダにX-Frame-Optionsを設定するクリックジャッキング対策、ログアウト時にWebサーバ側でセッションIDを無効化するセッション乗っ取り対策、CookieのSecure属性やサードパーティCookieのブロック効果も問われています。
脆弱性ごとの根本対策と軽減策の切り分けや、言語仕様・並行処理に関わる実装上の欠陥は、高度試験の午前IIで問われます。SQLインジェクションにおける実装対策(静的プレースホルダ)と実装以外の対策(データベースアカウントの権限最小化)の組み合わせ、クロスサイトリクエストフォージェリ(CSRF)に対して効果がない対策を選ぶ問題、掲示板への書き込みを通じてスクリプトが保存・実行される格納型クロスサイトスクリプティング(Stored XSS)と反射型の区別が出題されています。さらに、Perlのsystem関数やPHPのexec関数を介したOSコマンドインジェクション、HSTSの動作、排他制御の不備によるレースコンディション、メモリ保護機能を備えたプログラム言語を用いるメモリ安全性(Memory Safety)も問われています。
3. 学習のポイント
第一に、主要なWeb脆弱性と根本対策の対応を確実に結びつけます。
- SQLインジェクション: 静的プレースホルダ(バインド機構)でSQL文を組み立てるとともに、DBアカウントの権限を必要最小限にします。
- OSコマンドインジェクション:
;などのメタ文字とOSコマンドが注入され、exec関数やsystem関数でシェルが実行される脆弱性です。シェルを起動できる言語機能の利用を避けます。 - クロスサイトスクリプティング(XSS):
<や>などの特殊文字を&lt;や&gt;に置き換えるエスケープ処理(サニタイジング)を行います。サーバ上にスクリプトが保存される格納型と、罠リンクの応答にそのまま含まれる反射型があります。 - CSRF: ログイン中の利用者に罠サイト経由で意図しないリクエストを送らせる攻撃です。推測困難な秘密の値(トークン)の照合、重要操作時のパスワード再入力、
Refererによる遷移元確認が有効です。
第二に、Cookie属性とHTTPレスポンスヘッダの動作を整理します。CookieのSecure属性はURLスキームがhttpsのときだけ送出させ、HttpOnly属性はJavaScriptからの読出しを禁止し、サードパーティCookieのブロックは複数サイト横断のトラッキングを防ぎます。また、X-Frame-Optionsヘッダは他サイトのフレーム内への読み込みを制限して透明なフレームを重ねるクリックジャッキングを防ぎ、Strict-Transport-Security(HSTS)ヘッダを返すと、ブラウザは指定された有効期間中、そのサイトへの接続を自動的にTLSによるHTTPSへ切り替えます。
第三に、ソフトウェア実装上の欠陥を押さえます。確保したメモリ領域を超える入力で誤動作を招くバッファオーバーフローやメモリリークを防ぐには、直接メモリにアクセスする機能を避けメモリ保護機能を備えた言語を採用します。また、複数プロセス・スレッドが共有リソースに同時アクセスして想定外の動作をする問題はレースコンディション(競合状態)と呼びます。
4. 間違えやすいところ
XSS対策とCSRF対策の混同を突く問題が出ています。リクエストに含まれる<や>などの特殊文字を&lt;や&gt;に置き換える処理はXSS対策であり、CSRF対策としては効果がありません。また、CSRF対策としてリクエストにGETメソッドを使用するとしたり、セッションハイジャック対策として利用者ごとに固定のセッションIDを使用するとしたり、ログアウト時にWebブラウザのキャッシュだけをクリアするとしたりする誤答にも注意が必要です。
さらに、CookieのSecure属性とHttpOnly属性・Path属性・有効期間属性の説明を入れ替えた選択肢や、HSTSの説明としてEV SSL証明書のときにアドレスバーを緑色にする仕組みや同一オリジンポリシーによるアクセス制限を挙げる選択肢、メモリ安全性の事例としてハードウェアのECCメモリや宇宙線対策の多重化を選ばせる選択肢もあります。
Webアプリケーション・ソフトウェアの脆弱性の理解度チェック
Webアプリケーション・ソフトウェアの脆弱性の過去問一覧
- 2026年度(R8) ITパスポート 問95 SQLインジェクションの対策などで用いられ,処理の誤動作を招かないように,利用者がWebサイトに入力した内容に含まれる有…
- 2025(R7)秋 エンベデッドシステムスペシャリスト 午前II 問17 組込みシステムにおける,ソフトウェアのメモリ安全性(Memory Safety)を考慮した事例として,適切なものはどれか…
- 2025(R7)秋 情報処理安全確保支援士 午前II 問16 クロスサイトリクエストフォージェリ攻撃の対策として,効果がないものはどれか。…
- 2025(R7)春 応用情報技術者 午前 問36 Webサーバのログを分析したところ,Webサーバへの攻撃と思われるHTTPリクエストヘッダーが記録されていた。次のHTT…
- 2025(R7)春 応用情報技術者 午前 問41 cookieにSecure属性を設定しなかったときと比較した,設定したときのWebブラウザの動作として,適切なものはどれ…
- 2025(R7)春 応用情報技術者 午前 問42 Webアプリケーションソフトウェアの開発におけるOSコマンドインジェクション対策はどれか。…
- 2025(R7)春 高度試験共通 午前I 問14 Webアプリケーションソフトウェアの開発におけるOSコマンドインジェクション対策はどれか。…
- 2025(R7)春 ITストラテジスト 午前II 問23 プログラムの排他制御の不備によって,プロセスやスレッドが共有リソースに同時アクセスした場合に想定外の動作をするという問題…
- 2024(R6)秋 システム監査技術者 午前II 問18 オープンリダイレクトを悪用した攻撃に該当するものはどれか。…
- 2024(R6)秋 情報処理安全確保支援士 午前II 問14 クリックジャッキング攻撃に有効な対策はどれか。…
- 2024(R6)春 情報処理安全確保支援士 午前II 問1 クロスサイトリクエストフォージェリ攻撃の対策として,効果がないものはどれか。…
- 2024(R6)春 情報処理安全確保支援士 午前II 問13 HTTP Strict Transport Security (HSTS)の動作はどれか。…
- 2023(R5)秋 情報処理安全確保支援士 午前II 問1 Webアプリケーションソフトウェアの脆弱性を悪用する攻撃手法のうち,入力した文字列がPHPのexec関数などに渡されるこ…
- 2023(R5)春 情報処理安全確保支援士 午前II 問17 SQLインジェクション対策について,Webアプリケーションプログラムの実装における対策と,Webアプリケーションプログラ…
- 2023年度(R5) ITパスポート 問61 IoTシステムなどの設計,構築及び運用に際しての基本原則とされ,システムの企画,設計段階から情報セキュリティを確保するた…
- 2022(R4)秋 情報処理安全確保支援士 午前II 問11 クリックジャッキング攻撃に有効な対策はどれか。…
- 2022(R4)春 応用情報技術者 午前 問40 Webブラウザのcookieに関する設定と,それによって期待される効果の記述のうち,最も適切なものはどれか。…
- 2022(R4)春 情報処理安全確保支援士 午前II 問1 Webサーバのログを分析したところ,Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTP…
- 2022(R4)春 情報処理安全確保支援士 午前II 問14 HTTP Strict Transport Security (HSTS)の動作はどれか。…
- 2021(R3)秋 応用情報技術者 午前 問44 オープンリダイレクトを悪用した攻撃に該当するものはどれか。…
- 2021(R3)秋 情報処理安全確保支援士 午前II 問10 cookieにSecure属性を設定しなかったときと比較した,設定したときの動作として,適切なものはどれか。…
- 2021(R3)春 応用情報技術者 午前 問37 Webサイトにおいて,クリックジャッキング攻撃の対策に該当するものはどれか。…
- 2021(R3)春 応用情報技術者 午前 問44 Webシステムにおいて,セッションの乗っ取りの機会を減らすために,利用者のログアウト時にWebサーバ又はWebブラウザに…
- 2021(R3)春 高度試験共通 午前I 問15 Webシステムにおいて,セッションの乗っ取りの機会を減らすために,利用者のログアウト時にWebサーバ又はWebブラウザに…
- 2021(R3)春 ネットワークスペシャリスト 午前II 問21 Webアプリケーションソフトウェアの脆弱性を悪用する攻撃手法のうち,入力した文字列がPerlのsystem関数,PHPの…
- 2021(R3)春 システムアーキテクト 午前II 問17 格納型クロスサイトスクリプティング(Stored XSS又はPersistent XSS)攻撃に該当するものはどれか。…
- 2021(R3)春 情報処理安全確保支援士 午前II 問12 安全なWebアプリケーションの作り方について,攻撃と対策の適切な組合せはどれか。…
- 2021(R3)春 情報処理安全確保支援士 午前II 問15 HSTS(HTTP Strict Transport Security)の説明はどれか。…
- 2021(R3)春 ITストラテジスト 午前II 問23 格納型クロスサイトスクリプティング(Stored XSS 又は Persistent XSS)攻撃に該当するものはどれか…
- 2018(H30)秋 システムアーキテクト 午前II 問23 格納型クロスサイトスクリプティング(Stored XSS又はPersistent XSS)攻撃に該当するものはどれか。…
- 2018(H30)秋 システムアーキテクト 午前II 問25 Webアプリケーションにおけるセキュリティ上の脅威とその対策に関する記述のうち,適切なものはどれか。…
- 2016(H28)秋 システムアーキテクト 午前II 問24 安全なWebアプリケーションの作り方について,攻撃と対策の適切な組合せはどれか。…
Webアプリケーション・ソフトウェアの脆弱性の用語
セキュリティ技術のほかの論点
暗号方式・ハッシュ53問 デジタル署名・PKI48問 利用者認証・SSO・ID連携61問 サイバー攻撃手法45問 マルウェア24問 ネットワーク防御・セキュリティ製品33問 セキュアプロトコル・無線LAN・接続認証48問 DNS・電子メールのセキュリティ54問 ハードウェア・物理的セキュリティ32問 脆弱性管理・セキュリティ監視44問