幅広い情報セキュリティの知識や経験を問う「第1回SECCON CTF全国大会」が、2013年2月末に開催された。2日間にわたって攻防戦スタイルで争われた旗取り合戦。その熱戦の模様をレポートする。
まだ肌寒い2月最後の土日、東京電機大学の北千住キャンパスで、「第1回SECCON CTF全国大会」が開催された。
CTFとは「Capture The Flag」の略で、セキュリティの知識や技術力を競うコンテストの総称だ。今年で21回目を迎える米国のセキュリティ会議「DEFCON」のイベントの1つとして始まったCTFは、今ではEUやアジア、南米などの世界各国で行われている。
全国大会に参加したのは、福岡・横浜・奈良・筑波の予選を勝ち抜いてきた10チームだ。
【関連記事】
パケット解析にクルシミマス? SECCON横浜大会開催
http://www.atmarkit.co.jp/ait/articles/1212/26/news026.html
SECCON CTF福岡大会レポート
http://www.atmarkit.co.jp/fsecurity/special/167ctf/01.html
クイズ形式で行われた予選とは異なり、本戦はサーバ攻略型の攻防戦となった。ただし、各チームに渡されたサーバを守りながら他チームのサーバを攻撃するというDEFCON形式とは異なり、次々に現れる攻撃対象のサーバを攻略し、落とした後は他チームの妨害から守り抜く、という形式だ。
サーバの攻略を進めていくと、いくつかの関門が登場する。突破するたびに点数が加算され、最終関門でチームごとに与えられた「フラッグワード」を指定のファイルに入力すると、サーバ攻略が完了する。
ただし、フラッグワードは不定期に変更される。運営側がフラッグワードの確認を複数回行う際に、その時点で正しいフラッグワードが入力されていなければフラッグは消失する。競技終了後、最も多くのポイントを稼いだチームが優勝する。
実際に、どのような問題が出されたのだろうか。競技の途中、SECCON CTF実行委員長、サイボウズ・ラボの竹迫良範氏が別室で、最初の問題サーバ「Mercury」の一部を紹介した。
各チームはネットワークにログインすると、問題ページにアクセスできるようになる。そのページには、MercuryサーバのIPアドレス、フラッグワードページへのリンク、キーワードが表示されている。
サーバにアクセスすると、ディレクトリ配下には「eng.txt」「jpn.txt」「stage1.cgi」という3つのファイルと、stage2ディレクトリがある。stage2ディレクトリをクリックすると、ユーザー名とパスワードが要求される。どうやらstage2ディレクトリのユーザー/パスワードを探すことが次の関門へのカギとなるようだ。
続いてstage1.cgiを見る。プルダウンでJapaneseとEnglishを切り替えてテキストを表示させる、簡単なCGIのようだ。
ここで「もしかして……?」と気付き、例えばURL末尾にNullバイトを入れてみたとする。すると、このCGIにはディレクトリトラバーサルの脆弱性が存在することが判明する。あとは、利用しているOSとWebサーバを調べ(今回はCentOS+Apache)、脆弱性を利用してパスワードの保存先である「.htpasswd」ファイルをstage2ディレクトリ内から探し出し、ユーザー名とパスワードを入力する。これで第1関門は突破だ。
クイズ形式の競技と大きく異なるのは、関門を突破した先の「問題」自体を自ら探し出さなければならない点だ。そのためには、「正常なプロセスを熟知しているという知識と経験値、そして想像力が必要だ」とNTTデータ先端技術の根津研介氏は述べる。
不審な通信、あるはずのないファイル、コードの不備などを指摘するには、ネットワークからハードウェア、アプリケーションまで、広範な知識が必要だ。さらに、あちこちに散らばる、一見何の変哲もない事実をヒントにしてセキュリティの穴を見つけ出す、そんな想像力も情報セキュリティ分野では不可欠と根津氏は話す。
想像力は攻撃者の視点に相当する能力で、場合によっては恐れられることもある。しかし、想像力を培うことなく、漫然と今あるシステムを管理しているだけでは、後手の防御にしか回れない。
知識や技術力を磨き、想像力を養えるCTFは、未来の若手セキュリティエンジニアを育てる最適な場でもある。
Copyright © ITmedia, Inc. All Rights Reserved.