問題はIPAからご確認ください。
https://www.ipa.go.jp/shiken/mondai-kaiotu/2021r03.html#aki_sc
答えはIPAの回答例となります。
設問1
問題 表2中の下線①について、別の方法を、30字以内で答えよ。

表2を確認すると作業者がサイトのトップページから順に確認しても、確認項目が漏れるとなっています。
一般的にWebサイトにはトップページからリンクされていないページやファイルがありますので、サイトを巡回しても確認できないページが発生します。
なので設計書などを取得して、全ページを確認する方法が多いと思います。
答え:診断対象のWebサイトの設計書を確認するという方法
設問2
(1)
問題 表3中及び本文中の「a」、「b」に入れる適切な字句を、解答群の中から選び、解答群の中から選び、記号で答えよ。
ア:” イ:’ and ’ a’=’a ウ:’ and ’ a’=’b エ:and 1=0 オ:and 1=1

B社内の結果を見ると、検索した際にkeyword=manualは10件ヒットしていて、manual’だと0件です。
これを踏まえて「a」、「b」をア~オで考えると
ア=「”」なので、「manual”」である行を探し、おそらく該当しないので、0件となります。
SELECT * FROM sample-table where keyword = ‘manual”‘
イ=「’ and ’ a’=’a」なので、「manual と (a=aでture)」なので、manualが10件ヒットしているので同じく、10件となります。
SELECT * FROM sample-table where keyword = ‘manual’ and ’ a’=’a’
ウ=「’ and ’ a’=’b」なので、「manual と (a=bでfalse)」なので、常に不一致となり該当なしで0件となります。
SELECT * FROM sample-table where keyword = ‘manual’ and ’ a’=’b’
エ=「and 1=0」なので、「manual and 1=0」である行を探し、おそらく該当しないので、0件となります。
SELECT * FROM sample-table where keyword = ‘manual and 1=0’
オ=「and 1=1」なので、「manual and 1=1」である行を探し、おそらく該当しないので、0件となります。
SELECT * FROM sample-table where keyword = ‘manual and 1=1’
そして、SQLインジェクションを検出できたとあるので、ア・エ・オは対象外となりますので
答え a:イ
b:ウ
(2)
問題 本文中の「c」に入れる適切な機能を、図1中の(1-1)~(8-1)から選び答えよ。


XSS(クロスサイトスクリプティング)は攻撃者などが悪意のあるスクリプトをWebサイトに埋め込み、それを閲覧したユーザーのブラウザ上で実行させることで、情報を盗んだりする攻撃です。
また、WebサイトのURLや入力フォームに埋め込まれたスクリプトが、サーバーを介さずに、ユーザーのWebブラウザ上で直接実行されています。
診断時はWebサイトのトップページからリンクをたどって自動的に診断対象のURLを収集しますが、攻撃者のJavaScriptで動的にコンテンツを生成された場合は診断できません。
ツールVのXSSに有効な機能を確認すると、「(2-3) 診断対象URLの拡張機能」を使用して「診断対象URLの応答だけでなく、別のURLの応答も判定対象にする事が可能」とあり、これにより動的に作成されるURLも診断対象に含めることが可能になります。
答え c:(2-3)
(3)
問題 本文中の下線②について,どのような設定が必要か。設定の内容を、図2中の画面名を用いて60字以内で答えよ。

先の問題で確認した(2-3)の機能を使うには「診断対象URL拡張機能画面を開き、判断対象に含めるURLを登録する」とあります。
XSSは入力1の画面と記載されています。そしてその入力されたスクリプトが二つ先(アンケート確認)の画面でエスケープ処理されずに出力されています。
なので、入力1で入力されて、次の入力2へ還移するURL(入力画面1で「first_name・last_name・member」が入ったURL)にアンケート確認のURLを登録すれば良いです
答え:アンケート入力1からアンケート入力2に還移するURLの拡張機能に、アンケート確認のURLを登録する
(4)
問題 本文中の下線③について、keywordの初期値をどのような値に設定する必要があるか。
初期値が満たすべき条件を, 40字以内で具体的に答えよ。

表3の結果でB社の「manual」で10件引っかかってますが、その後に「manual'」
を付加して0件なので、これはSQLの構文エラーだと判断できます。
しかしZさんの「xyz」は初期結果から0件なので、次の検索の0件も構文エラーなのかどうかが判断できません。
なので初期値は「検索結果が0件にならない、有効な値」に設定する必要があります。
答え:トピック検索結果の画面での検索結果が1件以上になる値
設問3

(1)
問題 本文中の下線④について、 URLが登録されなかった画面名を、解答群の中から全て選び、記号で答えよ。
ア:会員情報変更入力 イ:キャンペーン申込み ウ:検索結果 エ:新規会員情報入力

