Column

技術コラム

2025/07/29

CTFってなに?謎解きで学ぶサイバーセキュリティ入門

:triangular_flag_on_post:はじめに

タイトルの『謎解き』というワードが気になって見に来てくださったあなた!
きっと、ひらめきや推理の瞬間が大好きな方なのではないでしょうか!?
早速ですが、次の謎を解いてみてください。

<謎解き問題>
スクリーンショット 2025-05-25 123405.png

ヒント①を見る

時計が何時を表しているか考えてみてください。 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って何?」と思われた謎解き好きの方に、ぜひお届けしたい内容となっております。

<こんな方におすすめ>

:triangular_flag_on_post:CTFとは

CTFとは、サイバーセキュリティの技術を競う大会です。コンピュータを使った知識・技術・発想力を活かして、「flag(フラグ)」 と呼ばれる問題の答えとなる文字列を探し出すことを目指します。CTFは「Capture The Flag」の略で、日本語では「旗取りゲーム」と訳されることもあります。

CTFは1990年代にアメリカで生まれ、今では世界中の学生・エンジニア・研究者が参加する人気の大会となっています。「ハッキングコンテスト」 と呼ばれることもあり、日本国内でも多くの大会が開催されています。CTFをきっかけに情報セキュリティの世界に興味を持つ人も増えています。

:flag_white:CTFで得られること

CTFの問題に取り組むことで、サイバーセキュリティに必要な技術力を実践的に鍛えることができます。また、CTFの競技時間は数時間から数日間に及ぶこともあり、体力集中力も求められます。問題の難易度が上がるにつれて内容も複雑になり、「もう無理かも…」と思う場面に直面することもありますが、最後まで諦めない精神力と、多角的なアプローチで解決策を導き出す問題解決力も重要になってきます。

このように、CTFに取り組む中では自然とさまざまなスキルが試され、磨かれていきます。挑戦を重ねるごとに、技術力・体力・集中力・精神力・問題解決力といった、多くの力を身につけることができるのです。

CTFの魅力は、実践的なスキルが鍛えられるだけでなく、謎解きのようなワクワク感が味わえることです。問題を解く過程は、謎解きに近いひらめきや工夫が求められ、flagが取得できたときは大きな達成感とやりがいを感じられます。

:flag_white:CTFの形式

CTFには主に2つの形式があります。

一般的に、CTFの大会の予選ではJeopardy形式、決勝ではより高度な技術とチームワークが必要となるAttack & Defense形式が採用されています。

:flag_white:Jeopardy形式のジャンル

Jeopardy形式のCTF問題はいくつかのジャンルに分かれており、開催されているCTFごとに出題されるジャンルが異なります。主なジャンルは下記のようなものがありますが、これ以外にも独自のジャンルを設けているCTFもあります。

ジャンル 内容 必要なスキル(例)
Crypto 暗号化された情報から法則や脆弱性を見つけて、
隠された情報を復元する。
・暗号理論の理解
・暗号アルゴリズムの理解
・数学的思考力
Web Webアプリケーションの脆弱性を利用して、
サーバから情報を入手する。
・HTTPの仕組みの理解
・Webセキュリティの知識
・データベースの理解
Network ネットワーク通信をキャプチャして、
不審なやり取りの通信などを解析する。
・ネットワークの知識
・TCP/IPの理解
・通信解析力
OSINT インターネット上の公開情報から手がかりを収集して、
情報を特定する。
・検索テクニック
・SNS調査力
・情報分析力
Forensics 削除ファイルや破損データを調査して、
証拠となる情報を抽出する。
・ファイル構造の理解
・ログ調査力
・メモリ/ディスク解析技術
Reversing プログラムを解析し、動作や処理を逆算して
隠された情報を探る。
・アセンブリの理解
・デバッグ技術
・プログラム解析力
Stegano 画像・音声・動画などに隠された情報を解析して、
必要な情報を取り出す。
・画像/音声/動画技術の知識
・データ解析技術
・データ配置の観察力
Pwn プログラムの脆弱性を悪用して不正権限を取得し、
情報を奪取する。
・脆弱性の理解
・Exploit作成力
・デバッグ技術の理解
Misc 他のジャンルに属さない、知識系・パズル系など
様々な問題が出題される。
・幅広い知識
・柔軟な発想力
・好奇心と探究心

