2020年度のSecHack365を完走しました

 はじめに

SecHack365(せくはっく さんろくご*1 )というセキュリティ人材育成プログラムの思索駆動コースに2020年7月から2021年3月まで参加し、修了することができました。この記事では、SecHack365での活動の様子や感想を述べます。

 

SecHack365ってなに?

SecHack365を一言でいうと、情報通信研究(NICT, えぬあいしーてぃー)「セキュリティイノベーター育成プログラム」です(*1)。セキュリティイノベーター???なにそれ???お前、イノベーターを自称するのかよwwwププwwwイキり奴wwwという感じの字面ですね。公式TwitterのBIOを引用したので、別にイキりなわけではないです。

 もっとわかりやすくいうとSecHack365は「日本トップレベルのエンジニア・研究者をメンターにできる、情報セキュリティ周辺の開発・研究をする長期ハッカソン」です。期間は大体9 ヶ月です。申し込み時点で25歳までの方が参加可能で、高校生、大学学部性、大学院生、社会人が参加しています。

 SecHack365では、育成対象の学生などをトレイニー、教官*2をトレイナーと呼びます。この記事でも、トレイニーとトレイナーという語句を使って行きます。

 例年であれば、全国各地にトレイニーとトレイナーが集まって講習やメンタリング、発表などのイベントを行うのですが、2020年度はCOVID-19の影響でオンラインでの開催でした。オフラインでのイベントが開催される場合、学生には全国各地への交通費・宿泊費が支給されます。学生にとっては非常にお得な人材育成プログラムです。しかし、今年はオンラインのため全国各地に無料で旅行に行くことはできませんでした。非常に残念です。血税で沖縄に行きたかった。

 SecHack365では、以下のコースを選んで、それぞれのコースで集まってメンタリングや様々なアクティビティを行います。雰囲気としては大学の研究室に似ています*3

  1. 表現駆動コース
  2. 学習駆動コース
  3. 開発駆動コース
  4. 思索駆動コース
  5. 研究駆動コース

各コースの特性は、公式HPを御覧ください。私は思索駆動コースに参加しました。

エントリー

 2020年度のSecHack365の応募期間は2020年5月下旬から6月中旬でした。そこそこの人数がエントリーしているらしく、参加できるかどうかを決める選考があります。コースによりますが、選考内容は、実績バトルと作文執筆バトルです。私は、思索駆動コースにエントリーし、合格しました。

 自分がSecHack365に参加しようと思ったきっかけは、大学のサークルの先輩が過去にSecHack365に参加していて楽しそうだったことです。国が「情報セキュリティ人材が足りん!人材育成が急務だ!」というモチベーションで設置したプログラムに「なんかたのしそう(^p^)」みたな気持ちでエントリーして申し訳ない気持ちになりますね。2019年度にも、ふわふわした気持ちで研究駆動コースにエントリーをしていて不合格になっており、実際モチベーションが明確になっていないと選考を通るのは難しいのかもしれません。

 2020年度の申し込みでも、「たのしそうだから(^p^)」という小学生みたなモチベーションでエントリーをしているのですが、加えて「自分の今後キャリアで関わる技術分野の発展を将来妨げそうな因子を取り除こう」というモチベーションもありました。SecHack365の募集期間の直前に就活をしていたので、自分が何をしたいのか?自分に関わる技術分野に足りてないものは何なのか?がエントリーの時点で明確になっていたと思います。思索駆動コースでは、他のコースに比べて”ビジョン””ミッション”みたいな「意識高めのモチベーション」が重視される印象があります。エントリーの作文では、技術的な面も重要ですが、「何がしたいのか?」「理想のデジタル社会とは?」のような、少し空想的な内容を強めに押し出してもいいかもしれません。

