web-dev-qa-db-ja.com

ホワイトリスト/ブラックリストの組み合わせを介して、古いブラウザやプラグインからWebサイトを保護しますか?

ブラウザヘッダーを使用する以外に、ブラウザとプラグインをサイトからブラックリスト/ホワイトリストに登録して、これらの古いパッチが適用されていないシステムが(1)サイトの一般ユーザーになるのを防ぐことができるようにします(2)これらの「ターゲット」を将来のユーザーから削除します-攻撃者が到達します。

私の目標は、私のサイトにアクセスするユーザーのために、ある種のエンドポイントセキュリティ標準を定義することですが、彼らは顧客であるため、環境を直接管理することはありません。

ホワイトリストまたはブラックリストを使用して、サイトへのブラウザアクセスを制御する標準的な方法はありますか?

たとえば、古いFlashがインストールされているブラウザは防止したいのですが、Flashがまったくないブラウザには許可したいと思います。

2

最初のオフ:これはCSRFの問題を解決するための絶対に間違った方法です。 CSRFの脆弱性は、ブラウザではなく、サイトの問題です。特定のブラウザをブラックリストに登録しても、CSRFの脆弱性は解決されません。 CSRFはブラウザ固有ではなく、ブラウザのブラックリストに登録することで防ぐことはできません。

ブラウザバージョンの検出:ユーザーが使用しているブラウザバージョンとプラグインバージョンを検出するには、さまざまな方法があります。ブラウザ版の場合、ユーザーエージェントを使用できます。 Flashの場合、 Flashプレーヤー検出キット を使用できます。 Javaについては、Sunの Java更新チェック を参照してください。 Quicktimeもチェックしたいと思うでしょうが、どうすればいいのかわかりません。ただし、Internet Explorerでは、ブラウザのバージョンとプラグインのバージョンを検出するのは難しいことに注意してください。

どのバージョンが安全でないかを知る:既知の脆弱なブラウザとプラグインのバージョンのリストを維持することはより困難です。普通のサイトが維持することを合理的に期待するのは多分大変な作業だと思います。ブラウザの場合、部分的な出発点は YahooのAグレードブラウザのリスト ですが、どのバージョンが最新の正常なバージョンであり、どのバージョンが既知であるかは維持されません。脆弱性。

提案:古い/脆弱なブラウザとプラグインのバージョンを確認する必要がある場合は、 Mozillaプラグインをよく調べることをお勧めしますWebサイト を確認してください。これは、古いまたは脆弱なプラグインバージョンがインストールされているかどうかを確認します。 Firefox、Safari、Chrome、Operaをサポートし、IEを部分的にサポートします。それらのメソッドをコピーまたは使用することをお勧めします。プラグインバージョンデータベースへのMozillaの JSONインターフェイス も参照してください。

最終的な推奨事項:あなたは間違った質問をしていると思います。あなたの質問には、いくつかの隠れた仮定と前提が間違っていると思います。ブラウザのブラックリストは、CSRFの脆弱性を修正または軽減する効果的な方法ではありません。そして、脅威モデルについての質問は不明確だと思います。今度は、解決しようとしている実際の問題と作業中の制約から始めて、最善の解決策が何であるかを推測するのではなく、もう一度質問することをお勧めします(たとえば、ブラウザのブラックリストが最良の解決策)。

6
D.W.

これを達成するための特別な方法はないと思います。良い/悪いブラウザとプラグインのリストを作成し、ユーザーエージェントから必要な情報を引き出す方法を見つける必要があります。これに伴う問題は、特定のプラグインがユーザーエージェントに自分自身を追加しないことです。互換性の問題のため、SilverLightはしませんでした(しませんか?)。

その後、これらの種類のブラウザからのリクエストをブロックしても、CSRF攻撃が解決されるとは思いません。これらは、完全にパッチが適用され、プラグインを実行していない新しいブラウザで発生する可能性があり、攻撃者が本当に何か奇妙なことをしようとした場合、動作するユーザーエージェントを偽装するだけです。

0
Steve