以下の問1から問7について、それぞれ回答してください。ただし問1〜3はそれぞれ2000文字以内で回答してください。 なお、正解がある設問については、"正解していること"よりも"正解にたどり着くまでのプロセスや熱意"を重要視しています。答えにたどり着くまでの試行錯誤や自分なりの工夫等を書いて、精一杯アピールしてください。 ## 問1 あなたがセキュリティ・キャンプ全国大会に応募する理由を教えてください。受講生や講師とのコミュニケーション、受講したい講義、なりたい自分など、何でも構いません。 ## 問2 今までに解析したことのあるソフトウェアやハードウェアにはどのようなものがありますか?解析の目的や解析方法、結果として得られた知見などを含めて教えてください。 ## 問3 今までに作成したソフトウェアやハードウェアにはどのようなものがありますか? どんな言語やライブラリ、パーツを使って作ったのか、どこにこだわって作ったのか、などたくさん自慢してください。 ## 問4 問4 - Ubuntu 22.04環境における、プロセスの仮想アドレス空間とメモリ破壊の脆弱性について、以下の問いに答えてください。生成AIの使用は制限しません。 問4-1 - スタック領域(stack)とヒープ領域(heap)について、C言語のプログラムにおける利用方法を説明してください。また、これらの領域に関連する代表的なセキュリティ機構について説明し、それらがメモリ破壊の脆弱性の悪用に対してどのような防御を提供するかについても述べてください。 問4-2 - スタックバッファーオーバーフロー脆弱性を利用して Remote Code Execution(RCE)を達成するまでの Exploit の流れを説明してください。また、ヒープバッファーオーバーフロー脆弱性を利用する場合についても、RCE に至るまでの Exploit の流れを説明してください。なお、説明にあたっては、前問で述べたセキュリティ機構のバイパス方法に着目してください。 問4-3 - c3.tar.gzを展開すると、以下の3つのPwn問題のディレクトリが含まれています。 - tcache_poisoning - tcache_patch_1 - tcache_patch_2 - tcache_poisoningには問題ファイル一式に加え、solver (exploit.py) と解説 (writeup.md+スクリーンショット) が付属しています。以降の課題では、これを参考資料として活用してください。 - 問題の内容が完全に理解できない場合でも、自分が理解できた範囲までを整理して記述することを推奨します。理解できている部分と、理解できていない部分について - どこまで理解できたか - どこから理解できていないのか - その理由や自分なりの分析 をstatus.mdにまとめ、提出物の tar.gz にそれぞれ含めてください。 問4-3-1 - tcache_patch_1にはsolverであるexploit.pyが付属しています。以下の課題に取り組んでください。 1. exploit.pyに適切なコメントを追加し、各処理が何を行っているかを最適な粒度で説明してください 2. tcache_poisoningのwriteup.mdと同等の形式・粒度で、writeup.mdを作成してください。 3. writeup.mdには、各ステップにおいて、`bata24/gef`や`pwndbg`などのデバッガを用いたスクリーンショットによる「親切な」解説を含めてください。 4. 上記で作成したファイル群 (exploit.py, writeup.md, image/*.png)をtar.gzで固めて提出してください。 Exploitationの要点を押さえたスクリーンショットが付加されているか、や、どのようなコマンドを使っているかなどの創意工夫を重視します。冗長であったり自明なスクリーンショットは必要ありません。 問4-3-2 - この問題はadvancedな問題です。tcache_patch_2にはsolverが付属していません。以下の課題に取り組んでください。 (exploitを作成する際に必要となるキーワードは「File Structure Oriented Programming (FSOP)」です。与えられている環境で実際に刺さるペイロードを使用するよう注意してください。) 1. tcache_poisoningやtcache_patch_1とのソースコードの差分を分析し、Exploitationの上での違いをwriteup.mdの冒頭で説明してください。 2. 上記の分析を踏まえ、exploit.pyを作成してください。 3. 問4-3-1と同様にwriteup.mdを作成してください。 4. 上記で作成したファイル群 (exploit.py, writeup.md, image/*.png)をtar.gzで固めて提出してください。 Exploitationの要点を押さえたスクリーンショットが付加されているか、や、どのようなコマンドを使っているかなどの創意工夫を重視します。冗長であったり自明なスクリーンショットは必要ありません。 ## 問5 以下のバイナリを解析し、flagを取得してください。flag形式はseccamp{}です。 flagを取得するにいたった流れ、関数の流れについても説明してください。 解けなかった場合でも、理解した範囲まで書いてください。 ※PC上でマルウェア判定される可能性があるので、VM上やウイルス対策を停止(非推奨)してから作業するとよいです。 ※zipパスワードはinfectedです。 https://drive.google.com/file/d/1lb9xi-y0JxbyMto9NlsY_ID3I53J1B3Q/view?usp=drive_link ## 問6 【前提】 ・解答の過程で、攻撃のアイデアや攻撃の実証方法が浮かんだとしても、絶対に実行しないでください。分析するだけです ・解答の中で、具体的なシステム名を特定できるような記載はしないでください。例えば学校名や、その学校固有の用語などの使用は避けてください ・解答はひとつだけでも、複数でも構いません。解答の数よりも内容を重視します ・生成AIを使わずに回答してください 【問1:攻撃者の視点】 あなたがいま通っている学校(あるいは身近なほかの組織でも可)を、サイバー攻撃をする人になったつもりで分析し、以下について回答してください。 [A] 動機/Motive:攻撃者があなたの学校を狙うことによって、最終的に達成したいこと(攻撃者が得られるもの)は何ですか? (例:出席日数をごまかし、卒業する) [B] 攻撃目標/Goals、 Crown Jewels:上記を達成するためのサイバー攻撃オペレーションにおいて、どんな状態になったら「攻撃プロジェクトが成功した」と判断できるでしょうか? (例:授業記録データベースを改ざんできる権限の取得) [C] 攻撃経路・手段/Attack Paths:上記攻撃目標を達成するために、どんな攻撃経路・攻撃手段が存在するでしょうか? (例:学務課のパソコンをマルウェアに感染させる。そのために…) 【問2:防御側の視点】 上記のサイバー攻撃に対処するため、防御側である学校はどんなセキュリティ対策を講じればよいでしょうか。そのセキュリティ対策はなぜ効果的なのでしょうか。その対策によって防ぎきれないケースとして、どんなパターンが想定されますか? (例:学務課のパソコンにアンチウイルスソフトウェアを導入する) 以上 ## 問7 C-問7.zipを解凍すると現れる、何らかの壊れたファイルであるCorruptedFileについて、次の問いに答えてください。 オフセットを答える問題は、ファイルの先頭を起点として計算したオフセットを答えてください。 CorruptedFileのSHA256ハッシュ値: 29b84c957c1193386cf5ccd86e6e4c6a2ba94a0710371d36d2ff2b601c1302a2 問7-1 壊れたファイルCorruptedFileの元々のファイル形式は何でしょうか。 また、特定したファイル形式として読み込めるようにするには、どの個所をどのように修正すればよいでしょうか。 ファイル形式、修正した値(修正前、修正後)とそのオフセットをすべて答えてください。 問7-2 7-1の問題をどのように解いたか(考え、試したことや調査したことなど)を400字以内で記載してください。 問7-3 ファイル内のページ175に関連するデータは一部壊れており、このままでは正常に読み取ることができません。 どの個所をどのように修正すると読み取れるようになるでしょうか。 修正した値(修正前、修正後)とそのオフセットをすべて答えてください。 問7-4 7-3の問題をどのように解いたか(考え、試したことや調査したことなど)を400字以内で記載してください。 問7-5 ファイル内のページ31に関連するデータのうち、IdIndex:721のデータが壊れているようです。 どの個所をどのように修正するとよいでしょうか。 修正した値(修正前、修正後)とそのオフセットをすべて答えてください。 また、IdIndex:721に対応するIdBlobに格納されている文字列を答えてください。 問7-6 7-5の問題をどのように解いたか(考え、試したことや調査したことなど)を400字以内で記載してください。 問7-7 このファイル内にはユーザーがダウンロードしたと思われる不審なファイルから発生した通信の記録が残されています。 該当するファイル名(フルパス)と、そのファイルからの送信byteの総量(byte)、当該ファイルの最初の通信記録時刻(UTC)と最後の通信記録時刻(UTC)を答えてください。 問7-8 7-7の問題をどのように解いたか(考え、試したことや調査したことなど)を400字以内で記載してください。