情報処理安全確保支援士試験 令和3年度 秋期 午後2 問1
【出典:情報処理安全確保支援士試験 令和3年度 秋期 午後2 問1(一部、加工あり)】
問1 N協力会社とのファイルの受渡しに関する次の記述を読んで、設問1〜5に答えよ。
U社は、従業員10,000名の半導体製造業であり、国内に工場を置いている。U社では、幾つかの工程を国内の40社の協力会社に委託しており、生産計画や設計書類のファイルを協力会社との間で受け渡す必要がある。ファイルの受渡し件数は、協力会社によって異なるが、1日当たり1件から10件である。U社では、生産管理課が協力会社とのファイルの受渡しを担当している。ファイルの受渡しには、Webベースのファイル交換システム(以下、Dシステムという)を使用している。Dシステムは、HTTPサーバ及びU社が開発したWebアプリケーションプログラム(以下、Uアプリという)から成る。Dシステムでは受発注に関するファイルは取り扱っていない。
図1は、Dシステムに関係する機器の全体構成である。
U社の生産管理課及び協力会社に設置したファイル受渡し用PCからDシステムまでのアクセスは、HTTTPSで行われている。U社ネットワーク内からDシステムにアクセスできる端末は、FWの設定によって、生産管理課に設置したファイル受渡し用PCだけに制限している。
Dシステムのアカウントは、協力会社の拠点ごとに一つ、U社が発行している。Dシステムの利用者認証は、利用者IDとパスワードによって行われている。
[セキュリティインシデントの発生]
ある日、Dシステムのトップページが改ざんされるというセキュリティインシデントが発生した。調査したところ、HTTPサーバの既知の脆弱性を悪用した攻撃によって改ざんされたと分かり、脆弱性修正プログラムの適用などをしてから復旧した。
セキュリティインシデントの調査の過程で、HTTPサーバのアクセスログから、協力会社P社に発行したアカウントを用いて海外のIPアドレスからアクセスした履歴が見つかった。このアクセスは、Dシステムの利用規約や法令に違反しているおそれがあるので、P社に問い合わせたところ、P社の従業員の1人が海外出張先からアクセスしていたことが分かった。
Dシステムの利用規約では、ファイル受渡し用PCには、各協力会社の社内への設置、並びに盗難対策、マルウェア対策及びファイルの不正持出し対策を求めている。また、Dシステムには、ファイル受渡し用PCからだけアクセスすることを求めている。しかし、U社ではいずれの遵守状況も確認していなかった。
こういった利用規約違反への対策として、海外からのアクセスをFWで禁止した。さらに、協力会社以外からのアクセスを検知するために、SIEM(Security Information and Event Management)を導入した。
[Dシステムの脆弱性診断]
U社は、ほかにもDシステムに対策が必要な脆弱性がないかどうかを確認するために、脆弱性診断をセキュリティ専門会社であるN社に依頼した。
診断の結果、クロスサイトスクリプティング(以下、XSSという)脆弱性などが発見された。XSS脆弱性が発見された箇所を、図2に示す。
N社の、XSS脆弱性についての報告を図3に示す。
a:<、b:>
「備考:(a) script (b) alert(‘XSS!) (a) /script (b) <br>」
図4(診断用URL1)の「https://dsys.u-sha.co.jp/submitdescription?fileID=001023&description=<script>alert(‘XSS!’)</script>&checkbox=on&refURL=http%3A%2F%2Fwww.u-sha.co.jp/」をWebブラウザのアドレスバーに入力して得られた内容です。
これを分解して、図2(XSS脆弱性が発見された箇所)の画面との対応付けを確認すると以下のようになっています。
- https://dsys.u-sha.co.jp/submitdescription:画面BのURL
- fileID=001023:ファイル
- description=<script>alert(‘XSS!’)</script>:備考
- checkbox=on:チェックボックス(参考URLあり)
- refURL=http%3A%2F%2Fwww.u-sha.co.jp/:http://www.u-sha.co.jp(参考URL)
該当するのは備考の「<script>alert(‘XSS!’)</script>」ですが、図3(XSS脆弱性の報告(抜粋))の⑶に「図5から、descriptionパラメタの値を画面Bの備考に出力する際には、エスケープ処理が正しく行われており、XSS脆弱性は認められない」とありことから、「<」「>」はエスケープ処理によって置換されそれぞれ「<」「>」となります。
c:エ
「参考URL:<a href=”(c)”> (c)</a>」
ア:onmouseover=alert(‘XSS!’)
イ:”><script>alert(‘XSS!’)</script>
ウ:http:<script>alert(‘XSS!’)</script>
エ:javascript:alert(‘XSS!’)
図6(診断用URL2)の「https://dsys.u-sha.co.jp/submitdescription?fileID=001023&description=test2&checkbox=on&refURL=(c)」をWebブラウザのアドレスバーに入力して得られた内容です。
これについては、図3(XSS脆弱性の報告(抜粋))の⑷に「診断用URL2を入力した時に表示された画面B上で、参考URLのリンクをクリックすると、”XSS!”という内容のダイアログボックスが表示された」、⑸に「上記⑷と、図7から、refURLパラメタの値を画面Bの参考URLのリンクとして出力する際の処理に問題があり、XSS脆弱性が存在すると認められる」」とあります。
画面Aの参考URLに入力したURLは「refURL=(c)」としてサーバに送信され、HTTPレスポンスとしてはリンク先のURLを示す「a href=”(c)”」と、画面上に表示する「> (c)」となります。
選択肢の中で、参考URLのリンクをクリックした時に”XSS!”という内容のダイアログボックスが表示されるのは、<a href=”javascript:alert(‘XSS!’))”> javascript:alert(‘XSS!’)</a>となります。