情報処理安全確保支援士 令和4春 午後2 問1 No.1

設問1 【サイトBのXSS脆弱性】について、(1),(2)に答えよ。

(1)本文中の下線①における診断リクエストの構成要素を、解答群の中から選び、記号で答えよ。


解答:ア

図1のライブラリMのコードに当てはめると、次の文字列を出力します。

out.printlnは、Javaの代表的な関数です。
引数の値を文字列として出力します


バックスラッシュ(\)は、エスケープシーケンスで、ダブルクォーテーション(”)を文字として表示するために入れているため、out.printlnで文字列出力する時には削除します。


<meta property=”og:url” content=”https://serverName/scriptName?queryString“>


serverName,scriptName,queryStringは、注記に記載がある通りです。

  • serverName:リクエストURLのホスト名(www.b-sha.co.jp)
  • scriptName:URLのパス名
  • queryString:URLのクエリ文字列以降の値がURLデコードされて格納


選択肢に当てはめると、以下の通りです。

scriptNamequeryString
confirm“><img src=1 oneeror=alert(1)><“<meta property=”og:url” content=”https://www.b-sha.co.jp/confirm?“><img src=1 oneeror=alert(1)><“ “>
confirm“><img src=1 oneeror=alert(1)><“<meta property=”og:url” content=”https://www.b-sha.co.jp/confirm?><img src=1 oneeror=alert(1)><“ “>
→contentのURL末尾にダブルクォーテーションがないため、文法エラー
cofirmなし
cofirmなし

(2)本文中の下線②について、考えられる再発防止策を、35字以内で答えよ。

解答:ダウンロードするライブラリに既知の脆弱性がないかを確認する。/特定のWebサイトからの入手をルール化し、明文化する

本文中の「既知のXSS脆弱性の対策をしていないバージョンであった。その結果、ライブラリMを使っているサイトB、サイトX、サイトY及びサイトZにおいて、同じXSS脆弱性が検出された」より、

サイトB、X、Y、ZにおけるXSS脆弱性の原因は、ライブラリMのバージョンがXSS脆弱性対策をしていないことです。


また、「B社では、開発部のメンバそれぞれが、マルウェアが含まれていない、既知の脆弱性が修正された、安全性が確認できているライブラリを公開しているWebサイトから、ファイルサーバにダウンロードし、使用している」ため、ダウンロードする時にライブラリに脆弱性がないかを確認したり、そもそもこのWebサイトからライブラリをダウンロードすることをルール化すれば、再発防止になりますね、