以下の問1から問8について、それぞれ回答してください。ただし問1〜4は2000文字以内で回答してください。 なお、正解がある設問については、"正解していること"よりも"正解にたどり着くまでのプロセスや熱意"を重要視しています。答えにたどり着くまでの試行錯誤や自分なりの工夫等を書いて、精一杯アピールしてください。 ## 問1 あなたがセキュリティ・キャンプ全国大会に応募する理由を教えてください。受講生や講師とのコミュニケーション、受講したい講義、なりたい自分など、何でも構いません。 ## 問2 今までに解析したことのあるソフトウェアやハードウェアにはどのようなものがありますか?解析の目的や解析方法、結果として得られた知見などを含めて教えてください。 ## 問3 今までに作成したソフトウェアやハードウェアにはどのようなものがありますか? どんな言語やライブラリ、パーツを使って作ったのか、どこにこだわって作ったのか、などたくさん自慢してください。 ## 問4 ここ数年に発表された、以下のキーワードに関連するニュースや記事や学術論文から1つ選び、それに関して調べた内容を記述してください。内容には、1.選んだ理由、2.技術的詳細、3.被害規模または影響範囲、4.対策、の4点を必ず含めてください。なお、対策は今ある技術のみに捕われず、将来的な技術や法律など、自由な発想で書いてください。 キーワード: - 脆弱性 - マルウェア - エクスプロイト - サプライチェーン - 国家支援型攻撃 ## 問5 ポートスキャンに関して、次の各問に回答してください。 ### 問5-1 TCPのポートに対するポートスキャンの方法には、TCP SYNスキャン、TCP Connectスキャンが知られています。それぞれの動作原理を説明してください。 また、これらの手法には互いに長所と短所が存在します。 TCP SYNスキャンとTCP Connectスキャンのそれぞれの長所/短所を動作速度や検知されやすいかという観点から述べてください。 ### 問5-2 RustScanやMASSCANなど、Nmapより高速にスキャンを行えるポートスキャナが台頭しています。 しかし、ポートスキャンを高速に行うと問題が生じる場合(特に社内/学内などの内部ネットワークを対象とする場合)があります。 具体的な影響の例とともに考えられる問題点を述べてください。 ## 問6 配布したアーカイブファイル内のimage.ddはディスクをddコマンドでコピーしたイメージファイルです。これらを用いて以下の問題に簡潔に解答してください。 ■imageファイル配布先URL https://www.dropbox.com/scl/fi/fkki8xliyu5r7vf1o2vfd/image.dd.gz?rlkey=93tl7nzqtv5qq76z3rrnmt1gs&dl=0 Hash値(Sha256): 074095102a752666085267a58d0a7f73354ab3f1c4bb0573a1707a741f7f31cb ### 問6-1 イメージファイルimage.ddに存在するファイルシステムをmountコマンドまたは同等の機能を持つユーティリティでマウントできるようにしてください。 その過程でイメージファイル内のどの部分をどのように変更したのか、なぜそれでマウントできるようになるのかを簡潔に解答してください。 ### 問6-2 問6-1でマウントしたファイルシステム形式の名称(例:FAT16)と、そう判断した理由を簡潔に解答してください。 ### 問6-3 イメージファイルimage.ddに存在するファイルシステムをマウントしてもそのままでは通常の方法で中身を参照(マウントしたOS上でファイルをダブルクリックするなどして、ファイルのフォーマットに対応したアプリケーションで中身を表示)できないファイルが存在します。そのファイルを、マウントしたOSから通常の方法で参照できるようにしてください(※ファイルを抽出するのではなく、参照ができる状態に戻してください)。 その過程でイメージファイル内のどの部分をどのように変更したのか、なぜそれで参照できるようになるのかを簡潔に解答してください。 ## 問7 今後、より重要になる思われる技術(製品等でも可)の中で、あなたが攻撃の対象として興味深いと感じるものを1つ挙げ、次の設問に回答してください。すべての設問において技術的な回答を期待しています。 ### 問7-1 選んだ技術はどんなものですか? ### 問7-2 その技術が脆弱になり得るのはどんなときだと思いますか? ### 問7-3 その技術に対して攻撃することを考えたときに、思いつく障壁は何ですか? ## 問8 ELF ファイル "hack" について、以下の質問に解答してください。 https://www.dropbox.com/scl/fi/f1zzmgesc5c6e7485973w/hack?rlkey=h711tvrw46ughga630hz671yc&dl=0 このファイルを IDA 8 (Freeware version) でデコンパイルすると、このようなコードが出力されます。 int __fastcall main(int argc, const char **argv, const char **envp) { if ( !strcmp("Reversing is cool.", "Reversing is fun.") ) { if ( !strncmp("Reversing is cool.", "Reversing is fun.", (size_t)"Reversing is fun.") ) puts("Nope."); else puts("Welcome to Security Camp!"); } else { puts("What's wrong?"); } return 0; } このコードを読むと、"What's wrong?" という文字列が表示されることが予想されますが、このプログラムを実行すると、実際に出力される文字列は以下のように異なるメッセージが表示されます。 $ ./hack Welcome to Security Camp! この実行ファイルに用いられているトリックについて説明してください。 また、解答に至るまでの調査方法について記述してください。