セキュリティキャンプ全国大会2018に参加して

はじめに

8月14~18日に府中で行われたセキュリティキャンプ全国大会2018に参加してきました。

Twitterとかのハッシュタグは #seccamp とか #seccamp2018 なので検索してみると空気がわかると思う。

はじめにとても簡単な感想を書くと

  • すごい人たちから詳しい講義を受けられていろいろと興味を刺激された
  • いたるところで技術に関する会話しかないという普段はありえない空間
  • 同じ物を使っている同士や面白いものを作っている人と知り合えた
  • おいしい食事と快適な空間
  • いろいろな企業さんから本とかグッズをもらえてよかった

っていう感じなので興味のある人には是非参加してもらいたい。

 

セキュリティキャンプ とは

IPAのページセキュリティ・キャンプ協議会の全国大会のページから引用しながら説明すると

セキュリティ・キャンプ全国大会は、独立行政法人情報処理推進機構(IPA)と一般社団法人セキュリティ・キャンプ協議会が中心となって行っているセキュリティ・キャンプ事業のメインイベントです。
2018年は8月14日から5日間の合宿形式で開催します。
ITセキュリティ技術に興味を持った若者から選抜し、選抜された参加者は受講料、宿泊費、食費、教材費などの負担なく参加することができます。

現代においては、情報セキュリティの脅威は高まる一方です。
本事業では、セキュリティ分野に興味を持ち、将来同分野で活躍したいという意志をもった若者に対して、高度な情報セキュリティ技術の習得機会を提供しています。また、モラルや法律遵守の意識、セキュリティ意識、職業意識、自立的な学習意識についても向上のための機会を提供しています。

この説明どおりにとても濃い密度で様々なことを学ぶことができました。

しかも学生にはありがたいことに一円もお金がかからずに学べるだけではなくスポンサー企業や出版社さんが本やグッズをくれるのでキャンプのあとでも自分で学ぶための材料が揃うという夢のような機会でした。

ここからは1日目から順番にとくに印象に残ったことを順番に書き連ねていこうと思う。

Day1

受付と昼食

到着したら受付をして、昼食となりました。

この時に一緒に座った人や周りの人と名刺交換をしたり、どんな経緯でキャンプに申し込んだかとか使っているOS談義をした。

この時に自分と同じくThinkPadにFedoraを入れている同士を見つけたりやArch使いにArchを宣伝されたりしました。昼食は写真を取り忘れたけどとても美味しかった。

 

開会式・オリエンテーション

ここで配布される資料や貸与されるPC、企業のアニメティを受領した。

キャンプの前にサイボウズLIveで荷物が多くなるから余裕を持ってきたほうがいいとは言われていたがこの時点で予想よりも多い量の配布物。今回はキャンプのTシャツとパーカーが配布された。

開会の挨拶では経済副大臣がいらした。これを聞いて想像よりも大掛かりな事業なのだと実感した。

PCはDynabookの第7世代i5,RAM8GBの十分なスペックがありストレスなく講義に集中することができた。

 

セキュリティ基礎

この講義で一番印象に残っている言葉は 人間はすべてを台無しにする権限を持っている という言葉だ。

これはsudoを初めてする時に表示される文章の

#3) 大いなる力には大いなる責任が伴うこと。

に通ずるものがある。

はじめに情報漏えいの7割の原因は人為的ミスに寄るものであるということを示され、その具体例を様々挙げられた。確かにその例は起こり得るし自分も一時期この状態にしてしまったことがある内容であり明日は我が身であると思った。

そして、なぜそのようなことが起こり得るかということを

  • 安全装置を超えてしまう
  • 自己補完してしまう
  • 異常事態が常態化し鈍感になってしまう

といった観点から説明してもらった。

その後グループでどうしたら失敗から学べるか、なぜ失敗から学べない状況が作られるのかを話し合った。

これでは、自分が思いうかばなかった観点から考えることもできたため良い経験となった。その結果人間にできることには限界が有り人間はどうしてもミスをするためそれをシステムの面から防ぐことが重要であると思った。

 

特別講義1

自分がセキュキャンを知るきっかけになったOSC オープンソースカンファレンスを主催している株式会社びぎねっとの社長の宮原さんによる自由なエンジニアとはなにか という話だった。

ここではOSCを通して

  • 目標達成を目指す
  • 手段と目的を取り違えない
  • 持続可能性を考える

といった何かを作りたいという考えだけでは思いつかない観点からどのようにOSCを作り上げていったかの話をしていただいた。特に持続可能性はコミュニティの改革には持つべきである視点であり、これなくしては一時的なものにとどまってしまうと感じた。

 

特別講演2

科学捜査研究所から弁護士になった珍しい経歴の人にハッカーは法律を守るのかという内容について話していただいた。

具体的な状況を提示されてどこまでは犯罪じゃない(刑法に触れない)か、どこからが犯罪かということを考えるという内容であった。

この中で完全に(合法|犯罪)な部分はごく僅かであり倫理観的に問題がある部分がある条件下により許可or制限される。そのため技術者には法律に対する知識や倫理観を持ち合わせる必要があると感じられた。

