Ciruelaの成長日記

将来の初心者の方のために,僕がプロになるまでの過程をここに残しておこうと思います.

セキュリティキャンプ2018参加日記

[!]Warning:
講義内容等の流出の制限がありますので,公式から得られる情報以上の講義情報(とくに技術情報)は記述しません.ご了承ください.

キャン当日まで

・事前課題
僕は,次の講義を受講しました.
A1~3「インシデントレスポンスで攻撃者を追いかけろ」
A4「IN-DEPTH STATIC MALWARE ANALYSIS」
E5「Linuxカーネル脆弱性入門 」
D6「組込みリアルタイムOSとIoTシステム演習 ~守って!攻めて!ロボット制御バトルで体験する組込みセキュリティ~」
E7「シリアル通信から学ぶBadUSB自作演習 」
いわゆる低レイヤや組み込み系に触れるのは初めてでしたが,とても興味があったので受講しました.
これらのうち,A1~3とA4とD6には事前課題がありました.どれも講義をスムーズに受けるためには重要だったので,大学ではテスト勉強で非常に忙しい時期だと思いますが,早めにやっておくことを強くお勧めします.(GPAをそれまでに稼いでおくとよい?)

・名刺
何をかけばよいのかわからず,総計2日ほどかかってしまいました.Twitterアイコンや,所属を書いておけば十分な気はしましたね.もちろんTwitterをやっておくとアイコン等であの人だと識別したりして便利ですが,気さくな方だったりするとTwitterアカウントをお持ちでなくとも覚えることができたりするので,このためだけにアカウントを作る必要もないかなと思います.
f:id:verliezer93764:20180808103239j:plain

1日目

・xwaveまでの道で迷わないようにご注意ください!
最寄りの北府中駅で降りましたが,本物の府中刑務所方面へ行ったり駅からの出口を間違えたりしたので,スマホGPSをONにしておくといいです.ビル群のある方へ向かってください.

・暑い
当日はクソ暑かったです.タオルを忘れないでください!!受付時間より早く到着したので,近くのケーズで涼みました.

・受付~昼食
受付開始時間の10分後あたりには受付に長蛇の列ができます.そのうちに近くの方と名刺交換をしたほうがいいです.受付を済ませると,昼食タイムです.昼食は緊張した感じでしたが,チューターの方が話題づくりをしてくださったおかげで打ち解けました.同じテーブルの方と名刺交換をしました.また,偶然Aトラックのプロデューサーの方と同席していたので,けっこう会話しました.
f:id:verliezer93764:20180814122922j:plain

・名刺交換タイム?
参加者同士の名刺交換のための時間は設けられていませんが,昼食を食べてから大講習室でおこなわれる開会式までは1時間ほどあり,日程を通してあまり関わらなさそうな参加者の方とも名刺交換や会話ができます.この時間は積極的に交流したほうがいいです!!

・開会式
えらい方々からのお話を聞きます.ところで開始早々貸与パソコンや,色んな企業さんのグッズ,講義用資料が机の上に置いてあり,持って帰らなければならないので,荷物がオーバーフローします.なるべく空きのあるリュックサックを持ってきましょう!!

・全体講義「セキュリティ基礎」
自分があまり考えたことのない面を深堀りした講義で,またグループで考察したりしました.周囲の方の発想が面白く,楽しめました!

・特別講演(1)「自由なエンジニアとは何か ~OSCを全国各地で150回以上やって分かったこと~」
OSCなどの運営や,運営しているときに感じたことについての講義でした.行動力や,運営にあたって生ずる課題やそれに対してどうするか考えていく姿勢を見習いたいなと思いました.

・特別講演(2)「ハッカーは法律を破るのか」
セーフなのかアウトなのか,微妙に感じられる事例がいくつか提示され,考察したりしました.独房に入るくらいなら死んだほうがましなので今後の勉強方法には厳重に注意していきたいです!!!

