“Magellan”脆弱性とサードパーティコードのセキュリティ上の落とし穴

Magellan and the Security Pitfalls of Third-Party Code by Jack Walker 2018年12月22日より

インターネットの進化につれ、Webページは強力でインタラクティブな機能を新たに使いはじめています。
これらの機能の脆弱性を悪用することで、攻撃者が遠隔であなたのPCでマルウェアを実行する可能性があります。
Bromiumは、こうした攻撃から保護するために設計された、ハードウェア的な隔離技術を採用しています。
サードパーティコードのセキュリティ上の落とし穴

最近認識されたSQLiteの“Magellan”脆弱性により、攻撃者が影響を受けるアプリケーションを不正使用すれば、悪意のあるコードをあなたのマシン上で実行することができます。こうしたアプリケーションの1つがChromeブラウザです。これは、WebSQLを含むいくつかのコンポーネントのバックエンドとしてSQLiteを使用します。WebSQLは、JavaScript対応のWebページがあなたのマシン上で任意のSQLクエリを実行することを可能にします – すなわち、SQLiteに脆弱性があれば、悪意のあるWebページがそれを悪用する可能性があります。

“Magellan”脆弱性の解凍

Tencent Bladeチームはまだこの脆弱性の詳細を明らかにしていませんが、すでに開発エンジニアの Zhuowei Zhang氏が、現象を再現して修正を検証をするためにリバースエンジニアリングをすることができました。 デモ用のWebページでは、ほんの数行のJavaスクリプトが影響を受けるバージョンのChromeのブラウザタブをクラッシュさせられる可能性があります。

クラッシュを起こすmemcpy()の上部に記載された、脆弱なSQLiteコードを少し見てみましょう。

memcpy()クラッシュの上のスタックフレームにある脆弱なSQLiteコード

最初の行の整数比較に注意してください。 これには古典的な整数オーバーフローの脆弱性が含まれており、検証コードで使用されています。

デバッガの場合:

1行目の整数比較には古典的な整数オーバーフローの脆弱性が含まれています

青色のメモリ領域に注目してください。これは、検証コードの文字列と同じです。

青のメモリ領域は、PoCコードの文字列と同じです。

0xFFFFFFFF(赤の下線付き)にも注意してください。 これはINT_MAX型なので、nSuffixの値(すなわち、2)を加算すると、オーバーフローが発生し、真偽判定文では偽の結果になります。そのため比較文の結果、早期段階でのリターンが誤ってスキップされてしまいます。

これを悪用するには、もう少し作業が必要です。それでも、Chromeのアーキテクチャのおかげで、攻撃者は通常はサンドボックス内でのみリモートコードを実行していたはずです。攻撃者がChromeサンドボックスまたはWindowsカーネルの他の脆弱性をさらに悪用することができる場合、ランサムウェアのインストールなど、もっと悪質なことを実行する可能性があります。何年にも渡り、何十ものChromeサンドボックスの回避法が存在し、そしてもっとたくさんのWindowsカーネルを対象としたエクスプロイト(攻撃用プログラム)が使われるかもしれません。

ブラウザの悪用での最も厄介な点は、ユーザーの操作が不要であることです。 Bromiumは2018年中のエクスプロイトキットの活動の増加を追跡しており、ユーザーの操作なしでランサムウェアを配信するためのCVE-2018-8174 (IEの遠隔でのコード実行)、およびFlash CVE-2018-4878の、特定の使用法に注目しています。過去数日間でさえ、 CVE-2018-8653はInternet Explorerで遠隔でのコード実行するために悪用されていると伝えられています。

よく見られる、このような攻撃経路の1つは、感染したWebサイトへのリンクを含む電子メールやツイートをユーザーが受信したときです。送信先は、一般には悪意があるとは知られていないので、これらのメッセージは組織内のメールセキュリティのすべての層を容易に通過できてしまいます。攻撃者は、新たに登録されたドメインを使用している場合より、セキュリティツールに疑いを持たれる可能性が低いため、侵害されて、攻撃用ホストとして使用されている小規模企業や組織のWebサイトを頻繁に使用します。

ユーザがリンクをクリックするだけで、Webサイトはユーザーの操作なしに、すぐにこの脆弱性を悪用することができます。

Bromiumユーザーは各ブラウザータスクを、軽量でハードウェア隔離がなされた独自の、コンテナーで実行するため、こうしたブラウザーの悪用から本質的に保護されています。 Bromiumでは、マルウェアはPC本体や他のブラウザタブから分離されているため、ユーザーに危険を与えることなしに、悪意のあるコードの実行を継続することさえできます。 Magellanのデモでは、単にタブをクラッシュさせていますが、これはすぐにお客様のセキュリティチームにフィードバックされます。 たとえば、IEから起動したcalc.exe(訳注:Windows標準の電卓アプリ)を使用した従来の検証では、セキュリティチームがこれを確認できます。

Bromiumユーザーのセキュリティチームビュー

そして、すべてのマルウェアについて、すべてのプロセスとネットワークでの活動、ファイルシステムとレジストリへの変更などがキャプチャされ、分析に利用できるようになります。

Magellanのバグがこのように徹底的にテストされて広く使用されているライブラリで発見されたという事実は、脆弱性が避けられず、存在し続けることを示しています。

攻撃は、実際にマルウェアが何をしようとも問題のないmicro-VMコンテナ内で展開されるため、Bromiumユーザは保護されたままです。 Bromiumでは、悪意のあるコードはPC本体のOSから完全に分離されており、ユーザーがブラウザのタブを閉じるや否や、すぐに消滅します。攻撃側には詐取や、ネットワーク経由での横展開、そして環境内に居残り続ける余地を与えません。

本和訳文の著作権は株式会社ブロードに帰属します。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする