国内最大規模のセキュリティコンテスト「SECCON 2017」開催。NICTがハッキングの攻防を可視化するツール投入で盛り上がる中、国内大会と国際大会で優勝したチームは?

2018年4月6日

[フリーランスライター高橋睦美氏 執筆]2018年2月17日から19日にかけて、国内最大規模のセキュリティコンテスト「SECCON 2017」が開催されました。

2月17日は日本国内の学生・技術者による国内大会、2月18日と19日は米国や韓国、台湾など海外からのチームも含めたオンライン予選を勝ち抜いたチームによる国際大会が行われ、3日間にわたる熱戦が繰り広げられました。

国内大会には予選や連携大会を突破した24チームが、国際大会には招待チームも含め15チームが参加。オンライン予選には、過去最大となる102カ国からの参加があったそうです。

もはや「秘伝のソース」ではセキュリティを守れない

SECCON 2017のメインイベントはチーム同士が競い合うCTF(Capture The Flag)大会ですが、会場ではセキュリティに対する興味関心を高めてもらうため、カンファレンスやワークショップも行われました。まずそちらの様子を紹介しましょう。

新しい取り組みだったのが、会場内の一角に設けられた「SECCON YOROZU」というコーナーです。セキュリティの解析・分析などに役立つツールを自作しているエンジニアがデモ展示を行うもので、米国のセキュリティカンファレンス「Black Hat」における「Arsenal」に近い雰囲気となりました。

2月18日には、「よろずトーク by SECCON YOROZU」と題するライトニングトーク大会も行われました。

SECCON実行委員の忠鉢洋輔氏は、この展示コーナーを設けた理由についてMetasploitやYaraなどの例を挙げ「攻撃者側がノウハウを共有している今、『秘伝のソース』式はもはや時代遅れ。便利なツールを作ったら公開し、フィードバックをもらってどんどん改善していくというやり方が広がりつつある」と述べました。

「秘密にしてもセキュリティを守れるわけではない。公開する方が、社内外の人を巻き込んで多くの人に使ってもらうことで開発者のモチベーションが上がるし、セキュリティに貢献し、守る側を有利にできる」(忠鉢氏)

SECCON 2017 fig1

数年前から標的型攻撃の検証ツール「ShinoBOT」を開発し、Black Hatでもたびたび発表を行っている凌翔太氏は、「自分が開発したツールを公開し、発表することで、誇張ではなくセキュリティエンジニアとしての人生が変わった。リアルタイムにフィードバックが得られただけでなく、人脈やコミュニティとのつながりも得られた」と述べ、ぜひ恥ずかしがることなく勇気を出して公開してほしいと呼び掛けました。

そんな呼び掛けに応じて、展示コーナーのSECCON YOROZUには9種類のツールが登場し、来場者の興味を惹きました。

SECCON 2017 fig2

例えば「Deep Exploit」は、ペネトレーションテストに広く用いられているMetasploitと機械学習を連携させ、探索から侵入までのプロセスを自動化するツールです。検査結果を学習することで、Exploit(攻撃)の成功率を高め、効率的に検査を行えるといいます。

「JS-Walker」は、RIG-EKのように難読化されたJavaScriptが用いられているマルウェアの解析を楽にするためのツール。

Docker上に実装されました。「E・D・R!! E・D・R!!」は、文字通りのEDRツールで、マルウェア感染などの異常が発生するとネットワークを遮断し、当該端末がフォレンジック専用のサーバとのみ通信するよう制御する仕組みです。

SECCON 2017 fig3

オープンソースソフトウェアとして多くの実績がある脆弱性スキャン・管理ツール「vuls」もブースを設けていました。開発元のフューチャーは1月に、システム内の脆弱性のスキャン・管理だけでなく、イシューごとの対応も支援する商用版「FutureVuls」をリリースしたばかりです。

FutureVulsでは、これまでRedmineと組み合わせ、手作業で進めることの多かった「この脆弱性に誰がいつまでに対応するか」といったタスクを登録して管理したり、緊急度に応じて自動的にアップデートさせるといった運用が可能になるそうです。さらに、Ansibleとの連携に加え、トレンドマイクロのサーバセキュリティ製品「Trend Micro Deep Security」と連携し、脆弱性を検知すると自動的に仮想パッチを適用する、といったことも実現できるといいます。

SECCON 2017 fig4

国内のCTF大会としては最大規模になったSECCON