・夕食
夕食後にスイーツ会みたいなのがあり,初日にもかかわらずみんな楽しく交流しました!
f:id:verliezer93764:20180814182111j:plain

・LT会
自分にとっては難しい話が多く,強い人ってこんなことしてるんだなあ…と力の差を感じました.僕もあんなに打ち込めるようなことを探そうと思います.

・グループワーク
今までの参加者の方の参加記をみておびえていたのですが,今年は各自がキャンプ後にどのようなことをしていくか具体的に考えて最終日に提出するという形であり,徹夜の心配はなくなりました.また後半ではチュータや講師の方々と交流し,名刺交換をしたり,悩みを相談したりしました.

・部屋に帰る
部屋の中はこんな感じです(ただしこれは最終日の朝に撮影).カーテンを閉めるとちょっと暗いです.ところで,バスタオルはユニットバスの部屋の天井に近いところに置かれているので注意してください.20分くらい探しました.
f:id:verliezer93764:20180818080021j:plain
テレビでDBZのアルティメット悟飯対悪ブウの回をやっていたので少し見て,寝たのは24時すぎです.
一応夜景です.
f:id:verliezer93764:20180815225959j:plain

2日目

・起床&朝食
毎朝5時40分くらいに起き,6時40分くらいに朝食を食べました.バイキング形式で,最終日までメニューはほとんど同じです.温泉卵の卵かけご飯を毎日たべました.うまかったです.また,この日から毎日ある参加者の方と一緒に朝食を食べました.
f:id:verliezer93764:20180815064845j:plain

・A1~3「インシデントレスポンスで攻撃者を追いかけろ」
7週間にわたる事前課題で当日必要となる解析技術を学び,当日はある企業のPC・ネットワークに攻撃が入ったとの想定のもと,そのおよそ1か月分のデータが入った各PCのディスクイメージデータが渡され,CTF形式によって,インシデントレスポンスの手順にのっとりながら問題を解いていきました.事前課題をけっこうやってきましたが,いざディスクイメージだけを渡されるとまず何をすればよいか,どのツールを用いればよいか,どこにどんなデータが入っているかで迷いました.休憩をはさみながらA1A2でCTFが行われ,夕食後のA3には解説が行われ,それまでの結果を用いてどのような対策をとればこのインシデントは防げたのか検討しました.解説を聞いていると,答えを探す方法が事前学習のまんまであったり,また調査結果が他の解析結果にリンクしていたことがわかったりと,実際の業務にあたるにはもっともっと経験が必要だなと痛感したので,これから復習していきたいなと思いました.けっこう落ち込みました…

3日目

・朝食
この日から朝食待ち勢になり,6:25頃にレストランに着くようにしました.人間の睡眠の深浅のサイクルは90分というので,4日目~最終日を除いておよそ4時間半睡眠をしています.

・A4「IN-DEPTH STATIC MALWARE ANALYSIS」
事前課題では実質的にマルウェアのすべてを解析できるという静的解析を始めるための基礎や効率的にコードを読む方法を学習し,本番ではマルウェアの逆アセンブルコードを効率的に読んでみてその機能を明らかにしたり,静的解析の持つ課題を学びました.また,静的解析にかかわらず解析をする際の注意点や,マルウェアのトレンドなどについても学びました.僕は今まで大きいプログラムの逆アセンブルコードを読むことができなかったので,素早く読めるようになったときはかなり感動しました.そして今まで読んできたコードは簡単なもので,実際のマルウェアに使用されているコードに凝らされている工夫を学習したときは実力的に大きい壁を感じました.ところでin-depthは「徹底的な(に)」といった意味合いらしいです.

・E5「Linuxカーネル脆弱性入門」
カーネルについてほぼ何も知らない状態で受講しましたが,講義はカーネルとは何かというところから始まったので無理なく受講できました.カーネルソースコードを少し見たり,機能と仕組みが解説されたのち,脆弱性の紹介やそれを突くことを体験しました.後半は自分の理解が追い付かなかったのですが,講義後になってしまったもののなんとか実際に脆弱性を突くことに成功したので,これからも少しずつ触れていきたいなと思いました!

・会員企業のお仕事紹介(1回目)
3,4日目にはセキュリティキャンプを支えてくださる企業の方々による30分*2回*2日の「お仕事紹介」がありました.仕事ではどんなことをしているのか,やりがいは何か,子会社の場合は親会社との関係を聞けたりして新鮮でした.

・グループワーク(2回目)
チュータ,講師の方と交流しました.今まで話したことのなかったインフラ屋の方々ともお話させていただきましたが,どの方も使命感や不安からというよりは楽しかったからその方の分野の勉強をしているという方が多く,特にGMの上野さんはとても楽しそうで,自分もそうなりたいなと強く思いました.

・ホームルーム(1回目)
同じトラックのメンバーと交流を深めるために今年からできた時間らしく,控えめに言って神様な時間でした!!グループワーク終了後にトラック別に部屋に集まり,おのおののことをします.Aトラックでは今回は自己紹介と,名刺交換を含めた参加者やチュータの方々そして講師の方々と交流をしました.僕はA1~3で思ったような成果がでなくて悲しかったり,僕はこのまま就職までに平和に貢献できる実力が身につくのかととても不安なことがあったりしたので相談しましたが,講師の方々も若い時からずっとセキュリティについて学んでいたわけではなかったり,職を転々としていて今に行きついているようなこともあり,人生って予想以上になんだかなるものなんだなと感じました.また,インシデントレスポンスの一連の業務をどう勉強するかも教えていただきました.

4日目

・D6「組込みリアルタイムOSとIoTシステム演習 ~守って!攻めて!ロボット制御バトルで体験する組込みセキュリティ~」
組込みシステムについて触れるのは初めてでしたが,無理なく受講できました.事前課題ではオープンソースの組み込み向けリアルタイムOSなどを搭載する機器をサンプルコードによって動かしたり,組み込み機器の基礎や動作のしくみを解説する資料を読んだりしました(僕にとっては初めての知識が多く読み終わりませんでした).こちらの操作通りに動いてくれたときはうれしかったです!
当日は,リアルタイムOS等について復習を行った後,7分*2回の競技会を行いました.内容は,まずいくつかのグループにわかれ,自分のグループの機器をWebブラウザから操作し,決められた目的を達成します.または,相手の機器(やネットワーク全体)を攻撃し,相手が目的を達成できないように妨害します.僕のチームは,ソースコードのビルドの時にソースの変更内容が反映されないという某の不具合のためにあえなく撃沈して悲しい思いをしました.開始数秒でほとんどのチームの機器が動かない状態になり,攻撃の恐ろしさを感じました!!
この講義が終わるまでに組み込み機器の動作のしくみやプログラミングについて体験できたのはほんの一部だと思うので,機器を買って今後も続けていきたいなと思います!!

・E7「シリアル通信から学ぶBadUSB自作演習」
USBポートに刺すだけでキーボードの入力を行わせるというBadUSBを組み立てる講義です.はんだ付け以外は自分でできるものでした.BadUSBが完成したのち,参加者それぞれが自分のコードをBadUSBに書き込み,最後に発表会をしました.僕はある攻撃を行うものを作りましたが,Windowsをシャットダウンして場合によってはWindowsUpdateをさせるBadUSBや,逆にGoodなことをするBadUSBを作った方がいたりと,ここでも参加者の方々の発想はいいなと思いました.

・夕食
最後の夕食は決まっており,なかなか豪華だったかなと思います(ところでなぜ油も敷いてないところで焼き肉をさせたのだろうか).隣の方がジュニアの方で,お話させていただくと僕なんかよりずっとしっかりしてる!とおもいました.
f:id:verliezer93764:20180817175814j:plain

