セキュリティ・キャンプ全国大会2023 専門コースB【Webセキュリティクラス】応募課題 必答問題(Q.1 から Q.3 まで)の問題すべてと、選択問題(Q.4 から Q.7 まで)の中の少なくとも 2 問に解答してください。 ---------------------- 【補足事項】 ---------------------- (1) この応募課題の設問は、どれも応募してくださるあなたの「現状の知識・経験の広さ・深さ」「興味・感心の範囲や強さ」を汲み取るためのものです。ぜひ自分の興味関心や知識、考えたこと、疑問等を各設問への解答として表現していただければと思います。 (2) 各設問で求めている内容が適切に盛り込まれている限り、解答の文字数の大小や日本語表現の巧拙は評価に大きな影響を与えません。また、日本語表現に関する軽微な誤りは評価に全く影響しません。とりわけ誤字脱字はあまり気にしなくて大丈夫です。 (3) 誇張を感じられる解答よりも、 ご自分の応募時点での経験や理解が真摯に表現できている解答を歓迎します。とりわけ、分からないことや確信の持てないことがあるときには「ここまでは分かったが、ここからは分からない」「これらの事例から 〜でないかと推測できるが、〜であると断言できるかは不明である」というような記述を含めていただけると嬉しいです。 (4) 選択問題においては「適切な論拠をもとにした、各設問に対して必要十分な情報を、適切な論理構造で表現できているか」を意識してください。 (5) 選択問題はきっかり 2 問のみ解答していただいても大丈夫です。3 問以上ご解答いただけると、選考においては、より応募してくださるあなたの魅力を汲み取りやすくなるかもしれません。なお、昨年度は半数以上の方が 3 問以上解答していました。また、選びにくい問題・難易度が高そうな問題に挑戦している応募者の評価も高めになる傾向がありました。 (6) 解答に関して何かしらの実験を行う際には、法令等を必ず遵守してください。 (7) 必答問題 2022 年度にも出題された問題です。また、選択問題も昨年度までと同じ傾向で作成してあります。昨年度までの参加者の解答をリサーチし、参考にして構いません。先人を超える解答を期待します。 (8) 最近著しい進化を遂げる LLM サービスを利用して解答を作成しても構いません。限られた期間で最大限によいと思える解答を作ること、それを通して自分の見識を広げるのに、それらの技術が貢献してくれるかもしれません。 -------------------- 【必答問題】 ---------------------- ■ Q.1(応募のモチベーションについて) 「Webセキュリティクラス」の講義のうち、特に受講したいと思う講義(複数可)に関して、その講義で「どのようなことを・なぜ学びたいか」を教えてください。とりわけ「なぜ学びたいか」の部分に関連して、いま応募を考えているあなたが感じておられる課題意識や、あなたの関心領域が伝わってくるような解答を歓迎します。 ■ Q.2(これまでの経験について) 以下の経験について、差し支えのない範囲でできるだけ具体的に教えてください: (1) Web アプリケーションの設計・開発経験(※ どんな些細なものでも構いません) (2) 一般のプログラミングの経験(※ 使ったことのある言語や、その用途などを教えてください。レイヤは問いません) (3) コンテナ技術の利用経験 (4) CI/CD 環境のセットアップ・利用経験 なお、この問は「この応募課題を提出する時点での経験」を問うものです。この応募課題を見た時点での経験はなくても構いませんし、この応募課題の記入にあわせての学習を歓迎します。 ■ Q.3(あなたの感心・興味について) Web に関連するサービス・プロダクトを作って提供することに関連する技術で、いまあなたが興味を持っているものがあれば、それについて自由に説明してください。少しでも Web との関連性がある技術であれば、それがハードウェア領域に近いものでも、ソフトウェア領域に近いものでも構いません。 ---------------------- 【選択問題】 ---------------------- ■ Q. 4(Web に関連する脆弱性・攻撃技術の検証) 「Top 10 web hacking techniques of 2022」(https://portswigger.net/research/top-10-web-hacking-techniques-of-2022) は、Web に関するセキュリティリサーチャーの投票により作成された、2021 年に報告された興味深い Web に関する攻撃テクニック 10 選です。この Top 10 中の事例の中で、興味を持てたもの 1 つに関して、以下を説明してください。 (1) 事例の概要 (2) 攻撃手法の詳細 (3) その他その事例に関して感じたこと・気がついたこと なお、本設問では、関連する仕様や攻撃の適用可能な条件についての詳細な理解が垣間見えるような記述や、理解を深めるために行ったこと(例: ローカルで行った再現実験等)に関する記述を歓迎します。 ■ Q.5(Web に関連する標準や実装の調査) 以下は Cookies Having Independent Partitioned State (CHIPS) という仕組みに関する Explainer です: https://github.com/privacycg/CHIPS 同 Explainer を読み、これに派生・関連した仕組みや動向を調査してください。その上で、可能な限りの実験を行いながら、以下の 5 点について簡潔にまとめてください。 (1) CHIPS 自体の概要 ※ 例: これは〜という課題意識のもと、〜という変更を〜に行うものである。これにより、〜が〜のような形で解決される。 (2) CHIPS の背景課題について掘り下げて調査した結果 ※ 例: 先述の課題〜とは、より詳細には〜ということである。この課題意識は Web のユーザ視点では〜につながるものであり、Web プラットフォーム自体の開発に関わる人の視点では〜という課題意識があったようだ。なぜこのような課題意識が解決されてこなかったかと言えば、〜によると、〜というのが一因なのかもしれない。 (3) CHIPS や、それから派生した仕様・仕組みに関する実験 ※ 実際にどう課題が解消されているか、逆に何が解決できていないのか納得できるまで手を動かしているような解答を歓迎します。時間的制約はあると思いますから、可能な限りで構いません。 ※ 例: ブラウザの試験的機能や関連するサーバサイド実装などの試験を行った。 ※ 例: PoC を書いて実際にブラウザでロードしてみた結果、〜という挙動だった ※ 例: 仕様にはこう書いてあるが、挙動がそれと異なる。実際 Chromium の実装を確認すると、〜となっていた。 ※ 例: 関連する Issue が https://github.com/whatwg/html に挙げられていた。ここでは〜という議論が行われていた。 (4) その他気がついたこと・思ったこと ・疑問・感想 ※ 例: この仕様は一見不合理に見えたが、調査中に見つけた〜という仕様との兼ね合いを考えると、〜という理由から合理的であるように感じた。 ※ 例: 一方調査の過程で、〜という仕様との整合性が取れているのかは気になった。実際の実装を用いて確認してみると、この点に関しては、実装間で処理結果が異なる。 (5) 疑問や感想を元に、さらに応募用紙提出後から掘り下げていくために取りたい行動 ※ あればで構いません。掘り下げきったと思う場合は、継続的に関連トピックの進展を追いかける方法のイメージをぜひ教えて下さい。 ■ Q.6(Web サービス・プロダクト開発に関する仕組みの検討) あなたがチームで Web アプリケーションを開発していくための組織やプロセス、そしてそれを支える技術基盤の設計と実装を任されたとします。その際にセキュリティ上考慮すべきだと思う点を可能な限り列挙し、理由とともに説明してください。 解答の際には、一からすべて自分で考えるのではなく、OWASP や NIST 等が提示している何らかの文書(例: OWASP SAMM や NIST SSDF 等)を参考にしても構いません。また、気をつけるべき点を考えるだけではなく、具体的に何かを構築してみた場合は、ぜひそれも本設問の解答として含めてください。 ■ Q.7(社会的背景と技術的背景の両方を意識した調査) "SBOM" というキーワードに関連した社会的動向・技術的動向を自由に調べ、自由に思うことを教えて下さい。おそらく調べていくと「US の政府が〜」などのフレーズが登場すると思いますが、そのようなパブリックセクターの動きの整理に留まらない、より踏み込んだ議論を歓迎します。