セキュリティ・キャンプ全国大会2022 オンライン 専門コース B【Webセキュリティクラス】応募課題 必答問題(Q.1 から Q.3 まで)の問題すべてと、選択問題(Q.4 から Q.8 まで)の中の少なくとも 2 問に回答してください。 ---------------------- 【補足事項】 ---------------------- (1) この応募課題の設問は、どれも応募してくださるあなたの「現状の知識・経験の広さ・深さ」「興味・感心の範囲や強さ」を汲み取るためのものです。ぜひ自分の興味関心や知識、考えたこと、疑問等を各設問への解答として表現していただければと思います。 (2) 各設問で求めている内容が適切に盛り込まれている限り、解答の文字数の大小や日本語表現の巧拙は評価に大きな影響を与えません。また、日本語表現に関する軽微な誤りは評価に全く影響しません。とりわけ誤字脱字はあまり気にしなくて大丈夫です。 (3) 誇張を感じられる解答よりも、 ご自分の応募時点での経験や理解が真摯に表現できている解答を歓迎します。とりわけ、分からないことや確信の持てないことがあるときには「ここまでは分かったが、ここからは分からない」「これらの事例から 〜でないかと推測できるが、〜であると断言できるかは不明である」というような記述を含めていただけると嬉しいです。 (4) 選択問題においては「適切な論拠をもとにした、各設問に対して必要十分な情報を、適切な論理構造で表現できているか」を意識してください。 (5) 選択問題はきっかり 2 問のみ解答していただいても大丈夫です。3 問以上ご解答いただけると、選考においては、より応募してくださるあなたの魅力を汲み取りやすくなるかもしれません。 (6) 解答に関して何かしらの実験を行う際には、法令等を必ず遵守してください。 -------------------- 【必答問題】 ---------------------- ■ Q.1(応募のモチベーションについて) 「Webセキュリティクラス」の講義のうち、特に受講したいと思う講義(複数可)に関して、その講義で「どのようなことを・なぜ学びたいか」を教えてください。とりわけ「なぜ学びたいか」の部分に関連して、いま応募を考えているあなたが感じておられる課題意識や、あなたの関心領域が伝わってくるような解答を歓迎します。 ■ Q.2(これまでの経験について) 以下の経験について、差し支えのない範囲でできるだけ具体的に教えてください: (1) Web アプリケーションの設計・開発経験(※ どんな些細なものでも構いません) (2) 一般のプログラミングの経験(※ 使ったことのある言語や、その用途などを教えてください。レイヤは問いません) (3) コンテナ技術の利用経験 (4) CI/CD 環境のセットアップ・利用経験 なお、この問は「この応募課題を提出する時点での経験」を問うものです。この応募課題を見た時点での経験はなくても構いませんし、この応募課題の記入にあわせての学習を歓迎します。 ■ Q.3(あなたの感心・興味について) Web に関連するサービス・プロダクトを作って提供することに関連する技術で、いまあなたが興味を持っているものがあれば、それについて自由に説明してください。少しでも Web との関連性がある技術であれば、それがハードウェア領域に近いものでも、ソフトウェア領域に近いものでも構いません。 ---------------------- 【選択問題】 ---------------------- ■ Q.4(Web に関する脆弱性・攻撃技術の検証 1) Cross-Site Request Forgery (CSRF) とは何か、現代の Web ブラウザ・Web アプリケーションフレームワークが備える仕組みを深く考慮しながら、自分の言葉で説明してください。なお、関連する仕様や実際の実装例の挙動を論拠にする場合は、ぜひその出典を明記してください。 ■ Q.5(Web に関連する脆弱性・攻撃技術の検証 2) 「Top 10 web hacking techniques of 2021」(https://portswigger.net/research/top-10-web-hacking-techniques-of-2021) は、Web に関するセキュリティリサーチャーの投票により作成された、2021 年に報告された興味深い Web に関する攻撃テクニック 10 選です。この Top 10 中の事例の中で、興味を持てたもの 1 つに関して、以下を説明してください。 (1) 事例の概要 (2) 攻撃手法の詳細 (3) その他その事例に関して感じたこと・気がついたこと なお、本設問では、関連する仕様や攻撃の適用可能な条件についての詳細な理解が垣間見えるような記述や、理解を深めるために行ったこと(例: ローカルで行った再現実験等)に関する記述を歓迎します。 ■ Q.6(Web に関連する標準や実装の調査) HTML Living Standard (https://html.spec.whatwg.org/) にはセキュリティに関する記述が各所に存在しています。同 Living Standard を読み、気になったセキュリティに関する記述について調査し、以下の 4 点について簡潔にまとめてください: (1) その記述の概要 ※ 例: 仕様の〜の箇所を読むと、〜には〜というような制限があることが分かった。詳細に述べると、これは〜という条件のもと、〜を〜として解釈するという仕様である。 (2) 気になった理由 ※ 例: この仕様は直感的にはなくても問題ないように思えるが、あえてこのような制限があるからには、意図があるはずである。その意図が気になった。 (3) その記述に関連して調査したこととその結果 ※ 例: PoC を書いて実際にブラウザでロードしてみた結果、〜という挙動だった ※ 例: 仕様にはこう書いてあるが、挙動がそれと異なる。実際 Chromium の実装を確認すると、〜となっていた。 ※ 例: 関連する Issue が https://github.com/whatwg/html に挙げられていた。ここでは〜という議論が行われていた。 (4) その他気がついたこと・思ったこと ・疑問・感想 ※ 例: この仕様は一見不合理に見えたが、調査中に見つけた〜という仕様との兼ね合いを考えると、〜という理由から合理的であるように感じた。 ※ 例: 一方調査の過程で、〜という仕様との整合性が取れているのかは気になった。実際の実装を用いて確認してみると、この点に関しては、実装間で処理結果が異なる。 ■ Q.7(Web サービス・プロダクト開発に関する仕組みの検討) あなたがチームで Web アプリケーションを開発していくための組織やプロセス、そしてそれを支える技術基盤の設計と実装を任されたとします。その際にセキュリティ上考慮すべきだと思う点を可能な限り列挙し、理由とともに説明してください。 解答の際には、一からすべて自分で考えるのではなく、OWASP や NIST 等が提示している何らかの文書(例: OWASP SAMM や NIST SSDF 等)を参考にしても構いません。また、気をつけるべき点を考えるだけではなく、具体的に何かを構築してみた場合は、ぜひそれも本設問の回答として含めてください。 ■ Q.8(新しい領域に関する調査) Sigstore プロジェクト (https://sigstore.dev) について、それがどのような課題を、概ねどのような方法で解決することを目指しているのかを簡潔に説明してください。可能であればそれに加えて、以下のような調査・吟味を行い、その結果について論じてください。詳細な解答を歓迎します。 (1) どのような技術的な仕組み・理論に裏付けられているのか (2) 実社会で実際に運用可能そうなものなのか