・グループワーク(3回目)
具体的に何をしていくかがまとまってきて,それについてどうかをチュータ,講師,会員企業の方々に相談しました.お仕事紹介のときには受けなかったある企業の方にメールでの相談やインターンに誘われたりと優しくさせていただいたので,後程連絡させていただきます!m(__)m

・グッズ争奪戦
毎年恒例の,協賛の企業などによる本やグッズ等の配布がありました.かなり目の前でサイン入り熱血本が取られてしまい悔しかったですが,GMの上野さんの本をいただき,その場でサインをいただきました.また,その際には激励のことばをかけてくださり本当にありがたかったです!パラパラ読んでみましたがかなり実務で役立ちそうなことが書いてあり,よかったと思いました.
f:id:verliezer93764:20180820121657j:plain
撮り忘れましたがさくらインターネットさんのチケットも含まれています.

・集まり
ある方がTwitter上でCTFなどをするコミュニティを作るので○○に来てほしいと発信されていたので,そこに行きました.最終的には二十人ほど集まり,まずはその方針を決めましたがその話はすぐに終わり,雑談タイムになりました.この雑談タイムが(まさに)時間がたつのを忘れるような楽しさでした.これをもっとはやくやりたかった,,と心の底から思いました.寝たのは2時ごろで,荷物をまとめたり,貸与PCから自分のPCに(移してもよい)データを写していました.そのためにUSBケーブルなどをキャンプに持参するといいですね!

最終日

・朝食
3時間睡眠で起きられました.普段は6:30から朝食を食べる勢力は10名ほどなんですが,この日は6名ほどでした.毎日朝食をともに食べた方とはこれでさらばか…と少し寂しくなりました.それからは部屋の整理と,上にあげたような部屋の撮影をしました.

・チェックアウト
8:00から8:20までにチェックアウトをします.あまり時間がないので荷物の整理は前日までにしたほうがいいです.

・グループワーク(最終日)
1時間ほどで,これからやっていくことを書きました.僕は今は何をやっているとかない(それを見つけるのがここに来た目的だったりする)ので他の方と比べ曖昧かなとは思いましたが,思っていることを書きました.

・昼食
これで最後か,と寂しい思いでした.特に前日の雑談がとても楽しく..昼食が終わったあと,ある方とエレベーターで止まらずに10階から1階あで降りられるかチャレンジをしたり,エレベーターのアルゴリズムを考えたりしました.
f:id:verliezer93764:20180818114633j:plain

・閉会式
各トラック代表者の方々が修了証と激励状を受け取ったり,色んな方からのお話があったのち,参加者全員に修了証と激励状が配られました.ああもう終わってしまうのか,と思いました.
f:id:verliezer93764:20180819092025j:plain

・帰り
仲が良かった方と別れたときは寂しかったですが,SECCONで会おうと(私が勝手に)約束しました.

おまけ

下の画像は初日に配られたデスクファンさんです.体積が大きいしうるさいしで扱いに苦労しました…
f:id:verliezer93764:20180819163412j:plain

最後に

セキュリティキャンプを通して,残念ながら他の方々のように何年も通じて具体的にすることは決めることができませんでした.しかしこのキャンプで最も心に残ったのは,みんな純粋に好きなことをしてプロになっているということと,人生はこれからなんとかなるということです.今後はとりあえず支援士試験と情報工学実験をひねりつぶし,全てのCTFのWrite-upを見たり,libcを読んだり,Linuxカーネルのソースを読んだり,組み込み機器で遊んだり,Micro Hardeningにも参加したいなと思います.あ,もちろん機械学習も頑張っていきます!また,4日目に作ったコミュニティでは今後も交流を続け,高めあっていきたいと思いました!
キャンプにはバグで参加することになってしまいましたが,結果的にはものすごい刺激を受けることができとてもよかったです!!