プレイ・ザ・ゲーム! CTFが問いかけるハックの意味:セキュリティ・ダークナイト(1)(1/3 ページ)
ダークナイトが帰ってきた! 「セキュリティ対策の『ある視点』」を執筆したペネトレーションテスターによる新連載は、気になるセキュリティトピックを、時には攻撃者として、時には防御者として取り上げます(編集部)
守る者と攻める者の存在――だからこの世は面白い
まずは、本連載のタイトルで「セキュリティ・ダークナイト」と銘打った理由を簡単に説明させていただこう。
ひねりのないタイトルなので気付かれた方も多いと思うが、これは有名な映画のタイトルから拝借している。その映画の登場人物である悪の象徴ともいえるジョーカーは、ゲームを楽しむためには自らの命をかけることも惜しまず、相手を翻弄(ほんろう)する。
それに対し、正義の象徴バットマンは、何があっても殺人は犯さないという大前提のもと自身の正義を貫こうとする。
ジョーカーは、バットマンを自分自身と同じタイプの人間ととらえ、バットマンに自身を殺させることで彼を悪に染めようとするが、バットマンは自身の正義でジョーカーを殺さない。ジョーカーにとってもバットマンは楽しみの対象、いわば「おもちゃ」であるためジョーカーもまたバットマンを殺そうとはしない。
双方はさまざまな行動を起こすものの互いの関係により、どちらかが消えることはない。そして、その中で互いに進化をし、果てしない攻防を繰り返す。
互いのスタンスを崩さない守る者と攻める者――われわれが日々利用しているネットワークの世界も同じようなことがいえるのではないだろうか。
今回は、以前の連載「セキュリティ対策の『ある視点』」のようにペネトレーションテストを軸に展開するのではなく、時にはジョーカーのように「ゲーム」を楽しみ、枠にとらわれず攻撃する者として、時にはバットマンのように厳格な正義を貫き守る者として、さまざまな立場から筆者の気になることを書かせていただこうと思っている。
そして第1回では、筆者がチャレンジしたゲームを皆さんに紹介しよう。
セキュリティ対策をゲームに、「Capture the Flag」
筆者がチャレンジしたゲームというのは、「DEFCON」という広義のハッカーの祭典で行われる「CTF(Capture The Flag)」の予選である。CTFの概要などについては@ITの記事「いざラスベガス、いざDEFCON CTF決勝へ」にお任せし、割愛させていただく。
CTFの予選自体は以前から知ってはいたのだが、参加するまでには至らなかった。今回、筆者はきっかけに恵まれ、日本連合軍とも呼べる「sutegoma」、そして自社のメンバーで構成した「disposable trick」という2つのチームで参加させていただいた。連載第1回、第2回で、その予選で出題された問題を読者の皆さんにもチャレンジしていただこう。
といっても、技術的過ぎる問題を取り上げるだけでは楽しんでいただけないことが予想できる。今回は、比較的簡単な問題とその解き方を小出しにしていくといった、ウォークスルーテイストで進めていこうと思う。読者の皆さんもこの記事を「読む」という姿勢ではなく、読み進めながら考え「楽しむ」という姿勢で望んでほしい。
今回、楽しんでいただく問題は以下の3問だ。
- Pursuits Trivial 100
- Crypto Badness: 100
- Packet Madness: 100
それでは、早速1問目である。
ググれば分かる? 「Pursuits Trivial 100」
まず、第1問目の問題から見ていこう。
問題:
Name the X files episode that focuses on "a hacker con".
筆者超意訳:
ハッカーカンファレンスに焦点を合わせたXファイルのエピソードの名前は?
これはまさにクイズである。時間さえかければ解けそうな問題だ。読者の方も検索して見つけ出してみてほしい。
とにかく検索である。Wikipediaを洗ったり。ファンサイトを洗ったり。残念ながら、筆者の周りには「Xファイル」フリークはおらず、一切情報がない状態だった。「攻殻機動隊」や「マトリックス」「ザ・ハッカー」「ハッカーズ」「スニーカーズ」などなどいろいろなハッカー関連のものは見てきたつもりだが、海外ドラマはノーマークに近かった。これを機にレンタルでもしようかと反省した。
検索を繰り返していく中で、Xファイルには「The Lone Gunmen」というチームが登場することが分かった。そのチーム構成員はハッカーでもあることから、彼らが登場するエピソードで間違いがないようである。とはいえ、彼らが登場するエピソードはけっこうある(ちなみに、Xファイルは全201話ある)。
絞り込みを行うためにさらに検索を重ね、Xファイルの膨大な情報をまとめているサイトにたどりついた。そこで発見したページには、ロケ地などの情報も掲載されていた。最終的にたどりついたページには以下のような記述が発見された。
1999年にラスベガスで行われたDEFCONがロケ地である。これはもうビンゴだろうということでこのエピソードのタイトルである。よって、「Three of a Kind」を入力し正解となった。
どうだろう。簡単だっただろうか。それでは、間髪入れず次の問題にチャレンジしよう。
解法は分かった、では答えは? 「Crypto Badness 100」
次は暗号に関する問題だ。
問題:
ASI JL DUJZTED SA J EJZD JVV NBTODI,
VDD FOD AHB VBFD:
OFFT://YYY.AHB.MSK/TJMD2/CDN08/NSCD_122908.OFZE,
PSQD GSW MWDVV? LS, JNFWJE AHB RWBX.
筆者超意訳……といいたいところだが、ご覧いただいた通り、問題そのものが暗号なのである。これには、初参戦とはいえ筆者も驚いた。まず、このままでは手も足もでないので、問題文そのものを復号するところから始めないといけないようである。
筆者のチームは問題文の下記の部分に注目した。見慣れた何かに酷似していないだろうか。
OFFT://YYY.AHB.MSK/TJMD2/CDN08/NSCD_122908.OFZE
そう。極めてURLっぽいのである。
上記部分がURLであるということを仮定して考えると、下記のようないろいろなことが見えてくる。
- URLには「http://」などお決まりの部分があるため、そこから復号可能でないか?
- 「OFFT://YYY」の部分が「http://www」であるならば、可変長の暗号ではないのではないか?(1文字につき別の1文字が対応しているといった文字の置き換えによる暗号)
- TLD(トップレベルドメイン)が3文字ではないか?(「com」「net」「tel」など?)
- 「OFFT://YYY」の部分が「http://www」であるならば、記号は暗号化されていないのではないか?(もしかしたら数字も?)
この仮定をもとに現時点で復号できそうな部分を復号してみよう。
以下、大文字は暗号、小文字は復号後として表記する。まずは「OFFT://YYY」の部分である。
O → h
Y → w
F → t
T → p
と復号できると推測される。この法則をもとに問題文全体に文字の置き換えを行うと下記のようになる。この記事を読みながらチャレンジされている方はテキストエディタの置換を使うといいだろう。
ASI JL DUJZpED SA J EJZD JVV NBphDI,
VDD thD AHB VBtD:
http://www.AHB.MSK/pJMD2/CDN08/NSCD_122908.htZE,
PSQD GSW MWDVV? LS, JNtWJE AHB RWBX.
さらにURLっぽい部分の最後に注目してみよう。
NSCD_122908.htZE
URLであるとするならば、ファイル名に相当する部分である。
多くの場合、Web上で公開される拡張子で4文字のものといえば「aspx」なども存在するのだが、「ht」から始まるものといえば「html」しかないだろう。それを踏まえると下記のような復号が可能であると考えられる。
Z → m
E → l
それでは、先ほどと同じ仮定のもと、ここまで復号できている問題文を見てみよう。
ASI JL DUJmplD SA J lJmD JVV NBphDI,
VDD thD AHB VBtD:
http://www.AHB.MSK/pJMD2/CDN08/NSCD_122908.html,
PSQD GSW MWDVV? LS, JNtWJl AHB RWBX.
すぐに置き換えられる部分の復号はこれくらいだろう。ここからは、一目で推測できるような部分は見つからない。よって、着目すべき個所は、文字数や復号されている部分が多い単語の部分ということになるだろう。
この2つを考慮し筆者は以下の2つの単語に着目した。「J」と「thD」である。1文字の英単語はなんだろうか。thで始まる3文字の英単語はなんだろうか
答えは以下の通りである。
J → a
thD → the
「J」と「D」が判明したため、ほかの個所においても復号を行おう。
ASI aL eUample SA a lame aVV NBpheI,
Vee the AHB VBte:
http://www.AHB.MSK/paMe2/CeN08/NSCe_122908.html,
PSQe GSW MWeVV? LS, aNtWal AHB RWBX.
Copyright © ITmedia, Inc. All Rights Reserved.