【登録セキスペ】令和4年度春期午後2問1の解説(情報処理安全確保支援士試験)
このNoteでは「セキスペ令和4年度春期午後2問1」の解説をします。
模範解答に至る道は勿論。粘り方・別解・部分点の範囲・今後の試験に備えた補強など、専門学校で授業しきれなかった部分も全て詰め込んでます。
私PG系絶対解かないので難しい。今回問2がヤバイので問1も解きましたが…。設問1(1)と設問3(2)ijを見て、やっぱ問1やめて問2に戻るかも。
選択肢の半分が分からなければ退くことを考えます。

午後1の基礎力で5割はいけるとは思いますが…。粘れないと私は不合格かなと。>午後1過去問解説マガジン
設問1(1)のXSSを成立させる文字列はPG系を選ぶなら必須。DBインジェクションと同様です。
設問3(2)のヘッダが鬼門です。今までもCookie属性値、HTTPリクエスト/レスポンスヘッダ値は出てましたが、更に詳しく出てきました。いい加減そろそろHTTP絡みをまとめたNoteが要ると痛感しています(検討中)
私はSCPMIIを97点で独学合格し、IT専門学校で授業しています。このNoteには、授業で教えていること以上の情報を詰め込みました。

一所懸命に作ったので、信頼して下さったら嬉しいです。
それでは始めましょう!
※午後2は午後1の解法スキルを前提としています。必ず午後1の演習を充分やってから、体力作りに午後2に取り組んでください。
※新SCは午後1本化された令和5年秋以降を指します。
>【SC:92, 86, 97点の学習ノート】ガチ勢の登録セキスペ合格勉強法
設問1(1) | PG系選ぶなら正解する
正答は、ア。
こういうのがすんなり正解できる方が、PG系問題を選ぶんだと思います。私は無理ですね。考えたくもない…。
具体的に考える前に少しでも絞れないか。
GET(URLに含ませるか)かPOST(ボディにデータとして入れるか)か。>【NW】GETとPOSTのNote


