はじめに
タイトルの『謎解き』というワードが気になって見に来てくださったあなた!
きっと、ひらめきや推理の瞬間が大好きな方なのではないでしょうか!?
早速ですが、次の謎を解いてみてください。
ヒント①を見る
時計が何時を表しているか考えてみてください。 2時58分頃を指していますね。言い換えると3時前(3字前)となります。ヒント②を見る
アルファベット表を確認して「FWI」を3文字ずつ前にずらして読んでみましょう。| A | B | C | D | E | F | G | H | I | J | K | L | M |
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
答えを見る
「F」の3文字前は「C」、「W」の3文字前は「T」、「I」の3文字前は「F」ですね。
正解は 「CTF」 でした!
……さて、謎は解けましたか?
実はこのような「ひらめき力」を活かす謎解きが、サイバーセキュリティの世界に実在するんです。それが 「CTF」 です!!
今回の記事は「CTFって何?」と思われた謎解き好きの方に、ぜひお届けしたい内容となっております。
<こんな方におすすめ>
- 謎解きやパズルが好きで、実践的な楽しみを求めている
- CTFという言葉を聞いたことはあるけど、実際何をするか知らなかった
- セキュリティに興味があるが、何から始めてよいか分からない
CTFとは
CTFとは、サイバーセキュリティの技術を競う大会です。コンピュータを使った知識・技術・発想力を活かして、「flag(フラグ)」 と呼ばれる問題の答えとなる文字列を探し出すことを目指します。CTFは「Capture The Flag」の略で、日本語では「旗取りゲーム」と訳されることもあります。
CTFは1990年代にアメリカで生まれ、今では世界中の学生・エンジニア・研究者が参加する人気の大会となっています。「ハッキングコンテスト」 と呼ばれることもあり、日本国内でも多くの大会が開催されています。CTFをきっかけに情報セキュリティの世界に興味を持つ人も増えています。
CTFで得られること
CTFの問題に取り組むことで、サイバーセキュリティに必要な技術力を実践的に鍛えることができます。また、CTFの競技時間は数時間から数日間に及ぶこともあり、体力や集中力も求められます。問題の難易度が上がるにつれて内容も複雑になり、「もう無理かも…」と思う場面に直面することもありますが、最後まで諦めない精神力と、多角的なアプローチで解決策を導き出す問題解決力も重要になってきます。
このように、CTFに取り組む中では自然とさまざまなスキルが試され、磨かれていきます。挑戦を重ねるごとに、技術力・体力・集中力・精神力・問題解決力といった、多くの力を身につけることができるのです。
CTFを通して得られる効果については、こちらの記事でも詳しく取り上げています。
CTFの魅力は、実践的なスキルが鍛えられるだけでなく、謎解きのようなワクワク感が味わえることです。問題を解く過程は、謎解きに近いひらめきや工夫が求められ、flagが取得できたときは大きな達成感とやりがいを感じられます。
CTFの形式
CTFには主に2つの形式があります。
-
Jeopardy形式(クイズ形式)
ジャンル別に用意された問題を解いて得点を競う形式です。 -
Attack & Defense形式(攻防戦)
チームごとにサーバを持ち、他チームからの攻撃を防ぎつつ、相手の脆弱性を突いてflagを奪う形式です。
一般的に、CTFの大会の予選ではJeopardy形式、決勝ではより高度な技術とチームワークが必要となるAttack & Defense形式が採用されています。
ちなみに、漫画『トリリオンゲーム』にもCTFのシーンが登場し、Jeopardy形式やAttack & Defense形式の競技が行われている様子が描かれています。ドラマやアニメ、映画にもなっているので、CTFの雰囲気を感じたい方はチェックしてみるのもおすすめです。
Jeopardy形式のジャンル
Jeopardy形式のCTF問題はいくつかのジャンルに分かれており、開催されているCTFごとに出題されるジャンルが異なります。主なジャンルは下記のようなものがありますが、これ以外にも独自のジャンルを設けているCTFもあります。
ジャンル | 内容 | 必要なスキル(例) |
---|---|---|
Crypto | 暗号化された情報から法則や脆弱性を見つけ て、隠された情報を復元する。 |
・暗号理論の理解 ・暗号アルゴリズムの理解 ・数学的思考力 |
Web | Webアプリケーションの脆弱性を利用して、 サーバから情報を入手する。 |
・HTTPの仕組みの理解 ・Webセキュリティの知識 ・データベースの理解 |
Network | ネットワーク通信をキャプチャして、不審な やり取りの通信などを解析する。 |
・ネットワークの知識 ・TCP/IPの理解 ・通信解析力 |
OSINT | インターネット上の公開情報から手がかりを 収集して、情報を特定する。 |
・検索テクニック ・SNS調査力 ・情報分析力 |
Forensics | 削除ファイルや破損データを調査して、証拠 となる情報を抽出する。 |
・ファイル構造の理解 ・ログ調査力 ・メモリ/ディスク解析技術 |
Reversing | プログラムを解析し、動作や処理を逆算して 隠された情報を探る。 |
・アセンブリの理解 ・デバッグ技術 ・プログラム解析力 |
Stegano | 画像・音声・動画などに隠された情報を解析 して、必要な情報を取り出す。 |
・画像/音声/動画技術の知識 ・データ解析技術 ・データ配置の観察力 |
Pwn | プログラムの脆弱性を悪用して不正権限を取 得し、情報を奪取する。 |
・脆弱性の理解 ・Exploit作成力 ・デバッグ技術の理解 |
Misc | 他のジャンルに属さない、知識系・パズル系 など様々な問題が出題される。 |
・幅広い知識 ・柔軟な発想力 ・好奇心と探究心 |
Miscで必要なスキルとして挙げた幅広い知識・柔軟な発想力・好奇心と探究心はすべてのジャンルにおいて必要なスキルともいえます。幅広い知識はCTF特有のサイバーセキュリティの技術力に当たりますが、柔軟な発想力や好奇心、探究心は謎解きと同じ「ひらめき」や「推理」の楽しさに通じるところがあります。
また、CTFには個人戦・チーム戦など様々な形式があり、最初に解けた人が表彰される大会などもあります。異なるジャンルを得意とする人達とチームを組んだり、自分の得意な分野を見つけてそのジャンルから先に解き進めたりといった戦略も重要になってきます。
CTF体験
「CTFって面白そう!」と思っていただけましたか?興味を持っていただけた方は、ぜひ次のCryptoジャンルの問題を実際に体験してみてください!
CTF問題
次の暗号文を解読してflagを取得しましょう!
(flagの形式はflag{XXXX}
です)
cixd{tbizljbZQC_QovExoabo}
解答手順
1.flag形式を確認する
今回の答えであるflagの形式はflag{XXXX}
と記載されています。実はこれが答えを導くヒントになります。
2.暗号文を確認する
今回の問題である暗号文はcixd{tbizljbZQC_QovExoabo}
です。先ほど確認したflag形式と比較すると、両方とも{}が存在し、{}の外の文字は4文字(flag
、 cixd
)であることがわかります。このことから、暗号文のcixd
はflag
になるのではないかと推測します。
3.規則性を確認する
それでは、flag
と cixd
を比較していきます。最初に実施した謎解きを思い出してください。「F」の3文字前は「C」でした。残りの文字も同じ規則か確認してみましょう。cixd
をそれぞれ3文字後ろにずらしていくとflag
となることがわかります。暗号文の文字を全て3文字ずつ後ろにずらせば、答えが導き出せそうです。
4.ツールを駆使する
同じように全ての文字を手作業で3文字ずらしても答えがわかりそうですが、今回の暗号文はcixd{tbizljbZQC_QovExoabo}
と文字数が多くて大変そうです。そこで、暗号を解読するときに便利なCyberChef(サイバーシェフ) というツールを使用します。
CyberChefは暗号解読、エンコード・デコード、データ変換などをノーコードで簡単に行える無料のWebツールです。Chef🧑🍳(シェフ)のように、データをRecipe(レシピ)で加工するという発想から、CyberChefという名前がついています。
上記リンクからCyberChefを起動したら、右上のInput欄に暗号文を入力しておきましょう。
5.暗号を解読する
古典的な暗号で有名なシーザー暗号(Caesar cipher) というものがあります。シーザー暗号は、古代ローマの指導者であるジュリアス・シーザー(ユリウス・カエサル)が使用していたことからこの名前がついています。仕組みは簡単で、アルファベットを一定の文字数だけずらして暗号化するというものです。
このシーザー暗号の一種に、ROT13というものがあります。ROT13の「ROT」は「Rotate(回転)」の略で、「13」はアルファベットを13文字ずらすという意味のとてもシンプルな暗号方式です。アルファベットは全部で26文字あるため、13文字ずらす処理を2回行うと元の文字列に戻るという特徴があり、簡易的な暗号化としてROT13が使われています。他にも、ROT1(1文字ずらす)、ROT5(5文字ずらす)など、ずらす数を変えたバリエーションがあります。CyberChefではROT13の設定から、ずらす文字数を変更することができます。
6.flagを取得する
それではCyberChefでROT13を使用して、暗号を解読してflagを取得していきましょう。手順は以下のとおりです。
- 左側のOperations欄に「ROT13」と入力して検索します。
- 真ん中のRecipe欄にROT13をドラッグします。
- ROT13のAmountの数を「3」に設定します。
- 「BAKE!」をクリックします。
- 右下のOutput欄にflagが表示されます。
flag{welcomeCTF_TryHarder}
初めてのCTFはいかがでしたか?少しでも「楽しい!」と感じられたなら、あなたはもうCTFの魅力に引き込まれ始めています。ぜひ、次の「CTFの勉強方法」も読んでいただき、これからどんどんハマっていってください!!
答えにあるTry Harderとは、「もっと頑張る」「一層努力する」という意味で使われます。難易度の高いCTFの問題に挑戦する際には、「頑張って乗り越えよう」 という自己解決力の精神を表す言葉として使われることもあります。ぜひ、Try Harderしましょう!!
ちなみに、ROT13やシーザー暗号は非常に単純なので、現代のセキュリティ対策としてはまったく安全ではありません。ですが、CTFの初心者問題には使用されることがありますし、現代の暗号化技術の原点ともいえる考え方なので、知識として覚えておいて損はないと思います。
CTFの勉強方法
まずは、CTFの大会に参加してみてください!一度参加すれば、どのように進めていくのかなど、全体の雰囲気がつかめるはずです。最初からたくさんの問題を解ける人はいないので、焦らずじっくり取り組むことが大切です。(たまに「初めてCTFに参加しました」と言って優勝している人もいますが、気にせず自分のペースで何度も挑戦しましょう。)
実際、最初は「何も解けなかった」という経験をした人のほうが多いです。でも、このあとにご紹介するCTF大会や学習環境、本などを活用して、少しずつ知識を積み重ねていくことで、必ず解ける問題は増えていきます。
まずは1問解けることを目指して、一歩ずつ進んでいきましょう!
初心者向けCTF大会
最初にチャレンジするCTFの大会は、競技時間が短く、簡単な問題が出題され、できれば解説をしてもらえるものがおすすめです。挑戦しやすい初心者向けのCTF大会をいくつかご紹介します。
-
WEST-SEC
「8割解けるCTF」では初心者で8割、完全なセキュリティ初心者でも4割くらい解けるように、比較的解きやすい問題が出題されます。オンラインで参加可能です。
CTF以外にもセキュリティセミナーが定期的に開催されているので、日頃から情報をインプットするのもおすすめです。
-
SECCON Beginners
初心者〜中級者を対象とした大会で、通常のCTFではあまり見かけないやさしい問題も出題されます。一方で、上級者向けのやや難しい問題出題されます。オンラインで参加可能です。
オフラインにはなりますが、ワークショップも定期的に開催されています。
-
CTF for girls
「CTFハンズオン」はオフラインかつ女性限定ではありますが、未経験者でも比較的解ける問題が多く、参加者同士の交流がメインの目的となっているため、気軽に楽しく参加できます。
ワークショップはオンラインで開催されることもあります。
-
picoCTF
中高生を対象とした入門レベルの大会で、賞金もでます。受賞資格はありませんが、中高生以外の大学生・社会人などの方も参加できます。オンラインで参加可能です。
練習プラットフォームであるpicoGymでは、過去のpicoCTFの問題に挑戦できるので、常設型のCTFとしていつでも利用できます。常設型であれば、好きな時間に何度も挑戦できるので、苦手なジャンルを復習するなど、普段の学習手段としても優秀です。自分のペースで実施できるため、期間が決まっている大会には予定が合わず、参加しづらいという方におすすめです。
また、CognitiveHack Japanの常設サイトでは、日本語表記で過去問題が提供されているので、英語に不安がある方はこちらもおすすめです。
-
CpawCTF
初心者から中級者向けの常設型CTFです。ランキング機能を備えており、スコアを競い合うことでモチベーションを高めつつ、自分の到達度を把握できます。
常設型なので制限時間がなく、じっくり取り組める点が魅力です。各問題にはヒントや公開WriteUpも用意されており、LinuxやPythonの基礎を学びながらセキュリティ実務に直結する知識を体系的に身につけられます。また、日本語表記なので、英語に不安がある方でも安心して挑戦できます。
※「WriteUp」については後述の「CTFの学習環境」にて説明します。
CTF大会の情報
上記以外にも、CTFの大会は世界中でたくさん開催されています。CTFの大会情報は、次のサイトを使って調べることもできます。
-
CTFtime
世界中のCTF大会の情報を集約したポータルサイトです。開催スケジュールの確認や結果の閲覧、チームの登録・ランキング機能もあり、初心者から上級者まで活用できます。
Upcomingから今後開催されるCTFの大会が確認できます。気になる大会があれば詳細をチェックし、公式サイトからCTFの参加登録をします。過去の大会結果やWriteUpも参考に学習を進められます。
-
connpass
エンジニアやIT系のコミュニティ向けに特化した、イベント管理・参加プラットフォームです。勉強会やハンズオン、セミナーなどのイベントを簡単に探して参加でき、自分でイベントを立てることも可能です。
「CTF」というワードで検索すると、CTFtimeに掲載されていない小規模なCTFの大会が開催されていることがあります。CTFの大会検索に特化したサイトではないですが、セキュリティ系のイベントを探すのにも役立つので、取り上げさせていただきました。
CTFの学習環境
大会以外で、CTFや実践的なサイバーセキュリティの技術について学べるおすすめの環境をご紹介します。
-
ゼロから始めるCTF
CTFに参加してみたいけど、どこから始めていいかわからない、解き方がわからないといった方向けの勉強会です。この勉強会は、平日夜の約1時間半かつ毎回オンライン開催なので、無理なく気軽に参加できます。
私もCTFの存在を知ったあと、最初に参加したのがこの勉強会でした。はじめは内容がまったく理解できませんでしたが、何度か参加するうちに少しずつCTFの仕組みや楽しさが分かってきて、大会にも挑戦できるようになりました。
-
TryHackMe
無料でも学習できる初心者~中級者向けのサイバーセキュリティ学習プラットフォームです。セキュリティに関する知識がゼロでも始められる構成になっており、チュートリアル形式で解説付きの問題に取り組めます。
CTFの大会の問題形式とは少し違うのですが、「Beginner」向けのルームから始めて、徐々に難易度を上げていくことで、CTFに挑むための実践的なスキルが基礎から学べます。ブラウザ上だけで操作できるので、環境構築に不安がある方にもおすすめです。
-
Hack The Box(Challenge)
無料でも学習できる中〜上級者向けのサイバーセキュリティ学習プラットフォームです。実践的でやや難しめの問題にも取り組めます。Challengeでは実際のCTF大会に近い問題形式が多く、攻撃対象のサーバに接続して脆弱性を探すなど、より実践に近い体験ができます。
「AI」や「Blockchain」など珍しいジャンルの問題も出題されているので、より幅広い分野を学ぶことができます。
-
WriteUp
WriteUpとは、CTFで解いた問題の解き方をまとめた記事やブログのことです。具体的には、問題を解くためにどのようなツールや手法を使ったか、どのように脆弱性を見つけたか、どのようにflagを得たかなどを説明します。
私も解けなかった問題はWriteUpで検索して、解き方や考え方を学んでいます。TryHackMeやHack The Boxを進めるうえでも、わからない問題はWriteUpを探して手順を学ぶことをおすすめします。
また、CTFの大会に参加後、WriteUpを書くことで知識の整理ができ、復習にもつながります。「なんとなく解けた」で終わらせずに、理解を深める良い機会になります。
CTF関連の本
CTF関連のおすすめの本についてご紹介します。
-
入門セキュリティコンテストーーCTFを解きながら学ぶ実戦技術
この本では「CTFとは何か?」という基本から丁寧に解説されており、初心者にもわかりやすい構成になっています。SECCONなど実際のCTFの過去問を題材にしながら、問題の流れや解き方を学ぶことができ、セキュリティに関する実践的な知識もしっかり身につきます。CTFへの参加を考えている方にも、実践的なセキュリティ技術を身につけたい方にもおすすめできる本です。
-
セキュリティコンテストチャレンジブック
この本では、「バイナリ解析」「pwn」「ネットワーク」「Web問題」「SQLインジェクション」のテーマに絞って詳しく丁寧に解説されています。(※「Web問題」「SQLインジェクション」はCTFのWebジャンルにあたるものです)各テーマの問題のアプローチ方法やよく使うツールまで丁寧に解説されているので、初心者でも安心して読める本です。
CTFと謎解きの違い
私は謎解きクリエイターに憧れていた時期があり、趣味で年賀状や友人の結婚式の余興などで謎解きの作問をしています。当社ではセキュリティ研修・教育の事業も行っており、今では業務でCTFの作問に関わる機会もあります。
両方とも問題を作るという点は同じですが、それぞれの作成過程から、その本質には大きな違いがあることに気づきました。
■ 謎解きの作成過程(例:結婚式の余興)
謎解きは 「答え」 を重視して作問します。まず答えを設定し、そこから逆算してパズルを作る、いわばゴールありきの設計です。
1.ゴールとなる「答え」を決める
→ 意味やメッセージ性のある「答え」を設定します。
例:入籍日の5/1「0501」を答えとし、手紙が入った箱のカギが解除される仕掛けにする
2.中間のヒントやステップを考える
→ 解答者が段階的に「答え」へたどり着ける構成にします。
例:入籍日を導くため、「招待状を見ろ」などのメッセージを中間の答えとして設定する
3.それぞれのステップに対応するパズルや仕掛けを作る
→ 「答え」へたどり着く導線として問題を設計します。
例:文字並べ替え、暗号、図形、なぞなぞ など
4.全体の流れを調整し、遊びやすさや楽しみやすさなどの要素を加える
→ 難易度の調整、演出の工夫、ひらめきの誘導などを行います。
例:進行しやすいように動画を作成する、全員が楽しめるように問題を易しくする など
■ CTFの作問過程(例:Webのジャンル)
CTFは 「過程」 を重視して作問します。攻撃のステップを設計してから、それに合わせたflag(答え)を設定します。
1.実装したい脆弱性や技術を決める
→ 参加者のレベル感に合わせて、学んでほしいことを設定します。
例:XSS、SQLインジェクション、ディレクトリトラバーサル など
2.それらの技術を使った攻撃の流れ(過程)を設計する
→ それぞれの脆弱性でできることを組み合わせて、攻撃の流れを決めます。
例:ユーザ権限 → 管理者権限 → 機密情報入手
3.各ステップに対応する挙動や環境を用意する
→ 脆弱性を含むコードやWebアプリケーションを作ります。
例:ログイン画面、検索画面、ファイルダウンロード画面 など
4.ステップの達成時に得られるflagを設計・埋め込む
→ 簡単に推測されないような文字列を設定します。
例:flag{Cr0SS_Sit3}、flag{SQL_mAst3r} など
挑戦者として振り返ってみても、謎解きでは「答え」が記憶に残るのに対し、CTFでは脆弱性を見つけるまでの「過程」の方が印象に残ると感じます。CTFのflagは難読化(LEET表記「e」→「3」など)されていることも多く、コピペして提出することがほとんどなので、答え自体は覚えていないことすらあります。
このように、謎解きとCTFは問題を解くという点では共通していますが、CTFでは脆弱性を突くまでの道のり、つまり「過程」が重要です。私は脆弱性を知る過程こそがCTFの本質だと考えています。
まとめ
CTFは、コンピュータやセキュリティの知識を使って「flag」を見つける競技で、サイバーセキュリティの技術を楽しみながら学べるのが魅力です。
ひらめきや推理がカギとなる点は謎解きにも似ていますが、CTFでは実際の脆弱性や攻撃手法を理解する過程こそが最も重要です。問題を解き進める中で、サイバー攻撃の手口やシステムの仕組みについて触れ、現代のIT社会を支えるサイバーセキュリティの技術を自然と身につけることができます。
この記事を読んでCTFに興味を持ってくださった方が1人でも多くいらっしゃれば幸いです。
最後まで読んでくださったあなたも、ぜひCTFに挑戦してみてください!!!


最後に・・・
最初の謎解き問題を思い出してください。本当にこの時間に読んでいる方は、夜遅くor午後の休憩時間の前に技術記事を読む、勉強熱心でTry Harderな方ではないでしょうか?
(フラグ回収の時間に少々お付き合いください…!)
当社ではセキュリティ研修や教育の事業も行っております。ニーズに合わせて研修内容のカスタマイズも可能です。CTF形式の実践的な研修も実施していますので、興味をお持ちの方はお気軽にお問い合わせください。
また、採用も積極的に行っております。有償トレーニングの受講や、資格の受験・更新費用をサポートする制度も整っており、学びや成長をしっかり支援しています。さらに、午後のひと息にぴったりな「おやつ制度」として、社内には自由に食べられるおやつもご用意しています(3時前にちょうど良い!)。
情報セキュリティ業界で挑戦したい方、成長したい方、ぜひエントリーをお待ちしております!