先日開催されました、
CTFチャレンジジャパン2012
http://ctf-challenge.jp/
にて優勝致しました弊社代表+若手技術者で構成されたチーム「AgentⅣ」
に今回の大会についてインタビューしました!
-------------------------------------
『CTFチャレンジジャパン2012』 とは?
ホワイトハッカーの育成を支援する目的で、開催された CTF (ハッキングコンテスト)です。
国が支援するCTFとしては国内初の公式大会ということで、業界の注目を集めました。
-------------------------------------
Q.予選と本戦はどのような内容だったのでしょうか?
A.
予選は、用意された4つのサーバーを攻撃して「鍵」を獲ってくるという内容でした。
獲得した鍵の数で勝敗が決まります。鍵が同数の場合は、最後の鍵を先に手に入れたチームが勝ちになります。本戦は、海外のハッキング競技会「DEFCON CTF(Capture The Flag)」の予選に近い内容でした。
「バイナリ解析」「サービスアタック」「フォレンジック」「暗号解読」「パケット」「トリビア」の6つのジャンルごとに4つの問題が用意されていて、各チームは、それぞれのジャンルのうち最初に開示されている「100点問題」から解いていきます。100点問
題を解かないと次の200点問題が開示されない形式になっているため、100点問題を最初に解き、次に開示された200点問題を解き、300点問題を開示し・・・という風に1問ずつ解いていく形です。
ただ、サービスアタックというジャンルだけ、200点の問題を解くと、サービスアタックの300点問題が開示されると同時に、他ジャンルの200点問題が一斉に開示されるといった具合に、解いた問題と同じ点数の他のジャンルの問題が開示されるというボーナスがあったのは驚きました。
Q.「AgentⅣ」はどういったジャンルを解かれたんですか?
A.
トリビアとフォレンジックは全問解くことが出来ました。ちなみに、トリビアはかなり珍しい問題が出されました。検索しても中々答えが見つからないようなものでした。
例えば、ファミコン向けのプログラムを解析しないと解けない問題なんかもありました。トリビアを解けるチームは全問正解、解けないチームは正解0問と、かなり差が出るジャンルでしたね。
Q.海外の CTFと比較して、今回の大会はどうでしたか?
A.
大会を全体的に比較して、「日本らしさ」をすごく感じました。例えば、問題の公開に関してです。
海外の場合、問題の内容やその解法、解説が公開されることが多いのですが、今回の大会の場合、ほとんど公開されていないようです。予選では参加者が問題を公開しないよう、秘密保守契約を結ぶなどの徹底ぶりに驚きました。
また、本戦会場の雰囲気も全然違いました。海外のハッキング競技会「DEFCON CTF」は一言で言うと「お祭り騒ぎ」という雰囲気で、一般客も観戦できるのですが、今回の大会は一般客は見学できなかったり閉鎖的でした。そうした面について、非常にカッチリしていると感じました。
Q.過去のCTF出場の経験は活かせましたか?
A.
予選の内容は新しいものでしたが、本戦はメジャーな形式だったし、傾向も似ていたので、いつもCTFに出場している人たちはどんどん解いていた印象でした。CTFは、経験や過去問などを通じて、自分がどれだけ様々な問題に触れてきたかで、問題を解くための知識や引き出しに大きな差が出ます。
新しい攻撃手法やファイル形式に関する問題も出ますが、過去問をアレンジした問題も多数出題されます。過去のCTF大会で出た問題を知っていれば、「あの問題と同じ発想じゃないか」と気づくことが出来ます。そういった意味で、過去様々な CTF 大会に出場し、数多くの問題を解いてきた経験はかなり活かすことができました。
Q.過去の経験から、問題の解き方のノウハウなどはお持ちなんですか?
A.
解き易い問題って、問題自体にストーリーがあるんですよ。この問題はこうなんだろうなって思わせるヒントが散りばめられているんです。
例えばあるフォレンジックの問題では、問題文に「まずはこの人に聞いてみるといい」と、ある名前が書かれています。その後、問題ファイルである、ディスクイメージを開いてみるとその名前のファイルがあり、その内容を見ると次のステップに進めるヒントが書かれている、という具合です。こういったストーリーがある問題は、解き易いというのは経験としてあります。
逆に解きにくい問題は、上記のようなストーリーが一切ありません。
思わせぶりなヒントもないし、そもそも問題を見つけることが出来ないなんていうものもありました。そういう問題は、時間がかかるうえにまったくわからない、と良いことが無く、やる気もそがれてしまうので、深追いせず、後回しにします。
Q.ずばり、今回の勝因は?
A.
問題に詰まっても、メンバーに相談して先に進めたり、解けない部分を他の人にバトンタッチしたり、協力して取り組めたところでしょうか。チームワーク力ですかね。
Q.役割分担のようなものがあったのですか?
A.
今回は、全員それぞれのジャンルの問題を解き進めていくというやり方で進めました。
基本的に、問題に詰まらなければ同じジャンルを解き続ける、という形です。ただ、場面場面でコードを作る作業だけ、他のメンバーに担当してもらう、など柔軟な動きがスムーズに行えたと思います。
Q.最後に今回の大会を通じて、得たものはありますか?
A.
どの CTF でもそうですが、大会を通じて新しい知見を獲得することができる点は大きな意義があると感じます。例えば、今回は問題を通じてバーコードの仕様を学べました。
普通に過ごしていたら中々学ぶ機会のないことも、CTFを通して知るきっかけを得られます。それが日常生活や仕事の場面で有用であれ、あまり馴染みの無いものであれ、新しい知見を得られることは CTF の楽しみの1つだと思います。
それと同時に、他の技術者と競い合うことで、やはり自身の実力不足を痛感することもできます。次にまたチャレンジしたい!その時までに勉強しよう!というモチベーションに繋がりますよね。
さっそく、次の休みを使って解けなかった問題にチャレンジしようと思っています!
AgentⅣの皆様ありがとうございました!
2013/02/05 コース:元祖こってり
「元祖こってり」記事はネットエージェント旧ブログ[netagent-blog.jp]に掲載されていた記事であり、現在ネットエージェントに在籍していないライターの記事も含みます。