眠いので寝ます

お勉強のメモを置いていこうと思いまふ

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

キャンプ中にも情報発信が大事だと学んだので早速ブログに残します。来年以降の参加を検討してる方や、キャンプの関係者に向けて、一参加者の感想として参考になれば幸いです。

僕が参加したのはAトラックの脆弱性マルウェア解析トラックです。

応募用紙

kam1tsur3.hatenablog.com 応募用紙が見たい方はどうぞ。原文を載せているので非常に見づらいですが勘弁してください。黒歴史なのは重々承知ですが、これも成長の過程だと割り切って後悔公開してます。

事前準備

講義によっては事前課題がありました。テスト期間とかぶったりとやっているときは大変だと感じたのですが、いざ講義を受けてみると事前課題があった方が理解が深まったので、課題はありがたいものだと思います。

あと名刺は必須ですよ。

1日目

到着



ぼっち参戦だったので、端っこにいたら早速名刺を持って話しかけてくれた方がいたので本当に安心しました。

f:id:kam1tsur3:20180821003331j:plain:w500

唯一撮り納めたご飯なので載せさせてください。

セキュリティ基礎

セキュリティだけでなく、いろんな場面で発生する「失敗」についてグループで討論しました。内容が抽象的であったこともあって最初はなかなか話が進まなかったのですが、具体例を交え話していくと議論が進んでいったように感じました。

特別講義(1)

OSCの方のOSCの紹介、情報発信していくことの大切さについてのお話を聞きました。

特別講義(2)

法律の観点から見たニュースでも取り上げられている仮想通貨の話や、未成年の犯罪などについてのお話を聞きました。唐突な野獣先輩ネタにツボってしまい僕は最前列で5分くらい笑いをこらえるのに必死だったので、それ以降覚えていません(は?)。挙手でどのラインからが刑法に触れるのかいうアンケートもしたのですが、僕を含め多くの参加者の人も理解が曖昧であったことが印象的でした。

LT大会

本当に面白かったです。改めてここはすごい場所なんだと実感した瞬間でもありました。中でもWiiフィボナッチ数列計算させてた方やCodeGolfの方は内容も話し方も面白く、僕もいつかあのようなユニークなLTができるといいなと思いました。

2日目

ビュッフェ形式の朝食のフレンチトーストが絶妙すぎて2斤くらい食べました。

AトラックではA1~A3までが一つの講義でした。

A1~3 インシデントレスポンスで攻撃者を追いかけろ

事前課題が7週間に渡って出された講義です。内容は、攻撃にあった社内ネットワークのマシンのイベントログ、コマンド実行履歴、動的解析から攻撃者をあぶり出すというもので、事前課題ではWindowsのシステム、ツール群を学習し、講義ではその内容を確認するようなCTFを行いました。あまりいい成績は残せませんでしたが、とても面白かったです。マルウェアに感染したマシンのイメージファイルのログがちゃんと時系列に沿っていて、資料がとても作り込まれていたものでした。話を聞くと1ヶ月くらいかけて実際に攻撃を行いそのイメージファイルを取っていたそうです(逆に後からログを作るのは難しいんだとか)。

3日目

特大イベント発生

尊敬する方にエレベーター内で遭遇しステッカーをもらっちゃいました。自分は名刺を持ち歩いてなかったので渡せなかったのが後悔です。

3日目から選択講義が始まりました。

A4 IN-DEPTH STATIC MALWARE ANALYSIS

講義では主にIDAを使った静的解析を行いました。静的解析の際のIDAの便利機能などの紹介や、マルウェアの中で呼び出される関数が何のWindowsAPIを呼びどういった挙動をするのかなどを調べていきました。個人的にはエンコードされたファイルシステムの文字列をデコードする関数を、xorが使われる、呼び出される回数が多いといった特徴から特定し、実際にデコードする様子が見れたのが面白かったです。

E5 Linux カーネル脆弱性入門

とても有名なLinuxカーネル開発者の講師の方による講義でした。Linuxシステムコールの基礎、DirtyCow、slabを利用した特権昇格についてのお話を聞きました。正直この講義が一番難しかったです。それに加え、情けないことに環境設定の段階でミスってしまったので講義中には用意してもらった課題は終わりませんでした。講義ファイルを持ち帰って復習しましたが、他人に説明できるかと言われると怪しいレベルの理解なので、また見返す必要があります。自分の弱さを痛感したのと見学者がめちゃくちゃ多かったので、すごい人の講義を受けているのだなと肌で感じました。

