6715.jp

2016-08-17

セキュリティ・キャンプ全国大会2016に行った

sekaisekai
CTFセキュリティセキュリティ・キャンプ参加記

行ってきました。 セキュリティキャンプに応募した話もあります↓

なんか微妙に日が空いてしまったので最初の方とかもう空覚えなんですが、思い出しながら。

一日目

海浜幕張から5分位歩いてクロスウェーブ幕張に到着。 なんかTwitterみてるとクソ早くに到着して付近散策してらっしゃる参加者さんもいましたが、 まぁ普通に定刻に付けば大丈夫そう。

会場入りしたら名刺交換タイムでした。 強そうな人たちから次々と「名刺交換して頂けませんか」と声をかけられます><

で、お昼を食べたり開講式でありがたいお言葉を頂いたりして、講義です。

セキュリティ基礎

いきなりグループディスカッションです。自己紹介をしつつ、「セキュリティ・キャンプ応募フォームの問題点」を考えました。

特別講演「ZENIGATAになりたくて」

めっちゃ面白かったです。 CyberDefenceとICPOはなんで協力関係にあるのか?みたいな話から、 ICPOのサイバー部門の仕事について、そして「技術」とは何かみたいなお話。 なんかこのお話を聞けただけでもキャンプに来た甲斐があった気がします。

「CTFでBinaryができる人は大抵Webもできるが、逆はない」とおっしゃられていたのが刺さりました>< 精進します。。。

特別講演「サイバー犯罪の実態とこれに対処するための取組」

サイバー犯罪に対する警察の取組みについて。 こういう分野に関して警察が何やってるのかって、なかなか表に出てこないので、目からウロコでした。 あと間仁田さんの話し方が面白いです。

2日目

いよいよ専門講座!

[1,2-E] TLS徹底演習

TLSとは何か、TLSは何故必要なのか、といったお話から始まりました。 徹底演習の名の如く、これ以上ないくらい詳しく解説して頂きました。

で、TLSのハンドシェイクはどんな物なのかを一つ一つ見ながら、簡単な演習を行いました。 ペアになって手でTLSのハンドシェイクを作ってメッセージ交換したり、 間に人を挟んで人力MITM攻撃をしてみたり、楽しかったです。

この講義は集中講義なので丸一日を使うのですが、 午後に入った段階で漸く「TLSを理解する準備」に入るので、ちょっとビビりました。 TLSは多くの要素技術を組み合わせてやっと成り立つものらしいので、徹底的に解説するには時間がかかるのも納得です。

理解する準備が終わったら、実際にNode.jsで最新の暗号方式ChaCha20-Poly1305の実装を行いました。 コレ、つい2ヶ月前に仕様化が完了したばかりの本当に最先端の技術なので、こんな講義を受けられる場所はここしかない!そうです。

大津先生は「どうせ誰も演習を最後まで終えられないだろう」と仰っていましたが、 ボクはNode.jsがスキなので楽しくサクサク演習を進めて、あと1題(!)で終わるトコロまできたのですが、残念ながらタイムアップ。 大津先生は何故か安堵されていました(笑)

講義の資料は先生がWebにアップしてくださっていますので、以下から見れます。

CTF

待ちに待ったCTF! セキュリティに興味を持ったきっかけがCTFなので、もうコレが一番の楽しみでした。

ボクらE4gleJumpもガンバるよ!

19:00からの予定でしたが、機材トラブルで30分ほど遅れてのスタート。 こういうイベントでは(特にネットワーク関係の)機材トラブルがあるあるですね。

このCTF、「はいコレ、RaspberryPiで動いてるサーバね」ってIPアドレス渡されて放り出されます。 なんか、この時点でもうだいぶ困惑してるチームもあったようです。

幸いボクらのチームにはRaspiのプロ👏がいたので、 彼が開始即ポートスキャンでSSHが空いてることを突き止め、 Raspiのデフォルトユーザとパスワードで一瞬にしてFLAG入手キメててビビりました。 (SSHでログインできないと次に進めないので、けっこうツラかったですね。)

ボクはまぁ、例によってWeb問をチマチマいじってました。 ベーシックなXSSと、PHPのプロトコルラッパーを悪用する問題を解きました。 後で聞いたところ、どこかに任意コード実行の脆弱性が仕込まれてたようなんですが、全く分からず詰み。

ボクがWebで無駄に足掻いてる最中にも、チームのプロ👏各位によってPPCとかCryptoがバシバシ解かれて……

講師チームを除けば1位でした。 (途中までは真に1位だったのに……あと1問解けば……ちょっと悔しいです)

賞状をいただきした。 副賞としてNTTデータさんからQuoカードも頂きました。

