BlastDoor、マルウェア攻撃からiMessageを強化

BlastDoor、マルウェア攻撃からiMessageを強化

セキュリティ研究者たちは長年にわたり、iOS、iPadOS、macOSに搭載されているApple独自のエンドツーエンド暗号化メッセージ処理システムであるiMessageの欠陥について警告してきました。しかし、ある研究者が朗報を発表しました。AppleはiOS/iPadOS 14とmacOS 11 Big Surにおいて、メッセージ処理の主要コンポーネントの一部をひっそりとアップデートし、攻撃者の攻撃成功率を大幅に低減させたのです。

先週、Google Project Zeroのサミュエル・グロス氏が、自身の発見について長文かつ技術的な内容のブログ記事を公開しました。グロス氏の名前をご存知の方は、Appleのセキュリティアップデートでバグ発見者として頻繁にクレジットされているからです。彼がGoogleで取り組んでいるプロジェクトも同様です。より詳細な情報を知りたい方は、彼の記事をお読みください。エンドユーザー向けのバージョンはこちらです。

BlastDoorの仕組み
Project Zero のイラストがすぐに理解できない場合は、読み進めてください。

iMessageは、いわゆる「ゼロデイ」と呼ばれる脆弱性を悪用され、実環境で何度も悪用されていると報告されています。ゼロデイとは、開発者がまだ認識していないシステム、アプリ、またはサービスへのアクセスを悪用できる脆弱性です。活動家研究団体Citizen Labは2020年12月20日、2020年に広く使用されたそのような攻撃の一つに関するレポートを発表しました。iOS 14はこの攻撃を阻止するようです。

Googleのグロス氏は、Big SurのiMessageコードをデコンパイルして調査し、AppleがiMessageの以前の簡略化されたメッセージ処理を置き換えたことを発見した。この処理には多くの弱点があった。新しいコードには、爆弾が安全な場所へ侵入するのを防ぐための、スキャナーと分解ステーションのセットとも言える一連のコンポーネントが含まれている。グロス氏によると、Appleはこの内部を「BlastDoor」と呼んでいるという。彼の知る限り、この技術はiOSとiPadOSにも搭載されている。(iOSとiPadOSはmacOSよりもロックダウンされているため、確信を得るのがやや難しい。)

BlastDoorが導入される前は、受信メッセージは単一のモノリシックプロセスを通過し、アドレス指定、整合性、添付ファイル、受信通知など、メッセージ関連のあらゆるタスクを処理していました。悪意のあるメッセージや添付ファイルがそのメッセージハンドラーをクラッシュさせる可能性がある場合、オペレーティングシステムが悪用される危険性がありました。

iMessageを、自動化され監視されていない荷物受取ドックで保護されたオフィスビルだと想像してみてください。受取人の名前を入力するキーボードと、箱を挿入するスロットが備わっています。攻撃者は、センサーの上にチューインガムを置くようなことをしてシステムを混乱させ、ハッチを開けて建物内に侵入させ、さらに中に入ると多くのドアを開けさせてしまうことがあります。

iMessageは、ポーキングやプロディング攻撃にも脆弱でした。攻撃者は様々な動作を試して、メッセージが正常に配信されたかどうかを確認することができ、配信されなかった場合は重要な情報が漏洩する可能性がありました。また、攻撃者はメッセージハンドラーを無期限にクラッシュさせようと試みることもできましたが、デバイスの所有者は最終的にそれに気付く可能性があります。

BlastDoorは、メッセージ処理の各ステップを区分化(サンドボックス化)します。サンドボックス化は、Appleをはじめとする多くの企業がベースラインセキュリティのために導入している、よく知られたシステム設計手法です。

先ほどの例えで、荷物の配達ドックを考えてみましょう。サンドボックス化された配達システムでは、送り主はまず密閉された区画に入り、実際に箱を持っていることを証明しなければなりません。もし証明に失敗すると、区画は送り主を押し出します。もし成功したら、送り主は箱を別の区画に押し込みます。この区画は、送り主が外に出たことを確認するまで閉まりません。そして、ロボットが箱をX線検査し、丁寧に開梱する、といった作業を繰り返すことになります。

サンドボックス化されたコンポーネントやアプリは、設計上、その小さな動作領域外にあるファイル、入出力デバイス、その他のリソースにアクセスできません。悪意のあるコードがいずれかのコンポーネントをクラッシュさせた場合、サンドボックスも一緒にクラッシュしますが、他のコンポーネントに影響を与えたり、攻撃者が詳細を推測するために利用できるような有用な結果を生み出したりする可能性ははるかに低くなります。完璧なサンドボックスは存在せず、クラッカーはサンドボックス内で実行されるコードだけでなく、サンドボックス自体も破壊しようとします。しかし、アクションを抽象化して分離することで、クラッカーの侵入難易度は大幅に高まります。

BlastDoor およびその他の新しいメッセージ処理要素にも、次のような改善が加えられています。

  • クラッシュ監視:メッセージシステムはクラッシュを検知できるため、悪意のある送信者へのクラッシュ情報の漏洩を防ぎ、AppleのiMessage中央サーバーにクラッシュを報告します。送信者は、メッセージがクラッシュを引き起こさなかった場合だけでなく、すべてのケースで配信確認を受け取ります。
  • メッセージハンドラーの実行場所の隠蔽(iOS/iPadOS):多くのエクスプロイトは、物理メモリ内の正規のコードが動作している場所を推測し、悪意のあるコードで上書きするものです。iOS 14/iPadOS 14で導入された手法は、共有キャッシュデータの場所を移動させることで、事実上無効にします。以前の修正と組み合わせると、攻撃者は配信レシートがないことを理由にクラッシュが発生したかどうかを判断できなくなるため、さらに効果が高まります。
  • 指数関数的スロットリング: iMessage のメッセージ処理コンポーネントの 1 つがクラッシュし始めると、新機能により、iMessage がクラッシュしたコンポーネントを再起動するまでの時間が自動的に延長されます。現時点では iMessage のみに適用されていますが、他のサービスにも拡張される可能性があります。クラッカーがブルートフォース攻撃を繰り返す時間が長ければ長いほど、攻撃が成功する可能性は低くなり、攻撃に気付かれる可能性が高くなります。

最後に、サミュエル・グロス氏は、Appleが特定の形式の任意コード実行から保護するための追加の安全策を実装したものの、未だ有効になっていないことを指摘しています。彼は、Appleがこの変更によるパフォーマンスへの影響を評価しており、将来的に有効にして攻撃の成功率をさらに低減することを目指しているのではないかと推測しています。

とはいえ、どんなに防御策を講じても、悪者はそれを突破しようと試み続けるでしょう。爆弾を十分大きく、あるいは十分に集中させれば、どんな防爆扉も突き破ります。しかし、ここでの狙いは侵入コストを高めることです。もしその爆弾に国家レベルの資源が必要であれば、少なくとも軽犯罪者から安全だと確信できます。さらに、iMessageの新しいクラッシュレポート機能により、Appleは新たな攻撃を検知し、防御できる可能性が高まります。

Idfte
Contributing writer at Idfte. Passionate about sharing knowledge and keeping readers informed.