LT大会・グループワーク

LT大会では思い切ってBtrfsで気軽に壊せる環境づくりという題で発表してみた。あまり経験がなかったためいろいろと反省点が

あったが発表してみて面白かったので他のネタでもどこかの機会で参加したいと思った。

他の人のLTでNOCの話やブロックチェーンの話はとても興味が湧いたので参加したりコードを読んでみたいと思う。

その後のグループワークではキャンプ後に何をしたいのか、何を実現するかという観点をグループで話し合ったり講師や企業の人に聞く時間となった。その道を行く人の話を聞けていろいろ考えるためのヒントをいただけた。

 

Day2

この日から各トラックごとに分かれての講義が始まった。

自分のDトラックではロボットや半導体などの低レイヤーに関する講義が行われた。

4+4+3=11時間の講義だったがどの講義ももっと時間がほしい!時間が足りない!

D1:ドローンシステムにおけるセキュリティーガイドラインを作ろう!

この講義ではドローンをどうこうよりもこれからセキュアにドローンを利用するために必要なガイドラインは何が必要か考えるという講義だった。

始めにドローン関連市場の成長予想について話してもらったが世間一般がやけにおそうとしている物流は大した規模はなく大まかに言って写真撮影を行う分野が主力になることが予想されている。

これは簡単に予測がつく通りものを重力に逆らって浮かすには莫大なエネルギーが必要であるため非効率的であること。そのエネルギーを補充するのに電気エネルギーでは勝手が悪いことなどが挙げられた。

また、世の中の常としてハードを売る分野よりもそのハードを利用しサービスを提供する分野が主力となる予測だった。

その後ドローンの内部構造やこれからどのようなシステムで運用されるようになるかを教えられ、どこがセキュリティ的に破られる部分になるかを考えた。

耐タンパー性やそのドローンが利用するGPSや外部センサ類に妨害をされたらどうなるか、通信に対して攻撃されたらどうかなどグループに分かれて話し合ってガイドライン的なものをつくった。

講師の人が思い浮かばなかった内容も出たり、攻撃するならどこを狙い守るならどうやって守ると考えるのは多様な視点を身につけられるいい経験になたのではないかと思う。

 

D2: ROSロボットをハックせよ

Raspberry Pi MouseとROSというラズパイ上で動くミドルウェアを使って動かしてみるという演習でした。

1時間ほどROSに関する説明を受け残りの時間で動かしてみるという内容だった。

自分のロボットは運悪くROS自体がうまく動かないと思ったら距離センサが死んでいるというトラブルが起きたため解明に時間を取られ実際に動かせた時間が少なくなり実装しきれなかったのが悔しかった。

ROSで動かしてみた感想としては予想以上に簡単に動かせたので驚きだった。その一方でROSが抽象化している分今回のように障害が生じた場合には解析に時間がかかるためROSそのものやその下の部分に対する総合的な知識が必要であると感じた。

この講義だけで1日使って欲しいくらいには楽しい講義であった。

 

D3:チップレベルでカスタマイズができることで見える世界の体験

プリント基板を作るノリでLSIを作れたらいいよねという趣旨の講義だった。

確かにチップレベルで作るという選択肢は今まで考えたことはなかったがチップが登場したからこそ今では簡単にできるようになった例は世の中に腐るほどある。

今回の時間だけでは0から設計する時間はなかったためARMCPUのHDLソースを使ってUbuntuで配線などをツールを使って行う手順を行った。

大学の講義でサラッと流された部分を実際に試て理論と現実がつながった気がした。

あと5年もすればプリント基板と同じようにチップを発注できる流れだときいたのでそうなったら作りたい。

 

Day3

この日から選択講義で個人個人がコースに縛られないで好きな講義を聞ける日。

この日と次の日が企業の人に話を聞ける日

 

E4:Linux 故障解析入門

TOMOYO LinuxAKARIの作者の人による不具合を見つけたらどのように見つけわかりやすく報告するかについての講義だった。

講師の人が事前に用意した過去にあったApacheのバグを踏みその不具合の再現手順や状況を見つけるという演習を行った。

実際にやってみると変な値を突っ込んだらおかしくなったという段階からこれこれこういうことをするとこうなるから原因はあれではないかという部分まで持って行くには根気のいるパラメータを変えながら試す作業があったり、関連する部分に対する広い知識が必要であることがわかった。

不具合の報告もOSSに対する貢献の一部ではあるのでテスト版を使ってうまく報告できるようにしていこうと思った。

 

D5:JTAG(ジェイタグ)の原理と活用

大学の半導体設計の授業では存在だけ教えられて流されたJTAGを実際に使ってみれてとてもおもしろかった。

JTAGは主に基板検査用として開発されたが端子に入力を与えたり出力を見たりすることができ詳しいデバッグができるツールでありソフトウェアからは触れない部分であり開発者が意図しない動作を引き起こせる。

今回の講義では作りこまれた設計ミスをJTAGで見つけて直す予定だったが時間がなくJTAGで入力や出力を制御したり信号を計測するにとどまった。

