9/28~29に、セキュリティ・ミニキャンプ in 山梨 2019を行いました!

ここでは、当日の内容をざっくりまとめてご紹介したいと思います。

開催概要

今回のミニキャンプは1日目に一般講義、2日目に専門講義という構成です。 一般講義は選抜なしで参加できビジネス寄り、専門講義は選抜ありでガッツリ技術と特色づけられています。

  • 9月7日(土)
    • 『開演挨拶』島田 眞路氏 国立大学法人山梨大学 学長
    • 『サイバーセキュリティ政策の最新動向』 赤阪 晋介氏 総務省サイバーセキュリティ統括官室
    • 『サイバー社会に求められる若手技術者への期待』 西本 逸郎氏 一般社団法人セキュリティ・キャンプ協議会会長/株式会社ラック代表取締役社長
    • 『デジタル社会に求められるサイバーセキュリティ ~技術と人材で支えるセキュリティ対策~ 』 森 玄理氏 富士通株式会社 サイバーセキュリティ事業戦略本部本部長代理
    • 『情報セキュリティをめぐる現状と企業における対処事例』 白石 涼子氏 NTT東日本ビジネス開発本部担当部長
    • 『2020年とその先の都市の安全・安心 ~NECが目指すパブリックセーフティー~ 』 山際 昌宏氏 日本電気株式会社 東京オリンピック・パラリンピック推進本部 パブリックセーフティ&ネットワーク事業推進グループ部長
    • 『セキュリティ・キャンプ紹介』 米内 貴志氏 セキュリティ・キャンプ協議会 ステアリングコミッティ企画グループ
  • 9月8日(日)
    • 『ミニキャン言語を作ってみよう!』 髙橋 祐花氏 セキュリティ・キャンプ全国大会2016修了生
    • 『OSの力を借りずに起動するアプリを作ろう』 内田 公太氏 セキュリティ・キャンプ講師/サイボウズ株式会社

一般講義

一般講義では、協賛企業や事務局企業の方々から、主にビジネスや政策の面から見たセキュリティについて講演頂きました。

主なトピックはNICTORやNOTICE・若手技術者への期待・今ある脅威に対するソリューションやオリパラ関係のセキュリティ技術などでした。 それらについて、各企業や行政庁の取り組みを踏まえつつ、今後どのようになっていくか・それに対してどういった手があるか等を紹介頂きました。

そして最後に、企画グループの米内よりセキュリティ・キャンプの紹介を行いました。

単なる紹介に留まらず、参加者として参加していた当時の体験を踏まえた中の人目線での話も含んだプレゼンとなっており、キャンプに興味を持ってもらうきっかけになったのではないかなと思います。

1日目の参加者はビジネスマンや官公庁関係者が多かったものの、学生の方も多くいらっしゃいました。 遠方から参加されてる方もおり、運営側としては嬉しい限りです!

もし専門講義はハードル高そうだしなぁ……と考えている方がいらっしゃれば、近くで開催された際に1日目だけでも参加頂ければ幸いです。 そして終了後に中の人を捕まえて頂ければ、キャンプのことやセキュリティのことなどお時間の許す限り色々お話出来ると思います。 もし興味のある方がいれば、是非とも協議会スタッフ捕獲チャレンジをしてみてください!

専門講義

2日目の専門講義では、セキュリティ・キャンプ全国大会の講師や卒業生の方々に、技術的なテーマで講義頂きました。

今回のキャンプは2016年参加者の高橋さんと、2019年講師の内田さんによる合作で、『自作OS上で自作言語を動かす』というテーマで行われました。 自作言語や自作OSについて一度は考えたことがあるものの、実現までのハードルが高く挫折したという方も多いのではないでしょうか。

そんな憧れのテーマとあってか、小学生から大学生まで幅広い年齢層の方が、沖縄や広島など会場から遠い地域も含め全国各地からご参加くださいました。 主な参加者の属性としては、地元山梨の方や電車一本でアクセス可能な東京の方が多く、年代としては大学生の方が多かったようです。

専門講義前半:ミニキャン言語を作ってみよう!

専門講義前半の高橋さんの講義『ミニキャン言語を作ってみよう!』は、その名の通り言語を自作するという講義です。

具体的には、LLVMバックエンドで動くコンパイラの作成を行う講義でした。 選抜終了後からミニキャンプ当日まで毎週課題が与えられ、翌週までにそれを解いてくるというスタイルで進みました。 課題の内容としては、四則演算や関数呼び出し等の基本機能実装だけでなく、それらに加えて自由テーマの独自機能実装も課されていました。 そして最終日に、そのコードの解説や、課題を通して得た知識の発表がありました。

普段のミニキャンプとは異なりやや重い内容でしたが、皆さん出来る限りを尽くして、思い思いの言語を作っていました。 発表についても、時間いっぱい使い切った上にランチを食べながらもなお発表を聞く等、かなりアツい講義になったのではないかと思います。

個人的に面白かったのは、for文を実装した方の「コンパイル後の中間言語を意識しながら書くとやりやすかった」という発表と、コンパイルエラーを赤字で出すという「オシャレな工夫」をした方の発表でした。 どちらもモダンな言語では既に実装されており意識しなくてよい所ですが、それに慣れると、そういった工夫/考え方をするというのが盲点になってしまうということに気付かされました。

全国大会の講師の中には『人より下を行く』を座右の銘にしてる方もいます。 その格言通り、普段意識してないコンパイラや中間言語といった一段下のレイヤーを意識すると違った学びがあって良いなぁ、と改めて実感しました。

専門講義後半:OSの力を借りずに起動するアプリを作ろう

専門講義後半の内田さんの講義『OSの力を借りずに起動するアプリを作ろう』では、UEFIでブートできるOSの作成を行いました。

この講義は前半の自作言語と繋がっており、前半の講義でコンパイルしたELFバイナリを実行できるOSの作成がテーマでした。 真面目にOSを作る場合、メモリ管理やコンテキストスイッチなど様々な壁があります。流石にミニキャンプ期間中に実装できる規模ではなくなってしまうため、講義としては自作言語の実行に必要な機能を中心に実装していく、という方針となりました。

UEFIとSDKによってある程度楽になってるとはいえ、普通まず書かないであろう低レイヤーのコードで苦戦している人が多かった印象です。 普段いかにOSに助けられ、楽にコードが書けているかを実感したのではないでしょうか。

終了後に感想を聞いたところ「難しかったけど沢山のことを学んだので帰って続きを実装します」という力強い意見を多く頂きました。 来年の全国大会が今から楽しみですね!

終わりに

セキュリティ・ミニキャンプ in 山梨 2019では、1日目にビジネスや政策の面から見たセキュリティを、2日目に自作OSで自作言語を動かすというテーマに沿って自作言語と自作OSの実装が行われました。

普段のミニキャンプと異なり難しめのテーマと事前課題で参加者も苦労していたようですが、その分得たものも多いようで、今後の活躍が楽しみになりました!

セキュリティ・ミニキャンプは今後も全国各地で開催していきます。 募集を締め切ってしまった回もありますが、現在募集中だったりこれから募集が始まる回も、まだまだあります。 この記事を読んで少しでも興味を持った皆さん、ぜひミニキャンプに参加してみませんか。あなたのご応募をお待ちしています。

最新の情報は https://www.security-camp.or.jp/minicamp/index.html をご覧ください。