8/14から8/18までクロスウェーブ府中で行われたセキュリティ・キャンプに参加しました.
セキュリティキャンプとは
セキュリティ・キャンプとは、日本における将来の高度IT人材となり得る優れた人材の発掘と育成を目的とした独立行政法人情報処理推進機構(IPA)の事業の一つです。
現代においては、情報セキュリティの脅威は高まる一方です。
本事業では、セキュリティ分野に興味を持ち、将来同分野で活躍したいという意志をもった若者に対して、高度な情報セキュリティ技術の習得機会を提供しています。また、モラルや法律遵守の意識、セキュリティ意識、職業意識、自立的な学習意識についても向上のための機会を提供しています。
本事業は、2004年度のスタート以来、2017年度のセキュリティ・キャンプまでで計663名の将来が有望なIT人材を輩出しています。セキュリティ業界はもとより各方面から、高度なIT人材育成に有益なイベントとして高く評価されています。
(https://www.ipa.go.jp/jinzai/camp/2018/zenkoku2018_about.htmlより)
私はフィジカルトラックに参加しました. 以下に写真とともに振り返っていこうと思います.
以前書いた応募用紙の内容はこっちです.
1日目
ここどこ Part1
ここどこ Part2
ここどこー!? pic.twitter.com/TlZtAtlCOv
— イェーイ (@dango_bot) August 14, 2018
会場で何をすればいいのか分からないので575探してる pic.twitter.com/3zY4UVW2Nn
— イェーイ (@dango_bot) August 14, 2018
お昼
最初にグループワークを交えて基礎講義を聞きました. OSSの話や法律の話が大変興味
深かったです.
全国大会1つ目の講義、園田さんによる「セキュリティ基礎」が始まりました! #seccamp pic.twitter.com/2iiKFXAn7e
— セキュリティ・キャンプ (@security_camp) August 14, 2018
株式会社びぎねっと 代表取締役社長兼CEO 宮原 徹様による特別講演「自由なエンジニアとは何か 〜 OSC 開催を 10 年以上続けて分かったこと〜」が始まりました! #seccamp pic.twitter.com/d7AQlpOigJ
— セキュリティ・キャンプ (@security_camp) August 14, 2018
西村あさひ法律事務所 北條孝佳様による特別講演「ハッカーは法律を破るのか」が始まりました。#seccamp
— セキュリティ・キャンプ (@security_camp) August 14, 2018
夕飯
夕飯のあとはLT大会を聞きました. 普段触れてないレイヤーの話が多く, 終始ビビり散らかしてましたが, 色んな人の話を聞くのは楽しかったです.
2日目
D1 ドローンシステムにおけるセキュリティーガイドラインを作ろう!
@Effigy PW is pretty cool, you can make quite a bit by setting a minimum bid if your hits are high enough
— nukeit (@nukeit) December 3, 2008
この講義ではまず, ドローンの制御システムから話をはじめて, 実世界でドローンを運用する際に, 必要となる運用セキュリティについてグループワークを行いました. キーワードとなったのは耐タンパー性とTrust Zoneです.
耐タンパー性は
コンピュータシステムの内部構造の解析のしにくさ, 見破られにくさのことである.
(Weblio辞書調べ)
でリバースエンジニアリングしづらいものを意識させられました.
もう一つのTrstZoneはARM CPUにつけられている機能で, ARM-CortexAシリーズでは通常の実行環境であるOS(Normal World)ともう一つのSecure Worldと呼ばれるセキュアOSが動いていて, 通常の環境からSecure Worldへのアクセスを制限することで, Secure World内のデータを保護する機能です.
Cortex-Mシリーズではメモリ内部でセキュア領域(Secure World)と通常領域(Normal World)を割り当てて, Secure Worldへのアクセスを制限することで, データを保護する仕組みだそうです.
こういった仕組みが使われているCPUを採用することで, ネットワークを介したドローンへの攻撃からドローンを守るのは面白いなと思いました.
お昼
D2 ROSロボットをハックせよ
フィジカルトラックでは、中川さんによる「ROSロボットをハックせよ」が行われています。 #seccamp pic.twitter.com/Khe2Gru7U8
— セキュリティ・キャンプ (@security_camp) August 15, 2018
この講義ではROS搭載の車輪型ロボット, ラズパイマウスを使って脅威分析を行いました. 予め用意されたロボットにSSHで繋いて, コマンドラインからロボットのモーターを回したり, 赤外線センサーを使って周囲との距離を測ったりすることができました.
私は普段ロボットを作っているのですが, こういったふうにLinuxボードを乗っけたロボットを制御するのは初めてだったので新鮮でした.
1時間の座学を受けたあと, 2時間で作品を作り, 1時間でプレゼンを作りました.
私はこんな感じに手を近づけるとブザーから出る周波数を上げるものを作りました. ROSでこんな感じのものを作るのは初めてだったのでとても慌ててしまいましたが, 無事にできてよかったです.
セキュキャンで作ったやつ pic.twitter.com/WaS3LhN6GX
— イェーイ (@dango_bot) August 28, 2018
夕飯
D3 チップレベルでカスタマイズができることで見える世界の体験
フィジカルトラックでは、秋田さんの講義「チップレベルでカスタマイズができることで見える世界の体験」が行われています。 #seccamp pic.twitter.com/7zwlNkdZWO
— セキュリティ・キャンプ (@security_camp) August 15, 2018
この講義では先日のCPUの根本的な脆弱性「MeltDown」から始まってLSIの作り方やなぜ作るのか, といった話から実際にLSIを設計の演習を行いました.
テキストがとても丁寧で助かりましたし, QFLOWを使ったLSIの設計の様子を眺めているのはとても楽しかったです. 後, 講師の方と深センの話を色々できてよかったです.
お気持ち
人には必ずLSIを設計する日が来ると言う学びを得た
— イェーイ (@dango_bot) August 15, 2018
3日目
C4 車載LANの仕組みとメッセージの取得・解析
バラエティトラックの講義は、井上さんによる「車載LANの仕組みとメッセージの取得・解析」が行われています。 #seccamp pic.twitter.com/87gC8iU8G4
— セキュリティ・キャンプ (@security_camp) August 16, 2018
この講義では昨今の自動車で使われているCAN通信をメインに扱いました.
教室に実験用のCANネットワークを作ってそこにアクセスし, 流れているメッセージを取得して解析し, ダミーのデータを送って見たりしました.
ダミーのデータを送るのが容易にできてしまい, セキュリティをちゃんと考えないと脆弱性を突かれてしまったが最後, 大惨事になりそうだなーと思いました.
普段運転することは少ないので少し, 自動車に詳しくなれたようでよかったです.
後, 以前から欲しかった本が事前学習用として送られてきて嬉しかったです.
お昼
D5 JTAG(ジェイタグ)の原理と活用
フィジカルトラックでは午後1つ目の講義「JTAG(ジェイタグ)の原理と活用」が始まりました! この講義では JTAG について学び、LSI の内部構造へアクセスする実習を行います。 #seccamp pic.twitter.com/rJAmWG5hPZ
— セキュリティ・キャンプ (@security_camp) August 16, 2018
この講義ではJTAGについて学んだあと, それを使って, 配られたボードの不良箇所を調べました.
JTAGは4本のシリアル接続でICの内部回路と通信し, ICの状態を調べる技術です.
私は, 書き込みとしてのツール程度にしか知らなかったのですが, IC間の導通チェックやバウンダリスキャンというICの動作に影響を与えないまま, 入出力状態を確認したり, 操作してCPUのインサーキットデバッグができるすごい代物です.
(Digikeyで見たらとても高くてびっくりしましたが…)
講義では以下のようなボードに対してIOピンの入出力を変更して, 動作してないはずのLEDを光らせたり, 入出力状態を調べたりしました.
JLINKについてはまだまだ分からないところがあるのでお勉強していきたいなと思いました.
JTAG Board
夕飯
4日目
D6 組込みリアルタイムOSとIoTシステム演習 ~守って!攻めて!ロボット制御バトルで体験する組込みセキュリティ~
フィジカルトラックでは松原豊さんによる講義「組込みリアルタイムOSとIoTシステム演習 ~守って!攻めて!ロボット制御バトルで体験する組込みセキュリティ~」が始まりました。この講義ではロボットを用いた演習を通して、組み込み/IoT セキュリティの攻撃と対策を体験します。 #seccamp pic.twitter.com/eJAmjxmoB9
— セキュリティ・キャンプ (@security_camp) August 17, 2018
この講義では事前学習としてGR-PRACHというマイコンボードを使ってサンプルプログラムを動かしました.
当日の講義では, 組み込みリアルOSについて話を聞いた後, チームを作ってロボットを動かした後, ロボットを使って競技(物理的接触は禁止だが, ネットワーク越しに攻撃はあり!)をしました.
RTOSは僕が以前, Maker Faire Tokyo2018の際にESP32で使いました.
当時はセマフォ周りの処理が上手く出来なかったり, 複数コアでTaskを動かした時に動作がおかしくなったりして困りましたが, 講義で色々質問したり説明を聞いたりして知見を得られたので今度実装してみようと思います.
後半のロボコンはロボットを動かしてフィールド上のオブジェクトをコース外に出して, 点を取ったり, トンネルの中の写真をロボットに乗ったカメラで撮って点数を稼ぐものでした.
ネットワーク越しに攻撃することが可能なので, 班員と協力して攻撃したり防御したりしました.
競技は2回やって, 僕らの班は1回目の競技ではTCPサーバーを建ててるポートを変えました.
競技のときはarp-scanでIPアドレスを調べた後に80番ポートが空いている班には割り込んで適当に操作してあらぬ方向に動かしたり, 80番ポートが空いてない班にはnmapでscanしてました.
(結局, このスキャンが攻撃になっていたようで, 他の班のロボットが動かなかったようです)(みんなすまん..)
2回目の競技ではAPを変えて攻撃を回避しようと思ったのですが, 上手くいかなかったので前回と同じまま競技に挑みました.
2回の競技の結果, 無事に優勝できました. 操縦や一緒に攻撃してた班員達の感謝です.
とても面白い講義だったので, もう少し時間をかけてやりたいなと思いました.
ロボット
お昼
C7 攻防型CTFによるWebオンラインゲームのチート行為の体験
バラエティトラックでは、中矢誠さん、大川昌寛さんによる「攻防型CTFによるWebオンラインゲームのチート行為の体験」が行われています。この講義では、攻撃側と防御側の視点に立ってサーバとクライアントのコードを読み解き、チートに対する問題を学習します。 #seccamp pic.twitter.com/DYjjTlhRJT
— セキュリティ・キャンプ (@security_camp) August 17, 2018
この講義では, CTFを通してオンラインゲームのチート行為について勉強しました.
私はCTFをするのは初めてだったので, 事前学習でWireShark使ってパケット見たり, OWASP ZAPでプロキシーサーバーを建ててTLS1.2な中身を見たりしたのがとても新鮮で面白かったです.
(課題を解くアドバイスをくれたとーふとふ君に感謝><)
当日の講義ではWebブラウザのDeveloperToolを使ってJavascriptのコードをbreak point立てながら値を書き換えたりしてキャラクターの移動を高速化したりしました.
いかんせん, 初めてだったのであまり高速化させたりできなかったですが, やり方は分かったので, 自分でサーバーを建ててやってみたいです.
夕飯
5日目
最終日は他の受講生の成果物などを聞きました. 集中コースなどの製作物がとてもセキュキャンの間だけで出来るような物には思えないような物もあってすごいなと思いました.
修了証の授与後は、各トラックの参加者が今回のキャンプの感想を発表しました。キャンプでの学びや気付き、今後の抱負についてなど、様々な思いが伝えられていました。 #seccamp pic.twitter.com/A8b7boGTey
— セキュリティ・キャンプ (@security_camp) August 18, 2018
感想
普段, セキュリティとは全く関係のなさそうなレイヤーで活動しているので当初は無事に生きてるかなと思いましたが, 講義はどれも面白かったし, 色んな人と交流できたので来てよかったと思います.
キャンプ運営に携わった皆さんありがとうございました.
頂いたもの
たくさんのものを頂きました! ありがとうございます.
おまけ
Beautiful Building
Beautiful Volvo
Beautiful お外
Beautiful コンセント
Beautifulコンセント pic.twitter.com/XQ7YKxYu5E
— イェーイ (@dango_bot) August 16, 2018
少し泣く
セキュキャンの帰り道でキャスターが壊れて泣いた pic.twitter.com/XoWZcQNSWx
— イェーイ (@dango_bot) August 18, 2018