図1注記に変数の説明。serverNameはホスト名なので外部から変えられない。「queryStringはURL~」なので、URLにスクリプトを仕込む手口。”https://www.google.com/search?q=スクリプトコード”みたいに。
よってGETであるアかイ。POSTのウとエは消す。
アとイは次節以降の知識が必要です。
補強プログラムによる文字列出力
プログラムでの文字列出力を少し。
out.println("a")で「a」が出力
文字列を2つの「”」で囲む必要あり。out.println(x)で「変数xの中身」が出力。
「1」とか「斎藤」とか。out.println("a"+x+"a")で結合して出力
「a1a」とか「a斎藤a」とか。out,println("\"")で「"」が出力。
「"」は特殊記号なので、「"」自体を書き出すには「\」が必要。
out,println(""")はエラーになる。「"」は偶数個あるべき。
タグが一旦閉じて再度始まり成立するか
図1を解釈。太字は文字列。
"<meta property=\"og:url\" content=\"https://"+serverName+"/"+scriptName+"?"+queryString+"\">"
の文字列出力を考えます。
<meta
property="og:url"
content="https://サーバ名/スクリプト名?スクリプトストリング"
>
<>で閉じたmetaタグが1つ完成してます。
XSSとSQLインジェクションは「”」を上手いコト使って、変数と文字列の区切りをずらして、スクリプトやSQLを成立させます。
最終的に、
<meta
property="og:url"
content="https://ホスト名/クエリ名?"
>
<img
src=1 onerror=alert(1)
>
がhtmlファイルに書き出されたらXSS成立。
metaタグを一旦「>」で終わらせて、imgタグを別に成立させるような、文字列をURLに含ませます。
<img
src=1 onerror=alert(1)
>
の動作について。
src=1って画像ファイルはないので、alert関数で「1」ってポップアップメッセージがブラウザに出ます。alertが実行された=スクリプトが実行=XSS成功。
正解のア。
書き出されるHTMLタグは、
<meta
property="og:url"
content="https://www.b-sha.co.jp/confirm?"
>
<img
src=1
onerror=alert(1)
>
<
""
>
が、アのconfirm?後の「"」がいったん区切ってmetaタグを閉じ、次のimgタグを成立させてます。

不正解のイ。
書き出されるHTMLタグは、
<meta
property="og:url"
content="https://www.b-sha.co.jp/confirm?><img src=1 onerror=alert(1)><”
">
confirm?>の「>」ではmetaタグが終わりません。「"」でcontentを終わらせてから、「>」でmetaタグが終わす必要があるので。
さらに残りが「">」となり「"」を終わらせる「”」が足りない。
HTMLとして間違っているので何も表示されません(HTMLはコードのエラーは出さないです。実際Webページを手打ちするとこれが厄介。どこが間違っているか分からないので)。
設問1(2) | 各人の判断→組織的な権限/手順
模範解答は2例提示されてました。
「ダウンロードするライブラリに既知の脆弱性がないかを確認する」
「特定のWebサイトからの入手をルール化し、明文化する」
正解してください。午後1レベル。
下線②「再発防止策」。何が発生したのかというと。5頁頭「ライブラリMは、既知のXSS脆弱性の対策をしていないバージョンであった。その結果~XSS脆弱性が検出された」。
よって「既知のXSS脆弱性の対策をしているバージョンであるか確認する」30文字。
2つ目の模範解答「ルール作り」。ヒントは4頁末「B社では、開発部のメンバそれぞれが、~ライブラリを収集している」。各人の判断であり、検査・承認など組織的な動きをしてなさそう。怪しい。
個々人の判断・やり方では、セキュリティ的な差・ミス・悪用ができてしまいます。組織的な権限・手順の管理・策定・チェックが必要です。
>令和5年度春期午後2問2設問5(2)の解説 では、リポジトリーへアップロードしたコードの承認を各自が行っていて、攻撃に悪用されました。
設問2ab | 発行値とアカウントの紐づけ
正答は、「利用者ID」「セッションオブジェクト」。順不同。
利用者IDは必ず正解してください。セッションオブジェクトは別解が許されるかなぁと。
5頁末で「(利用者Bという)の利用者IDで~リクエスト中のcsrftokenの値に、図2のcsrftokenの値(=利用者A)を設定して送信したところ、利用者Bとして処理された」。
利用者Aに発行したcsrftoken値が、利用者Bでも使えた話でした。
1つめの解答。csrftoke値と「利用者ID」の紐づけ、は分かります
2つめ。「セッションID」「JSESSIONID」でも良いんじゃないかなぁ。"そういう用語なのねと分かるので、今後はそう書くかぁ"ぐらい。なお、セッションオブジェクトをweb検索してもバシっとしたのは出てきませんでした。
令和5年度春期午後2問2の解説Note では、クラウド「オブジェクトストレージ」やイベント「オブジェクト」の削除と出てきました。プログラミング以外でも「オブジェクト」って言葉が出てきてややこいなぁと。
設問3(1)cdefgh | クリックジャッキング
正答は
c:イ(β)
d:ア(奥)
e:ア(可視の)
f:ア(α)
g:イ(手前)
h:イ(透明な)
あれこれ考えて正解してください。
「クリックジャッキング」は、Webページに透明なリンクオブジェクトを置いて、利用者が誤ってクリックするよう仕向けること。

画面αとβのどちらから書かれるかで2パターン、空欄も多いので【空欄c】から順番には埋められないですね。
こういう時は、取っ掛かりか決め打ちをします。
私が注目したのは【空欄f】。「サイトXの画面【空欄f】」なので、ひとまず【空欄f】=画面αで決め打ちして文章が成立するか試します。
設問3(2)ij | HTTPレスポンスヘッダー
正答は
i:エ(X-Frame-Options)
j:イ(Content-Security-Policy)
図3下「罠サイト」に、画面αとβを重ねて設定変更させる手口。対策は公式サイトを外部サイト(罠サイト)に表示させない。
公式サイトのコンテンツ(HTML, 画像など)の表示条件を指定できるのが、エ(X-Frame-Options)とイ(Content-Security-Policy, CSP)。「標準化されている」のはCSPとのこと。
ここまで覚えるかなぁ。個人的には、やっぱPG系は選びたくないです。
ここから先は

SC午後解説(午後, 午後1&2)情報処理安全確保支援士
支援士午後(~R05秋)、セキスペ午前1+2の解説です。 【必ずリストを見てからご購入下さい】 設定間違いありましたらDM下さい。 解答…
学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ
