問題タブ [padding-oracle-attack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - この新しい ASP.NET セキュリティの脆弱性はどの程度深刻で、どのように回避すればよいですか?
ASP.NET で新たに発見されたセキュリティの脆弱性についてネットで読みました。詳細はこちらからご覧いただけます。
問題は、ASP.NET が AES 暗号化アルゴリズムを実装して、これらのアプリケーションがユーザー セッション中に情報を保存するために生成する Cookie の整合性を保護する方法にあります。
これは少し曖昧ですが、もっと恐ろしい部分があります:
攻撃の最初の段階では数千のリクエストが必要ですが、攻撃が成功して攻撃者が秘密鍵を取得すると、完全にステルスになります。必要な暗号化の知識は非常に基本的なものです。
全体として、これが本当に深刻な問題であるかどうかを知るには、私はセキュリティ/暗号化の主題に十分に精通していません。
では、すべての ASP.NET 開発者は、ASP.NET Web サイトを数秒で所有できるこの手法を恐れるべきでしょうか?
この問題は平均的な ASP.NET 開発者にどのように影響しますか? それは私たちにまったく影響を与えますか?実際には、この脆弱性はどのような結果をもたらすでしょうか? 最後に、この脆弱性を防ぐ回避策はありますか?
回答ありがとうございます。
編集:私が得た応答を要約しましょう
したがって、これは基本的に「パディング オラクル」タイプの攻撃です。@Sriは、この種の攻撃が何を意味するかについて素晴らしい説明を提供してくれました。この問題に関する衝撃的なビデオがあります。
この脆弱性の深刻さについて: はい、確かに深刻です。これにより、攻撃者はアプリケーションのマシン キーを知ることができます。したがって、彼はいくつかの非常に望ましくないことを行うことができます.
- アプリのマシン キーを取得すると、攻撃者は認証 Cookie を復号化できます。
- さらに悪いことに、彼は任意のユーザーの名前で認証 Cookie を生成できます。したがって、彼はサイトの誰としてでも表示できます。アプリケーションは、あなたとあなたの名前で認証 Cookie を生成したハッカーを区別できません。
- また、セッション Cookieを復号化 (および生成) することもできますが、これは前のものほど危険ではありません。
- それほど深刻ではありません。暗号化されたページの ViewState を復号化できます。(ViewState を使用して機密データを保存する場合は、とにかくこれを行うべきではありません!)
- まったく予想外: 攻撃者は、マシン キーを知っていれば、通常はダウンロードできないファイルであっても、Web アプリケーションから任意のファイルをダウンロードできます。( Web.Configなどを含む)
これは、問題を解決するのではなく、Web アプリケーションの一般的なセキュリティを向上させるのに役立つ、私が得た一連の優れたプラクティスです。
- 保護された構成で機密データを暗号化できます
- HTTP のみの Cookie を使用する
- DoS 攻撃を防ぐ
さて、この問題に焦点を当てましょう。
- Scott Guthrie は彼のブログでそれについてのエントリを公開しました
- 脆弱性に関する ScottGu の FAQ ブログ投稿
- 脆弱性に関する ScottGu の最新情報
- Microsoft はそれに関するセキュリティ アドバイザリを持っています。
- 脆弱性を理解する
- 脆弱性に関する追加情報
ソリューション
- customErrors を有効にして、すべてのエラーがリダイレクトされる単一のエラー ページを作成します。はい、404 も。(ScottGu は、この攻撃には 404 と 500 を区別することが不可欠であると述べています。) また、ランダムな遅延を発生させるコードを
Application_Error
orに入れます。Error.aspx
(乱数を生成し、Thread.Sleep を使用してその時間だけスリープします。) これにより、攻撃者はサーバーで何が起こったのか正確に判断できなくなります。 - 一部の人々は、3DES に戻すことを勧めました。理論的には、AES を使用しない場合、AES 実装のセキュリティ上の弱点に遭遇することはありません。結局のところ、これはまったくお勧めできません。
その他の考え
- 回避策が十分であると誰もが考えているわけではないようです。
私の質問に答えてくれたみんなに感謝します。この問題だけでなく、Web セキュリティ全般について多くのことを学びました。@Mikael の回答を承認済みとしてマークしましたが、他の回答も非常に役立ちます。
asp.net - Oracle パディング エクスプロイト - web.config をどのようにダウンロードしますか?
Oracle パディング エクスプロイトに関する SO に関する質問がすでにいくつかあることは知っていますが、どのように web.config をダウンロードするかを説明しているものはありません。私はいくつかの ASP .NET アプリを実行しており、Microsoft が推奨する緩和要素を使用して既にテストしていますが、人々が web.config を取得できるのではないかと心配しています。
誰かがこれを行う方法を説明したり、自分のサイトをテストするために使用できるツールへのリンクを提供したりできますか. 攻撃のこの部分に関する公式の説明は、本当に不足していると思います。
一般に公開された攻撃は、ファイル (通常は JavaScript と CSS) のダウンロードを可能にし、要求の一部として送信されるキーで保護される ASP.NET の機能に依存しています。残念ながら、キーを偽造できる場合は、この機能を使用してアプリケーションの web.config ファイルをダウンロードできます (ただし、アプリケーション外のファイルはダウンロードできません)。
asp.net - aspx エラー ページの Thread.Sleep。なんで?
オラクルのパディング エクスプロイトに関するこのアドバイザリで、Microsoft は次の推奨エラー ページを投稿しました。
Thread.Sleep
0 から 255 までの値はどうなっていますか? サーバー スレッドが 4 分の 1 秒も拘束されたくない。
asp.net - Padding Oracle Attack に対して脆弱な asp.net アプリケーションの例は?
パディングオラクル攻撃に対して脆弱なasp.net Webアプリケーションの非常に基本的な例を誰か教えてください。
encryption - データがストリーミングされている場合、または HMAC に対して大きすぎる場合の「パディングオラクル」攻撃を防止しますか?
パディング オラクル攻撃に対する最善の解決策は、完全な暗号化メッセージに HMAC をラップして追加することです。しかし、他にどのような解決策がありますか? データが大きすぎてストリーミングする必要がある場合はどうすればよいですか? 最後に HMAC をチェックすることはできますが、ファイル全体を 2 回ロードして、最初に HMAC をチェックしてからストリーミングしてユーザーに復号化する余裕はありませんか?
さまざまな方法がありますか?
AES_CBC(zlib(data)) を使用すると、攻撃者はパディング オラクル攻撃も行うことができますか? 圧縮されたデータが最終的に文字化けすると、zlib はエラーを出力します。攻撃者は zlib のそのエラーを使用して、わずかな情報を取得することもできますか?
asp.net - PadBuster を使用して oracle をパディングすると、暗号化されたサンプルが見つかりませんでした
PadBuster はオラクルをパディングするための優れたツールですが、asp.net アプリでビューステートまたは Cookie を復号化しようとすると、暗号化されたサンプルが見つからないことがわかります。
使い方がおかしいのかもしれませんが、使い方を教えてくれる情報があまりありません。
パッドバスターを使用した経験のある方はいらっしゃいますか?
見せてもらえますか?
asp.net - 常に200OKの応答でOracle攻撃のパディングは可能ですか
私は現在、ASP.NETアプリケーションの侵入テストを実行し、PaddingOracleAttackを悪用しようとしています。このAFAIKは応答コード分析に基づいていますが、テスト対象のシステムのScriptResource軸とWebResource軸はどちらも、暗号が無効であっても、常に200OKで応答します。ただし、この場合、応答の内容は空の文字列です。
この場合、任意のaxdをオラクルとして使用することは可能ですか?たぶん、応答内容の違いに基づいています。
asp.net - ASP Padding oracle に対して脆弱ですか?
chat.mysite.com/WebResource.axd?d=jzjghMVYzFihd9Uhe_arpA2 を開くと、パディングが無効であり、削除できません。
chat.mysite.com/WebResource.axd?d=acunetix を開くと、無効なビューステートが表示されます。
chat.mysite.com/WebResource.axd?d= を開くと、リソースが見つかりません。
ただし、これらの /WebResource.axd のいずれかをメイン サイト www.mysite.com で開くと、エラーは発生しません....
私の質問、私のサイトはオラクルのパディングに対して脆弱ですか? はいの場合、どのデータが盗まれる可能性がありますか? もう 1 つのことは、www.mysite.com の「ソースの表示」を開くと、script=webresource.axd などのようなものがないことです....攻撃者が制御したい場合、私は混乱していますサイト、彼は何ができますか? 彼はどのように攻撃を実行しますか?攻撃者は管理者権限にアクセスできますか?