AIハッキング - ハッカーは人工知能をサイバー攻撃にどう利用するか

今すぐ読む
サイト翻訳には人工知能を利用しており、正確性を追求しておりますが、必ずしも100%正確とは限りません。ご了承ください。

MetaDefender Endpoint Google Chrome の脆弱性を修復する

By OPSWAT
この記事を共有する

この度、当社の高度な脅威検知技術によって特定され、改善された様々な共通脆弱性・暴露(CVE)に焦点を当てた技術分析ブログのシリーズをご紹介いたします。すべての研究は、2023年9月に開始されたOPSWAT サイバーセキュリティ・フェローシップ・プログラムに参加する大学院生によって行われています。

ホーチミン科学大学のTri LuongとKhoi Taのヘッドショット
OPSWAT フェローシップ・プログラムに参加。

このブログでは、Google Chrome CVE-2019-13720 と、組織が CVE-2019-13720 悪用攻撃を防御する方法について説明します。

グーグル・クロームとは?  

Google ChromeはGoogleによって開発され、2008年9月2日に正式にリリースされたクロスプラットフォームのウェブブラウザである。より優れた、よりモダンなブラウザを作ろうというGoogleの努力の一環として開発された。当時、タブブラウジング、プライバシーモード、Googleサービスとの同期など、多くの新機能を提供していた。リリース以来、世界中で最も人気のあるウェブブラウザのひとつとなっている。2021年現在、グーグル・クロームのユーザー数は約32億人と推定されている。

Google Chromeの人気のため、研究や攻撃の焦点となっており、倫理的なハッカーと悪意のあるハッカーの両方を魅了しています。Google Chromeで確認されている一般的な脆弱性には、サービス拒否(DoS)、情報漏洩、リモートコード実行などがあります。リモートコード実行の脆弱性については、Google Chromeにはサンドボックスからのエスケープと非エスケープの2種類が存在します。

CVE-2019-13720とは?

CVE-2019-13720 は、バージョン 78.0.3904.87 より前の Google Chrome における WebAudio の Use After Free (UAF) 脆弱性であり、リモートの攻撃者が細工した HTML ページを介してヒープ破壊を悪用する可能性があります。被害者が悪意のあるウェブページにアクセスしたり、脆弱性のある Google Chrome ブラウザ上で細工された HTML ページを開いたりすると、被害者のエンドポイント上で悪意のあるコードが実行されます。このCVEは、2019年にAnton IvanovとAlexey Kulaevによって最初に報告されました。

サイバーセキュリティ脆弱性に関連するNIST-NVDの基本スコアとベクター文字列による高重篤度評価を示すスニペット
NIST NVD における CVE-2019-13720 の情報

技術的な観点からは、Qt WebEngine のオーディオコンポーネントにおける Render スレッドと Audio スレッド間の競合状態により、use-after-free 脆弱性が悪用される可能性があり、リモートの攻撃者に WebAssembly のシェルコードを実行され、被害者のデバイスが侵害される可能性があります。この問題を解決するには、すべての Qt WebEngine ユーザが最新バージョンにアップデートする必要があります。

攻撃の局面

URLの作成、フィッシングメールの送信、被害者がHTMLを開き、リモートでコードを実行するという4ステップのフィッシング攻撃に関するインフォグラフィック
攻撃のプロセス

攻撃者は、悪意のあるHTMLを含む特別なURLを作成し、そのリンクを記載したフィッシング・メールを被害者に送信する。被害者がメールを開き、リンクをクリックすると、悪意のあるコードが実行され、攻撃者は感染したシステムを乗っ取ることができる。HTML文書に表示されるリモート・コードの手口の詳細は、こちらを参照してください。

Use After Free(UAF)とヒープスプレー脆弱性とは?

UAF脆弱性とは、セキュリティ上の欠陥の一種であり、メモリが解放された後もプログラムがメモリを使用し続けることで発生する。これは、データの破損、任意のコードの実行、システム・クラッシュなど、さまざまな悪影響につながる可能性がある。

ヒープ・スプレーは、ヒープ全体の異なる場所に複数のバイトを書き込むペイロード配信技術です。これは、細工されたペイロード(すなわち有害なデータ)をメモリヒープに注入し、実行フローがアプリケーションのオリジナルコードではなく、スプレーされたメモリにジャンプするようにすることを含みます。この攻撃の目的は通常、EIPレジストリを制御することである。 

