国内外24チームが拳を交えた、SECCON 2016決勝大会レポート
目次
熱い2日間が始まる…SECCON CTF決勝大会を観戦
2017年1月28~29日、第5回「SECCON 2016」が開催されました。情報セキュリティをテーマとした各種講演、CTF初心者向け勉強会「CTF for ビギナーズ」、LINEバグバウンティプログラム(バグ報告者に報奨金を支払う制度)での報奨金の獲得方法を伝授する講座、NECが社内で開催している超初心者向けCTF問題に挑戦できるイベント、Raspberry Piを使ったIoTのハンズオンセミナー&CTF演習など、頭と手をフル回転させるイベント満載の2日間。会場の東京電機大学には連日多くの来場者が詰めかけました。
そんな賑わいを横目に、1階ホール奥では静かなる戦いが繰り広げられていました。以前「SECCON 2016 Online予選、運営の裏側をレポート」の記事でご紹介した「SECCON CTF」の決勝大会です。2日間の戦いに挑むのは、地方大会や他イベントの連携大会、世界99か国・地域1834チームが参加したオンライン予選を勝ち抜いた、国内外24の強豪CTFチーム。いずれも腕に覚えのある経験者ばかりです。
CTF(Capture the Flag)は、情報セキュリティに関する知識や技術力をゲーム形式で競う“旗取りゲーム”です。問題を解いて“旗”(フラグ)をゲットする「Jeopardy」形式、チームごとに与えられたサーバを守りながら他チームのサーバを攻撃する攻防戦「Attack & Defence」、運営が用意した複数のサーバを攻略して他チームの攻略を阻む「King of the Hill」など、形式は多様です。SECCON CTFの場合、オンライン予選はJeopardy、地方大会はJeopardyやプレゼン発表など。今回レポートする決勝大会では、King of the Hill形式が採用されました。
フラグをとった後も気が抜けないKing of the Hill形式
競技内容については、海外チームから毎回絶賛される国立研究開発法人情報通信研究機構(NICT)の競技リアルタイム可視化エンジン「NIRVANA改 SECCONカスタム Mk-III」を見ながら解説してみたいと思います。
攻略対象として用意されたサーバは、6つ。「壱」から「伍」までのサーバは攻防戦用、「六」はJeopardy用です。NIRVANA改のQuestionモードで見ると、分かりやすいかもしれません。6つのかたまりは、それぞれサーバを表しています。そのサーバを構成する六角形のセルが、各チームです。ちなみに、NIRVANA改ではセルの色が青から黄色になると、それは攻略が完了した証拠。攻略する問題が6つあるサーバ六の場合、解いた問題数に応じて淡い色から濃い色へと変化します。
サーバを攻略してフラグをゲットすると、チームには「攻撃ポイント」が入ります。また、指定されたページに「Defense Keyword」を書き込めば「防御ポイント」が入ります。勝敗は、これらポイントの総合点で決まります。
六角柱は、高さでポイント獲得具合を表し、色で攻撃と防御のどちらが多いか表現しています。また、やや見にくいですが、黄色い旗が立っているのは、そのサーバのフラグを取ったという意味です。
ただし、防御ポイントは運営が所定ページをチェックする際にDefense Keywordが確実に書き込まれていないと入りません。また、防御ポイントは書き込んだチーム数に応じて分配されます。つまり、他チームにDefense Keywordを書き込ませないよう妨害し、より多くのポイントをゲットする必要があります。これがKing of the Hillの面白さであり、勝敗を大きく分けるポイントでもあります。
夜は徹夜で問題攻略? CTFerの熱い戦いを見た!
本戦1日目。競技環境にややトラブルがあり、1時間遅れの12時に競技開始。直後、待っていたとばかりに台湾の「217」、中国の「eee」、日本の「binja」、韓国の「CyKor」がJeopardyに着手、続々フラグを獲得し始めます。NIRVANA改の画面には、そのたびに「突破」の文字が躍ります。
攻防戦では、「壱」が囲碁ゲームのエクスプロイトと暗号を組み合わせた問題。「弐」はWeb問題、「参」はバイナリ問題、「四」は多様なアーキテクチャを理解しながら攻略する問題、「伍」はIntel x86の命令が制限される中をかいくぐってフラグを探す問題を攻略します。「他のCTF大会では見られない、独特な問題が面白かった」と述べる海外チームが多く、作問担当の興味や趣味(?)が色濃くにじみ出ているのが特徴のようです。
1日目後半は、「CS16」や「Dragon Sector」のポーランド勢、アメリカの「PPP」や台湾の「HITCON」など、CTF常連の海外勢、日本の「binja」や「dodododo」が善戦。一瞬でもNIRVANA改の画面から目を離すと上位が入れ替わるという、熱い戦いが繰り広げられました。1日目の終わりは、「三」を先に攻略して死守し、防御ポイントを確実に稼いだCyKorがトップで終了。2位はbinja、3位はeeeという結果でした。
2日目は、毎年恒例の「突破」祭りで始まりました。1日目の終了後、Jeopardy問題を自宅や宿泊先に持ち帰り、徹夜で解いてきたチームが開始と同時にこぞってフラグを獲得。突破の音はしばらく鳴り止みませんでした。
2日目後半、トラブルで公開されていなかった「弐」が無事解放され、Dragon SectorやPPP、HITCON、CS16がフラグを獲得。点数を伸ばして上位に食い込みます。しかし、最終的にはどのチームよりも早くサーバ参を攻略、他チームの攻略を妨害して防御ポイントを大量ゲットし、合計3433ポイントを獲得したCyKorが見事優勝して経済産業大臣賞を受賞。2位は、2日目から攻防専用サーバの攻略が進んで点数を伸ばした韓国のPwnPineappleApplePwn(2234ポイント)。3位はeee(1899ポイント)となりました。
このほか、日本の学生チームから最優秀チームとしてdodododoが、1人で4つの問題を解いた優秀な個人としてgreenapple氏(fukuitech)が選ばれ、文部科学大臣賞が授与されました。
■強豪は強かった…解いて楽しかったサーバは?
競技終了後、優勝につながった一番のポイントをCyKorのメンバーに質問したところ、「参を攻略したチームメンバーが、以降は付きっきりで他チームの攻略を妨害してくれて。おかげで他メンバーが残りのサーバ攻略に専念できました。どのサーバもやりがいがあって面白かったです」と答えてくれました。ちなみに同チームは世界最強のCTFチームの1つで、強さの秘訣は「特に勉強会など開催してませんが、とにかく自分の技能を高め、磨くことに集中しています」とのことでした。
3位のeeeは、インターネット関連事業を手がけるTencentのKeen Security Lab(昨年はTesla Model Sのリモート攻撃の可能性を発表した研究所)のチームです。「大学時代はCTF上位常連のチームoopsに所属し、Tencentに就職してeeeを立ち上げました」というメンバーのひとりは、サーバ参をCyKorが抑えていて太刀打ちできないと早々に判断、他サーバの攻略に切り替えたのが良かったと述べました。
ちなみに、そのメンバーが面白かったと挙げた1つがサーバ壱でした。前述のとおり、内容は囲碁ゲームをエクスプロイトしてフラグをゲットするというもの。しかし、それだけでは終わらせない仕掛けが施されていたそうです。作問したチームTokyoWesternsのytoku氏によると、囲碁ゲームは石を置いたマスの数の多い方が負けというルールで、より少ない手数を考えたチームにDefense Keywordのポイントが入るようにしたとのこと。ただし、Defense Keywordは電子署名を付けて送信しなければならず、電子署名の暗号が解読できれば、他チームが送信したDefense Keywordを解読して削除できるようにしたそうです。
もっとも、複数チームが暗号解読に成功した場合、互いに消し合って誰にも防御ポイントが入らなくなります。他チームに邪魔されずポイントを得るには、どうすればよいのか。それは、暗号を解読されないよう細工すればいいのです。
「Defense Keywordが所定ページに書き込まれているかどうか運営が確認するタイミングで大量のリクエストを送信、自分以外のチームに書き込ませないという防御方法が成り立つ問題に遭遇したとき、力技で押し切れば勝ちという趣向に、プレイヤーとして不満がありました」。CTF常連ならではの気づきでサーバ壱の問題が生まれたようです。
懇親会では、プレイヤー同士が問題の攻略方法を質問し合う姿が散見されました。体力・知力・精神力の限界にチャレンジしながら、好きなことにどっぷり浸かる2日間。そんな様子に、羨ましさを覚えました。来年度のスケジュール発表はもう少し先ですが、今からとても楽しみです。
来年度はどんな戦いが待っているのでしょうか?