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

Category: diary

8/14から8/18まで開かれたセキュリティキャンプに参加してきました。 応募用紙に書いた内容はこちらの記事に書いてあります。

今日中に感想文を上げないといけないらしいので、参加記を書きます。

0日目

開始日前日がC92最終日だったのでもしかしたらコミケ行けるのでは?などと思っていましたが、大学の試験期間中は事前課題に全く手をつけていなかったのでいろいろ山積していてだめでした。

夕方のうちに名刺を刷っておこうと思っていたのですが、Windows 10 Creators Updateが入ってノートPCが数時間使えなくなった上にGRUBが上書きされてデュアルブート環境が壊れました。 修復用のディスクの用意やGRUBの再インストールなどでかなり時間を使ってしまい、睡眠時間を削って名刺を刷る羽目になりました。

1日目

すいみん不足。

休憩時間に軽く寝てたら名刺交換出遅れたりしました。 名刺は60枚ほどは交換できたかな、という感じです。 JSON形式のプロフィール文をcatしたものを印刷しただけ、という名刺を持っていきましたが、意外とネタ被りしている人が少なく(一人はいた)、名刺を覚えてもらいやすかったので重複して交換することを防げました。 100枚ほどは用意したので、流石に名刺入れに収まりきらないだろうと思ってデッキケースに入れていったところ、同じことをしている決闘者を発見できました。

初日なのでありがたいお話をひたすら聞くだけでした。 支給されたハンドスピナーを回したりしながら耐えていましたが、2つ目の全体講義は記憶から完全に飛んでいます。 まあそれ以外の講義もろくに覚えちゃいませんが。 何人かのチューターの方の圧倒的進捗の報告を聞いて圧倒されたのは覚えています。

お夕飯を食べましたが、お夕飯にしては控えめな量だった気がします。 その後グループワークになり、ぼんやりしたお題だなあと一抹の不安を感じつつ、ひとまずノルマとして課せられた講師やチューターへの聞き込みを各自で進めることに決めました。 グループワークでの情報のやりとりにはTwitterのグループDMとGoogle Docsを使いました。

22時に終了したので風呂に入ってそのまま寝ました。

2日目

最初の講義は8:30開始でしたが、目が覚めたのは8:20でした。 空腹だったので食堂に行き(8:24)、時間がなかったので、ひと皿だけ取って食べて講義の教室に入り(8:29)ました。

C1 ブラウザの脆弱性とそのインパクト

ブラウザの脆弱性を見つけて生計を立てていた人がどのように脆弱性を見つけていたのか、を教えてもらいました。 やっぱり場数かなあ、と思いました。 リリースノートを監視していくのは単純に面白そう。

D2~3 カーネルエクスプロイトによるシステム権限奪取

講師の方が同じ大学の先輩なのですが、リアルでは会ったことがなくセキュキャン会場ではじめてお会いしました。 グループワークの聞き込みで名前と所属を聞かないといけなかったのですが、「ああ知ってます、イノベーションなんとか科のるくすくん(@RKX1209)さんですよね?」って言ったら覚えてろよって言われました。

応募用紙でカーネルエクスプロイト問を選択したのでその延長という感覚で受講を決めた講義です。 事前課題でROPの組み方を予習して、講義ではそれを使ってエクスプロイトを書くという感じだったので、ひたすらROP職人っぽいことをしていたという感じの印象があります。

前半はWebKitの脆弱性で遊びました。 32bitの範囲内の数値しか扱えないJavaScriptで64bitメモリ空間のROPをやるにはこうすればいいのかーなどど思いました。

後半はBadIRETでユーザー空間とカーネル空間のGSレジスタがswapされてしまう脆弱性を突いたエクスプロイトを記述しようと試みました。 講義資料のP65の任意アドレス書き込みのためのパディングの大きさを調べようとしたところ、当該箇所の構造体の定義部分が200行ぐらいあって詰みました。 ちゃんとカーネルデバッグかけてサイズを吐かせる必要があるようです。 講義時間だけではとても足りなかったのでもう少し自分で続きをやりたいところです。


この日は早めに寝ました。

3日目

朝6:30に起きてグループで集まって話し合いをしました。 聞き取り結果などをまとめて部屋に戻ったら、ちょうどけものフレンズが始まったところだったので見ました。 早起きしたのでちょっと睡眠が足りていないかな?という感じでした。

E4 サイバー犯罪捜査の現場

事前学習スレに講師からの投稿が100件以上あってヒーヒー言ってました。

千葉県警の協力のもと、家宅捜索してDFして逮捕するという流れを一通りやりました。 チームのリーダーをやらせてもらったのですが、座って時々指示を出して情報をまとめるお仕事をしていたら捜査フェイズが終わったのでフォレンジックらしいことはチームのメンバーに丸投げする形になってしまいました。

