web-dev-qa-db-ja.com

ユーザーエージェントが非表示/変更されている場合、ウェブサイトは訪問者が使用しているOSまたはウェブブラウザを特定できますか?

Webサイトへの訪問者がユーザーエージェントを次のように変更したが、Linuxを使用しているとします。

Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/20.0

Webサイトが悪意のあるハッカーの手中にあると想定します。このトリックはexpolit-kitが機能しないようにするのに十分ですか、それともハッカーが訪問者を制御することは可能ですか(訪問者のフラッシュモジュールとブラウザが古いと仮定します)?

ユーザーエージェントが非表示/変更されている場合、Webサイトは訪問者が使用しているOSまたはWebブラウザーを判別できますか?

12
DevRandom

サーバーにコードを送信できるJavascriptをWebサイトで実行できるようにした場合、ブラウザーが異なると処理が異なるため、ブラウザーを検出するには複数の方法が考えられます。

それとは別に、ブラウザを識別するユーザーエージェントのほかにユーザー変数もあります。 http://www.quirksmode.org/js/detect.html および http://www.quirksmode.org/js/support.html を参照してください

8
Christian

panopticlick によって収集された情報を見ると、useragentは収集したデータの1つにすぎないことがわかります。他のデータを使用して、正確なユーザーエージェントを使用せずに効果的に指紋をとることができます。

Beef などの製品でユーザーの指紋をとるための追加のテクニックもあります。ここでJavaアプレットは(ユーザーによる実行が許可されている場合)幅広い情報を取得できます。パソコンから。

したがって、ユーザーエージェントを単独でブロックするだけでは、使用しているブラウザとOSの組み合わせを難読化するのに必ずしも十分とは言えません。

8
Rory McCune

すでに言われていることにあまり多くを追加したくない-あなたのブラウザーで利用できる機能をチェックし、それらをブラウザーと比較する html5test で最も可能性の高いものを見つけるjavascriptを書くのは難しくありませんブラウザ。

4
jackweirdy

他の人が指摘したように、ユーザーエージェントを偽造してもあなたを保護することはできません。 NoScriptとAdblock Plusを使用し、Javaブラウザープラグインを回避すること)が重要なステップであることに同意します。

リスクの高いブラウジングの場合、仮想マシンで作業する方が安全です。 Saferは、ディスクレスコンピュータでLiveCDを使用しています。ネットワークとUSBドライブの分離も重要です。

3
mirimir

正直なところ、それは使用されているエクスプロイトに依存します。それがブラウザベースのエクスプロイトである場合、攻撃者は、そのブラウザのエクスプロイトが存在する限り、送信するUser-Agentを気にすることはほとんどありません。 Metasploitには、互換性のないブラウザーを(UserAgentを介して)検出するたびにペイロードを送信しないエクスプロイトがありますが、攻撃者はそれらのスクリプトを簡単に変更して、盲目的に攻撃することができます。

ドライブバイ攻撃から自分を保護したい場合、または誤って悪意のあるリンクをクリックした場合は、信頼できるWebサイト以外でのスクリプトの実行を防ぐためにNoScriptをインストールすることをお勧めします。 AdBlockなどの拡張機能も役立ちます-多くのエクスプロイトが広告配信ネットワーク経由で配信され、AdBlockはこれらの一部もブロックします。

RoryはBeefとJavaアプレットの使用について言及していますが、Javaの最新のアップデートは未署名のアプレットに対する保護を提供し、Java私はこれをペネトレーションテスト中に何度も使用したことがあり、攻撃者が使用するペイロードとしても動作しているのを見てきました。

ポイントは、インターネット上で自分を完全に「難読化」する方法がないということです。あなたはあなたをより安全にする特定のことをすることができますが、結局のところ、そのような攻撃から身を守るための最善の方法は、クリックするリンクに注意し、インターネットは危険な場所であることを覚えておくことです。

2

JavaScriptやその他の通信を使用していない場合でも、HTTPリクエストのその他の特性だけでブラウザをフィンガープリントすることが可能です。

HTTPリクエストには、User-Agentだけでなく、それ以上のものを含めることができます。ヘッダーはもっとたくさんあります。これらのヘッダーが送信される順序は標準化されていないため、ブラウザごとに独自の順序があります。この動作の違いは、ブラウザのフィンガープリントに使用できます。

たとえば、Acceptヘッダーは、Internet Explorerで送信される最初のヘッダーで、FirefoxではUser-Agentの後に、ChromeではConnection: keep-aliveの後に続きます。

Accept-Encodingヘッダーにsdchが含まれている場合は、それがWebkitベースのブラウザーであることを確認できます。現時点では、sdch圧縮のみがWebkitでサポートされているためです。

2
Philipp