Harekaze CTF 2018のスポンサーをしました

はじめに

第二サービス開発本部 研究開発部の鷹取です。 私は個人的にCTFチーム Harekazeに所属しています。
チームHarekazeでは、2018年2月10日~11日にHarekaze CTF 2018を開催しました。 今回ドワンゴはスポンサーとして協力しました。 Harekaze CTF 2018がどのような大会だったのかについて、Harekazeのメンバーとして、またドワンゴの社員として、簡単に紹介させていただきます。

CTFとは

CTFとはCapture The Flagの略で、情報セキュリティを中心とした知識や技術を用いるゲームのことです。 様々なファイル、プログラム、サーバーなどから隠された答え(Flag)を探し出し、正解すると得られる点数を競います。
CTFには常時公開されている問題、期間限定のオンラインの大会、会場に集まって参加する大会など様々な形態があります。 また、多くのCTFの大会はチームで参加することができるため、メンバーがそれぞれの得意な技術を活かして協力し合うことができます。

CTFチーム"Harekaze"について

Harekazeは、学生により結成されたCTFチームです。 卒業して社会人になったメンバーもいますが、今でも大部分は学生です。 所在地も北は北海道、南は沖縄まで全国に散らばっています。
普段はメンバーのSlackで連絡を取り合っていますが、大会の準備など、大きなイベントの際はオフラインで集まる必要があります。 メンバーによってはかなりの長距離移動が必要になるため、今回ドワンゴは移動費を中心にサポートしました。

ドワンゴにとってのCTF

情報系の競技でドワンゴといえば、競技プログラミングを思い浮かべる方が多いかと思います。 実は、ドワンゴではCTFやセキュリティ系の競技も応援しており、実際にSECCON 2017などでもスポンサーになっています。
エンジニアが携わる仕事は多岐に渡るため、CTFや競技プログラミングの個々の技術が直接役に立つ機会はあまり多くないかもしれません。 しかし、日頃からCTFや競技プログラミングを通して技術に触れ合う経験と習慣、またそれによって磨かれるエンジニアとしての基礎体力が仕事で活かされる場面はたくさんあります。
特にCTFは、様々な分野の技術に触れる必要のある競技です。 ドワンゴでは、様々なことに興味を持ち、強い探究心をもって問題解決を行うエンジニアを応援しています。

Harekaze CTF 2018

開催概要

Harekaze CTF 2018は、日本時間の2018年2月10日 15:00から2月11日の15:00までの24時間で開催されました。
2017年の12月11日の開催告知から合計で1,011名、609チームの方々が登録し、当日は447チームの方が参加して問題を解いてくれました。

問題の種類

Harekazeのメンバーのうち11名が出題に関わり、全部で22問の問題が出題されました。 出題された問題のジャンル・レベルも様々です。 主な問題はこのような内訳でした。

ジャンル名 問題数 概要
WarmUp 3問 準備運動
Rev 5問 実行ファイルに対してリバースエンジニアリングを行う問題
Crypto 4問 暗号技術に関する問題
Web 3問 Webサイトの脆弱性を突く問題
Pwn 3問 用意されたサーバに侵入し、権限を奪取する問題
For 2問 画像などの様々なファイルに隠されたフラグを見つける問題
その他 2問

22問を全て正答すると、3107点になります。 今回の最高点を獲得したチームの得点は3007点だったので、全問正解までかなり惜しいところでしたね!

大会の進行

問題の一部は大会の開始時には公開せず、参加者が解き進めるにつれて徐々に公開していきました。 24時間のうちの12時間経過した時点で、すべての問題が出題されました。

※チーム内での話し合いの様子

publish_problems

また、なかなか回答者が増えない問題については、参加者の様子を伺いながら少しずつヒントを出しました。

※チーム内での話し合いの様子

hint

私の出題した問題は、ヒントを出すまで解けたチームが1チームだけだったのですが、ヒントを出すと次々に解くチームが現れてくれました。 自分の出した問題が解かれていく様子を見るのはとても楽しい経験でした。

出題された問題の一覧と、想定解法のリンクはこちらのGitHubリポジトリにまとめられています。 本番の大会に参加できなかった方も、ぜひ見て、解いてみてくださいね。

参加者とのコミュニケーション

Twitter

大会の告知などは、主にTwitterを通して行いました。 “#HarekazeCTF“というハッシュタグのついたツイートを見ていただくと、大会中の様子がわかると思います。

Discord

多くのCTFの大会では、開催中の参加者とのコミュニケーションにIRCを使用しています。 今回私たちは、IRCに換わるコミュニケーションツールとしてDiscordを使用しました。 登録や使い方についても特に問題は起こりませんでした。
絵文字や発言へのリアクション機能もあるので、みなさん楽しげに会話しながら参加してくれました。 このジャンルの問題をもっと解きたい!といった意見も書いてもらえたので、問題公開のタイミングを決める参考になりました。

need problems

反省点

Harekaze CTF 2018を振り返り、メンバー間で反省点の共有を行いました。 主に3点の反省点が挙げられました。

まず、問題のソースコード等のライセンス明記が不十分であったという点です。
大会後にWriteUp(解答の手順や感想などをまとめたブログ記事など)に記載していいのかなど、問い合わせが何件かありました。 私たちとしては、たくさん記事を書いてもらって広く知ってもらいたいという立場ですので、その旨を明記すべきでした。

次に、作問者以外でも適切な質疑応答を可能にしておくべきだったという点です。
作問後にお互いの問題を解いてレビューをしたりしていましたが、参加者からの質問に十分に答えられない状況が多く発生しました。 24時間の大会において作問者の不在は当然考えられますので、想定される質問の共有やシフトを組むなど、少し工夫を行うべきでした。

最後に、全体を通して、事前に検証や確認をしておくべき項目が多々あったという点です。
時間と人員に限りがある状況とはいえ、長いスパンでの計画や必須項目の書き出し、人的リソースの管理などを徹底していれば、スムーズに進行できた場面が多かったのではないかと思います。

おわりに

大会の運営を通して得られた経験を、今後に活かしていきたいと考えています! Thank you for playing Harekaze CTF 2018!!!