# キャプチャー・ザ・フラッグ

**キャプチャー・ザ・フラッグ**（Capture The Flag、略称: CTF）は、互いに相手陣地の旗を奪い合う騎馬戦や棒倒しに似た野外ゲームのことである。また、そこから派生して、ファーストパーソン・シューティングゲーム（FPS）などのeスポーツや、コンピュータセキュリティなどの分野でも用いられている。特に、コンピュータセキュリティにおけるCTFは、しばしば「ハッカーコンテスト」などと意訳されて報じられる（後述）。

## FPS

ファーストパーソン・シューティングゲーム、マップ上にそれぞれの陣営が配置される。陣営には旗（あるいはその他の目標アイテム）があり、それぞれのチームは、相手の陣営にある旗を奪って自分の陣営に持ち帰るとスコアを獲得できる。一定時間内にスコアを多く獲得する、またはゲーム開始前に決めたポイント数を獲得したチームが勝者となる。
なお、旗を奪われた場合、旗を持っている相手キャラクターを倒して旗を奪い返す必要がある。

攻撃と防御を交互に繰り返したり、一つの旗を奪い合うといったバリアントルールや、旗を持った場合に特殊な効果がつくといった特色のあるゲームも存在している。

チームワークや作戦が重要で、マップやゲームシステムに対する知識も要求されるため、ファーストパーソン・シューティングゲームに限らず、eスポーツの主要ルールの一つとなっている。

## コンピュータセキュリティ

コンピュータセキュリティの分野におけるキャプチャー・ザ・フラッグ（CTF）は、コンピュータセキュリティ技術の競技である。参加者は「フラッグ」と呼ばれる文字列を獲得したり、サーバの権限を奪取したりすることでスコアを得る。CTFは通常、参加者に対しコンピュータを守る経験に加え、現実の世界で発見されたサイバー攻撃への対処を学ぶ教育手法として企画されている。「ハッカーコンテスト」「ハッキング大会」「ハッキング技術コンテスト」などとも訳される。

毎年ラスベガスで開催される世界最大規模のコンピュータセキュリティの会議DEF CONにおいて、当初余興としてCTFが始まった。現在では恒例の人気コンテンツと化している。このDEF CONでのCTFでは、パケット分析、プロトコル解析、システム管理、プログラミング、暗号解読などの知識や技能が試される。DEF CON外部でも有志がCTFを開くようになり、現状では毎週何らかのCTFが世界各地で開催されている状況である。競技の性格上、オンラインでの開催が多数を占めている。著名なCTFでは、予選をオンラインで開催し上位チームのみを現地の本戦に招待するケースが多い。CTFTimeから世界各地のCTFの開催予定や結果を確認できる。

日本では、2012年にホワイトハットハッカー育成を目的として、「CTFチャレンジジャパン 2012」が開催され、以降もSECCONや有志がCTFを開催している。

公平を期すために、競技中の解法の公開は通常禁止されているが、終了後は積極的にプレイヤー同士で解法（writeup）を交換する慣習がある。writeupの公開を促すため、あるいは運用コスト削減のために、主催者が公式の解答を発表しないケースもよく見られる。

### 問題の分野

主に出題される分野を以下に挙げる。CTFやそれを主催する団体は年々多様になっているため、すべてのジャンルを明記することは難しい。
分野を横断する出題がなされることも多い。以下に挙げる他には、競技プログラミングに似たコーディング能力を問うPPC（Professional Programming and Coding）問題、電力解析による暗号鍵の復元などハードウェアセキュリティに関連する問題、OSINT等を扱うCTFもあり、主催者・参加者の興味に合わせた多様な出題がなされている。

#### リバースエンジニアリング（Reversing, Binary）

提供されるファイル（PEやELF等実行可能形式やソースコード、実行ログ）を解析してフラッグ（文字列）を取り出したり再現したりする。シリアルキーのクラッキングなどと類似した流れとなる。

#### エクスプロイト（Pwnable, pwn, Exploit）

プログラムの脆弱性を突き、不正侵入・権限昇格により、サーバ内のファイルやメモリに置かれたフラッグを発見する。脆弱性を用いてサーバに攻撃を仕掛けるためには、脆弱性を発見する必要がある。したがって対象を解析するReversingの能力も要求される。

#### Web

ウェブアプリケーションの脆弱性について知識を問う。XSS・SQLインジェクション・OSコマンドインジェクション・Content Security Policyなどを扱う。

#### 暗号（Crypto）

RSAやAESなど現代暗号の利用についての知識を問う問題や、独自の暗号アルゴリズムを解読させる問題が出題される。また暗号に関連する群論等の数学や、それを扱うコーディング能力も問われる。

#### フォレンジックス（Forensics）

外部からの攻撃・犯罪調査の証拠保全と関連して、HDDやUSBメモリ、物理メモリのイメージファイルを解析する問題が出題される。ネットワークのパケットログを用いた問題もある。

#### その他（Miscellaneous）

上記ジャンルに分類できないものや、またはセキュリティ関係の雑学やパズルなどの問題が出題される。

### 出題形式

主な出題形式は以下に示す２つである。その他独自の形式で出題するCTFも存在する（CODE BLUE CTFなど）が、その数は非常に限られている。

#### クイズ形式（Jeopardy）

各チームは、それぞれの問題を解き、対応する点数を獲得する。点数は固定か、正解したチーム数に応じて変動する。プレイヤーが直接相手を妨害したり、フラッグを盗み出したりする仕組みはない（通常、大会期間中のチーム間の接触は禁止される）。
開催・維持が比較的容易であるため、多くのCTFではこの形式が選択される。大会終了後も復習のため一定期間環境が維持される場合が多い。特定の大会を開かずに問題を随時追加・公開するものは常設CTFと呼ばれ、学習に活用されている。なお、Jeopardyという名前はアメリカの長寿クイズ番組Jeopardy!に由来する。

#### 攻防戦形式（Attack/Defense, A/D）

各チームに防御対象のコンピュータ（または小規模なネットワーク）が割り当てられ、自チームのコンピュータに対する相手からの攻撃の防御成功、及び相手のコンピュータに対する攻撃の成功に対し得点が与えられる。個々のCTFのルールによって、相手のコンピュータに侵入して情報を奪う（相手の旗を奪う）又は情報を書き込む（自分の旗を立てる）ことを企図する。著名な攻防戦形式のCTFのひとつは、毎年開催されるDEF CONで行われているものである。

多数のチームが参加するCTFにおいては、防御側コンピュータを主催者が用意し、参加者は攻撃側として、主催者が隠した複数の課題や脆弱性を突き、いくつ情報を奪うか（または情報を書き込むか）で競う場合もある。Jeopardyとは違い、解くべき問題が明示されていないため、実際の環境により近い雰囲気を持たせることができる。

### スカウト

CIAやFBIなど軍や情報機関の担当者が、優秀なハッカーをスカウトするためにCTFに来場することが知られている。2012年7月には米国国家安全保障局長官とサイバー司令部の司令官を兼任するキース・アレクサンダー大将が基調講演として登壇し、ハッカーへの支援要請を行った。また、日本においても東京電機大学で開催されたSECCON CTF全国大会（2012年度）で、警察からのスカウトが報道されている。サイバー犯罪やサイバーテロが年々増えており、ホワイトハットハッカーが不足しているため、各国ともCTFの開催に注目している。

* akictf
* ksnctf
* picoCTF