HTTPS混在コンテンツ:SSLを破る最も簡単な方法

混在コンテンツの問題は、webサイトがHTTPS経由でページを配信するときに発生しますが、一部のリソースを平文で配信できるようにすると発生します。 アクティブなネットワーク攻撃者は暗号化されたトラフィックについて何もできませんが、平文をいじると、最良の場合はフィッシングから最悪の場合はフルブラウザの侵害に至るまでの攻撃が発生する可能性があります。 公開された単一のスクリプトで十分です: 攻撃者は接続をハイジャックし、任意の攻撃ペイロードをその接続に注入することができます。

私たちはSSL/TLSの他の側面について多くのことを話す傾向がありますが、混在コンテンツは間違いなくあなたのwebサイトの暗号化を完全に台無しに

ウェブの非常に初期の頃には、すべての混合コンテンツが許可されていました。 それは、もちろん、偉大なセキュリティでは結果しませんでした。 サイト運営者は、彼らが自分の仕事を成し遂げるとコストを削減するために必要なものは何でもしました。 近年では、ブラウザベンダーは注意を払い、混合コンテンツを制限し始めました。

現代のブラウザにおける混合コンテンツ

今日、ほとんどすべての主要なブラウザは、混合コンテンツを二つのカテゴリに分ける傾向があります。 デフォルトでは受動的な混合コンテンツを許可する傾向がありますが、アクティブコンテンツは拒否します。 これは明らかに、Webを壊すことと合理的なセキュリティとの間の妥協点です。

Internet Explorerは、安全な混合コンテンツ処理のリーダーです。 早ければInternet Explorer5(この投稿によると)では、デフォルトで安全でないコンテンツの検出と防止が行われていました。 Chromeは2011年にデフォルトでブロックを開始し、Firefoxは2013年にブロックを開始しました。 デフォルトのAndroidブラウザとSafariは、しかし、まだ任意の制限なし(とほとんど存在しない警告で)すべての混合コンテンツを許可します。

ここでは、安全でないコンテンツがデフォルトで許可されているかの私の最近のテストの結果です:

ブラウザ 画像 CSS スクリプト XHR Websocket フレーム
Androidブラウザ4.4。x はい はい はい はい はい はい はい はい はい はい はい はい
クローム33 はい いいえ いいえ はい はい はい はい はい はい はい はい いいえ
Firefox28 はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ
インターネットエクスプローラー11 はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ
サファリ7 はい はい はい はい はい はい はい あり あり

それらは主に期待通りですが、Chromeには驚きがあり、アクティブなページコンテンツをブロックしますが、平文XMLHttpRequestとWebSocket接続はまだ許可されています。

テーブルがすべてを教えてくれるわけではないことに言及する価値があります。 例えば、ブラウザはプラグインが何をするかを制御しない傾向があります。 さらに、特定のコンポーネント(FlashやJavaなど)は完全な環境であり、セキュリティを強化するためにブラウザができることはほとんどありません。

SSL Labsでの混合コンテンツ処理のテスト

この問題のブラウザ処理を評価しやすくするために、私は最近、SSL Labsクライアントテストを拡張して、混 ページにアクセスすると、ユーザーブラウザがテストされ、次のような結果が得られます:

ssl-labs-client-test-mixed-content

混合コンテンツ有病率

逸話的に、混合コンテンツは非常に一般的です。 Qualysでは、2011年にこの問題を調査し、webアプリケーションの暗号化が完全に破損するその他のアプリケーションレベルの問題をいくつか調査しました。 私たちは、Alexa top100万リストから約250,000の安全なwebサイトのホームページを分析し、そのうちの22.41%が安全でないコンテンツを使用していると判断しました。 画像が除外されている場合、その数は18.71%に低下します。

Alexa top100,000から抽出された18,526サイトのより詳細な研究は、2013年に行われました:危険なミックス:混合コンテンツのウェブサイトの大規模な分析(Chen et al.). 各サイトについて、最大200の安全なページが分析され、合計481,656ページに到達しました。 彼らの結果は、webサイトの最大43%が混在したコンテンツの問題を抱えていることを示しています。

緩和策

混在したコンテンツの問題に対する最善の防御は、単にコードにこの種の問題がないことです。 しかし、それは簡単に言うよりも、混合コンテンツが這うことができる多くの方法があります。 それが失敗したとき、有用な来ることができる二つの技術があります:

  • HTTP Strict Transport Security(HSTS)は、ユーザーのミス(ポート80でwebサイトにアクセスしようとする)や実装エラー(開発者が安全でないリンクを安全なページに配置する)に直面しても、安全なリソース取得を強制するメカニズムです。 HSTSは最近TLSに起こった最高のものの1つですが、それはあなたが制御するホスト名でのみ機能します。
  • コンテンツセキュリティポリシー(CSP)は、サードパーティのwebサイトからの安全でないリソース取得をブロックするために使用できます。 また、XSSなど、他のアプリケーションセキュリティの問題に対処するための他の多くの便利な機能も備えています。

Write a Comment

メールアドレスが公開されることはありません。