コースワーク

 各コース(開発、表現、思索、学習、研究)での、活動は様々です。各コースで全く異なります。選考方法も選考基準も(おそらく)異なるので、各コースのトレイニーたちの興味や雰囲気も多様です。研究、開発、学習駆動コースはセキュリティガチ勢が多く、表現、思索では比較的応用寄り・web寄りのトレーニーが混ざっている印象です。

 思索駆動コースのコースワークでは、各トレイニーのプロジェクトについての思索を深めるようなアクティビティが行われます。具体的には、思索に役に立つようなビデオに視聴して感想を共有したり、対話によって思索を深めたり、週1回セキュリティ分野のトピックについてサーベイをして発表したりします。ほとんどのアクティビティで、トレイニーが発信する場面が多く、トレイナーから一方的に講義を受けるだけのアクティビティはほとんどありません。アクティブ・ラーニングですね。楽しいですね。

 思索駆動コースは、既存セキュリティ分野の枠にとらわれないような分野境界的なプロジェクトや人間の行動や心理にフォーカスしたプロジェクトの思索を深められることが魅力だと思います。

 一方で、トレイナーの研究領域に興味があり、その講義を聞きたいという方には、思索駆動コースではトレーナーの専門分野の講義などはあまり設定されていないので、他のコースがおすすめです。また、思索駆動コースでは、ほとんど低レイヤー周りを扱わないので、低レイヤーやフルスクラッチ実装などの興味がある方は他のコース(開発、学習、研究など)にエントリーしたほうが良いと思います。 

プロジェクト:作品

SecHack365では、トレイニーが9ヶ月に渡って研究・開発プロジェクトを行います。表現駆動コースはチーム開発、それ以外のコースは個人開発です。どのコースでも、トレーナーやアシスタントが各プロジェクトに対して定期的にコメントやアドバイスを貰えるので、個人開発でも孤独感はありません。

 思索駆動コースでは、SecHack365開始の7月の時点でプロジェクトの内容やテーマが決まっている必要はありません。私は、エントリーの時点でテーマを定めて応募したので、通年で同じプロジェクトを継続していましたが、中には最終成果発表会の1~2ヶ月前までテーマが決まっていなかったトレーニーもいました。思索駆動コースでは、開発をガンガン進めるというよりも、プロジェクトに込めた意図や狙い、思索が重視されます。例年、テーマが途中で変わったり、テーマがなかなか決まらなかったりするトレーニーも多いようです。

 私のプロジェクトは、情報セキュリティ分野の本丸に位置するようなテーマではなく、機械学習に関わるプロジェクトでした。SecHack365の前半では、他のコースワークのトレーニー・トレイナーから、これのどこがセキュリティ分野の開発なんですか?と思われていたことでしょう。そもそも、トレーニー・トレイナーの中でも、機械学習の専門家が少なかったので仕方のないことだと思います。プロジェクトの後半、コースのトレイナーの助言などもあり、「どうしたら自分のプロジェクトをセキュリティ技術として理解してもらえるか?」を考えるようになりました。結果として、最終発表では、機械学習分野が専門ではないトレイナー・トレーニーにも、作品の意義や内容を伝えることができたと思います。もともと自分は「機械学習は知っているけれど、セキュリティは知らない」という人間だったので、SecHackを通して異分野の方々に自分のプロジェクトをわかりやすく伝える経験を積むことができました。卒業研究やインターンでは得ることのできない良い経験だったと思います。

 いわゆるセキュリティ分野のテーマでなくてもSecHack365の作品とすることは可能ですが、その分トレーニーから技術的な助言をいただくのは難しくなります。私の場合、思索駆動コースには、機械学習を専門にやっているトレーナーはいなかったのと、自分のプロジェクトが機械学習の中でもマイナーな分野だったので、トレイナーから技術的なアドバイスをいただくことはできませんでした。しかし、トレイナーからは技術的な面以外の、伝え方や作品の社会的影響、作品の意図、習慣化など様々なご助言をいただきました。もし、プロジェクトを設定する上で私からアドバイスするとすれば、「自分で自走できるテーマなら何を選んでもよいが、その分の責任は自分で取るしかない」ということです。すでにその分野で開発や研究の経験があり、わからないことがあっても自分で解決する手段を持っている、もしくは、SecHack365外の専門家とつながりがある、などの場合では、トレーナーの専門領域外のテーマを選んでも良いと思います。それ以外は、あまりおすすめしません。

 なお、トレーナーの専門領域はSecHack365のHPに書いてありますので、エントリーの際はそれを参考にしてください。