ヒープ・スプレー攻撃前後のメモリ割り当てを示す図(コントロール・フロー・エラーを示す
ヒープスプレー技術の可視化

WebAssemblyとは?

WebAssemblyは、しばしばWasmと略されるが、新しいバイナリ命令フォーマットであり、C/C++のような高級言語をコンパイルするための移植可能なターゲットとして機能し、ウェブブラウザのJavaScriptエンジンでネイティブに近い速度で実行できるようにします。 

Emscripten、WebAssembly、JS Glue Code、HTML Appを介したC/C++からブラウザへのコード変換のフローチャート
コードをWebAssemblyにコンパイルする

しかし、WebAssemblyはC/C++のようなメモリセーフではない言語からコンパイルできるため、バッファオーバーフローやフォーマット文字列の脆弱性のような一般的なコーディングの脆弱性がクロスコンパイルされたWebAssemblyバイナリに導入される可能性があります。このようにWebAssemblyモジュールに脆弱性が含まれる可能性があるため、現代のWebアプリケーションの攻撃対象が増加しています。

アプリケーション内のJSとWAがランタイム環境でリニアメモリーを共有する図
WebAssemblyを使用した典型的なアプリケーションの設計

レースコンディションの脆弱性とは何か?

ソフトウェアにおけるレースコンディションの脆弱性は、複数のプロセスやスレッドが共有リソースに同時にアクセスしようとする際に発生し、アクセスのタイミングによって予測不可能な結果や動作の中断を引き起こす。プログラムにレースコンディションの脆弱性があると、アプリケーションのクラッシュ、データの破損、不正な結果、不整合など様々な問題が発生します。攻撃者はこの脆弱性を悪用し、不正アクセス、情報漏洩、特権の昇格、システムクラッシュを誘発することができます。  

レースコンディションの脆弱性として分類されるTOCTTOU脆弱性は、リソースのチェックと使用の間の時間差を悪用します。

攻撃によって悪用されるアプリケーションのTOCTOU(Time of Check to Time of Use)脆弱性を示す図。
ソフトウェアの競合状態を示す図。出典デボペディア2020 (*) TOCTOU (チェックから使用までの時間)

CVE-2019-13720はどのように機能するのか?

この脆弱性を悪用するために、研究者はJavaScriptコードをHTMLファイルに添付する。ユーザーがHTMLファイルを起動すると、スクリプトは同じバッファ・データを扱う2つのスレッド(メイン・スレッドとオーディオ・スレッド)を作成し、リークされたアドレスを見つけようとする。次に、ReverbConvolverStageのtemporary_buffer_objectのリークされたアドレスを使用して、IIRFilterNode(Convolverと同じスーパーページを共有している)のfeedforward_arrayのポインタを取得する。その後、研究者は、2番目のトリガーUAFのfeedforward_arrayのポインタを取得しようとする。

エクスプロイトの処理の流れUAFのトリガー、UAFのセカンド・トリガー、ヒープ・スプレー、シェルコードの書き込み、WebAssemblyモジュールのトリガー、ペイロードの実行
使用後フリー・トリガー・プロセス

WebAssembly はシェルコードの実行を処理する。シェルコードの実行を可能にするために、研究者はIIRFilterの解放を試み、スプレーを必要とせずに新しい割り当てが行われる場所の制御を得るまで、GCPreventerに書き込みを行う。最後に、研究者はメモリ内のジャスト・イン・タイム(JIT)領域にシェルコードを書き込む。その結果、ファイル・リーダーのエラー・イベントが追加されると、WebAssemblyモジュールはシェル・コードを実行する。

この脆弱性に関連するシェルコードを実行するには、脆弱なバージョンのChromeでサンドボックスを無効にする必要があります。 

ブラウザの警告メッセージ「サポートされていないコマンドラインフラグ-no-sandboxを使用しています。安定性と安全性が損なわれます

シェルコードが実行されると、被害者のデバイス上でメモ帳サービスが自動的に開かれる。

ウェブブラウザのエラー画面に「Aw, Snap!このウェブページの表示中に何か問題が発生しました。

修復方法

MetaDefender EndpointOPSWAT設計されたエンドポイントセキュリティソリューションであるMetaDefender Endpointは、ユーザがこれらの攻撃を検出し、攻撃からシステムを守ることを可能にします。ユーザがSandbox 機能(--no-sandbox)を無効にした後、MetaDefender Endpoint CVEを検出し、最新のGoogle Chromeのパッチを適用することができます。その後、ユーザは手動でGoogle Chromeを最新バージョンに更新するか、Patch Management タブの下にある「自動更新」機能を有効にして、新しいパッチが利用可能になり次第、OPSWAT MetaDefender Endpoint ブラウザを自動的に更新させることができます。

悪意のあるコードにさらされるのを防ぐため、ユーザーは電子メール・フィルター・ツールを使ってフィッシング攻撃を検知し、電子メール内の不明なURLをクリックしないようにすべきである。

MetaDefender Endpoint 主な製品の特徴と利点

  • リスクのあるアプリケーションのレビューと修正MetaDefender Endpoint UIで脆弱なアプリケーションや古いアプリケーションを確認することができます。
  • OS上でマルウェア対策が適切に設定されていることを確認する。
  • 組織のセキュリティ基準を確実に遵守する。
  • ハードディスク暗号化の保証。
  • オペレーティングシステムのパッチ検証。
  • マルウェアをスキャンし、エンドポイントにマルウェアフリーのアナウンスを行うための複数のオプション。
MetaDefender Endpoint UIでGoogle Chromeの重大な脆弱性のリストをCVE番号とスコアで表示
MetaDefender Endpoint UI

MetaDefender Endpoint forEndpoint Vulnerability and Application Patchingはこちらからダウンロードできます。


OPSWATで最新情報をお届けします!

今すぐご登録ください、 ストーリー、イベント情報などをお届けします。