こんにちは。セキュリティチームの伊藤と、基盤システムエンジニアのうい(@k_ui)です。
今回の記事は、7月26-29日に開催された DEFCON20 と、その DEFCON20 のイベントの一つ CTF についてです。弊社では、この CTF に参戦する sutegoma2(プロジェクトページ) のみなさんのサポートをしています。開催当日も私たち二人で邪魔にならない程度に当日の様子を見学してきましたので、その様子についても扱います。
DEFCON ってなに?
DEFCON とは、米国で開催されるセキュリティ会議の一つで、その参加者は毎年1万~2万人ほどにもなります。20回目の開催となる今年のDEFCONは、ラスベガスの ホテル Rio で開催されました。年々規模が大きくなっており、今年の DEFCON 20 も過去最大の規模だそうです。
セキュリティ会議、というのは少し堅い言い方で実際のところ「ハッカーのお祭り」と言ったほうが正しいかもしれません。その理由は会場の雰囲気などを伝える中で理解していただけると思います。
DEFCON 20 の中で催される様々なイベント・ブースがあります。セキュリティ技術者やそれに関わる方々の講演や、ハッキング技術の実演、それに関わるツールやグッツの販売、CTFなどのコンテストやイベントなどです。
CTF (Capture The Flag) ってなに?
CTFはコンピュータとネットワークを利用して行われる競技で、その競技形式には様々なものがあります。その多くは知識や技術力を競うものになっています。今回の DEFCON CTF では、クイズ形式と攻防戦形式の2つが採用されました。
このクイズ形式は、DEFCON CTF 本戦に先立って6月2日から6月4日にかけて行われた予選に採用された形式です。この予選で行われたクイズ形式は、主催者が用意したWEBサイトから情報を抜き出して答えを探したり、バイナリファイルを解析して答えを探したりする形式のものでした。今回は、「grab bag」、「/urandom」、「binary l33tness」、「pwnables」、「forensics」の5カテゴリ、それぞれのカテゴリに100点、200点、300点、400点、500点の得点が得られる問題が用意されていました。この予選で、sutegoma2 は4400点で4位となり、本戦への出場をはたしました。
攻防戦形式では、主催者から渡されるサーバを、ローカルネットワーク越しから来る他チームの攻撃から守ったり、逆に他チームのサーバを攻撃したりすることで競う形式です。こちらについては、DEFCON CTF 本戦の様子を伝える中でもう少し詳しく書きます。
DEFCON CTF
DEFCON CTF は DEFCON 20 の日程のうち、7月27-29日の3日間を通して、チームのスコアを競う競技になっています。
競技のために用意されたローカルネットワーク内で、他チームサーバが持つ鍵を奪取したり上書いたり、逆に他チームから攻撃をされたりすることで、スコアが増減します。
スコアの算出にはサーバの稼働率も含まれているため、攻撃をされないようにサーバをネットワークから遮断したり、ダウンさせておいたりても、スコアが伸びないようになっています。
競技に参加できる人数は、基本8人なのです。しかしこの人数は、会場に来られる人数で、実際にネットワーク越しに先述の8人以上の参加者がいても問題ないようです。実際、優勝したチームの侍は会場外に80人いるとの話もありました。
参加チームは20チームで、運営団体である DDTEK の公式サイト にて、参加チーム名を一覧することができます。
DEFCON CTF 前日
DEFCON CTF の主催者により用意されたホテルの一室で、CTF の準備をしました。
主な準備の目的は、自チームのネットワークをいち早く競技会場に構築できるようにするためです。そのため、配線やマシンの設定などを前日にしていました。
DEFCON CTF 開始
競技は、9時から始まりました。開始直後、主催者から3種類のモノがわたされました。
◯ 競技用のローカルネットワークに通じている2本のイーサネットケーブル
・ チームサーバにつながっているはずですがIPアドレスは不明
◯ バイナリファイル2つ(USB フラッシュメモリに入っていた)
・ファイル名に何の意味の無い(ファイル本体をSHA1ハッシュしたものをファイル名にしている)
・拡張子もない
◯ プリンタ1台
・特に主催者側から用途などの説明はありません
この、あまり情報のない状態で、sutegoma2 のメンバーは、それぞれ役割分担しながら解析を進めていきます。
sutegoma2 で用意したネットワーク内に存在するチャットや、wiki を用いて、メンバーの連携や情報共有をしています。
画像: 会場は暗く他チームのやり取りがわからないようになっていた。写真手前は sutegoma2 の皆さん
最初に動きらしい動きがあったのはプリンタの解析をしていたチームです。競技開始から4時間になっても、どの CTF 参加チームにも動きが見られず、痺れを切らせた運営チームからヒントをいただくことで先に進みました。このプリンタの中にある RFID タグを読み取るとパスワードらしき文字列が手に入りました。
運営から配られたファイル2つは、先頭数バイトを見ることで、暗号化されたファイルであることがわかりました。復号のためのパスフレーズは、先程プリンタから取得した文字列です。
一方のファイルの中身は、チームサーバのIPアドレス、SSH接続するための秘密鍵が圧縮されたファイル。もう一方のファイルの中身は、チームサーバのルートディレクトリ以下全ファイルが圧縮されたファイルでした。これにより、自チームサーバに接続が可能となり、本格的に競技が始まりました。
DEFCON CTF 攻防
チームサーバでは、TCP(UDP)ポート一つを握ったサービスが17個動いており、他チームサーバのそれらのサービスにアクセスをすることで鍵を取得 or 上書きをしスコアを稼ぎます。
サービスは telnet
などで接続すると様々な挙動を示します。例えば、あるサービスは telnet
で接続すると 3D 迷路ゲームになっていて、f, l, r
のキー入力で移動や方向転換ができるようになっています。ゴールにたどり着くと鍵が手に入る仕組みになっているようです。またあるサービスは、その実行バイナリ内に含まれる文字列から WebDAV サーバのようなものであったようです。
これら17個のサービスの攻撃難易度は様々で、如何に簡単な問題を探し当てるか、難しい問題であるかを判断するかなども競技では大切になります。
これらのことから、チームのやるべきことは簡単に分けて2つになります。
◯攻撃: 他チームのサービスから鍵を奪取したり上書きする。
◯守り: 攻撃されても鍵を取られないようにサービスにパッチを当てる、鍵が入っていそうなパケットをフィルタリングする。
また、競技ネットワーク内を流れるパケットをキャプチャし、他チームの攻撃の様子などを解析するチームも編成されていました。
このキャプチャしたパケットの解析チームも苦戦していて、どうやら解析に使う Wireshark (パケット解析ソフトの一種)の当時未知の脆弱性を突くようなパケットを流し、妨害をするチームがいたようです。個人的には DEFCON を象徴するようなできごとだなとも感じました。
◯ Wireshark exploit from Defcon 20 CTF - 0xDEADBEEF
・上記の脆弱性について説明してるページ
競技の様子などは、sutegoma2 による参戦レポートが現在発売中の ハッカージャパン 11月号 に掲載されていますので、参考にしてみてください。
競技の結果は現時点でも発表されていませんが、会場スクリーンに流れるスコアの速報などから察するに1位は侍で、sutegoma2 は19位です。
DEFCON CTF 以外のイベント・ブース
今回、DEFCON CTF の見学が主目的だったため、DEFCON の他のイベントなどは一部しか見ることができませんでしたが、幾つか紹介します。
参加バッジと暗号解読コンテスト
DEFCON 参加者は、特殊な仕掛けが施された参加バッジが貰えます。このバッジは参加者の種類ごとに複数用意されていて、一般参加者は古代エジプトの神様を模した白いバッジ、スタッフは赤いスカラベのバッジになっている。他にも、記者向け、アーティスト向け、登壇者向けなどがあった。バッジ種類は バッジ作成者が投稿 しているので一覧することができます。
バッジには、赤外線通信モジュール、Mini USB 端子、青色 LED などがついていて、他のバッジと赤外線通信したり,LED 点滅パターンによる状態表現が可能になっていたりするようです。
このバッジにはある謎が仕掛けられていて、会場のあちこちに点在する謎の文字列などと合わせて仕組まれた暗号を解くコンテストも、DEFCONでは開催されていました。
画像: 線にみえる部分が、長い文字列になっている。これもコンテストの一部だとか。
物販ブース
DEFCON や、セキュリティに関わる商品を扱っているブースです。確認できた商品は:
◯ DEFCON Tシャツ、ステッカー
◯ ピッキングツール、ピッキングツールが通用しない錠
◯ pwnie plug
・一見すると電源アダプタ
・WiFi, 3G/GSM 通信が可能な Linux マシン
・用途は・・・
◯ WiFi 用途の外部アンテナ
◯ セキュリティ関係を中心とした書籍
物販では無いですが、ブースの一角では、モヒカンカットをしてくれるお店もありました。
画像: 最終日にモヒカンカットした、とある sutegoma2 メンバー
WALL OF SHEEP
DEFCON のブースの一つに、写真のような WiFi が自由に使えるブースがありました。しかし、そのブースの奥には、この WiFi 上に流れるパケットから ID、パスワード、MAC アドレスなどを抽出し、リアルタイムに晒しているスクリーンがありました。恐ろしさと同時に、DEFCON の自由(むしろカオス)具合が垣間見られるような場でした。
画像: その WiFi 上で通信されているID・パスワードを晒しているスクリーンが!
まとめ
7月26-29日に開催された DEFCON20 に行って来ました。DEFCON CTF に参戦する sutegoma2 の皆さんについていき、CTF の会場や、DEFCON 全体の様子を見学してきました。
物販ブースや WALL OF SHEEP などに象徴されるように、とても自由な雰囲気で、先述した通り「会議」と言うより「お祭り」と表現するのが適切な雰囲気でした。
DEFCON CTF では、謎のバイナリファイルをどのように、如何に少ない情報から解析を進めるのかと言った技術の一端を垣間見ることができ感動を覚えました。