この度、当社の高度な脅威検知技術によって特定され、改善された様々な共通脆弱性・暴露(CVE)に焦点を当てた技術分析ブログのシリーズをご紹介いたします。すべての研究は、2023年9月に開始されたOPSWAT サイバーセキュリティ・フェローシップ・プログラムに参加する大学院生によって行われています。
このブログでは、Foxit PDF Readerの脆弱性CVE- 2020-14425について説明し、悪用されないために組織がどのように身を守ればよいかを説明します。
フォクシットPDFリーダー
Foxit PDF Readerは、FoxitSoftware社によって開発されたPDFツールで、PDF文書の作成、閲覧、編集、電子署名のためのさまざまな機能を提供します。Foxit Readerの無料版は人気を博し、7億人以上のユーザーに利用されています。
機能と柔軟性を高めるため、Foxit PDF ReaderはJavaScript拡張機能をサポートし、ユーザーにカスタマイズオプションを提供している。
14425
バージョン10.0以前のFoxit PDF Readerには、特別に細工されたPDFファイルを開いた際に、攻撃者が被害者のデバイス上でリモートコードを実行できる脆弱性があります。この脆弱性は、app.opencPDFWebPage JavaScript 関数のセキュリティ上の弱点により発生します。Foxit Reader が PDF ファイルに埋め込まれた URL を開くためにデフォルトのブラウザを使用するように設定されている場合、実行可能ファイル内に埋め込まれた悪意のあるコードが、セキュリティ警告ダイアログをトリガーせずに実行される可能性があります。
このCVEを悪用するように細工されたPDFファイルは、電子メールのフィッシングキャンペーンや悪意のある埋め込みリンクを通じて配布される可能性があります。ユーザーが脆弱性のあるバージョンの Foxit Reader を使用して侵害された PDF ファイルを開いた場合、攻撃者はリモートでコードを実行することで被害者のデバイスを制御できる可能性があります。
CVE-2020-14425の分析
PDFファイルはツリーベースの構造で構成されており、ヘッダーセクション、ボディセクション、相互参照表、トレイラーセクションで構成されています。
- ヘッダーは%PDF-1.xで始まり、PDFフォーマットのバージョンを示します。現在、フォーマットのバージョンは1.0から1.7の範囲です。ヘッダーセクションには、作者、作成日、その他の関連情報などの文書メタデータも含まれます。
- 本文は、PDFファイルの内容全体を構成し、ページ、テキストストリーム、フォント、フォーム、JavaScriptコード、その他の要素などのオブジェクトで構成されます。
- 相互参照テーブル (Xref テーブル) は、 PDF フ ァ イ ル内のすべてのオブジ ェ ク ト の参照 と バ イ ト オ フ セ ッ ト を保持 し ます。こ れに よ り 、 フ ァ イ ル全体を読む必要な く て も オブジ ェ ク ト へ素早 く ア ク セ ス で き る よ う にな り ます。
- トレーラーは、xrefテーブルのエントリーの総数やその先頭へのポインターなど、xrefテーブルの場所を特定するのに不可欠な追加情報を格納している。
ボディにはPDFファイルの機密オブジェクトが含まれているため、攻撃はしばしばこのコンポーネントに悪意のあるコードを注入することに集中します。
PDF ファイルは、そのユビキタス性から攻撃者の標的となっています。PDFファイルはJavaScriptコードを含むことができるため、ブラウザで開かれたときに、サービス拒否(DoS)、オープンリダイレクト、クロスサイトスクリプティング(XSS)など、さまざまな攻撃を実行するために使用される可能性があります。
さらに攻撃者は、Use After Free (UAF)やBuffer Overflow (BoF)などの悪用可能なテクニックを使用する可能性がある。また、ソフトウェアの障害処理を悪用して、被害者のシステム上でリモートコード実行(RCE)攻撃を実行することもあります。その結果、PDFファイルがランサムウェアを運び、マシン上のデータを暗号化し、回復のために多額の身代金を要求したり、攻撃者が被害者のマシンを完全にコントロールしたりする可能性があります。
Foxit Readerでは、WebページのURLが埋め込まれている場合、Foxit Reader内でWebページを表示するか、ユーザーのデバイスのデフォルトブラウザを使用するかの2つの表示オプションがあります。デフォルトの設定では、Foxit Readerは埋め込まれたWebページに内部的にアクセスします。PDFコンテンツ内で、ウェブページを開くように要求するために、Foxit ReaderはOpencPDFWebPage関数を使用します。これは、PDFに埋め込まれたウェブページのURLを開くように設計されたJavaScriptで、API 。
しかしながら、このAPI には不適切な入力検証の脆弱性が存在し、攻撃者はローカルのファイルパスを opencPDFWebPage 関数に入力することができます。その結果、この関数は、添付されたパスで悪意のあるファイルを開き、この実行可能ファイルを実行する可能性があります。この欠陥により、攻撃者は被害者のマシンに保存されたペイロードを起動し、リモートでコードを実行することが可能になります。
IE 10以上で必要なFoxit Readerでウェブページを開くというオプションは、エクスプロイトの試行中に警告ダイアログを表示する。
脆弱性の悪用
特定された脆弱性によって、潜在的な攻撃ベクトルは、隠された添付ペイロードを実行するためのローダーとしてPDFファイルを利用するフィッシング攻撃を含む。このシナリオでは、脅威者は、PDF ファイルと隠された実行ファイルを含む ZIP ファイルを被害者に送信し、文書を開かせるようにだますことを意図します。その後、Foxit ReaderのCVEにより、埋め込まれたJavaScriptコードが隠された実行ファイルを実行し、攻撃者のマシンへのリバースシェル接続を確立します。
JavaScriptコードをPDFファイルに注入するには、攻撃者はPDFコンテンツファイルを直接変更するか、Foxit Phantom PDFのようなツールを使用します。悪意のあるコードは、悪意のあるファイルパスを定義し、opencPDFWebPage関数を使用して有害なコードを実行します。
悪意のあるPDFファイルを準備した後、攻撃者は実行可能ファイルを隠し、フォルダをZIPファイルに圧縮します。ウイルス対策プログラムのセキュリティ保護を回避するため、攻撃者はZIPファイルを被害者に送信する前にパスワードで暗号化することがあります。
被害者が脆弱なバージョンのFoxit Readerで悪意のあるPDFファイルを抽出して開くと、実行ファイル内に埋め込まれた悪意のあるコードが実行され、攻撃者はリバース・シェルを通じて被害者のデバイスを侵害することができます。
修復
Metadefender Core のMultiscanning テクノロジーは、パスワードで圧縮された悪意のあるファイルを検出し、管理者がこれらの脅威を正確に識別できるようにします。30以上のアンチウイルスエンジンが統合されているため、マルウェア検出率は99.99%以上に達します。さらに、Deep CDR (Content Disarm and Reconstruction)技術が組み込まれているため、Metadefender Core 、潜在的に悪意のあるJavaScriptコードを効果的に削除し、サニタイズされた安全に使用できるファイルを再生成することができます。
さらに、MetaDefender Endpoint 、脆弱性のあるアプリケーションのバージョンを認識し、自動的に最新のパッチに更新することができ、将来の潜在的な脅威に対するエンドポイントセキュリティを強化します。