BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JSF,Ruby on Rails,ASP.NET に影響する「パディングオラクル」

JSF,Ruby on Rails,ASP.NET に影響する「パディングオラクル」

ブックマーク

原文(投稿日:2010/10/01)へのリンク

パディングオラクル (Padding Oracle,PO) 攻撃の使用によって,悪意のあるユーザがクッキー,ステート情報,会員パスワードなどの暗号化データをアクセス可能になる。Juliano Rizzo,Thai Duong 両氏はによれば,このセキュリティ上の脆弱性は Java Server Faces(JSF),Ruby on Rails,ASP.NET その他の技術とプラットフォームに影響するものだという。

スイス連邦工科大学(EPFL)で Security and Cryptography Laboratory (LASEC) を指導する Serge Vandenay 教授は,2002 年に発表した論文 "CBC パディングアプリケーションの誘発する SSL,IPSEC,WTLS 他のセキュリティ欠陥(Security Flaws Induced by CBC Padding Applications to SSL, IPSEC, TLS...)"(PDF) で,ブロック暗号を可変入力長方式に変換する際に使用されるパディング形式の多くが大きなセキュリティ欠陥を発生させ得ることを立証している。

可変入力長暗号化メッセージが RFC 2040 アルゴリズムに基づいて 復号化される場合,受信者は パディング が何であって,それが正常であるかを判断して,その情報を取り除く必要がある。しかし RFC 2040 には,パディングが不正であった場合に行うべき処理が定義されていない。Vaudenay 氏の結論は次のようなものだ。

受信側が送信側に対して,パディングが不正であったことを通知するのは適切ではありません。しかし,復号化されたメッセージが処理されないことによって,最終的にこのような事実が知られてしまうことに大きな意味があるのです。

これが任意のブロックシーケンスに対して,それが上の [RFC 2040] アルゴリズムに対する CBC 復号化シーケンスのパディングとして正しいものであるかを告知する オラクル(oracle,託宣) であり,それを使用した攻撃に結び付くのです。この攻撃手法は,メッセージ復号化が O(NbW) の複雑度以内であれば実効性を持ちます。ここでの W は可能な語数 (通常は256) を示しています。

Vaudenay 氏によると,この脆弱性は SSL,IPSEC,WTLS,SSH などのプロトコルに影響し,秘密鍵なしで暗号化データを復号できる可能性がある。氏はその攻撃方法を実演して見せた上で,その脆弱性を修正する方法について提案する。

Vaudenay 氏の論文を基本として,セキュリティの専門とする技術者であるJuliano Rizzo と Thai Duong の両氏は 2010年5月25日,"パディングオラクル攻撃の実際 (Practical Padding Oracle Attacks)" (PDF) という論文を新たに発表した。その中で両氏はパディングオラクル(Padding Oracle,PO) 脆弱性が,Java Server Faces (JSF) や Ruby On Rails,OWASP ESAPI といった技術に幅広く存在する,という主張を展開している。両氏はまた,POET (Padding Oracle Exploitation Tool) という名前のツールを開発し,公開している。これは JSF ウェブサイトのPO 攻撃に対する脆弱性の検出に用いるものだ。

9月17日の ekoparty セキュリティカンファレンス において発表した論文で,両氏は ASP.NET と SharePoint にもPO 攻撃に対する脆弱性の存在することを明らかにしたが,ASP バージョンの POET はリリースしなかった。PO を使用することによって,"クッキー,ビューの状態,フォーム認証チケット,会員パスワード,ユーザ情報,その他フレームワーク API を使用して暗号化されたすべての情報を復号化することができるのです!" ,と両氏は言っている。この発表に対する Microsoft の反応は大きかった。同社の副社長(Corporate VP) である Scott Guthrie のチームが,昼夜を分かたない作業によりパッチを完成させたのだ。10日後,Microsoft は .NET の全プラットフォームの全バージョンを対象とした緊急セキュリティアップデートをリリースし,Windows Update を通じて配布を行った。この Microsoft の対応の規模からも,この脅威の深刻さが理解される。同時にそれは,他の数多くのウェブサイトの脆弱性に対する警告でもあるのだ。

InfoQ では Juliano Rizzo 氏に,パディングオラクルと POET,ASP.NET について話を聞いた。

InfoQ: JSF,Ruby on Rails,ASP.NET 以外に,脆弱性が確認されたプラットフォームはありますか?

JR: 他のプラットフォームについてはまだ詳細な調査を行っていませんが,同様な攻撃に対する脆弱性を持ったプラットフォーム,アプリケーションやサイトが他にもあることは間違いないでしょう。

InfoQ: POET とは,どのようなものなのでしょうか?

JR: 5ヶ月前にリリースされたバージョンの POET は,JSF に関して脆弱性の概念を証明するためのものです。将来的には,もっと汎用性のあるバージョンをリリースしたいと考えています。ASP.NET の脆弱性の詳細についても論文を書く予定です。

POET は Blackhat Europe 2010 の後,JSF サイトをテストする目的で発表しました。このツールを使用することで脆弱性の検出が可能ですが,システムに自動アクセスするものではありません (デモ)。

InfoQ: 最近になって ASP.NET 関連では大きな動揺が起きているようです。しかし,同じ脆弱性を持っている JSF,Ruby on Rails に関して騒がれないのはなぜでしょう?

JR:ASP.NET が JSF や Ruby on Rails より普及しているためでしょう。インターネットサイトの約 25% が ASP.NET を使用しているのです。

InfoQ: プラットフォームに脆弱性があるかどうかをテストするには,どのようにすればよいのでしょう?

JR: アプリケーションの脆弱性をチェックする方法としては,ソースコード監査とブラックボックステストが使用できます。汎用性のある方法で脆弱性を確実に検出可能なツールは,現時点では存在していません。

InfoQ: プラットフォーム開発者やウェブサイト管理者は,パディングオラクル攻撃を完全に防ぐために,どのような方法をとるべきでしょうか?

JR: まず最初に,ウェブクライアントから暗号化データを送信するのは望ましい方法とは言えません。可能であれば代替ソリューションを見つけ出すべきでしょう。クライアントに対して暗号化されたデータを送信する場合は,パディングオラクル攻撃やその他の暗号文の変更に基づく攻撃を回避するために,暗号文の整合性に関する保護が必要になります。

関連リソースには次のものがある。重要:ASP.NETのセキュリティ脆弱性ASP.NETのセキュリティ脆弱性いついて,よく寄せられる質問ASP.NET 脆弱性に関する更新ASP.NETセキュリティアップデート,9月28日(火)送信ASP.NET セキュリティアップデート提供中ASP.NET セキュリティ修正,Windows Update で提供中Microsoft セキュリティ情報 MS10 - 070 - 重要セキュリティアドバイザリ 2416728(ASP.NET 脆弱性) および SharePointasp.net パディングオラクル脆弱性および POET 攻撃に関する詳細

この記事に星をつける

おすすめ度
スタイル

BT