問題タブ [breach-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 - Cookie を除く応答全体を圧縮する
ASP.Net に応答を圧縮するが、応答の Cookie は圧縮しないように指示するにはどうすればよいですか? つまり、Cookie ではなく、すべての HTML 出力です。
背景: 侵害
ブリーチ攻撃は未解決のままです。これは、シークレットを含む TLS で保護され、gzip で圧縮された応答に対して機能します。
ログインしているサイトはすべて HTTPS を有効にする必要があり、攻撃者がターゲットにする完全な秘密を持つ Cookie を応答で送り返し続けます。あなたのトークンであり、あなたになりすますことができます。
これに対する満足のいく解決策はありませんが、強力な軽減策の 1 つは、残りの応答とは別にシークレットを圧縮するか、まったく圧縮しないことです。もう 1 つは、CSRF トークンを含めることです。フォーム データを送信した結果を表示するページの場合、とにかくこれを行う必要があるため、CSRF トークンは問題なく、キャッシュはパフォーマンスの観点からそれほど重要ではありません。しかし、静的ページの場合、キャッシュできる必要があり、CSRF トークンの重みが大きくなりすぎます。
これらの応答の唯一の秘密である Cookie を圧縮しないように ASP.Net に伝えることができれば、次のようになります。
- キャッシングは、それを必要とする静的ページで機能します
- HTTPS と gzip が同時に機能し、gzip がオフになっているのはほんの少しの応答だけです。
- ブリーチは死んだ
それで、これは可能ですか?破損した応答が得られない限り、gzip ステップを実行する HttpModule のようなものでも問題ありません。
gzip 圧縮コンテキストを分離するだけの何らかのパッチまたはモジュール (BREACH に対する主な提案されたソリューション) はさらに優れていますが、それはあまりにも多くのことを要求しているように思えます。
そもそも BREACH を使用して Cookie/セッション トークンを取得できるかどうかについて、セキュリティ コミュニティ内で対立があるように思われることに注意してください。
breach-attack - ASP.NET MVC Core で BREACH 攻撃を防ぐ方法は?
BREACH 攻撃を防ぐために、ASP.NET MVC コア サイトに次の項目を実装するようアドバイスを受けました。それらをどのように実装しますか?
- ユーザー入力からシークレットを分離します。
- 各クライアント リクエストのシークレットをランダム化します。
- シークレットをマスクします (リクエストごとにランダムなシークレットを XOR することで効果的にランダム化します)。
- ランダムな量の任意のバイトを追加して、Web 応答の長さを難読化します。
すべてのフォームに Anti-Cross Site Forgery Tokens を実装し、HTTP レベルの圧縮をオフにしました。
どんな助けでも大歓迎です。
これは、次のツールによって報告されます。
前もって感謝します。
gzip - Caddy で gzip ディレクティブを条件付きで適用するには?
Referer ヘッダーが特定のドメインと一致する場合にのみ gzip を使用するように Caddy を構成しようとしています。これは、BREACH 攻撃の可能性を軽減するためです。
ただし、ヘッダーの値に基づいて条件付きで gzip をオンにできる Caddyfile 内の方法がわかりません。
gzip ディレクティブは次のとおりです。
https://caddyserver.com/docs/gzip
パスまたはファイル拡張子に基づく条件付きアプリケーションのみを許可します。
うまくいけば、これはカスタム ディレクティブの作成を必要としませんか?