SECCONのメインイベントはいわゆるCTF大会です。Webの脆弱性診断やバイナリ解析といったセキュリティ技術者に求められるスキルをゲーム形式の競技で競いつつ、培うことを目的にしています。勝ち抜くにはCTFに特化した考え方も求められますが、プログラミングやセキュリティに関するスキルがないことにははじまりません。

SECCONは2012年から開催されており、国内のCTF大会としては最大規模となっています。全国大会・国際大会への出場チームを決定するためのオンライン大会や地方大会に加え、CTF初心者を対象にした「SECCON Beginners」や、女性向けの「SECCON for Girls」といったさまざまなワークショップも実施してきました。

回を重ねる中で、最初は出場者として大会に関わったエンジニアがSECCON Beginnersで教える側に回ったり、問題作成・運営に携わるようになるなど、少しずつサイクルが回り始めています。

SECCON実行委員長の竹迫良範氏は、「セキュリティ人材が足りない、足りないと言われているが、今後もコンテストを盛り上げ、日本の優秀なセキュリティチームやハッカーが育ち、世界で活躍したり、日本のセキュリティを守っていけるようにしたい」と述べました。

NICTが目には見えないCTFの攻防を可視化するツール投入

競技はいずれも「King of The Hill」と呼ばれる形式で行われました。

これは、Webやバイナリなど、カテゴリごとに用意された問題を解くことで得られる「攻撃ポイント」と、各チームに与えられたフラグ情報を継続的に書き込むことで得られる「防御ポイント」の合算で順位が決まる仕組みです。

ただ、防御ポイントは、フラグを書き込んだ複数のチームで分け合う形になります。SECCONのレギュレーションでは禁じていますが、大会によっては、他チームの妨害に精を出すチームもあるとか、ないとか。

SECCON 2017 fig5

そんなCTFですが、「傍目で見るだけだと、何をやっているかよく分からない」と評されるそうです。その解決に取り組んでいるのが、情報通信研究機構(NICT)が開発した競技可視化システム「NIRVANA改SECCONカスタム」です。

Interop Tokyoなどで、攻撃パケットを収集・可視化する「NICTER」や「NIRVANA改」のデモンストレーションをご覧になった方も多いと思います。

NIRVANA改SECCONカスタムは、NIRVANA改をベースにCTFの競技の様子をリアルタイムに表示すべく、NICTのメンバーが大会を重ねるたびに改良を進めてきたシステム。問題が解かれると画面に「突破」という文字が表示されるとともにさまざまな効果音が鳴らされるなどの演出で、競技を盛り上げてきました。

SECCON 2017 fig10

今回の大会に合わせてNIRVANA改SECCONカスタムにはその時点の得点だけでなく、各チームの得点推移を把握できるグラフ画面が加わりました。チームがそれぞれが、アタックポイントとディフェンスポイントをどのように積み上げているかが一目瞭然となる仕組みです。

このグラフを眺めていると、一気にアタックポイントを稼ぐチーム、隠し球を持っているのかギリギリまでアタックポイントに動きのないチーム、こつこつとディフェンスポイントを積み重ねるチームなど、チームごとの「戦略」が見えてきます。

何かボタンがあれば押したくなるのが「CTFer」

また会場では競技の傍ら、昨年の「サイバーコロッセオ×SECCON 2016」で出題された「Webインターフェイス上に表示された監視カメラの画像からフラグを見つける」という問題を例にした、問題の解法のレクチャーも行われました。

レクチャーの中でSECCON Beginnersなどに携わる前田優人(@xrekkusu)氏が、「何かボタンがあれば、押すとどんな動きや処理がされるかが気になるのが“CTFer”」と述べれば、NICTでNIRVANA改をはじめとするセキュリティ研究・開発に携わる津田侑氏は「何か入力できる個所があれば、指定されている範囲を超えて入力してみたくなるのが“CTFer“」と返すなど、CTFの心得なども披露。

SECCON 2017 fig6

両氏は解法の例として、「Burp Suite」というローカルプロキシツールでHTTP通信の内容を確認し、気になるパラメータがあればさまざまに値を変えて入力を試し、コンソールの表示やエラー内容をヒントにしながら別の入力を試す……という地道な作業を繰り返してフラグを見つけ、アタックポイントを獲得する様子を説明しました。