4日目

朝がつらくなってきて、朝ごはんに遅れたらフレンチトーストが残り僅かでした。。😭😭😭

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

GR-PEACHというハードウェアをhttp通信によってブラウザから操作するという内容です。事前課題では基礎操作を一通り学習しました。当日は1チーム2、3人の計5グループに分かれて競技を行いました。競技はGR-PEACHを操作して箱を持ち帰る、搭載されたカメラで写真をとる、他人のロボットの撮った写真を盗むなどがポイントになるルールで、競技は2回に分けて行われました。僕のチームの他二人はロボットに精通した方、ハニーポットで遊ぶネットワークの方と強いお二人だったので、攻撃と防御は二人に任せて僕はパイロットになりました😊。パイロットをやっていると攻撃されてるときのブラウザの処理が激重になるのが実感できました。

僕たちのチームはまずhttpのポートがデフォルトの80番になっていたのを変更したことと、2回目の競技では同じアクセスポイントを使用するという縛りがなくなったので、チームのPCをアクセスポイントとし攻撃の対策をしました(後者は結局ロボットとの通信がうまくいかず、共通のアクセスポイントを使用しました)。競技中はarp-scanで相手チームのロボットのIPを割り出し、nmapでhttpポートを探しひたすらDoS攻撃をするというもので、実際正常に動いているロボットは僕のチームを含め2つくらいしかなかったのでうまく攻撃ができていたのだと思います。結果はちゃっかり優勝してしまいました。

f:id:kam1tsur3:20180821191932j:plain:w400

これは僕たちのロボット



A7 本当にわかるSpectreとMeltdown

お正月に世間を賑わせたCPUの脆弱性についての講義でした。はじめに脆弱性についての説明があり、そのあとは実際にSpectreのPoCの一部が穴埋めになっているので、そこを自分で考えて埋めて、手元で動かしてみるというものでした。講師の方もおっしゃっていたのですが、脆弱性2のBTBがとても難しく、何回かスライドを読んだのですが、やろうとしていることはわかるのですが、該当するPoCの部分は正直理解できていません。最終的には講師のかたに答えを教えてもらい動かしてみると、読めないはずの領域が、ところどころ抜けていたもののメモリリークができました。個人的にはこの講義が一番楽しかったです。サイドチャネル攻撃ってなんかヤバい雰囲気があって魅力的ですよね。講師の方にあとで話を聞くと、世に回っているPoCはもっと複雑で難しいらしく、受講生のためにわかりやすくなるように色々手を加えて頂いたそうです。僕たちは本当においしいとこだけ頂いたんですね。ありがとうございます。

5日目

卒業

集中コースはそれぞれのトラックから代表者が成果発表を行いました。ジュニアゼミの中学生も発表していてみなさんとても面白かったです。印象的だったのはやはりJSエンジンを作った方とセルフコンパイラを作った方ですかね。難しい言葉を使わず、図やデモで説明していたのであの場にいた誰もが楽しめた発表だったと思います(何様)。

プレゼント

いろんな協賛企業の方からたくさんの記念品をもらいました。全部載せるのはしんどいので代表して一つ載せておきますね。

f:id:kam1tsur3:20180821200335j:plain:w400

これは大変なモチベーションです。

まとめ

本当に楽しい5日間でした。参加前は技術的にも不安で、友達できるかな。。。とか考えていたのですが、いざ参加したらとてもいい雰囲気のおかげで不安はすぐに消えました。反省点としてはいい意味で講師を裏切れなかったことです。例えばA1~3の講義のCTFでは誰も解いていない問題が多く残っていて、講師陣も「どんどん解いて〜」と余裕だったことや、D6の講義では講師の方はアクセスポイント乗っ取ることも想定してhtmlファイルを置いていたそうなのですが、結局誰もそこまで到達しなかったことなど、講師陣を驚かすようなことができたら気持ちよかっただろうなという感じです。まあこれは完全に自分の技術力、アイデアが乏しいのが原因なので、これから圧倒的成長をしていきたいです。