JTAGはデバッグや開発支援として用いれば素晴らしいツールである。しかし、その便利さが悪用も可能なため毒にも薬にもなるツールでありJTAGが使えないワンチップマイコンを用いたり設計で工夫するなど考える必要があると感じた。

 

会員企業のお仕事紹介

この日は株式会社三菱総合研究所と日本電気株式会社の話を聞いた。

どちらも普段聞けない話をしてもらい得るものがあった。

特にNECの人は深い部分の話をしてくださり、この日のグループワークの時にもいろいろと話ができためになった。

余裕ができたらIPv6のアクセスログをとってみようとおもう。

 

Day4

ほぼ3日目と同じ流れ

グループワークの後に協賛企業や出版社からの景品?がもらえた。

D6:組込みリアルタイムOSとIoTシステム演習 ~守って!攻めて!ロボット制御バトルで体験する組込みセキュリティ~

GR-PEACHがベースのロボットを動かしてCTF形式で演習した。

始めから動作ポートを変更するという防御策をとったがアクセスポイントへのDOS状態となり守れてはいたが動かすことができなかった。

アクセスポイントを変えようとしたが渡された機材の初期パスワードと違ったり出荷時への初期化がうまく行かなかったりWPA2の暗号化のアクセスポイントにつながらなかったりトラブルはあったがいろいろと防御点を考えることができた。

C7:攻防型CTFによるWebオンラインゲームのチート行為の体験

事前課題でアプリケーションの通信を解析したりリバース・エンジニアリングした。

講義ではWebsocket通信を行うゲームでのCTFを行ったが事前課題でDeveloper toolの使い方を教えて欲しかった。

しかし、初めて本格的なCTFをすることができ楽しかった。

時間内では攻撃ツールの作成が間に合わなかったがこれを期にCTFを初め行こうと思う。

 

会員企業のお仕事紹介

トヨタ自動車株式会社とゲヒルン株式会社から話を聞けた。

トヨタ自動車の方では車載機器が電子化されているため大量のデバイスがつながっているためよりセキュリティの確保が重要になっているという話を聞いた。

興味のあったCANFDについても触れてもらえたので良かった。

ゲヒルン株式会社はTwitterで有名な特務機関NERVの中の人がセキュキャンを経てどうして起業し会社を運営してきたかについて話してもらえた。

官公庁との案件がありどこがどのように課題となったかやその解決策、技術の潮流について勉強になった。

グループワーク後の企業提供の物品配布

協賛企業や出版社が提供してくれた物品をいろいろもらえた。

自分たちのグループは運良くじゃんけんで勝ってくれたので初めに選ぶことができた。

さくらのクラウドの2万円分のクーポンや欲しかった暗号技術のすべてをもらえた。

これは古今東西の暗号についていろいろ書いてある本なので少しずつ読み進めていこうと思う。

 

Day5

この日は各コースごとに成果発表が行われた。

集中開発コースから発表があったがしょっぱなからJavascriptエンジンをスクラッチで書いた人から始まった。JITを実装しただけでもすごいのにその発表は自作ブラウザで行ったというから強さを感じた。

その後いろいろ発表があり印象に残った人を挙げると

  • CコンパイラをDay0でセルフホストした人
  • ジュニア開発ゼミのブラウザやwebサービスを作った中学生たち
  • SLOBを改良しSLABに匹敵する性能を出した人
  • マルウェア解析で高い検出率を出した人

ここでは挙げきれないひとが様々なものを作り上げていた。

このあと昼食等をはさみ閉会式になった。

閉会式では修了証をもらい講評となった。

最後の話ではとにかくアウトプットを大事にということを繰り返し言われた。

知識は貯めこむだけでは使えないためそれを形にして発表することが大切であること。ライバルと技術で殴りあうことで高みにたどり着くということだった。

これからは些細なことでも試したことは記事にしてアウトプットしていけるようにしたい。

 

まとめ

普段は自宅サーバーを動かすのがメインでたまに電子工作という程度だったがセキュリティキャンプを通して幅広い知識がセキュリティを構築するためには必要不可欠なものだと実感することができた。

また、様々な分野に精通した講師陣の指導や一緒に講義を受けた仲間から刺激を受け考えているものを必ず現実化するぞという気持ちを新たにした。どの講師の方も口を揃えていうのははじめからできたのではなく手を動かしていたらここまで来たという趣旨の内容でした。

キャンプは技術にだけ取り組むことができる非常に充実した5日間だった。自分は選択講義だったが時間がかぶってしまったため興味があったが聞けなかった講義がいくつも存在した。特にE7:BadUSBの講義をやってみたかったのでキャンプの帰りにパーツを買ってきたので試して記事にできたらなと思う。

キャンプの期間中は講師、チューターの方にはいろいろと助けていただいた。来年や再来年、それ以降にでもチューターや他の形でまたセキュリティキャンプに関われるように研鑽を積んでいこうと思う。

そして、これほどまでに素晴らしいセキュリティキャンプを他の人にも知ってもらい参加できるように部の後輩などに広めていきたいと思う。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください