セキュリティスペシャリスト
問題はIPAからご確認ください。
https://www.ipa.go.jp/shiken/mondai-kaiotu/2021r03.html#aki_sc
答えはIPAの回答例となります。
概要
設問1
(1)
答え:ア
(2)
既知の脆弱性が修正された安全性が確認できているライブラリをWebサイトからダウンロードしているとありますが、今回使用したライブラリMは脆弱性対策していない物でした。
その結果、サイトB以外にもサイトX・Y・ZもXSS脆弱性が検出されてしまいました。
ですので、対策としては自身でもライブラリに既知の脆弱性がないかを確認するとか、開発メンバがそれぞれダウンロードしているので、信頼できるWebサイトからのみ入手するようにするなどルール化し、明文化する。
答え:ダウンロードするライブラリに既知の脆弱性がないかを確認する。
特定のWebサイトからの入手をルール化し、明文化する。
設問2
利用者Aで発行したcsrftokenを利用者Bで設定して送信したら正常に処理されてしまいました。
この結果から、csrftokenの値と利用者IDやセッションIDのひも付けができていないことが分かります。
答え a:利用者ID
b:セッションオブジェクト
設問3
(1)
クリックジャッキングは、
罠となるWEBサイトの上に「iframe(インラインフレーム)」と呼ばれる透明なページを被せて、
悪意のあるサイトを見えなくしてユーザを視覚的に騙してクリックさせて意図しない操作をするようにする攻撃です。
答えは攻撃者は画面βを利用者から見て奥に可視の状態で罠サイトに公開し、
サイトXの画面αを利用者からみて手前に透明な状態で重ねて表示する。になります
答え c:イ d:ア e:ア f:ア g:イ h:イ
(2)
クリックジャッキング対策としては
Java ScriptやFlashなどをブラウザで無効にしておくという方法が良く上がりますが、今回の問題にヘッダにとなっているので、ヘッダに加える対策として
「X-Frame-Options」の設定があります。
X-Frame-Optionsとは外部サイトの表示制限を行うHTTPレスポンスヘッダのことで、Webページ内に埋め込まれた外部サイトを表示させるかどうかを指定できます。
「Content Security Policy」の設定もあります。
CSPはいろんなポリシーを設定してブラウザ上でのコンテンツ読み込みを制限して、リスクを軽減する仕組みです。
答え i:エ j:イ
設問4
SSRF(Server Side Request Forgery)はインターネット上の公開サーバーにアクセスできまが、内部サーバーへはアクセスできない。
こんな時、攻撃者は公開サーバーに対して攻撃コマンドを送信して、公開サーバーを経由して内部サーバーに攻撃をします。
問題文の表2にYサイトのDBサーバにはメンテナンス用のWebインタフェースとして「https;//db-y.b-sha.co.jp/」のURLがあるので、それをtopicに指定します。
答え:topicの値をhttps://db-y.b-sha.co.jp/に変更した。
設問5
(1)
順序1でHostヘッダをV氏のサイトFQDNに変更してます。
returnURLには登録されていない駅名が指定されたときに利用されるURLを指定となっているので、
登録されていない駅名を入れたときに順序3でP社サイトはV氏のサイトを含めて返答することになります。
答え k:V氏が用意したサイト
(2)
レスポンスのURLが想定外だったらアクセスしないようにする対策ですが、
そもそもサイトZしか想定していなそうなので、値を固定にしてしまえば、調べる必要もないし変更されることもなくなります。
答え:returnURLの値を固定値にする。
設問6
(1)
ソースコードレビューやツールによる診断で表1で
「セッション管理の脆弱性は1部だけが対象外」「認可・アクセス制御の脆弱性は対象外」となっているので
答え 1:一部のセッション管理の脆弱性
2:許可・アクセス制御の脆弱性
(2)
専門技術者の診断期間は表1で大体10日位となっており、
改良フェーズは半年に一回、1か月の休止期間があるので、その間は改良リリースに影響がないので、その期間に実施するのが望ましいです
答え:改良フェーズにおける1か月の休止期間
(3)
下線⑦は開発プロセスを見直すことになります。((2)を参照)
現状は専門技術者の診断期間は表1で大体10日位掛かり、改良リリースは2週間間隔で行っている。
20回に1回は大規模改修があり、リリース間隔が1か月になるとあるので、
脆弱性診断を行うときにもリリース間隔を伸ばしてもらうなどすれば行けそうです。
答え:専門技術者による脆弱性診断が必要なときは、改良リリースを次回に持ち越す。
:半年に一度、改良リリースの期間を長くする。
:定期的に、期間の長い改良リリースを設ける。
(4)
設問2でcsrftokenの値と利用者IDやセッションIDのひも付けができていないことが解りましたので、
答え:CSRF対策用トークンの発行、HTMLへの埋め込み、必要なひも付け、及びこれを検証する処理
コメント