いざラスベガス、いざDEFCON CTF決勝へ(前編)

予選はクイズ感覚の「超高度な知恵くらべ」


福森大喜/ラウリ・コルツパルン
株式会社サイバーディフェンス研究所
上級分析官
2009/9/14

 「Trivialの400」にみる証明書の重要性

 「Trivial 400」は暗号解読のような問題でした。これは「SSLを使っていれば安全」という考えに警鐘を鳴らすような問題です。

 まず、配布されたバイナリファイルを見ると、パケットキャプチャをしたファイルであることが分かりました。これをWiresharkで開いてみると、HTTPSで通信したデータであることが分かります。暗号化通信ですので通信内容を読むことはできません。そのため、暗号を解読すれば正解を得られるのではないかと考えました。

図3 Wiresharkでログを確認(クリックで拡大します)

 そこでまず使われている暗号方式を調べるため、キャプチャデータの中からサーバ証明書を抜き出します。すると、2048bitのRSAが使われていることが分かりました。OpenSSLといえば昨年、DebianのOpenSSLパッケージに脆弱性が見つかり話題になりました(CVE-2008-0166)。これは乱数が予測可能であるために暗号が破られてしまうというものです。

【関連記事】
DebianのOpenSSLに脆弱性、「弱い鍵」が破られる恐れ
(@IT NewsInsight)
http://www.atmarkit.co.jp/news/200805/20/openssl.html

 この脆弱性を使うのかと思い、ブラックリストを調査しましたが該当する証明書ではありません。しかしデータをよく見ると、Exponentが35であるのが目に止まりました。大抵の場合、Exponentとして65537が使われますので、これは妙な感じがします。35というのはsshでよく使われる値です。そのため、sshで作られたkeyファイルであると仮定し解読を進めていきます。

 脆弱性があるバージョンのOpenSSLライブラリを使用し、公開鍵と秘密鍵のペアを作っておきます。プロセスIDをもとに鍵ペアを作成するという脆弱性が存在するので、すべての鍵ペアを事前に作っておくことが可能なのです。またその秘密鍵の中から、modulusという部分を抜き出しておきます。問題のバイナリファイルから抜き出した証明書で、どの鍵ペアが使われているのかを調べるのに使うためです。

for f in /data/ssh_keys/rsa_2048_*[0-9] ;do
basename $f
openssl rsa -noout -modulus -in $f
done | tee vuln_ssh_keys

 作成したペアの中で、キャプチャデータの中にあった証明書にmodulusが一致するものを探します。

fgrep -B1 $(openssl x509 -noout -modulus -inform der -in srvcert.der) vuln_ssh_keys | head -1

 すると、「rsa_2048_18342」が一致しました。これはプロセスIDが18342のときに作成された証明書だということです。秘密鍵を入手できましたので、それをWiresharkに登録すれば解読できます。

図4 秘密鍵を特定し、暗号を解読できた(クリックで拡大します)

 このように簡単に解読できる状況ですので、脆弱性のあるバージョンに心当たりのある方はいますぐアップデートし、証明書を作り直すことをおすすめします。

 いざ、決勝へ

 韓国チームは接続制限を乗り越えたようで、決勝進出10チーム中5チームが韓国チームでした。筆者も何度か予選に挑戦しているのですが、今年も残念ながら決勝に進むことはできませんでした。

 しかし、DEFCON開催1週間前にとある人物から連絡がありました。その人物とはbeistという韓国人ハッカーであり、beistlabやlollerskaterzというハッカーチームのリーダーです。筆者は先日、グーグルのNative Clientセキュリティコンテストで4位をいただいたのですが、そのとき同点4位だったのがlollerskaterzのメンバーである、Alexというアメリカの学生でした。そのつながりもあってbeistとは知り合いで、彼が日本に遊びに来たときに何度か飲みに行ったことがありました。

 彼の話によると、lollerskaterzが決勝進出したのはいいが、主力メンバー3人が用事でDEFCONに行くことができない、もしDEFCONに行くなら手伝ってくれないかというものでした。

 筆者は仕事でラスベガスに行く用事があったため、フルタイムで手伝うことはできないが、ミーティングやカンファレンスの合間ぐらいであれば手伝えることを伝え、暫定リーダーを努めるというAlexにも連絡を取りラスベガスへ向かいました……。

後編に続く)

3/3
後編へ→

Index
予選はクイズ感覚の「超高度な知恵くらべ」
  Page1
今年も開催、ハッカーの祭典「DEFCON」
予選競技ルール――周りの人はみんな敵?!
CTFの進行は「ジョパディ!」形式
  Page2
トラブル続きの予選
「Pwtent Pwnablesの100」を追う
Page3
「Trivialの400」にみる証明書の重要性
いざ、決勝へ

Index
アスキーアートや単語当てゲーム、それが「問題」だ
  Page1
決勝の地に到着、そこは底冷えするホテルの一室
決勝の基本ルール:「自サーバを守りつつ、攻めよ」
まずは自分の脆弱性を直すことから
  Page2
チームの戦略は
問題1:巨大なアスキーアートが実は……
  Page3
問題2:ハングマンで単語当てゲーム……ではなく
閉幕、そして驚くべき発表

Profile
福森 大喜(ふくもり だいき)

株式会社サイバーディフェンス研究所
上級分析官

大手セキュリティベンダで、Webアプリケーションセキュリティ検査などに従事したあと、国内ベンチャー企業にてWebアプリケーション診断サービスを立ち上げる。IPA情報セキュリティ早期警戒パートナーシップにおいて、1年間で120件以上のソフトウェアの脆弱性を報告、2007年に第3回IPA賞(セキュリティ)を受賞。韓国のセキュリティカンファレンス「POC 2007」で日本人初のスピーカーとして講演。

2009年、グーグルの開催したNative Clientセキュリティコンテストでは、世第4位に入賞した。

Profile
ラウリ・コルツパルン

株式会社サイバーディフェンス研究所
CTO

エストニア出身。タリン技術大学で8年間Linux管理者を務める過程で、高度なセキュリティ技術と知識を習得する。2003年、欧州で開催されたZone-hのハッキングミッションを史上最速でクリア。

その後、Zone-hの中心メンバーとして、世界各国で実践ハッキングセミナーの講師を務めている。2004年よりサイバーディフェンスに参加。

セキュリティセミナーおよびペネトレーションテストに従事している。卓越したハッキング技術に加え、エストニア語、英語、日本語、ロシア語、フィンランド語など多言語を操る。

Security&Trust記事一覧


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間