🌈

SecHack365 表現駆動コース修了報告

に公開

はじめに

この度、2024年度 SecHack365の表現駆動を修了しました!!
一年間の振り返りをしていきます!

また、SecHackの中間報告の記事も書いているので、ぜひそちらもご覧ください
https://zenn.dev/alphe/articles/7d2fa73eb247fc

あと、他のトレーニーのSecHack修了ブログも面白いのでこちらもぜひご覧ください!

他のトレーニーのSecHack修了ブログ(2024年度)

SecHack365とは

25歳以下を対象に、セキュリティイノベーターとしてセキュリティのさまざまな課題にアイディアで切り込める人材を育成する長期ハッカソンです。
https://sechack365.nict.go.jp/

約一年間の長期ハッカソンを通じて自分の作りたい作品、解決したい課題と向き合い、大きく成長できる場所です。
「表現駆動」「学習駆動」「開発駆動」「思索駆動」「研究駆動」の5つのコースに分かれており、それぞれ大きな特徴があります。

詳しくは公式サイトをぜひご覧ください。
https://sechack365.nict.go.jp/

私は表現駆動コースに参加し、一年間連続してハッカソンを4回行なってきました。
1~3回の成果物はSecHack365 表現駆動コース中間報告にまとめているため省略します。

最終成果物

最後に作成したものは、”プレゼンテーションの準備から本番までをサポートするツール”です。
重要でありながら練習が難しいプレゼンテーションを、AIを使ったフィードバックを提供することで支援します。

特徴は大きく2つあり、スライドの内容分析と、ジェスチャーを用いたスライド操作です。
「内容の一貫性」「視覚的一貫性」「メインメッセージ」という観点を軸にスライドを分析し、図に描画します。

詳しくは公式のサイトのポスターをご覧ください!
https://sechack365.nict.go.jp/achievement/2024/


私が実装した箇所は、認証/認可機能、ファイルアップロード機能、セキュリティです。

主にFirebaseを活用して実装しました。
Firebase StorageとFirestoreとlocalStorageの長所を組み合わせて使うことで、料金を抑えることも工夫しました。

また、セキュリティに関しては次の4つの機能を実装しました。

  • ファイル分析時にAIに読み込ませないデータをランダム文字列に置換
  • ファイル周りの攻撃対策
    • アップロード時のファイル形式・ファイルサイズの制限
    • ファイルの認可制御
    • ブラウザでファイルを読み込む際のURLの制限
  • ファイルのメタデータの削除
  • 30分経過後の自動削除機能

一年間で取り組んだこと

表現駆動コース内では、主にハスラーとして取り組み、イノベーションを起こせるようなアイデアを考え続けてきました。

実際に作ったものは、自分の満足のいかないものばかりだったものの、アイデア出しの難しさ、アイデア出しのコツ、取り組み方を学ぶことができました。

また、普段行わないことにも積極的に挑戦しました。

例えばLTの参加です。
第一回イベントではOAuthの仕組みについて発表し、オンラインで開催された「夏祭りLT[1]」では、0.0.0.0 Dayという新しく出た脆弱性を調べて発表しました。

また、6月にはWaniCTFをみんなで解く勉強会も行いました。
SecHack同期のhiikunZ[2]さんも参加してくださって、一緒にhard問題を解くこともできました!

そして習慣化にも取り組むようになりました。
きっかけはSecHackも終盤に差し掛かり、何も残せていないなと感じたからです。

SecHackメンバーにはランニングを時々やる人がおり、前から自分もやりたいと思っていたので、2週間に一回という少ない頻度ですが走るようになりました。

また、セキュリティニュースを調べたり、CTFを解く習慣もつきました。

また、日報もほぼ毎日つけるようになりました。

その結果、SecHack最後のイベント会では「優秀習慣生」も選ばれることができました!

SecHackを通じて学んだこと

大きく分けて、「アイデアとの向き合い方」「チーム開発の進め方」「習慣化の良さ」を学びました。

アイデアとの向き合い方

SecHackに参加する前は、学習目的以外で何か作品を作るなら、作る価値があるものだけに時間を割きたいと考えていました。なぜなら、自分が開発にかけた時間を無駄だと感じたくなかったからです。

私はよく考え方が変わります。その瞬間に強く取り組みたいと思っても、数年後に「なぜその物事に取り組んでいたのだろうか。もっと今に役立つことをしておけば良かった。」と後悔することが何度もありました。だからこそ、未来の自分が今の自分の行動を論理的に納得できるように、感情に任せて行動せず課題に沿った取り組みを行いたいという意識を強く持っていました。

もちろん、開発にかけた時間で得る暗黙知は将来に大きく影響するでしょうし、考えてすぎて行動しないよりも遥かに良く、今作りたいものに全力で取り組むことが一番楽しく大きく成長できると思います。しかし、私は取り戻すことのできない”時間”において、後悔しない人生を歩みたいと弱気になっていたのです。

SecHackに参加したことで、この考え方が大きく変わりました。

