見出し画像

【解答例&解説】令和6年度 春期 情報処理安全確保支援士試験 午後 問3

情報処理安全確保支援士試験の、解答例とオリジナル解説を公開します。
あくまでも解答例ですので、正解はIPAのサイト(2024年7月2日正午公開)で確認してくださいね。
この記事の最終更新日は、2024年6月2日です。
皆さまの解答例、ご意見も参考にしたいので、コメントお待ちしております。


■解答例

設問1(1) 9
設問1(2) 窃取したD社管理者用の利用者アカウントを使用して
       サイト管理機能の会員管理機能で利用者情報を取得する。
       (文字数制限なし)
設問2(1) 攻撃者は、異なる利用者アカウントで取得したcsrf_token
       の値を設定した会員機能(編集)へのリクエストを行う
       偽サイトを準備しておく。利用者を偽サイトに誘導し、
       リクエストを実行させる。(文字数制限なし)
設問2(2)a:× b:× c:○ d:× 
設問3(1) ランダムな英大文字6桁の注文管理番号に総当たり攻撃を
       用いる。 30字
設問3(2) ログイン中の利用者アカウントと注文管理番号から特定
       できる利用者アカウントを比較し、不一致の場合エラー
       とする処理。 56字
設問4(1)? 解答例1:CMSの管理ログイン画面のログインは
             GETメソッドでは許可されないため 35字
設問4(1)? 解答例2:公開サーバ経由の攻撃には、ログイン認証
             情報が無いため。27字
設問4(2) リクエストのパラメータの値をストレージWのクレデン
       シャル情報を返すURLに変更し、クラウドWのIMDSにア
       クセスする。(文字数制限なし)
設問4(3)トークンを発行するURLにPUTメソッドでアクセスしトーク
      ンを入手する。入手したトークンをリクエストヘッダに含め
      て、ストレージWのクレデンシャル情報を返すURLに変更し、
      クラウドWのIMDSにアクセスする。(文字数制限なし)
設問4(4)各処理のパラメータ内のURLが正しいことを確認する処理を
      追加する 32字

■解説

設問1(1)

解答:9
解説:問題文のヒントから考える問題
下線①には「設計書を調査した上で」と書かれているので、サイトXに関する設計書の表1からヒントを探します。

診断ツールで確認しているのは、項番5の「問合せ機能」です。これに関連しそうな機能を探すと、項番9が該当します。
スクリプト内容がわからなくても、ヒントから解答を推測しましょう。

設問1(2)

解答:窃取したD社管理者用の利用者アカウントのSESSIONIDを使用して、
   サイト管理機能の会員管理機能で利用者情報を取得する。
       (文字数制限なし)
解説:知識問題
「XSS(クロスサイトスクリプティング)とは、攻撃者が悪意のあるスクリプトをWebサイトに書き込む攻撃です。悪意のあるスクリプトを書き込まれたWebサイトを閲覧すると、悪意のあるスクリプトが実行されます。
Webサイト構築には、「サニタイジング」や「スクリプトからCookieパラメータへのアクセスを防ぐためのCookieにHttpOnly属性を設定する」などのXSS脆弱性対策が必須です。

IPA 独立行政法人 情報処理推進機構
安全なウェブサイトの作り方
https://www.ipa.go.jp/security/vuln/websecurity/cross-site-scripting.html

下線②には、「全会員の利用者情報を取得する」と書かれていますので、XSS攻撃で、表1項番8のサイト管理機能の会員管理機能を利用して利用者情報を取得することができそうだと考えます。
設問で「どのような手順で」と問われているので、XSS攻撃の手順に関するヒントを問題文から探します。
上の解説に書いたXSS脆弱性対策として「HttpOnly属性の設定」が思いついた人は、この文章がヒントがと気が付けるでしょう。

わざわざ、「Secure属性【だけ】がセットされる。」と書かれています。
★ポイント★わざわざ【だけ】と書いてあるのはヒントの印!
XSS脆弱性対策の「HttpOnly属性の設定は、してないよ」ということです。
cookieパラメータはスクリプトからアクセスできるため、パラメータ内のSESSIONIDは、攻撃者に窃取されます。

設問2(1)

解答:攻撃者は、異なる利用者アカウントで取得したcsrf_token
   の値を設定した会員機能(編集)へのリクエストを行う
   偽サイトを準備しておく。利用者を偽サイトに誘導し、
   リクエストを実行させる。(文字数制限なし)
解説:知識問題
「CSRF(クロスサイトリクエストフォージェリ)とは、攻撃者が用意した偽Webサイトにアクセスすることで予期しない処理を実行される攻撃のことです。勝手にSNSの投稿をされたり、不正送金されたりなどの被害を受けます。

IPA 独立行政法人 情報処理推進機構
安全なウェブサイトの作り方
https://www.ipa.go.jp/security/vuln/websecurity/csrf.html

CSRF脆弱性の対策は、問題文に記載のとおり。

