キャプチャー・ザ・フラッグ (Capture The Flag、略称 : CTF )は、互いに相手陣地の旗を奪い合う騎馬戦 や棒倒し に似た野外ゲーム のことである。また、そこから派生して、ファーストパーソン・シューティングゲーム (FPS)などのeスポーツ や、コンピュータセキュリティ などの分野でも用いられている。特に、コンピュータセキュリティにおけるCTFは、しばしば「ハッカーコンテスト」などと意訳されて報じられる(後述)。
FPS
ファーストパーソン・シューティングゲーム におけるCTFでは、参加者は二つのチームに分かれ、マップ上にそれぞれの陣営が配置される。陣営には旗(あるいはその他の目標アイテム)があり、それぞれのチームは、相手の陣営にある旗を奪って自分の陣営に持ち帰るとスコアを獲得できる。一定時間内にスコアを多く獲得する、またはゲーム開始前に決めたポイント数を獲得したチームが勝者となる。
なお、旗を奪われた場合、旗を持っている相手キャラクターを倒して旗を奪い返す必要がある。
攻撃と防御を交互に繰り返したり、一つの旗を奪い合うといったバリアントルールや、旗を持った場合に特殊な効果がつくといった特色のあるゲームも存在している。
チームワークや作戦が重要で、マップやゲームシステムに対する知識も要求されるため、ファーストパーソン・シューティングゲームに限らず、eスポーツの主要ルールの一つとなっている。
コンピュータセキュリティ
コンピュータセキュリティ の分野におけるキャプチャー・ザ・フラッグ(CTF)は、コンピュータセキュリティ技術の競技である。参加者は「フラッグ」と呼ばれる文字列を獲得したり、サーバの権限を奪取したりすることでスコアを得る。CTFは通常、参加者に対しコンピュータ を守る経験に加え、現実の世界で発見されたサイバー攻撃 への対処を学ぶ教育手法として企画されている。「ハッカーコンテスト」[ 1] 「ハッキング大会」[ 2] 「ハッキング技術コンテスト」[ 3] などとも訳される。
毎年ラスベガス で開催される世界最大規模のコンピュータセキュリティの会議DEF CON (英語版 ) において、当初余興としてCTFが始まった。現在では恒例の人気コンテンツと化している。このDEF CONでのCTFでは、パケット分析 、プロトコル 解析、システム管理 、プログラミング 、暗号解読 などの知識や技能が試される。DEF CON外部でも有志がCTFを開くようになり、現状では毎週何らかのCTFが世界各地で開催されている状況である。競技の性格上、オンラインでの開催が多数を占めている。著名なCTFでは、予選をオンラインで開催し上位チームのみを現地の本戦に招待するケースが多い。CTFTime から世界各地のCTFの開催予定や結果を確認できる。
日本では、2012年にホワイトハットハッカー 育成を目的として、「CTFチャレンジジャパン 2012」が開催され[ 4] 、以降もSECCONや有志がCTFを開催している。
公平を期すために、競技中の解法の公開は通常禁止されているが、終了後は積極的にプレイヤー同士で解法(writeup)を交換する慣習がある。writeupの公開を促すため、あるいは運用コスト削減のために、主催者が公式の解答を発表しないケースもよく見られる。
問題の分野
主に出題される分野を以下に挙げる。CTFやそれを主催する団体は年々多様になっているため、すべてのジャンルを明記することは難しい。
分野を横断する出題がなされることも多い。以下に挙げる他には、競技プログラミング に似たコーディング能力を問うPPC(Professional Programming and Coding)問題、電力解析による暗号鍵の復元などハードウェアセキュリティに関連する問題、OSINT 等を扱うCTFもあり、主催者・参加者の興味に合わせた多様な出題がなされている。
提供されるファイル(PE やELF 等実行可能形式 やソースコード、実行ログ)を解析してフラッグ(文字列)を取り出したり再現したりする。シリアルキーのクラッキング などと類似した流れとなる。
プログラムの脆弱性 を突き、不正侵入・権限昇格により、サーバ内のファイルやメモリに置かれたフラッグを発見する。脆弱性を用いてサーバに攻撃を仕掛けるためには、脆弱性を発見する必要がある。したがって対象を解析するReversingの能力も要求される。
Web
ウェブアプリケーション の脆弱性 について知識を問う。XSS ・SQLインジェクション ・OSコマンドインジェクション ・Content Security Policy などを扱う。
暗号(Crypto)
RSA やAES など現代暗号の利用についての知識を問う問題や、独自の暗号アルゴリズムを解読させる問題が出題される。また暗号に関連する群論 等の数学や、それを扱うコーディング能力も問われる。
外部からの攻撃・犯罪調査の証拠保全と関連して、HDD やUSBメモリ 、物理メモリ のイメージファイルを解析する問題が出題される。ネットワーク のパケット ログを用いた問題もある。
その他(Miscellaneous)
上記ジャンルに分類できないものや、またはセキュリティ 関係の雑学やパズル などの問題が出題される。
出題形式
主な出題形式は以下に示す2つである。その他独自の形式で出題するCTFも存在する(CODE BLUE CTF[ 5] など)が、その数は非常に限られている。
クイズ形式(Jeopardy)
各チームは、それぞれの問題を解き、対応する点数を獲得する。点数は固定か、正解したチーム数に応じて変動する。プレイヤーが直接相手を妨害したり、フラッグを盗み出したりする仕組みはない(通常、大会期間中のチーム間の接触は禁止される)。
開催・維持が比較的容易であるため、多くのCTFではこの形式が選択される。大会終了後も復習のため一定期間環境が維持される場合が多い。特定の大会を開かずに問題を随時追加・公開するものは常設CTFと呼ばれ、学習に活用されている。[ 6] なお、Jeopardyという名前はアメリカの長寿クイズ番組Jeopardy! に由来する。
攻防戦形式(Attack/Defense, A/D)
各チームに防御対象のコンピュータ(または小規模なネットワーク)が割り当てられ、自チームのコンピュータに対する相手からの攻撃の防御成功、及び相手のコンピュータに対する攻撃の成功に対し得点が与えられる。個々のCTFのルールによって、相手のコンピュータに侵入して情報を奪う(相手の旗を奪う)又は情報を書き込む(自分の旗を立てる)ことを企図する。著名な攻防戦形式のCTFのひとつは、毎年開催されるDEF CONで行われているものである。
多数のチームが参加するCTFにおいては、防御側コンピュータを主催者が用意し、参加者は攻撃側として、主催者が隠した複数の課題や脆弱性 を突き、いくつ情報を奪うか(または情報を書き込むか)で競う場合もある。Jeopardyとは違い、解くべき問題が明示されていないため、実際の環境により近い雰囲気を持たせることができる。
スカウト
CIAやFBIなど軍や情報機関 の担当者が、優秀なハッカーをスカウトするためにCTFに来場することが知られている。2012年7月には米国国家安全保障局長官とサイバー司令部の司令官を兼任するキース・アレクサンダー大将が基調講演として登壇し、ハッカーへの支援要請を行った[ 7] 。また、日本においても東京電機大学で開催されたSECCON CTF全国大会(2012年度)で、警察からのスカウトが報道されている[ 8] 。サイバー犯罪やサイバーテロが年々増えており、ホワイトハットハッカー が不足しているため、各国ともCTFの開催に注目している。
脚注
外部リンク