インターン行ってたら10日経った.
思い出しながら書く.
4月25日~5月29日 応募用紙作成
応募用紙を書く段階.
1ヶ月くらい期間はあったはずなんだけど,ギリギリまでやらずに直前になって大慌て.
締め切り2分前に出した.
その結果はこちら
6月15日 合格通知
メールで 【セキュリティ・キャンプ】全国大会2017の参加決定に関するご連絡 なる通知が来る.
これを見たときは ほんとに手が震えた.
6月16日~8月12日 事前学習
某サイ某ズLive で事前課題が出てくる.
講義によって事前課題の重みが極端に違うことに驚きつつもチマチマとこなす(主に大学の講義中に).
名刺作りを先延ばしにしすぎてラクスルに多額を支払う.
荷造りをするも服,PC,名刺,事前課題のボード,携帯くらいしか持っていくものがなくて不安になる.最終的には「この身一つで乗り切る」と自己暗示をかけて不安を消す.
当日が近づくにつれ,焦り始める.
8月13日 0日目
初めて函館空港を利用した.
羽田に着いたら数分後に新千歳から友人がやってきて,そのままご飯を食べつつ近況報告などをした.
その後会場に向かうと良い感じの時間で,そのまま部屋に荷物を置いた.
会場では前泊組がちょっと集まって談笑をしていたので,そこに混ざってしばらく談笑し,ご飯を食べ,そのまま寝た.
8月14日 1日目
午前中は事前学習を行い,昼に受付で旧友に会った.
彼とはミニキャンプで「次は全国大会行こうな」と約束していたので,会えてよかった.
受付が終わった後は昼食となり,その後は名刺交換会が始まった.
結局70枚くらい使ったと思う(コミュ障にしては頑張ったほう).
その後は講演がいくつか続いた.
講演で一番覚えているのは『凝った形のうんこ』こと太陽の塔.普通におもしろい小説だったのでぜひ読んで欲しい.たぶん図書館にも入ってる.
講演の後はグループワーク.8人でグループを組み,あるテーマについて議論ヒアリングし最後に発表する.
初日はテーマ決めで私達のテーマは「学生が書くソフトウェアの品質を担保するには」みたいなやつに決まった.
8月15日 2日目
2日目からは講義が始まる.
私は選択コースで全部Bをとった.
B1「DOS攻撃用FPGAを作ろう」
トラックB:内藤さんより「DoS攻撃用FPGAを作ろう」 #spcamp #seccamp pic.twitter.com/DXHp8RkvKi
— セキュリティ・キャンプ (@security_camp) August 15, 2017
トラックB:FPGAでUDP流れてますよね! #spcamp #seccamp pic.twitter.com/aEvRPu7Udp
— セキュリティ・キャンプ (@security_camp) August 15, 2017
事前学習でArtyというFPGAボードが渡され,pingとUDPを送受信できるデザインを触った.講義本番では実際に大量のパケットを出したりコードの読解を行なった.ちなみに私はDHCP DiscoverとDHCP Requestを出す回路を作ったんだけど,DHCPを攻撃するのはまずいということで実際には動かさなかった.マイコンとかFPGAで直接電圧を出すような遊びは大好きなので,すごく楽しかった.FPGAとネットワークという組み合わせを今まで知らなかったのでとても興味深いと感じた.
B2「組込みLinuxクロス開発スタートアップ 」
トラックB:海老原さんより
「組み込みLinuxクロス開発スタートアップ」 #spcamp #seccamp pic.twitter.com/XnXlgTr8qk— セキュリティ・キャンプ (@security_camp) August 15, 2017
トラックB:クロスコンパイル環境構築中! #spcamp #seccamp pic.twitter.com/aGe8m7Sd1T
— セキュリティ・キャンプ (@security_camp) August 15, 2017
普段自分ではビルドしないようなgccやbash,busyboxなどを自分でビルドし,最終的にはRaspberryPiにカーネルを載せた.テキストに沿ってコマンドを入力し,ビルドしていくスタイル.テキスト自体にいくつか足りない点などがあったけど,その都度テキストは更新されたので講義後のテキストは動作保証付きのものとなっている.興味ある人はぜひ読んでみてほしい.
B3 「PF_PACKETで仮想IP環境を自作してパケットの理解を深めよう」
トラックB:小俣さんより「PF_PACKETで仮想IP環境を自作してパケットの理解を深めよう」 #spcamp #seccamp pic.twitter.com/7JsBxGLUZK
— セキュリティ・キャンプ (@security_camp) August 15, 2017
昼ごはんを早く食べ終わったため講義前に小俣さんと少しお話をした.小俣さんは『ルーター自作でわかるパケットの流れ』という本も出しており,普段の業務や本の執筆などでは仮想マシンを使うという話を聞いた.私は環境構築でコケる雑魚なので,プロがどのような環境を使っているかという情報はありがたい.また,RaspberryPiも意外と使う場面が多いという話も聞いた.
講義では仮想マシンに仮想IPを立ててパケットの送受信を行った.ソースコードの読解と動作確認を行い,最後にはARPを使った強制切断デモがあった.使ったソフトは不正接続検知/排除システムのIntraGuardian2+というらしい.強制切断デモでは本当にみんな接続が切れ,ググることも何も出来なくなっていた.
8月16日 3日目
B4「Embedded System Reverse Engineering 101 」
トラックB6:木藤さんより
「Embedded System Reverse Engineering 101」 #spcamp #seccamp pic.twitter.com/lImLHrJVMt— セキュリティ・キャンプ (@security_camp) August 16, 2017
リバースエンジニアリング,つまり機器解析をしようという講義.BusPirateという各種通信プロトコルをサポートする解析治具を使って解析を行った.演習ではブロードバンドルータの基板(片面)が配られ,型番からROMを探し,はんだごてでROMをはずした.その後BusPirateでデータを吸い出した.私はなぜか吸出しがうまくいかず,時間内にデータの吸出しまで終わらせることが出来なかった.キャンプ終了後も挑戦してみたかったが,BusPirateを扱ってる店が少ない上に四千円と高価でまだ手を出せていない.
ちなみに,演習で使用したはんだごてやはんだ,半田吸いとり線と基板は持ち帰り可能だった.ありがたい.
B5「信じて送り出した家庭用ルータがNetBSDにドハマリしてloginプロンプト を返してくるようになるわけがない 」
トラックB5:蛯原さんより「信じて送り出した家庭用ルータがNetBSDにドハマリしてloginプロンプトを返してくるようになるわけがない」 #spcamp #seccamp pic.twitter.com/c98KMu607m
— セキュリティ・キャンプ (@security_camp) August 16, 2017
NetBSDをソースからビルドしRPiに入れる演習をした.普段BSD系自体さわる機会がないので,NetBSDに情熱を注ぐ人の講義を受けて「ああ,こういう世界もあるんだなー」という感じだった.
BoFではサイバー攻撃やFPGAについてディスカッションを行なった.
グループワークでは何に着目するかについて議論してた気がする(うろ覚え).結局ドキュメントとシンプルさに着目することになり,私が提案した睡眠の重要性はネタとしてボツになった(かなしい).
8月17日 4日目
B6「AVRマイコンで作るBadUSB工作・改 」
トラックB6:竹迫さんより「AVRアイコンで作るBadUSB工作・改」 #spcamp #seccamp pic.twitter.com/CqtZZw4kII
— セキュリティ・キャンプ (@security_camp) August 17, 2017
PS/2-USB変換アダプタに対してAVRでPS/2キーボードの信号を入力することで,任意のキー入力を自動で行うことができるというもの.簡単な説明の後,参加者が様々な入力を作成し,発表を行った.最初はネタが被るんじゃないかと思っていたけど,意外なほどにみんな違う面白いものを作っていた.
B7「組込みリアルタイムOSとIoTシステム演習」
トラックB7:松原さんより「組み込みリアルタイムOSとIoTシステム演習」 #spcamp #seccamp pic.twitter.com/VIBBze68qT
— セキュリティ・キャンプ (@security_camp) August 17, 2017
GR-Peachを載せたロボットを使い,サイバー攻撃と防御を学ぶというものだった.が,私達の班はmicroSDカードのトラブルにより直前まで動かず,ARPでネットワークに負荷をかけ,初期状態でロボットを動かすことになった.他の班の人たちはロボットの乗っ取りやWebインタフェースをCUIのスクリプトに変更するなど高度なことをしていたようだ.すごい.
グループワークでは必死にスライドをまとめていた印象がある.
あまり積極的に参加せずに申し訳ない…
この日はサプライズでプレゼントがあり,私はHiFive1とARM32ビット・マイコン 電子工作キットをいただいた.というか初日のIPA袋を含めプレゼント類はとても数が多くかった.できるだけロゴが映るように撮影しようとしたらベッドのほとんどの面積が埋まった.ありがとうございます.
講師・チューターからの特別プレゼント! #spcamp #seccamp pic.twitter.com/U7XWX4n6yz
— セキュリティ・キャンプ (@security_camp) August 18, 2017
#seccamp すごい pic.twitter.com/JBKROBaH5G
— pome (@pome_11) August 17, 2017
8月18日 5日目
グループワークのスライドをみんなで必死に作成したあと,グループワークの発表を行なった.私たちの班は「何を重視すべきか」に時間をとられ「自分たちはなにをすべきか」が十分に検討できていなかったが,色々と得るものは大きかったように思う.他の班ではVRキャンプなど夢がありながらも実現できそうな検討もあり面白かった.ぜひ実現してほしい.
その後の成果発表では集中コースの人たちの発表が興味深かった.集中コースの人はあまり会う機会がなかったため,集中コースの人たちが何をしていたのかを選択コースでも知ることができたのは良かったと思う.
感想
セキュリティ・キャンプには共通言語を話す素敵なフレンズがたくさん居た.大学ではそういう濃い話をする人がいなかったので,その人達と友達になれて本当に良かった.
講義に関してもレベルが高いものが多く,誰かが言っていたように復習も含めて「家に帰ってからもセキュリティ・キャンプは続く」のだと思う.まだなにもできていないけど,最近ものづくり欲が出てきたのでインターンが終わったら本格的に何かを作ろう.
(ここからちょっと追記2017/09/01)
Twitterとか見ていると実力不足を理由にセキュリティキャンプの参加を迷っている人が多いように思える.
もしあなたがそうなら,情熱プログラマーの第1章の4「一番の下手くそでいよう」を読んで欲しい.
高専や大学であれば図書館に入っているはず.
最後に
講師・チューターや実施協議会,協賛企業など関係者の方々に感謝を