サーバ側で、セッション情報(この問題では、SESSIONID)と何らかの認証情報(この問題ではcsrf_token)が正規の利用者のものか確認することで、脆弱性対策になります。

解答のヒントは、表2で、csrf_tokenの違うパターンでテストしていることです。

サイトX側でcsrf_tokenの値が正しいか確認していないことがわかります。
この脆弱性を利用した手順が解答になります。

設問2(2)

解答:a:× b:× c:○ d:×
解説:知識問題
SameSite属性とは、問題文に記載のとおり、守るべきWebサイト(サイトX)と外部Webサイトを遷移するアクセス時のCookieの送信を制限することができる属性です。

設問3(1)

解答:ランダムな英大文字6桁の注文管理番号に総当たり攻撃を
   用いる。 30字
解説:問題文のヒントから考える問題
まず、order-codeって何か確認します。
ヒントは図5の注です。
★ポイント★表や図の注記は解答するのに必要だから書いてある。

order-codeは表1の注文管理番号のことであるため、表1を確認する。

6桁だけの値で構成されているコードに対する攻撃は、総当たり攻撃ですね。

設問3(2)

解答:ログイン中の利用者アカウントと注文管理番号から特定できる
   利用者アカウントを比較し、不一致の場合エラーとする処理。 56字
解説:問題文のヒントから考える問題
利用者αが、閲覧できてはいけない利用者βの注文履歴が閲覧できたことの対策が問われています。
下線⑤までの問題文で、order-codeを改ざんすることで攻撃が成功していました。ということは、order-codeが正しいか確認する処理をアプリに追加する必要があります。
どうやって確認できるか?考えます。ヒントを探します。

ヒントは再び図5の注です。
★ポイント★表や図の注記は解答するのに必要だから書いてある。
「order-codeで利用者が特定できる」とわざわざ書いてくれています。
ということは、ログインしている利用者と一致するかの確認ができます。

設問4(1)

解答例1:CMSの管理ログイン画面のログインはGETメソッドでは許可され
     ないため 35字
解説:問題文のヒントから考える問題
解答例2:公開サーバ経由の攻撃には、ログイン認証情報が無いため。27字
解説:知識問題
問題文のヒントだけから単純に解答考えると解答例1になるけれど、設問の「SSRFの攻撃の特徴を基に」に答えられていないため、解答例2のような解答も考えられます。

SSRF(サーバサイドリクエストフォージェリ)とは、インターネットに公開されている公開サーバを踏み台にして、公開されていない内部サーバへアクセスする攻撃のことです。
XSSとCSRFに比べるとSSRFが登場するのは少ないと思います。
「全くわからない???」となりそうですけれど、諦めずに問題文のヒントから解答を考えましょう。ヒントを探しましょう。
下線⑥の「CMSの管理ログイン画面」について、図2を確認する。

「GETメソッドでは許可されない」が解答っぽいですね。
下線⑥に戻って図7を確認します。

「GETメソッドでは許可されない」を解答にします。
と思ったけれど、設問の「SSRFの攻撃の特徴を基に」に答えられていない気がする…。
SSRFの攻撃の特徴を基に知識だけで解答するとしたら?「公開サーバ経由の攻撃には、ログイン認証情報が無いため」26字 のような解答が正解になるのか?

設問4(2)

解答:リクエストのパラメータの値をストレージWのクレデンシャル情報
   を返すURLに変更し、クラウドWのIMDSにアクセスする。
   (文字数制限なし)
解説:問題文のヒントから考える問題
ストレージWから情報を盗み出すためのクレデンシャル情報の取得方法について問われています。クレデンシャル情報とはユーザIDやパスワードなどの認証に使用する情報の総称です。
ストレージWやクレデンシャル情報について、問題文の図1と図2を確認します。

図2に「クラウドW上のサービスのクレデンシャル情報を返す説明が見つかる。

設問4(3)

解答:トークンを発行するURLにPUTメソッドでアクセスしトークンを
   入手する。入手したトークンをリクエストヘッダに含めて、スト
   レージWのクレデンシャル情報を返すURLに変更し、クラウドWの
   IMDSにアクセスする。(文字数制限なし)
解説:問題文のヒントから考える問題
〔SSRFについて〕と図2の〔IMDSについて〕から解答を考えます。

この設問は、上記ヒント(方法2)の「トークン(一時的に使用する認証情報)を入手して、情報を入手する」を具体的表現に変えて解答することが求められていると考えられます。

設問4(4)

解答:各処理のパラメータ内のURLが正しいことを確認する処理を追加する
   32字
解説:問題文のヒントから考える問題
〔SSRFについて〕に記載されている脆弱性は、リクエストパラメータのURLを改ざんすることで発生しているため、改ざんされていないことを確認する処理を追加する。

最後までお読みいただきありがとうございました。
少しでも参考になれば幸いです。

■更新履歴

2024/4/21(日) 試験日
2024/6/2(日) 作成・公開


この記事が気に入ったらサポートをしてみませんか?