SECCON CTFつくば大会のハッカソンに参加してきた

SECCON 2018
SECCON CTFつくば大会のハッカソンに2012/05/19、2012/05/20とで参加してきました。つくばは先月花見をしてきたので、1.5ヶ月ぶりくらい。

きっかけは、実行委員の@takesakoさんと@sonodamさんのお二人に 機械学習×プログラミング勉強会 : ATND に誘って頂いたことから。

私が選択したテーマ:CTF競技の見える化(お題から選択)
目的、意義:CTF競技を見る側(委員会、参加関係者、プレス、応援)としては、CTF参加者がもくもくPCに向かっているところしか見えないので、どんな活動をしているか可視化したい。実現できれば、見る側も何をやっているかわかりやすい、楽しめる。世界でも活動の可視化自体は少ない(ない?)と伺った。
自分の目標:WebGLでモックぽい形まで動かせれたらいいな。NICTERWEB 2.0 のような想像、パケットから行動を推測したい(キャプチャして垂れ流すためのサーバAPIは私が作るとして、そのパケットキャプチャのpublisher側は競技会場、ジャッジシステムと密結合と仮定する)。

1日目:CTFをチラ見しつつWebGL(three.js)とたわむれる

慣れない3DプログラミングとJavaScriptに苦戦。
WebSocketで試しにclient/server作る分には瞬殺。クライアントでJSONのパースにjQuery、サーバはRubyem-websocket書くだけでチョロい。ハッカソンで集中する前に、ゲームプログラミング系の予習してくればよかった。深夜も続行。

2日目:シューティングゲームっぽい形、オブジェクトに対するマウスオーバー(クリック)を検出できるようになる

カメラ視点の変更、オブジェクト作成、移動あたりに慣れつつある。肝心のUIが決まらずにWebSocketサーバ側からのパケット情報を受信してそれを飛ばすオブジェクト(particle)作っている途中で時間切れ。
CTFチラ見しつつ、ユンブル、各種エナジードリンク混ぜ合わせ(カクテル)を頂く。

発表会:フィードバックも頂く。発表会というよりは何もできてないので処刑場という気分であったが、WebGL触れた報告しつつ、アレもコレもできたらいいねとお話ししつつ、フィードバックも頂く。
道具を使えるレベルになってようやく、スケッチブックなどに可視化を想定する絵を描いては、スタッフを捕まえてインタビュー&フィードバックの繰り返しが出来るのではと思っていた。ハッカソン2日間で妄想だけ絵に描いても餅で終わり、動くコード・スキル修得もなく終わってしまうと悲しいため、今回はWebGL学習に力を注ぎ、CTFのアウトサイダーとしてどんな様子か観察する行動がメインだった。

まとめ

実行委員、参加者の皆様お疲れ様でした。特にハッカソン組の方はアレな睡眠時間でしたが計算通りにバスでの会場移動もできて何よりでした。

ハッカソンは、私の3Dプログラミング力が圧倒的に足りずに未完成。ハッカソンで集中するためには事前準備がないと、つまらないミスでハマるだけなのであらかじめ予習しておくことよい。言い訳の言葉を未来へ残すと、最近は2週間連続で長めの発表があったために社会生活が充実しており、準備が不十分だった。

書きかけのコードはgistへ:
参考にしたthree.jsのサンプルは webgl_lines_sphere.html, webgl_interactive_cubes.htmlなど。
https://gist.github.com/2758316
three.jsリポジトリ直下で動作を前提としている。

一緒に参加してた方のエントリ

新屋さん http://swatmac.info/?p=927

作りかけの画面