3日目

[3-A] Webアプリケーションの脆弱性の評価と発見

脆弱性を探すときにどんなトコロに注目すべきかを教えていただき、 その後サイボウズオフィスの旧バージョンから実際に脆弱性を探してみるなどしました。 見つけた脆弱性の評価方法なども、大変ためになりました。

[4-C] オンラインゲーム アタック&ディフェンスチャレンジ

運営チームとプレイヤーチームに分かれて、運営はチート対策、プレイヤーはRMTをガンバる競技です。 2試合あったのですが、事前アンケートでNodeそこそこ触ってますって回答したせいか1回目も2回目も運営でした。

マップ上に湧くカエルを捕まえて経験値を稼いでレベルを上げるっていうシンプルなオンラインゲームです。 レベルを上げてRMTするとプレイヤーの得点になります、ゲームを安定運用すると運営の得点になります。

1回目はゲームに予め仕込まれていたバグの修正が遅れて、プレイヤーにやりたい放題されてしまいました。(かなしい) 大差をつけられてしまったので、2回戦に向けて自動BANスクリプトを書くなどしていました。

2回目、満を持して自動BANスクリプトを投入したのですが、どうも不調でRMTの疑いのないアカウントまでBANしてしまい大幅減点を食らう。(ごめんさない) 仕方がないので、プレイヤーの自動化スクリプトを阻止すべく全ての動作に1秒の遅延を入れてレベルアップ効率を大幅に下げる作戦に出ました。 コレが功を奏してRMTは減速、見かけ上安定した運営がなされて結果勝てたんですけど、プレイヤーからめっちゃ叩かれました。 (現実のオンラインゲームでも運営はしばしばプレイヤーに叩かれてますよね……)

チームで協力して問題を対処していく感じがとても楽しかったですね!

[5-A] サーバ運用におけるパスワード管理

ディスカッションが主でした。 大学のサークルが所有するサーバを管理したりしてるので、いろいろ勉強になりました。 ディスカッションって苦手なのですけど、自分が思いもしなかったような見方があったりして、いろいろ発見があります。

4日目

[6,7-E] インフラセキュリティブートキャンプ

Terraformを使ってAWS上にシステムを構築してみる演習です。 AWSはEC2とS2くらいしか使ったことがなかったんですが、VPCを使ったりELBを使ったり……途中めちゃめちゃ詰まりましたがなんとか構築できました。 TerraformはJSONでシステムの構成を記述してコマンド一発で構築しちゃおうってノリのソフトなんですが、(使いこなせれば)めっちゃ強いなと思いました。

コレも集中講義なんですが、午後はちょっと趣向を変えてDockerでいろんなOSSを走らせてみたりだとか、 AWS Lambdaを使ってサーバレスアーキテクチャを体験してみたりだとか。

手を動かす部分が多くて楽しかったです。

グループワークの準備

闇 of 闇

一応グループワークの準備時間が毎日1~2時間くらいあったんですが、 足りるはずもなく毎年恒例(らしい)徹夜進捗会に突入です。

なんかうちのグループは深夜4時位まで議論してました。 議論し過ぎて話が広がりすぎて全員が分けわからなくなった結果、まとまりのない感じの主張になってしまいました……(反省)

5日目

起床トラック

毎日ちょこちょこチューターさんに起こされる参加者さんがいたそうですが、 ボクは大丈夫ですよ!もちろん5日目を恥を晒すようなことはしていません!寝てないからね!(白目)

グループワーク発表

みなさんクオリティが高い>< 個人的に一番おもしろいなぁと思ったのは「一対三」さんのYouTuberの話です。

成果発表

いきなり指名されたのでかなりキョドりました。(すみません) TLS徹底演習について簡単に説明したのですが、あの講義のスゴさを1割も伝えられなかった……

おわり

閉講式で修了証書をもらって、記念撮影をしておしまいです。 5日間、あっという間でした。

記念撮影の掛け声が「がんばるぞい!」だったの、一体なんなんでしょうね(すっとぼけ)

閉講式後、技術書がたくさんもらえます。 魅力的な本がたくさんあったのですが、受け取る順番を決めるクジで最下位を引いたために、残念ながら欲しい本を手に入れることができず。 ロビーでもらったばかりの本を持ち寄ってサイン会が開かれているのを遠目に見てました……。

あ、キャンプ中は飲料水のペットボトルが(ほぼ)無限に配布され、至る所に転がっているんですが、 ボクはその余りをバックに入る限り詰め込んで持ち帰ってきました。(害悪)

振り返って

なかなか他ではできない経験ができましたし、参加できて良かったです。

セキュキャンはいいぞ

もらったもの一覧