セキュリティ・キャンプ2025 ネクスト 応募課題晒し
■ はじめに
セキュリティ・キャンプ2025 ネクストに参加することになりました。
自分自身を振り返る機会はなかなか訪れないですが、今回の応募課題で振り返ることができました。
例年の応募課題晒しではネクストの応募課題晒しが少ないイメージ(そもそも参加可能者が10名と狭き門なので...)なので、公開してみようと思います。
また、今後応募する方などの参考になれば幸いです。
■ あなたに関する問い
あなたは今までどのようなことをやってきましたか.
どのようなことができて,どのようなことが得意で,どのようなことに自信がありますか.
どのようなものを作りましたか.どのような情報を発信してきましたか.
どのようにしてそうしたことをやってきましたか.なぜ,そのようなことをやってきましたか.
やってきてどう思いましたか. 参加できた場合,セキュリティ・キャンプ ネクストに
どのようなことを期待し,どのようなことをやってみたいですか.
小学生高学年の頃、パナソニックの神戸工場で自作したパソコンが、私の人生を決定づける出会いでした。ある日、誤ってシステムを壊してしまい、OS をクリーンインストールせざるを得なくなったことがきっかけで、コンピュータを“ただ使う側”から“動かす側”へと視点を切り替えました。以来、どこへ行くにも USB メモリに複数 OS のブートローダを仕込み「いざとなれば自分で復旧できる」という小さな自信を携帯しています。これが私と情報技術との長い付き合いの始まりでした。
大学入学後、「情報処理研究部(EDP 研)」に入部しました。しかし当時の部活動は休眠状態に近く、このままではせっかくの環境が埋もれてしまう。そう思った私は「引退時に部員 100 名」という大胆な目標を掲げ、組織の再建に挑みました。まずは存在感を示すため、部の公式サイトを一人で立ち上げ、記事やイベントレポートを継続的に発信する。それだけでなく、学外の勉強会やハッカソンの情報を逐次共有し、参加を後押しする“ハブ”役を買って出ました。
並行して、自分自身の目標としてセキュリティ・キャンプ全国大会への参加を設定しました。その後、1年次に独学でスクリプト言語や WEBサーバの仕組みを学び、2年次に念願のセキュリティ・キャンプ全国大会 2022 に参加することができました。専門家から直接指導を受け、同世代の仲間と切磋琢磨した経験は“技術は人と交わるほど深まる”という信念を確かなものにしました。同時期、部員は 30 名を突破し、大会で得た知見をまとめ、部内で共有することで後輩の学習意欲を刺激し、その後、大会参加者を輩出できるくらいの流れを作りました。3年次には 70 名、4年次には 100 名を超え、入学当初の目標を達成できた瞬間の部員の笑顔は今も鮮烈に記憶に残っています。
一方、研究活動では「ハードウェア × ソフトウェアの境界を探究したい」という想いから FPGA の世界に飛び込みました。とりわけ AMD(旧 Xilinx)製 Alveo U50 を用いたアクセラレータ開発に注力しています。このボードは高性能ゆえに事例が少なく、ドライバが対応するカーネルバージョンに制約があるなど、公式ドキュメントだけでは前に進めない場面が多々ありました。しかし、未知の障壁こそ成長の好機と捉え、ソースコードとフォーラムを読み漁りながら自力でドライバを移植しました。さらに RTL カーネルワークフローのサンプルを解析し、累積加算器 VADD を自作の NoC(Network on Chip) ベース画像処理回路(VHDL)へ置き換える一連のパイプラインを構築しました。Tcl スクリプトに *.vhd の読み込みを1行追加するだけで Vivado-Vitis 環境に統合できる仕組みにし、AXI4-Lite 経由でホスト C++ コードからパラメータを投入しました。最終的に 3×3 平滑化フィルタを U50 上でリアルタイム適用し、卒業論文として発表できる水準に仕上げました。
これらの経験を通じ、私は「課題を抱える人や組織のポテンシャルを見抜き、最適な技術を繋いで最大化する」ことに喜びを感じるようになりました。部活動の再建でも研究プロジェクトでも、本質は同じだと考えています。それぞれが持つ伸び代を見極め、適切な学びの機会を提供し、笑顔で成果を共有する。私の行動原理は常にそこにあります。
今年開催されるセキュリティ・キャンプ ネクストには、FPGA をはじめとするハードウェアが絡むテーマや、ネットワーク低層を扱う TCP/IP 深掘る講義など、まさに“ソフトとハードの狭間”を探究できるプログラムが多数用意されていると思います。たとえば PCIe DMA 経由でのメモリ保護の落とし穴や、FPGA 内部の Isolation 機構をバイパスするケーススタディを題材に、ハードウェア寄りの視点から脅威モデルを議論する場を作りたいのです。また、将来的には Alveo ボード上で動くソフトロジックファイアウォールを OSS として公開し、ハードウェアコミュニティの拡大にも貢献したいと思っています。
振り返れば、小さなトラブルから始まった私の探究心は「誰かの困りごとを解き、次の挑戦へ背中を押す喜び」へと姿を変えてきました。セキュリティ・キャンプ ネクストで得られるであろう最先端の知識と、多様な参加者との交流は、私が描く“ハード × ソフト × 人”の掛け算をさらに加速させるはずです。そして、そこで得た学びを再びキャンパスや地域コミュニティへ還元し、次の世代の“沼”への第一歩を後押しする。それこそが私の次なる目標です。
最後に、活動実績の一端として以下を共有します。
・Github : https://github.com/siso5
・Gitlab : https://gitlab.ciphergrus.com/suisan
・技術ブログ : https://www.edp-ken.com/author/suisan/
・Qiita: https://qiita.com/sui_san
・Zenn:https://zenn.dev/suisan
・Portfolio : https://portfolio.peripeteiagrus.net/
・卒業論文:--非公開--
「技術は人を笑顔にする道具」であることを示す活動を、セキュリティ・キャンプ ネクストの舞台でさらに加速させたい。どうぞよろしくお願いいたします。
■ 課題への姿勢に関する問い
自身で何らかの技術的な疑問を設定し,その疑問を解決しようと取り組み,
その過程を示すことで,自身の技術力や課題に取り組むやりかたを説明してください.
(疑問の例:実行ファイルはどのような構造になっているのだろう?
pingコマンドを実行すると何が起きるんだろう?
オンラインゲームはどうやって通信対戦を実現しているのだろう? といったようなことです)
設定する疑問は何でも構いませんし,解決しなくても構いません.
解決できたかどうかではなく,いかに課題に取り組むかという点を評価します.
私が自身の技術力を高め、課題解決へのアプローチを最もよく示せる経験として、自宅サーバーにおけるNextcloud環境の構築が挙げられます。このプロジェクトを開始するにあたり、私は単純にクラウドストレージを構築することだけを目的とせず、一つの技術的な疑問を自ら設定しました。それは「なぜ近年、WebサーバーとしてApacheに代わりNginxが主流となりつつあるのか?そのアーキテクチャ上の優位性を、実践を通して理解したい」というものです。
当時、Nextcloudの公式ドキュメントや多くの導入事例では、WebサーバーとしてApacheを利用する構成が一般的でした。しかし、私はパフォーマンスや同時接続性に優れるというNginxの評判に興味を惹かれ、敢えて情報が少ないながらもNginxを採用する道を選びました。これは、単に流行の技術を追うのではなく、その背景にある思想や技術的利点を自らの手で検証し、深く理解したいという探求心からでした。
構築に着手すると、早速壁にぶつかりました。Nextcloud、PHP-FPM、そしてNginxを連携させるための設定情報が断片的で、日本語の情報は特に限られていました。まずは公式ドキュメントの原文や海外の技術フォーラムを読み解き、リバースプロキシとしてNginxを設定することから始めました。
構築の過程で頻繁に発生したのが「502 Bad Gateway」や「404 Not Found」といったエラーです。こうしたエラーに直面した際、私は闇雲に設定を修正するのではなく、問題の切り分けを徹底しました。まず、基本的なネットワーク疎通を確認するため、サーバー内外からのpingやcurlコマンドで各コンポーネント(Nginx, PHP-FPMコンテナなど)への到達性を確認します。ここで問題がなければ、次に疑うのはアプリケーションレイヤーです。Nginxのエラーログ、Nextcloudのログ、PHP-FPMのログをそれぞれ参照し、どのコンポーネントがエラーを吐き出しているのかを特定していきました。この地道な切り分け作業を通じて、エラーの原因がPHP-FPMへのリクエスト転送設定の不備にあることなどを突き止め、一つひとつ問題を解決していきました。
無事にNextcloudの安定運用にこぎつけ、当初の目的であったNginxの高速性とメモリ効率の良さを体感していた矢先、Nextcloudに「Talk」というビデオ通話・チャット機能が追加されました。この魅力的な機能を導入しようとしたとき、私は第二の、そしてより深い技術的課題に直面することになります。
通話機能を有効化しても、同一LAN内のデバイス同士は接続できるものの、外部ネットワークからの接続が全く確立できませんでした。単純なポート開放の問題ではないことはすぐに分かりましたが、原因の特定は困難を極めました。ここで再びログと向き合い、関連ドキュメントを深く掘り下げた結果、P2P(Peer-to-Peer)通信における「NAT越え」という大きな壁の存在を知りました。
自宅のルーター(NAT)の内側にあるサーバーやクライアントはプライベートIPアドレスしか持たず、外部から直接通信することができません。この問題を解決するために必要となるのが、STUN(Session Traversal Utilities for NAT)サーバーとTURN(Traversal Using Relays around NAT)サーバーであるという結論に達しました。
STUNサーバーは、クライアントに対してそのグローバルIPアドレスとポート番号を通知する役割を果たします。これにより、クライアント同士が直接通信できる経路を見つけ出そうと試みます。
しかし、セキュリティポリシーの厳しいNAT(Symmetric NATなど)の環境下ではSTUNだけでは不十分です。そこでTURNサーバーが、通信を完全に中継(リレー)する最後の砦となります。
これらの技術の存在を知ったとき、私は感銘を受けました。単なるWebサーバーの構築という枠を超え、現代のリアルタイムコミュニケーションを支える根幹技術に触れることができたからです。そして、このTURN/STUNという技術が、普段何気なくプレイしているモバイル系の対戦ゲームなど、身近なサービスでも同様に活用されていること(※1)を知り、知識が有機的に繋がる面白さを実感しました。
Nextcloudの構築という一つのプロジェクトは、当初設定した「Nginxの優位性を理解する」という疑問から始まりました。情報が少ない中での試行錯誤や地道なエラー解析を通じて、机上の知識だけでは得られない実践的な問題解決能力を養うことができたと自負しています。
さらに重要なのは、一つの課題解決の過程で「通話機能」という予期せぬ要素から、P2P通信やNAT越えといった全く新しい技術分野への扉が開かれたことです。この経験から、私は技術的な課題に対して、粘り強く多角的な視点からアプローチすることの重要性を学びました。一つの目的に固執するだけでなく、その過程で生まれる新たな疑問や「回り道」こそが、知識を深化させ、異なる分野の技術を結びつけるための重要な引き出しになると確信しています。
今後も、未知の技術や課題に対して臆することなく、まず自ら手を動かして試してみるという姿勢を貫き、実践を通じて得られる「生きた知識」を蓄積し続けていきたいと考えています。
※1 https://logmi.jp/main/technology/321751(閲覧日:2025.6.9)
■ 興味ある分野に関する問い
セキュリティ・キャンプ ネクストの講義の一覧を見て,その中から興味のある講義を選び,
その講義で扱うテーマに対して自分が考えること,興味,疑問,課題,自分なりの考察などを
説明してください.
その分野について知識があるかどうかではなく,いかに興味や疑問を持ち,課題を考え,
自分なりに調べて考察するかといった点を評価します.
私がこの「ハードウェア再現実装で学ぶアーキテクチャ解析」という講義に最も強く惹かれた理由は、「ブラックボックスの内部を自らの手で再構築する」というアプローチそのものにあります。
私の研究では、ハードウェア記述言語(HDL)を用いてRTL(Register Transfer Level)で回路を独自に設計し、FPGAへの実装を行っています。自らの手で論理回路を記述するプロセスを通じて、ハードウェアが意図通りに動作することの面白さと難しさを日々実感しています。だからこそ、この講義で提示されている、既存のコンピュータシステムのアーキテクチャを解析し、その設計思想にまで踏み込むというテーマに、強い知的好奇心を刺激されました。
特に「先人の設計意図に思いを馳せ、技術の謎を解き明かす」という部分に感銘を受けました。単に仕様通りに動くものを作るのではなく、限られた情報から設計者の抱えていたであろう制約(当時の技術レベル、コスト、性能要求など)を推測し、その中での最適な選択を追体験するプロセスは、表面的な知識をはるかに超える「生きた理解」につながると確信しています。これは、技術の本質を掴む上で極めて重要な営みだと考えます。
この魅力的なテーマに対して、いくつかの具体的な疑問が湧き上がりました。
-
推測と再現の境界線はどこにあるのか?
講義内容にある「仕様情報を元にアーキテクチャの詳細を推測し」という部分について、その推測の根拠や範囲に興味があります。例えば、公開されている命令セットアーキテクチャ(ISA)から、パイプラインの段数やキャッシュの構造といったマイクロアーキテクチャをどの程度まで論理的に絞り込めるのか。また、再現実装する上で、どこまでを「忠実な再現」とし、どこからを「動作を模擬するための実装」と切り分けるのか、その判断基準が知りたいです。この境界線の設定こそが、解析の精度と効率を左右する鍵だと考えます。 -
「未知なる部分」を補完するための方法論とは?
ドキュメント化されていない「未知なる部分」を補完するプロセスは、この講義の醍醐味だと思います。この補完は、論理的な推論だけで完結するのか、それとも既知の類似アーキテクチャからの類推や、あるいは複数の仮説を立ててそれぞれを実装・検証するといった試行錯誤的なアプローチを取るのだろうか。先人との「仮想的なシンクロ」を最も強く感じられるこのプロセスで、具体的にどのような思考法やテクニックが用いられるのか、非常に興味があります。 -
ソフトウェアモデルとハードウェア実装の乖離はどのように埋めるのか?
ソフトウェアモデルとして一度再現したものを、FPGA上の論理回路へ落とし込む際には、必ず抽象度のギャップが生じるはずです。例えば、ソフトウェアでは単純な配列アクセスが、ハードウェアではメモリコントローラやバスアービトレーションといった複雑な制御を伴います。このギャップを埋める過程で、どのような設計上のトレードオフが発生し、それをどのように解決していくのか。このソフトウェアとハードウェアの思考の翻訳プロセスこそ、実践的な設計能力を養う上で最も学びたい部分です。
課題については2つあり、以下のとおりです。
課題1:情報の断片性との戦い
対象とするシステム、特にレガシーなものであればあるほど、参照できるドキュメントは不完全で断片的であることが予想されます。Web上に散らばる非公式な情報やコミュニティの解析結果などを粘り強く収集・精査し、それらの情報の信頼性を評価しながら、パズルのピースを埋めていくような地道な作業が必要不可欠になると思います。これは技術力だけでなく、情報収集能力や探究心が試される課題だと考えます。
課題2:ハードウェアデバッグの壁
ソフトウェアのデバッグとは異なり、ハードウェアのデバッグは観測性が低く、原因の特定が困難な場合が多くあります。シミュレーション上では完璧に動作しても、FPGA実機ではタイミングの問題などで期待通りに動かないことは日常茶飯事です。この課題に対しては、論理アナライザを用いた信号の直接観測や、デバッグ用のモニタ回路をあらかじめ組み込んでおくといった「デバッグしやすい設計」を初期段階から意識することが重要になると考察します。問題の切り分け能力と、それを支援する戦略的な設計が求められます。
この講義で得られるスキルは、単なる過去技術の再現に留まらない、大きな可能性を秘めていると考えています。
セキュリティへの応用: アーキテクチャを深く理解することは、ハードウェアレベルの脆弱性を理解する上で極めて重要です。例えば、CPUの投機実行の仕組みを自ら再現実装することで、SpectreやMeltdownのようなサイドチャネル攻撃がなぜ発生するのかを、より本質的に理解できるはずです。システムの「意図された動作」だけでなく、「意図しない挙動」までも見抜く洞察力は、堅牢なシステムを設計する上で不可欠な能力です。
未来のアーキテクチャへのひらめき: 「先人の設計意図」を学ぶことは、技術の進化の系譜をたどることでもあります。なぜあるアーキテクチャは成功し、あるものは消えていったのか。その背景にある制約やトレードオフを肌で感じることで、現代の技術が持つ課題や、次に求められるアーキテクチャの姿を考える上での強力な羅針盤となり得ます。当時の技術的制約で実現できなかったアイデアを、現代の豊富なリソースで再評価し、新しい価値を生み出す「未来へのひらめき」に繋がるのではないかと、大いに期待しています。
■ その他に関する問い
その他,アピールしたい点などあれば自由記述で回答してください.
私は自分が今まで触れたことのない技術に触るのが大好きです。自分の中に新しい知識が入ってくるとものすごくワクワクします。とにかく面白そうな技術だと思ったらなんでも飛びついてしまうタイプです。課題に取り組む過程でも色々調査しながら新しい知識が増えるのが楽しすぎて、本来掘るつもりではなかった部分まで掘り進めてしまいました。 今回のネクストキャンプでは、私が本格的に深く考えてこなかった技術が多く、講義一覧を見ているだけでワクワクが止まりません。今までもより今後が面白くなりそうな回り道ができるようなものに挑戦してきました。今回もそのような挑戦をさせていただける場を提供いただけるのならとても嬉しいです。もし参加できることになった暁には、今までの最大限の吸収力をもって貪欲に学び、全て吸収し切って帰りたいと思っています。
■ おわりに
ハードウェアって面白い。気づけないだけで...(´;ω;`)
とにかく、貪欲に学び吸収します🔥
Discussion