まず、自分が納得できる課題とアイデアはなかなか見つからないということに気が付きました。世の中の多くの人が抱えている悩みはすでに誰かが効果的な解決策を提供しており、世の中の需要を満たす自分だけの作品を作るのは本当に難しいことだと思います。そんな中で、その望みを実現するには、最新技術のキャッチアップして課題と結びつけたり、プロトタイプを一旦作成し、日々考察と改善を繰り返したりする必要があるのだと学びました。少し考えたら実際に行動することが最も大切なことでした。

次に、今自分が取り組んでいる内容について具体的に説明できることが重要ということも学びました。そもそも未来は誰にも予測できず、知識が増えるほど考え方も変化していくのは当たり前のことです。だからこそ、その瞬間の自分の強い思いを未来の自分に伝えることで、この行動はその瞬間の最適解だった考えることが重要なのだと感じました。「もっと役立つことをしておけば…」という後悔は、行動した瞬間の自身の思考過程に考えが行き届いていないからこそ発生するものだと思うようになりました。

チーム開発の進め方

SecHack以前からチーム開発の経験はあったものの、自分から課題やアイデアを提案してチームの方向性を決める経験はありませんでした。今回初めてハスラーを経験し、自身の開発したいものをチームで作ることも難しさを痛感しました。

チーム開発は各々がやりたいこと/やりたくないことを抱えながら参加しています。そのため、適切な役割分担と依頼、開発計画が大切だと学びました。

今まで、チーム開発は同じ価値観を持った人が集まって何かを作るものであり、価値観の合わない人は開発に参加しなくても仕方がないという考えを持っていました。しかし、自分と全く同じ価値観を持つ人は滅多におらず、実際の仕事を意識するとこの考え方では上手くいかないことを感じました。本当に大切なことは、チームメンバー全員が協力して妥協点を見つけ合い、各々の目指す目標に向けて、異なる動機で最後までチーム開発を続けることなのだと学びました。ここでの”協力”とは、具体的に以下のようなものを表しています。

  • マイナスな感情を表に出さない
  • 相手を不快しない言い回しを心がける
  • できる範囲で自分のタスクを請け負い、責任を持って終わらせる
  • 遅れや進捗の報告をこまめに行う
  • リーダーは目指す所を明確に示し、パッションを持ってメンバーのモチベーションを維持する
  • リーダーはメンバーの時間を尊重し、会議の事前準備などを先に済ませておく

他にも、質問をする際のコツも学ぶことができました。

まず、会議中にメンバーに質問をするときは、前もって相手の名前と聞きたい項目を示してから具体的な(質問の対象となる)内容を話すと良いということです。相手の集中力や興味の有無が原因で相手が質問に答えられない時の対処や、質問に対する回答の精度の向上に繋げることができると思います。

また、質問は具体的に行うことも大切ということも学びました。アイデアなどの話は人によって捉え方が千差万別なため、質問を具体的に伝えなければ望む回答が得られません。また、抽象的な質問は相手に負担をかけてしまいます。

私は今まで、両親など年上の方に質問する機会が多く、相手が意図を汲み取って適切な回答をしてくれていました。そのうち、無意識に、相手に意図を汲み取ってもらい、自己の思考の言語化に活用するといった甘えた行為をするようになっていました。SecHackを通じて自分の欠点に気づくことができ、本当に良い学びを得ることができたと感じます。

習慣化の良さ

SecHackに参加する前は習慣化が苦手でした。忙しくなるとどうしても優先順位を下げてしまい継続できなかったのです。ただ、習慣化を行わなくても日々取り組むことを変えて学習を続けていたので、習慣化に必要性を感じていませんでした。

そんな中、SecHackで習慣化を始めたきっかけは、佳山トレーナーの存在が大きく影響しています。佳山トレーナーは習慣化トレーナーとして、TypeTalkというチャットアプリ上で頻繁に習慣化の呼びかけを行っていました。

SecHackも後半に差し掛かった時期に、自分がSecHackで何も残せていないことを感じ、佳山トレーナーの呼びかけを見て、習慣化に挑戦するようになりました。

習慣化を始めたことで、習慣化の良さに気づくことができました。それは、自分の目標を日々意識しながら行動できるということです。

習慣化を行うことで、意識的にその物事に時間を確保するようになります。忙しくて他の物事に時間を割きたくなる時も、継続的なタスクを自分に課すことで、本来成し遂げたいことを日々思い返して、一番重要なことに時間を割くことができるのです。

さいごに

SecHackは本当に多くの学びが得られる空間です。技術面だけでなく、思考力、コミュニケーション力なども身につけることができます。

また、SecHackは挑戦したら必ず周りの人が応援して助けてくれる温かい空間です。
これからSecHackのトレーニーになる人は、ぜひ自分に合ったコースを選んで大きく成長してください。応援してます!!

SecHackで関わってくださった皆さん、本当にありがとうございました。

脚注
  1. アシスタントの方々がオンライン企画を開催してくださいました! ↩︎

  2. SECCON Finalsという国内最大級のハッキングコンテストで2025年に国内1位のチームになった経験もあります。天才です。 ↩︎

Discussion