SecHack365中の生活

 2020年度のSecHack365はオンライン開催だったので、オンラインでの小さいイベントやコンテンツが数多くありました。COVID-19の影響で、家から出られずコミュニケーションも不足しがちな中、1週間に一回のコースワークでトレーナーやトレイニー、アシスタントに画面越しで会えることが精神的な安定剤になっていました。オンラインでもコミュニケーションは心の栄養になると感じました。また、トレーニー向けにビデオがいくつか用意されていて、双方向のコミュニケーションだけでない講義形式のコンテンツも充実していると感じられました。

 私の場合は修士2年で修士論文を書く時期とSecHack365の期間が重なっていたので、11 月~2月はタスクが山積みの日々を過ごしていました。そもそも、修士論文を書くことをわかっていてSecHack365に応募するのは愚行という気もしますが、始めてしまったことはしょうがないので、気合でタスクをこなしていきました。可能であれば、卒業論文や入試と重ならない時期にSecHack365に応募するのが賢いと思います。幸いにも、自分の場合は9 月の段階で作品全体の6~7割くらい実装を済ませてしまったので、SecHack365の後半に大部分の開発タスクが襲ってくることはありませんでした。もし、9月段階でプロジェクトの大半が終わっていなかったら、11~1月は膨大なタスクに押しつぶされていたでしょう。

 オンラインでのコースワークやイベントでは、トレーニー同士の交流が生まれないのではないかという懸念もありましたが、トレーニー同士での交流はかなり盛んだったともいます。イベントデイでも運営側がトレーニー同士の距離を縮めるようなアクティビティを用意してくださいました。また、トレーニー発案で「トレーニーを囲む会」という週替わりで1人のトレーニーに1~2時間で自己紹介と興味のあることを話してもらうイベントも開催されていました。さらに、トレーニーが自主的(勝手に?!)忘年会やオンライン懇親会のn(>1)次会、オンライン飲み会なども行っていました。どの交流の場でも、積極的に交流イベントを引っ張ってくれたトレーニーがおり、感謝しています。技術オタクが集まる場でリーダーシップを発揮できる人間は最強だと思いました。このような自主的な交流の場の積み重ねの結果として、トレーニー同士でのコミュニケーションの量と質は、下手な研究室の大学院生同士のそれらよりも多いんじゃないかと思われました。ただ、トレーニーが参加している"とあるチャットルーム"では、タイムラインの治安がまるでデジタル・ゲトーのようでした。そこには、応用画像処理コースのトレーニーたちが住み着いており、お互いの肖像権を弾丸にしてギャングのように抗争を繰り広げていました。間違ってそのデジタル・ゲトーに入り込んでしまうと、流れ弾に当たってしまうことがあり、被弾すると自分の肖像権を放棄する羽目になるでしょう。自分も流れ弾に当たってしまいました。

感想

 楽しかったです(小並感)。

 参加して良かったこととして、セキュリティや低レイヤー周りに強い方々と繋がりができたことが挙げられます。自分は学部で物理学科、大学院で数理情報系の専攻に在籍しており、腰を据えてコンピュータサイエンスの基礎やサイバーセキュリティを勉強したことがありませんでした。今回、SecHack365に参加したことで"スクラッチ実装大好きCSつよつよ勢"、"セキュリティガチ勢"の発表を聞いたり、雑談で開発の話を聞いたりすることができました。ゲームが上手い人のゲーム実況動画を見ているようで楽しかったです。また、つよつよの方々の低レイヤーやセキュリティへの愛情を感じることができ、自分も自分の専門分野で、もっと鍛錬しないといけないと感じました。

 もっとこうすればよかったと思うことは、修士論文が炎上していた時期とSecHack365の作品を詰めていく時期が重なってしまったことです。作品の6~7割の実装を9月までに実装していたと前述しましたが、正直に言うと、それは結果論です。欲を言えば、10月以降に7~9月に書いたコードのリファクタリングや機能の追加をしたいと思っていました。しかし、修士論文になるはずの大学院の研究が10~12月に炎上してしまい、10月以降はSecHack365に割ける時間が短くなってしまいました。結果として、10月以降は7~9月に実装したコードを拡張するという方向で作品を完成させました。一応、SecHack365の作品は完成させましたが、不完全燃焼感が残りました。卒業論文を炎上させないか、炎上を見越して作品の進捗を早めに出しておけば良かったと思います。別に、修士論文の時期とSecHack365の期間が重なってしまったことについては後悔していません キリッ

SecHack365に参加したい人へ

 今の実力や実績は関係がないので、まずは応募しましょう!卒業論文と時期が重なっているだって?気合いで乗り切れるので、まずは応募だ!(ゴリ押しスタイル)

sechack365.nict.go.jp

*1:さんびゃくろくじゅうご ではない。絶対、間違えないように。

*2:NICT独立行政法人のためNICT所属のトレーナーは教官ではない。また、トレイナーには民間企業に所属している方もいる。

*3:各コースのトレイニーが大学教員である場合があるため、雰囲気が研究室になりがち。