一方、ディフェンスポイントの獲得については別のスキルが必要になります。SECCONでは5分おきにチームごとのフラグが変わり、それが逐次書き込まれているかどうかのチェックが行われます。

「自分でずっと書き込みをしていては他の問題に取りかかれない。そこで必要なのが『自動化』だ。フラグを取得し、変更があれば手順をなぞって書き込むスクリプトを書いておけば、放っておいても得点が稼げる」と前田氏は説明し、その場で臨機応変に対応できるライブコーディング技術も重要だと述べました。

もう一つ大切なのは、チーム内のコミュニケーションです。高得点を得るには、誰がどの問題に取りかかっているか、進捗はどうなのかをチーム内で共有することが欠かせないといいます。「問題に取り組む中で、どうしても行き詰まることはある。そうしたときには、途中までの手順を書いてSkypeやSlack、Google Docsで共有すると、他のメンバーが『これって、ああじゃないかな』とレビューしてくれることもある」(前田氏)というように、チームがいかに円滑に機能するかも、勝敗の決め手になります。

多様な問題にチャレンジし、勝利を収めたのは……

国内大会は最後の最後までチームの順位が入れ替わる激戦となり、残り10分ほどで4問連続でアタックポイントを得た「TokyoWesterns」が優勝を飾りました。

NIRVANA改SECCONカスタムの開発に当たる井上大介氏をはじめ、複数の見学者が競技状況を見て、「得点推移を見るに、TokyoWesternsは隠し球を持っているのでは」と予測していた通りの展開でした。

SECCON 2017 fig7

一方、国際大会では韓国から参加した「Cykor」が連続優勝を飾りました。

Cykorは、昨年度の大会でも安定してディフェンスポイントを重ね、他チームに大きな差をつけて圧勝していたのですが、今回も同様に独走態勢。競技終了まで30分を残して全てのアタックポイントを得るなど、圧倒的な実力を見せました。

SECCON 2017 fig8

国際大会2位は米国の「PPP」。そして3位の座を巡って、台湾の「HITCON」と日本の「dodododo」が激戦を繰り広げ、最後にdodododoが僅差で入賞を果たしました。

dodododoのメンバーは「昨年は悔しい思いをしたが、今回3位に入れてうれしい」と述べ、「Slackでチーム内のコミュニケーションを取り、スクリプト類を共有してレビューをしっかりできたのも一因だと思う」と振り返っていました。

「CTFが楽しいのは、いろんな多様性のある問題を解いていけること」と竹迫氏が言うとおり、SECCONでは毎回、さまざまな新たな分野に取り組んできました。今回も、国際大会ではBadUSBやRaspberry Piを用いた問題の他、8命令しか用意されていない言語で最も短い形で「Hello World!」を書くプログラミングゴルフ的な問題が用意されました。

国内大会を見ていて印象的だったのは、多数の指紋の画像から一致するものを見つけ出す問題です。SECCON実行委員会事務局長を務める園田道夫氏は、「指紋の認証装置の脆弱性を見つけ出すセキュリティ的な視点だけでなく、自動化やプログラミングのスキルも問う設問になった」と述べています。

出題側が工夫を凝らした甲斐もあってか、競技終了直後には、複数のチームが集まってああでもない、こうでもないと解き方を比較し、交流を深める場面も見られました。このように競技を通してさまざまな知見、交流を得られることがCTFの最大の醍醐味でしょう。

SECCON 2017 fig9

3日間の大会期間中、会場となった東京電機大学北千住キャンパスでは、セキュリティへの関心を深めるきっかけ作りとして、「Bad-USB」を用いたワークショップやバイナリかるた大会といったユニークな催しも行われました。日本ネットワークセキュリティ協会(JNSA)のゲーム教育プロジェクトが開発した「セキュ狼」を用いたカードゲーム体験会も行われました。

園田氏は「セキュリティに関しては、実際の環境で攻撃を受けながらOJTで学ぶわけにもなかなかいかない。サイバーレンジのような演習環境も増えてはいるが、相応の投資が必要になる。一つのアプローチとしてカードゲームを用いることで、リスクとリスクコントロールの結び付きなど、本来ならば経験しないと身に付かない『感覚』を身に付けられるのではないか」と述べ、CTFやゲーム、あるいは演習と、いろいろな形のアプローチを通して、セキュリティに関わる人の層の厚みを増やしていくことが必要だとしています。

あわせて読みたい

セキュリティ 運用・監視




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本