メインコンテンツへスキップ
見出し画像

【登録セキスペ】令和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」にして、chromeに投げ込んだ表示。


    不正解のイ。
    書き出される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系は選びたくないです。




     
     
    大学・専門学校の先生の解説Note。 学生時代にITパスポート試験・基本情報技術者試験・応用情報技術者試験を独学で高得点合格。情報処理安全確保支援士試験(セキスペ)・データベーススペシャリスト試験・ネットワークスペシャリスト試験・G検定なども取得。 2027年にPD-S受験予定。