令和6年度(秋期)問4の分析|情報処理安全確保支援士

問題・解答は情報処理推進機構(IPA)のページからダウンロードできます。
概要
問題の要約
セキュリティ診断に関する問題です。
開発したWebアプリケーションとWebAPIのセキュリティ診断を行ったところ、セッションフィクセーション、メールヘッダーインセクション及びHTTPヘッダーの不備が指摘されたというストーリーです。
主な論点
- RESTful API
- セッションフィクセーション(セッションの固定化)
- メールヘッダーインジェクション
- HTTPヘッダーの不備
- Content-Security-Policy(CSP)
- Strinct-Transport-Security(HSTS)
- X-Content-Type-Options
着眼点
問題点 |
P31図2注1 求職者IDは、求職者が利用者登録をした年月日の8桁の数字の後ろに、日付ごとに000001から登録順に割り当てられる6桁の数字を加えた数字14桁の文字列である。 |
脆弱性 |
IDの文字列に規則性があり、推測可能である。 |
問題点 |
P33図3注2 「会社名」「部署名」「メールアドレス」を変更する画面において、メールアドレス以外だけを変更した場合、「プロパティを変更しました。」という画面が表示され、メールは送信されない。 |
脆弱性 |
攻撃者により「会社名」「部署名」が変更されたとしても、メールが送信されないため、正規の利用者は気付かない。 |
対策 |
「会社名」「部署名」のみを変更した場合であっても、メールを送信するように変更する。(設問3) |
問題点 |
P34図4 Wサイトではform内のhiddenフィールドであるsessionIDの値だけでセッション管理をしていたところ、いずれの画面遷移においても、HTTPレスポンス中のsessionIDの値が同一である。 |
脆弱性 |
sessionIDが共通しているため、セッションフィクセーションによりいずれの画面遷移も攻撃者がなりすますことができる。 具体例 攻撃者が取得したsessionIDをログイン画面に送信する罠サイトを通して正規の利用者がログインすることで、攻撃者はそのsessionIDを利用して正規の利用者のログイン後の画面にアクセスすることができる。(P35図A) |
対策 |
使用済みのsessionIDを無効にした上で、新しいsessionIDを発行する。(設問1(4)d) |
問題点 |
P35 攻撃者がフォームに不正な値(「%0D%0A」(改行2回))を入力することで、メールのヘッダー部に入る宛先のメールアドレス(ヘッダーTo)がメールのボディ部に入り、攻撃者にメールが送信され、本来の宛先にメールが送信されない事象が生じる(メールヘッダーインジェクション)。 |
脆弱性 |
改行2回を表す文字例の入力が許容されることで、ヘッダー部とボディ部が不正に操作される。 |
対策 |
改行を表す文字列をエスケープ処理する。 |
問題点 |
P36 MサイトのHTTPレスポンスに以下のHTTPヘッダーが出力されていなかった。 ・Content-Security-Policy ・Strict-Transport-Security ・X-Content-Type-Options |
脆弱性 |
・Content-Security-Policyが指定されていない場合 ブラウザの接続先と異なるオリジンのスクリプトが読み込まれ、クロスサイトスクリプティング攻撃やクリックジャッキング攻撃を受けやすくなる。 ・Strict-Transport-Securityが指定されていない場合 HTTPを用いた通信が許容され、通信の盗聴やなりすましのリスクがある。 ・X-Content-Type-Optionsが指定されていない場合 ブラウザがMIMEタイプをhtmlに変更することで、不正なスクリプトが実行されるリスクがある(MIMEスニッフィング)。 |
対策 |
・content-security-policy: default-sec ‘self’と指定し、Webブラウザが実行可能なスクリプトの有効なソースとなるドメインを、Mサイトで必要なものだけに限定する(P36表D)。 ・Strict-Transport-Securityを指定することで、Mサイトへの接続をHTTPSに強制することができる(HSTS、設問1(5)e)。 ・X-Content-Type-Options: nosniffと指定することで、Mサイトのコンテンツに対して、Content-Typeヘッダーで指定したMIMEタイプを強制的に適用することができる(設問1(5)f)。 |
問題点 |
P37表E TLS 1.1が利用可能 |
脆弱性 |
ダウングレード攻撃によりSHA-1などの脆弱な暗号アルゴリズムがサポートされたTLS 1.1が利用された場合、通信の内容が解読される可能性がある。 |
対策 |
TLS1.1を無効化する。 |
問題点 |
P37表E HTTPサーバのバージョンの露出 |
脆弱性 |
当該HTTPサーバのバージョンに脆弱性があった場合、攻撃の対象となりやすい。 |
対策 |
HTTPサーバのバージョンを隠ぺいする。 |
情報処理推進機構(IPA)の講評
脆弱性は一つ一つが警備でも、複数組み合わされて悪用されると、重大な被害につながることがある。また、診断ツールで検出される脆弱性以外にも、想定される攻撃に対して、セキュリティ対策が不足しているといった脆弱性もある。診断書がこういった脆弱性も報告に含めることで、その後、システムのセキュリティが大きく向上することがある。
本問では、個人情報を取り扱うWebサイトに対するセキュリティ診断を題材に、診断ツールで検出された脆弱性について、悪用された場合の被害を低減するための対策を立案する能力を問う。
問4では、個人情報を取り扱うWebサイトに対するセキュリティ診断を題材に、診断ツールで検出された脆弱性について、悪用された場合及び被害を低減するための対策について出題した。全体として正答率は平均的であった。
設問1(2)は、正答率が高かった。セッションフィクセーション脆弱性について、よく理解できていた。
設問1(5)fは、正答率が低かった。攻撃による被害を軽減するHTTPヘッダーについて、設定した場合の効果をよく理解してほしい。
設問2gは、正答率が低かった。攻撃の後の流れに合っていない解答が散見された。Webサイトの全体の機能を考慮し、脆弱性を組み合わせて悪用する攻撃を考える能力を培ってほしい。
設問3は、正答率がやや低かった。被害を軽減できない誤答が散見された。Webサイトでは、取り扱う情報の機密性などに応じた、認証やアクセス制限が必要である。それぞれのWebサイトの特性を考慮したセキュリティ対策を策定する能力を培ってほしい。