Miscで必要なスキルとして挙げた幅広い知識・柔軟な発想力・好奇心と探究心はすべてのジャンルにおいて必要なスキルともいえます。幅広い知識はCTF特有のサイバーセキュリティの技術力に当たりますが、柔軟な発想力や好奇心、探究心は謎解きと同じ「ひらめき」や「推理」の楽しさに通じるところがあります。

また、CTFには個人戦・チーム戦など様々な形式があり、最初に解けた人が表彰される大会などもあります。異なるジャンルを得意とする人達とチームを組んだり、自分の得意な分野を見つけてそのジャンルから先に解き進めたりといった戦略も重要になってきます。

:triangular_flag_on_post:CTF体験

「CTFって面白そう!」と思っていただけましたか?興味を持っていただけた方は、ぜひ次のCryptoジャンルの問題を実際に体験してみてください!

:flag_white:CTF問題

次の暗号文を解読してflagを取得しましょう!
(flagの形式はflag{XXXX}です)

暗号文
cixd{tbizljbZQC_QovExoabo}

:flag_white:解答手順

1.flag形式を確認する
今回の答えであるflagの形式はflag{XXXX}と記載されています。実はこれが答えを導くヒントになります。

2.暗号文を確認する
今回の問題である暗号文はcixd{tbizljbZQC_QovExoabo}です。先ほど確認したflag形式と比較すると、両方とも{}が存在し、{}の外の文字は4文字(flag、 cixd )であることがわかります。このことから、暗号文のcixdflagになるのではないかと推測します。

3.規則性を確認する
それでは、flagと cixd を比較していきます。最初に実施した謎解きを思い出してください。「F」の3文字前は「C」でした。残りの文字も同じ規則か確認してみましょう。cixdをそれぞれ3文字後ろにずらしていくとflagとなることがわかります。暗号文の文字を全て3文字ずつ後ろにずらせば、答えが導き出せそうです。

4.ツールを駆使する
同じように全ての文字を手作業で3文字ずらしても答えがわかりそうですが、今回の暗号文はcixd{tbizljbZQC_QovExoabo}と文字数が多くて大変そうです。そこで、暗号を解読するときに便利なCyberChef(サイバーシェフ) というツールを使用します。

CyberChefは暗号解読、エンコード・デコード、データ変換などをノーコードで簡単に行える無料のWebツールです。
Chef🧑‍🍳(シェフ)のように、データをRecipe(レシピ)で加工するという発想から、CyberChefという名前がついています。

 リンク:CyberChef

上記リンクからCyberChefを起動したら、右上のInput欄に暗号文を入力しておきましょう。

スクリーンショット 2025-05-26 025049.png

5.暗号を解読する
古典的な暗号で有名なシーザー暗号(Caesar cipher) というものがあります。シーザー暗号は、古代ローマの指導者であるジュリアス・シーザー(ユリウス・カエサル)が使用していたことからこの名前がついています。仕組みは簡単で、アルファベットを一定の文字数だけずらして暗号化するというものです。

このシーザー暗号の一種に、ROT13というものがあります。ROT13の「ROT」は「Rotate(回転)」の略で、「13」はアルファベットを13文字ずらすという意味のとてもシンプルな暗号方式です。アルファベットは全部で26文字あるため、13文字ずらす処理を2回行うと元の文字列に戻るという特徴があり、簡易的な暗号化としてROT13が使われています。他にも、ROT1(1文字ずらす)、ROT5(5文字ずらす)など、ずらす数を変えたバリエーションがあります。CyberChefではROT13の設定から、ずらす文字数を変更することができます。