家宅捜索フェイズでは証拠品を探し回ったのですが、見つけさせる気無いだろうというぐらい手の込んだ隠し方でした。 役得というか、容疑者の自室前で捜査令状を突きつけたり、後半で容疑者に逮捕状を突きつけたりできたので、単純にひたすら楽しかったです。 令状を持って容疑者宅の前まで行ったら報道陣まで待機していて笑いました。

その後の昼食で担当してもらった(というか逮捕した)警察の方に色々と話を聞かせてもらったのもとても楽しかったです。

C5 暗号運用技術

なかなか重い講義が多いセキュキャンでしたが、これは入門講義という感じで割とふんわりしていました。 ちょっと座学が多かった(=眠くなった)気がします。 普段使ってる「証明書」って何なの?という感じだったので、運用面まで含めて教えてもらえたのは良かったです。 ある二つのRSA鍵が共通の秘密鍵を使っている場合、公開鍵同士の最大公約数は簡単に求まるためクラック可能だというのはなるほどと思いました。

BoF、企業プレゼン

BoFが終わったら既に企業プレゼンが始まっている時間でした。

セキュリティ、というかITに関係のない人の話を聞きましたが、なんか既視感があったので同じ人もしくは似たような人の話を以前聞いたことがあるのではないかという気がします。 結構強烈だったのでしばらく感覚がセキュキャンから引き離されました。


その後はグループワークをして終了。 最初はなかなか方向性を絞りきれずに話が脱線しがちだったのですが、話し合っているうちになぜかテーマがまとまってきていて不思議でした。

お酒が飲みたくても飲めないのでふてくされつつ、ゆっくりお茶をいれてお菓子を食べていたら寝る時間が削れました。

4日目

選択講義は4日目が最終日です。

C6 スマートフォン向けゲームのセキュリティ

超楽しかったです。

まずはWeb上のゲームのハック。 事前課題で出ていたものの難易度を少し上げたものに挑戦しました。 難読化されたソースコードをデコードして(これは想定外だったらしい)、リクエストを飛ばす関数をそのまま呼び出して突破。

次にAndroidエミュレータ上でいろいろな手段でゲームアプリのクラックを試みました。

まずはメモリの書き換え。 うさみみハリケーンとかスペシャルねこまんま57号とか、使ったことありますよね。 あれでJava上で動いているソフトを攻略できたためしがないので、もしかして仮想マシンなどの上で動くソフトはメモリ書き換えに耐性があるのかな、などと思いました。 メモリ書き換えまでしっかり対策したプログラムを書くのは大変そうです。

次にパケットの改竄。 当然通信は暗号化されているのですが、「バイナリコードを覗いてみたらXCHG命令があって、しかもその部分に謎の定数が置かれているのでこれがXORの鍵っぽい」とかいうやり方で突破していてまじかってなりました。

これ一般に出回っているゲームアプリに普通にチート仕掛けられるのでは?と心配になるほどいろいろやったので、全体講義で口うるさく言われたセキュリティ倫理を早くも試されているのか、という気持ちになりました。

A7 ファジング実習

ファジング #とは という感じだったうえに事前課題でルータを渡されて「調査してみてください」と言われ、資料通りに何時間かファジングしてみたものの何も起こらず、???という気持ちだったので不安でしたが、講義では詳細に教えてもらえてむしろ事前課題とは何だったのか、という感じになりました。

ルータをファジングしましょうと言われたのでファジングとはネットワーク系の検査に使うものなのかな、などと思っていたのですが、実際にはソフトウェアに対しても行うことができ、なかなか強力なようです。 自分が作ったソフトの脆弱性発見にも役立ちそうなので、使いこなせるようになってみたいと思います。


その後はグループワークをしたあと、技術書のプレゼントが行われました。 年齢が若い人から順に早いもの勝ちで、私はほぼ最高齢だったので人権はありませんでした。

E4の講義で中のコインの内側にMicroSDが隠されていた豚の貯金箱がまだ残っていたので、一つもらっておきました。

他の日より一時間程度早く終わりましたが、グループワークが間に合っているはずもなく、風呂に入ってからまたグループで集まりました。 とはいえ方向性はまとまりつつあったので、一時間程度話し合った時点で解散。 夜遅くまでグループでの話し合いを続けることは免れました。

我々のグループはかなり早めに解散できたのですが、プレゼン担当の人はその後数時間作業してくれていたようで頭が上がりません。

早めに寝ようと思っていたのですが、ちょっとtwitterを開いたばかりに40分ほど持って行かれました。

5日目