ツールVの自動登録機能は仕様(2-1)の通り、指定したURLに含まれるリンクやフォームをたどって登録していきます。
図4の画面還移を確認すると注記4で「よくある質問検索」から次の画面に移動するURLは動的に生成されるとあるので、ウの検索結果が登録されないURLとなります。
注2)で新規会員登録の申込は電子メールにURLが送信されてきて、そこからアクセスとなるので、自動登録は出来ないので、エの新規会員情報入力も登録されないURLとなります。
答え:ウ・エ
(2)
問題 本文中の下線⑤について、該当する画面遷移とエラーになってしまう理由を2組み挙げ、画面遷移は図4中の (A)~(E) から選び、理由は 40字以内で答えよ。

図4を確認してみると、エラーになりそうなのは
注記1の1つのキャンペーンに対して、会員Nは1回だけ申込みできるですね
ツールはキャンペーン申し込みの脆弱性を探るために、同じ会員情報で申し込みリクエストを何度も送信するので、2回目以降の申し込みは機能によって拒否され、エラーになります。
注1)のパスワードを連続5回間違えるとアカウントがロックされるとの事なので、これですね。
パスワードの設定値を間違えるとエラーになり、画面遷移できませんね。
答え 1つ目:(A) 同じアカウントで連続5回パスワードを間違えるとアカウントがロックされるから
2つ目:(C )キャンペーンは1会員に付き1回しか申込できないから
設問4
(1)
問題 本文中の「d」に入れる適切な字句を、30 字以内で具体的に答えよ。

HttpOnly属性の役割はHttpOnly属性が設定されたクッキーは、JavaScriptからのアクセスが禁止になります。
答え d:HTML無いのスクリプトからcookieへのアクセス
(2)
問題 本文中の下線⑥について、攻撃の手口を、40字以内で答えよ。

XSSの最も一般的な目的は、攻撃者のサイトや正規のサイトを装った偽サイトへユーザを誘導してログイン情報や個人情報を盗み取る事です。
答え:偽の入力フォームを表示させ、入力情報を攻撃者サイトへ送る手口
設問5
(1)
問題 本文中の下線⑦について、リクエストの内容を、30 字以内で具体的に答えよ。

対象のサイトの会員は複数のグループに分けられて、グループ毎に申し込めるキャンペーンが異なるとの事(問題7P参照)
図4・注記1:一つのキャンペーンに対して会員は1回だけ申し込める
注記3:ログインすると紐づいているグループを識別するために「group_code」パラメータがリクエストに追加される
となっていて、下線⑦の次に会員Nが本来閲覧できないキャンペーンのリンクが表示されとあるので、この「group_code」を書き換えて、リクエストを送信すれば何度もキャンペーンを申し込めますね
答え:group_codeが削除されているリクエスト
(2)
問題 本文中の「e」、「f」に入れる適切なパラメータ名を、図5中から選び、それぞれ15字以内で答えよ。

図4に注1)にログイン時に発行されるセッションID「JSESSIONID」とあるので、セッションIDはログインユーザを特定するのに使えそうです。
そして先ほどの問題でgroup_codeが改ざんされたことが問題ですので、改ざんされないように「JSESSIONID」のユーザとgroup_codeが一致しているか検証すれば良いですね
答え e:JSESSIONID
f:group_code
設問6
(1)
問題 診断開始までに要する時間の課題について、A社で取り入れている管理策を参考にした対策を、40字以内で具体的に答えよ

この課題が残ってます(試験時に見つけられればいいですが)
情報が一元管理されていないので、開始までに時間が掛かっている
問題分の1ページでA社は資産管理システムを使用し、Webサイトを立ち上げたら資産管理システムへサイトの概要・構成IPアドレス・担当者を登録して、IT資産の管理を効率化しているとあるので、
資産管理システムを利用すれば良さそうです
なお、A社では使用していると言ってますが、グループ各社は利用しているとは言ってないので利用していないと思われます。
答え:グループ各社で資産管理システムを導入し、Webサイトの情報を管理する
(2)
問題 B社のサポート費用の課題について、B社に対して同じ問合せを行わず、問合せ件数を削減するために、A社グループではどのような対策を実施すべきか
セキュアコーディング規約の必須化や開発者への教育以外で、実施すべき対策を、50字以内で具体的に答えよ。

B社とはチケット制で契約していて、各開発者が直接問い合わせるとなっています。
この場合は違う開発者から同じような質問が投げられる可能性があるので、できれば開発者が個々で問い合わせることを止めて、窓口を用意して、更に質問した内容などを管理して、ナレッジを貯めて同じような内容は社内で解決できるようにしたいです
答え:B社への問合せ窓口をA社の診断部門に設置し、窓口が蓄積した情報をA社グループ内へ共有する
コメント