先日、8月1日~4日にアメリカのラスベガスで開催された世界最大のセキュリティカンファレンス「DEFCON 21」
その中で最も注目度の高いハッキングイベント(ハッキング能力や知識を駆使して戦うという競技)「CTF(Capture The Flag)」に弊社スタッフが参加する日本人チーム「sutegoma2」が挑み、全 20チーム中 6位という成績をおさめました。
今回は、その「sutegoma2」のメンバーでもある弊社スタッフに、DEFCON 21 CTF についてインタビューをしてみました!
まずは、前置きに、DEFCON 21 CTF がどんな内容の競技だったのかを紹介します。
------------------------------------------------------------------------
■競技の内容
各チーム 1台ずつサーバが渡され、そのサーバ上で複数のサービス(全チーム共通)が起動しており、各サービスには token と呼ばれるファイルが付帯している。
各サービスには脆弱性が含まれていて、その脆弱性を攻撃することで他チームのtoken の読み取りが可能になる。
各チームは自サーバ上のサービスの脆弱性を修正するなどして、token を守りつつ、他チームの token を入手するという「token 争奪戦」が競技の内容。
★得点・減点対象
①token の奪取
⇒他チームの token を取得することで得点となる。今回のルールでは奪取された側のチームは、一つ奪取されるごとに -19 点される。複数チームから奪取された場合(例えば、19 チームから奪取された場合)、獲得ポイントは各チームに 1点という形で分配される、ゼロサムゲーム。
得点タイミングは 5分間隔。つまり、自チームが対処できない脆弱性を利用され継続的に攻撃されている場合、5分おきに -19 点される。
逆に、どのチームも対処できない脆弱性をついた攻撃が成功すると、最大で19(点)× 19(チーム)分の得点を稼ぐことができる。
②SLA(Service Level Agreement)
⇒自チームのサービスを止めると減点(-19点)、他のチームに1点ずつ分配される。
全 20チーム。各 2500点ずつ保有している状態からスタート。
------------------------------------------------------------------------
さて、ルールが分かったところで早速インタビューに移ります!
Q.これまで何度か参戦されてますが、例年と比べて今回の大会の特徴はどんなところだったのでしょうか。
A.
今年は、非常にシンプルなルールのゲームでした。
それだけに純粋に「解析能力の高さ」が問われる内容であったように感じます。
特に、ルールの特性上、スピード感が求められる内容であったため、質の高い「解析能力」を備えているチームがどんどん点数を稼ぐ、という一言でいえば「弱肉強食」の雰囲気を感じた CTF でした。
Q.いつもと違ったことはありましたか?
A.
今回、各チームで所有するサーバには、ARM(アーム)という種類の CPU が使われており、これが少々やっかいでした。おそらく他のチームもそう感じたのでは?と思います。
この種類の CPU は主に、スマートフォンなどのモバイルデバイスで利用されているもので、一般の PC やサーバで用いられているものとは違います。
一般のサーバを対象としている時の常識が通用せず、解析や攻撃コードの作成時に、苦労しました。ただ、自分を含め、スマートフォン用のマルウェアのコードを見たり、研究した経験のあるメンバーがチーム内にいたので、対処することができました。
Q.大会前に準備していたことはありましたか?
A.
一昨年の大会で、IPv6 という全く想定外のネットワーク環境で戦うことになった際、インフラ周りをすべて IPv6 環境に再設定する作業が発生し、大きな時間のロスをしたという経験があるので、IPv4 、IPv6 どちらの環境にも対応できる準備をしてありました。あとは、これまでの CTF 出場経験から、攻撃コードのパターンを予測し、攻撃っぽい通信が来たら遮断する、というソフトウェアを準備していました。
Q.今回はネットワーク環境がまた IPv4 にもどったそうですね。
A.そうですね。準備しておいてよかったです。
Q.さて、今回はどのような戦いが繰り広げられたのでしょうか?
A.
自分のチームに対処できていない脆弱性がある場合、対処するまで攻撃を受け続けることとなり、さらにゼロサムゲームということで、先手を取ったチームとどんどん得点差が開いてしまいます。しかも、脆弱性に対処したのが全チーム中で最後になってしまうと、その脆弱性に対処したところで他のチームにとっては既知の(対処済みの)脆弱性なので、得点にはつながらないという、遅れをとるとかなりシビアになる内容でした。
現に開催 2日目には遅れを取るチームと、先手を行くチームでかなり得点差が開いた状態になりました。
Q.なるほど、そういった中、sutegoma2 は今回どのような戦い方をしたのですか?
A.
前述のとおり、攻撃を受ける側に回ってしまうと挽回がかなり厳しくなるので、まず「守り」(攻撃を受けないように脆弱性に対処すること)を最優先で実施しました。ただ、それだけでは得点を稼ぐことができないため、攻撃できるうちに攻撃することも心がけました。そして、初日の早い段階で攻撃を成功させることができました。最終日には上位チームの攻撃を守るのに必死だったので、結果的にはその攻守バランスがよかったように思います。
Q.全 20チームの中で 6位という過去最高の成績についてはどう感じてますか?
A.
やるだけやりきった感覚はあります。これまで以上にチームとしてもまとまっていたように感じます。そして、これまでの参加の中で最高の成績を残せたことはとてもうれしく思います。これまでの経験や準備が功を奏しての結果と言えるかもしれません。
ですが、さらに上位のチームの実力を目の当たりにして課題も感じています。
Q.今後さらに上位を目指すうえでの課題とは?
A.
やはり「解析能力」でしょうか。今回の 1位のチームは会期中を通してその解析能力の高さを見せつけていたと言えます。解析の速度やセンスといった部分を感じざるを得ませんでした。
Q.センスとは具体的にどういうことを指しますか?
A.
解析を行うプロセスにおける予測のつけ方、発想力や応用力と言い換えられるかもしれません。例えば、あるコードの一部を見て、全体の構造や仕様について予測し、仮説を立てられる能力です。すべての可能性をいちから試していくより、精度の高いあたりをつけながら解析するほうが効率的です。
解析速度の裏側にはこうしたセンスが必要だと思います。
Q.なるほど、そういったセンスはどうやって身につけるのでしょうか?
A.
こうしたセンスは基本的に一朝一夕で身に付くものではなく、多くの経験によって培われるように感じます。もしくは、経験によってより強化されるものだと思います。様々な経験をしていれば、引き出しの数も増えます。
引き出しの数が多いほうが、より多くの仮説を立てられますし、そこに発想力や応用力が加われば、さらに効率的で独創的な解析手法や攻撃コードもしくはセキュリティパッチが生まれるかもしれません。
Q.では、今後も積極的に CTF に参加すると?
A.
経験というのは CTF だけではありませんが、国境を越えてレベルの高い技術力を目の当たりにしたり、実感できる場面はそうありませんから、機会があれば CTF には今後も積極的に参加したいと思います。
また、日常生活や業務を通じて様々な研究をしたいと思っています。
そうして培った技術を CTF にぶつけて、いつか優勝したいです!
ありがとうございました!本当におめでとうございます!
2013/08/12 コース:元祖こってり
「元祖こってり」記事はネットエージェント旧ブログ[netagent-blog.jp]に掲載されていた記事であり、現在ネットエージェントに在籍していないライターの記事も含みます。