web-dev-qa-db-ja.com

Firefox 19の組み込みのPDFリーダー(pdf.js))にはどのようなセキュリティリスクがありますか?

Firefox 19は default PDF reader として pdf.js を同梱しています。

主な目標の1つは、しばしば脆弱なAdobe PDFリーダー/プラグイン)へのユーザーの露出を減らすことです。

では、pdf.jsにはどのような新しいリスクがありますか?

悪意のあるユーザーにユーザーを閲覧させる攻撃者PDFまた、ユーザーに悪意のあるWebページを閲覧させる可能性があります。HTML5レンダラーまたはJavaScriptインタープリターの脆弱性がそのように悪用される可能性があります。とにかく。

18
Michael

私は実際、Mozilla開発者はこれでかなり賢いと思います。

歴史的に、ほとんどのPDFエクスプロイトは解析側ではなくレンダリングエンジンから来ています。不正な構造とコンテンツがそれらを台無しにするという事実にアドビは早くから賢明であり、それらの解析エンジンがしっかりしていたことを確認してください。AdobeReaderの最近の0-dayのものを見ると、そのほとんどがレンダリングエンジンのバグとコンテンツ処理のよりエキゾチックな領域のいくつかに依存していることがわかります。 。

新しいFirefox PDFエンジンは、単純にPDFの構造を取り、それをDOM構造に変換します。これは、ブラウザーの標準HTMLレンダラーによってレンダリングされ、対話することができます。 JavaScriptを介して。これにより、攻撃対象領域の大部分が削除され、ドキュメント翻訳エンジンのセキュリティに完全に集中できるようになります。実際に悪用可能なバグは、とにかく他の方法で悪用される可能性のある2次的なバグに依存している可能性があります。

エクスプロイトがある場合、それらは次の領域から来ていることがわかります。

  • ページに読み込まれているサードパーティのオブジェクト。これにより、別のJava/Flash/HTML5 /などのバグが発生する可能性があります。制限付きのコンテンツOriginポリシーを使用することで、おそらく防ぐことができます。
  • コンテンツのエスケープをバイパスして、PDFのコンテキストで任意のJavaScriptを実行できるようにします。繰り返しますが、これの重要性の多くはOriginのポリシーに関連しています。
  • PDF翻訳を担当するすべてのネイティブコードでバッファオーバーフローが発生します。ほとんどのエンジンはJavaScriptに基づいているようなので、これがどれほど可能性があるかはわかりません。

全体として、セキュリティリスクが大幅に増加することはないと思います。数か月経ったら、Adobeの理想的なドロップイン代替品と考えますPDF多くの頭痛の種となっているプラ​​グイン。

23
Polynomial

エクスプロイトは、大まかに2つの異なるカテゴリに分類されます。実装言語のセマンティックルール(バッファオーバーフロー、解放後の使用、制御されない型キャスト...)に違反するものと、「ルールに従って」実行するものです。新しいPDFリーダーはJavascriptで記述されているため、言語に組み込まれている固有の保護(チェックされた配列アクセス、ガベージコレクション)のため、最初のカテゴリからの悪用は非常にまれです。 、強い型付け...)Javascriptソフトウェアから任意のコード実行エクスプロイトを取得するには、Javascriptエンジン自体に穴を見つける必要があります。Javascriptで記述されたソフトウェアの穴は、例外、つまりソフトウェアのみにつながりますクラッシュ。これは不便ですが、マシンが乗っ取られるのを見るほどではありません。

おそらく、FirefoxのJavascriptエンジンは非常に使用されているため、徹底的にテストされています。

「ルールに従って」機能するエクスプロイトには、 Same Origin Policy に関するすべての回避策と、ローカルリソースへのゲートウェイの乱用が含まれます。 PDFリーダーがJavaScriptで実装されているため、これらは本質的に難しくも簡単でもありません。しかし、そのようなことを正しく行うことは、Webコンテンツを安全にレンダリングすることに似ています。 Firefoxは何年にもわたる可能性があります希望ブラウザにPDFレンダリングを実装することで、ブラウザを安全に保つためにすでに行われたすべてのハードワークに便乗することができます。敵対的なWebページからです。少なくとも、適切なサンドボックスにPDFスクリプトを含めることになると、私は何年もそれを行ってきた人々(Firefox開発者)よりもこれは、コアクラフト(Adobe Reader開発者)とは異なり、2次的な作業項目にすぎません。

したがって、セキュリティのために、この新しいリーダーは実際に非常に有望に見えます。事態は悪化するのではなく、改善する。

12
Thomas Pornin

PDFエクスプロイトは、PDFファイル形式を悪用していません。代わりに、PDFリーダーにある脆弱性を悪用しています。

PDFファイルにAdobeのリーダーのエクスプロイトが含まれている場合、pdf.jsを使用してファイルを開くと、エクスプロイトが機能しなくなります。Mozillaがpdf.jsのバグを修正していると仮定して、定期的に、これはPDFエクスプロイトの影響を減らすことができます。

あなたが言ったように、Firefoxで見つかったすべての脆弱性が悪用される可能性があります。これは、アドビのセキュリティ更新への依存を減らす手段と見なすことができます。

3
user10211