6.flagを取得する
それではCyberChefでROT13を使用して、暗号を解読してflagを取得していきましょう。手順は以下のとおりです。

  1. 左側のOperations欄に「ROT13」と入力して検索します。
  2. 真ん中のRecipe欄にROT13をドラッグします。
  3. ROT13のAmountの数を「3」に設定します。
  4. 「BAKE!」をクリックします。
  5. 右下のOutput欄にflagが表示されます。

image.png

 

flag(フラグ)
flag{welcomeCTF_TryHarder}
 
初めてのCTFはいかがでしたか?少しでも「楽しい!」と感じられたなら、あなたはもうCTFの魅力に引き込まれ始めています。ぜひ、次の「CTFの勉強方法」も読んでいただき、これからどんどんハマっていってください!!

答えにあるTry Harderとは、「もっと頑張る」「一層努力する」という意味で使われます。難易度の高いCTFの問題に挑戦する際には、「頑張って乗り越えよう」 という自己解決力の精神を表す言葉として使われることもあります。ぜひ、Try Harderしましょう!!

ちなみに、ROT13やシーザー暗号は非常に単純なので、現代のセキュリティ対策としてはまったく安全ではありません。ですが、CTFの初心者問題には使用されることがありますし、現代の暗号化技術の原点ともいえる考え方なので、知識として覚えておいて損はないと思います。

:triangular_flag_on_post:CTFの勉強方法

:triangular_flag_on_post:CTFと謎解きの違い

私は謎解きクリエイターに憧れていた時期があり、趣味で年賀状や友人の結婚式の余興などで謎解きの作問をしています。当社ではセキュリティ研修・教育の事業も行っており、今では業務でCTFの作問に関わる機会もあります。

 リンク:CTF・Hardening開催支援

両方とも問題を作るという点は同じですが、それぞれの作成過程から、その本質には大きな違いがあることに気づきました。


■ 謎解きの作成過程(例:結婚式の余興)

謎解きは 「答え」 を重視して作問します。まず答えを設定し、そこから逆算してパズルを作る、いわばゴールありきの設計です。

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の本質だと考えています。

:triangular_flag_on_post:まとめ

CTFは、コンピュータやセキュリティの知識を使って「flag」を見つける競技で、サイバーセキュリティの技術を楽しみながら学べるのが魅力です。

ひらめきや推理がカギとなる点は謎解きにも似ていますが、CTFでは実際の脆弱性や攻撃手法を理解する過程こそが最も重要です。問題を解き進める中で、サイバー攻撃の手口やシステムの仕組みについて触れ、現代のIT社会を支えるサイバーセキュリティの技術を自然と身につけることができます。

この記事を読んでCTFに興味を持ってくださった方が1人でも多くいらっしゃれば幸いです。
最後まで読んでくださったあなたも、ぜひCTFに挑戦してみてください!!!

:flag_white::triangular_flag_on_post::flag_black:最後に・・・

最初の謎解き問題を思い出してください。本当にこの時間に読んでいる方は、夜遅くor午後の休憩時間の前に技術記事を読む、勉強熱心でTry Harderな方ではないでしょうか?
(フラグ回収の時間に少々お付き合いください…!)

当社ではセキュリティ研修や教育の事業も行っております。ニーズに合わせて研修内容のカスタマイズも可能です。CTF形式の実践的な研修も実施していますので、興味をお持ちの方はお気軽にお問い合わせください。

 ✅リンク:セキュリティ研修・教育

また、採用も積極的に行っております。有償トレーニングの受講や、資格の受験・更新費用をサポートする制度も整っており、学びや成長をしっかり支援しています。さらに、午後のひと息にぴったりな「おやつ制度」として、社内には自由に食べられるおやつもご用意しています(3時前にちょうど良い!)。
情報セキュリティ業界で挑戦したい方、成長したい方、ぜひエントリーをお待ちしております!

 ✅リンク:福利厚生・研修制度

Get in Touch

お問い合わせ

サイバー攻撃対策・脆弱性診断・インシデント対応など、
お客様のニーズに合わせた最適な
ソリューションをご提案します。
まずはお気軽にご相談ください!

Pagetop