最終日です。 まずはグループワークの総仕上げと発表で、我々のチームは既にプレゼンも仕上げてもらっていたので、最後の作業時間はのんびりと過ごしていました。

グループワークの発表は、我々のチームは割と全体を通してまとまりのある雰囲気の発表が出来た気がするので良かったと思います。 5000兆円フォントがネタとして被りまくっていたので、使わなかったのは正解でした。

その後昼食を挟んで成果報告、その後閉会式でした。 終始時間に追われていたセキュキャンで何をどうやれば閉会式に90分も割り当てられるのか不思議でたまりません。

感想

まず、全体的にハードな時間配分だったように感じます。 8:30の講義開始に間に合わせるように起床して、次に自由が得られるのは22:00です。 それから部屋に戻って風呂に入って筋トレをして寝るので、8時間睡眠を得るには困難が伴います。

昼食時間は基本的に参加者やチューター、講師との交流にあてられるため、休憩をしている余裕はあまりなかったように感じます。 これは余談ですが、3日目ぐらいに一度「食事会」があり、チューターや講師と相席になるようにして交流をするという企画でした。 スケジュール表には他の食事と全く同じように表示されており、また人が揃ってから一斉に食べるという方針でしたが、まあ伝達が行き届かなくて人が揃いきるのは無理だろうという感じで、せめて時間を他の日の食事時間よりも多めに取ったほうが良かったのではないかという気がします。

それも含めてではありますが、全体的に過密スケジュールになっているので、どこにしわ寄せが来るかというと睡眠時間、休憩時間、そして参加者同士の交流の時間が削られていくのかなという感じでした。

まあ単純に、もう少し寝られたら良かったなあという感じです。 演習がなければやっていることは大学の講義に似ているので、当然眠くなります。 初日の全体講義は席が決まっているし、企業プレゼンは名簿を取られていたのでサボるための抜け道に欠けます。

とはいえグループワークで一緒になったメンバーとは思った以上に話をする機会が多く、いろいろな情報を共有できたのは良かったです。


一番上の年齢層の私が言うのも、ですが、大学生や20歳以上の人が多いなあというのは感じました。 私は中高生のときに尻込みしてセキュキャン応募できなかったので最後のチャンスに応募したというのが理由ですが、聞く限りではリアルの知り合いからセキュキャンのことを知って応募したという人が多く、ネットなどで存在を知った私のような人はどうやら少ないらしいです。 なんででしょうね。

応募用紙の課題をこなせる力量という面で言えば大学生や高専生の上の方の学年の人間は比較的有利だろうなあという気はしますが、そのあたりは運営の方でうまく加味してもらっているのではないかとも思いますし謎です。

中高生が多いほうが良いんじゃないかなあ、とは思います。 大学生と中高生(と小学生)が同居できるイベントでは中高生が主役になるべきです。


セキュキャン最終日とか終了後のアンケートとかで、「セキュキャンで挫折を味わいましたか?」という質問があり、大半の人が手を挙げているのが見えたのですが、私としては挫折は味わっていないかなあ、などと思いつつ手を挙げずにいました。 そもそも挫折を感じるというのは、何かに取り組んでみて自分の能力が足りなくて力及ばなかったために打ちひしがれる、というようなことを言うのではないかと思うのですが、セキュキャンで何か自分の能力を測られるようなことに取り組んだか?と言われると大して思い当たる節が無いように感じます。 そのように振り返ってみると、まだ挫折を感じるという段階にも達していないのかなあというように思います。

挫折を感じたかどうかは置いておくとして、チューターや講師の方が圧倒的な進捗を出しているのを見て、今の自分ではとても敵わないなあ、果たして追いつけるのだろうか、という気持ちは大いに抱いています(これを挫折と言うんでしょうか?)。 参加者ともたくさん話す機会があり、ネットワークをやっている人やセキュリティをやっている人など、自分がこれまで会った人があまりやっていないようなことをメインにやっている人も多く、そういうことをやっている人って実在したんだなどと思ったりしていました。 いろいろな人がいろいろなことをやっているようなのですが、どうも圧倒的進捗を生んでいる人はある特定の分野で圧倒的進捗を生んでいるみたいです(当然)。ということは、みんな自分が得意という分野を持っているのかなあ、というように思いました。

私はこれをやりたいなというものがあまりないですし、何か見つけられるかなと思ってセキュキャンに行ってみた、という側面もあるのですが、結局セキュリティに興味を持ったか?といわれるとウーンそこまでかなあという感じで、なにをやりたいかを見つけるのは大変なようです。 そういった面では、セキュキャンに行ったからといって何かが変わるということはなく、得られた知見をきっかけにして進捗を出していくほかはないようです。