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