4 ポイント 投稿者 GN⁺ 2025-09-11 | 1件のコメント | WhatsAppで共有
  • Appleは Memory Integrity Enforcement(MIE) を導入し、自社シリコンのハードウェアと高度なOSセキュリティを組み合わせた革新的なメモリ安全性の仕組みを完成させた
  • MIEは 常時有効 な状態で主要な攻撃対象領域を保護し、性能低下なしにすべてのiPhone 17およびiPhone Airデバイスに適用される
  • Enhanced Memory Tagging Extension(EMTE)と セキュアメモリアロケータ、そしてタグ機密性ポリシーを組み合わせることで、悪意ある攻撃に対する 耐性 を大幅に高める
  • 同期的なタグ検証とOS-ハードウェアの精緻な統合により、バッファオーバーフローおよびUse-After-Free脆弱性 の防止が最大化される
  • 長年にわたる積極的な研究と内部評価を通じて 攻撃者の自由度を制約 し、現時点で最も強力なメモリ安全性を実現した

紹介

  • Appleの Memory Integrity Enforcement(MIE) は、Apple Siliconハードウェアと高度化されたOSセキュリティを統合した、常時有効のメモリ安全保護技術
  • 追加の 性能低下 なしに、さまざまなAppleデバイスで業界初の 広範なメモリ安全性の仕組み を提供することを目標に開発された
  • これはAppleが、コンシューマ向けOSのメモリ安全性の歴史における最も重要な進歩だと評価する機能

セキュリティ脅威の背景とメモリ安全性の進化

  • iPhoneに 大規模なマルウェア攻撃 の成功事例がない理由は、mercenary spyware(傭兵型スパイウェア)を中心とする複雑な攻撃チェーンだけが現実的な脅威として観測されているため
  • このような高度な攻撃(数百万ドル規模の少数標的向け攻撃)は、共通して メモリ安全性の脆弱性 を悪用する
  • AppleはSwiftのような 安全な言語の開発、セキュアメモリアロケータの導入、システム全体にわたる大規模な緩和策を通じて、継続的にメモリ安全性を改善してきた
  • Pointer Authentication Code(PAC) を世界で初めてA12 Bionicに導入し、ハードウェアとソフトウェアを組み合わせたセキュリティが主流であることを確立した

ハードウェアベースのメモリタグ付け技術(MTE/EMTE)と限界の克服

  • Armが提示したMemory Tagging Extension(MTE)は、メモリ割り当てごとに秘密タグを付与し、正しいタグでのみアクセスを許可する方式
  • AppleはMTEの元の設計の欠点(非同期動作など)を発見し、Armと協力して Enhanced Memory Tagging Extension(EMTE) へと改良した
  • 常に同期された方式 でタグ検証が機能するよう設計されており、継続的な保護の提供が中核となる

MIEの階層構造と主要な保護メカニズム

  • MIEは、kalloc_type、xzone malloc、WebKitのlibpasなどの 型認識型セキュアアロケータ と、EMTE、Tag Confidentiality Enforcement(タグ機密性保護) ポリシーの3つの構成要素から成る
  • アロケータは異なる型の間で メモリページ単位の保護 を提供し、EMTEは同一型バケット内の小さなメモリ割り当てにおける脆弱性にも対応する
  • バッファオーバーフロー、Use-After-Freeなど一般的なメモリ破損攻撃に対して、タグ付けと再タグ付けを活用し、ハードウェアとOSが即座に検知・遮断する

タグ機密性とサイドチャネル攻撃への対応戦略

  • 攻撃者がアロケータのストレージとタグの露出を狙うのを防ぐため、Secure Page Table Monitor などの強力な保護機構を導入
  • speculative execution(投機的実行)を悪用したサイドチャネル攻撃に備え、Apple Siliconは タグ情報による投機的実行への影響 そのものを根本的に遮断するよう設計されている
  • Spectre V1 脆弱性も効率的な方法で防ぎ、ほとんどの場合で実質的な攻撃の足がかりを遮断している

ソフトウェア・ハードウェア統合の対応と広範な適用

  • 新しいA19/A19 Proチップの設計では、タグ保存と検証のために追加のハードウェア資源を大規模に投入
  • MIEはまずセキュアアロケータを活用してソフトウェアで保護可能な部分を包み込みつつ、EMTEはソフトウェアでは防御不可能な領域を精密に選定して適用する
  • 旧型iPhoneも可能な限り多くのメモリ安全性改善の恩恵を受けられるよう、配布方法も精緻に設計された

実戦的なセキュリティ評価と有効性分析

  • Appleの 攻撃研究チーム は2020~2025年にかけて、MIEの計画段階から多様な攻撃シナリオを構築し、ハードウェア試作機に対する実際の侵入試行まで繰り返した
  • 新旧のエクスプロイトチェーンの双方で、MIE適用時には 攻撃段階の大半が根本的に封じられる ことを確認した
  • 生き残った少数の脆弱性についても安定した攻撃が不可能となり、実質的な被害可能性は大きく低下した

結論

  • iPhoneの業界最高水準のセキュリティは、大多数のユーザーに対して システムレベル攻撃への露出そのものを制限 する
  • MIEは、実在する傭兵型スパイウェアの最も複雑で高コストな攻撃戦略を無力化しつつ、カーネルを含む 主要な70超のユーザー空間プロセス まで常時保護する
  • 評価の結果、メモリ破損脆弱性のエクスプロイトコストと難易度 を大幅に引き上げ、過去25年間の主要な攻撃手法を強固に防ぐ効果が確認された
  • MIEは、iOSおよびAppleデバイスにおけるコンシューマ向けOSのメモリ安全性の歴史上 最大級の変化 と位置付けられる

1件のコメント

 
GN⁺ 2025-09-11
Hacker Newsの意見
  • どちらのアプローチも同じ結論に達している。Memory Integrity Enforcement(MIE)は、攻撃者が利用できるエクスプロイト戦略の大半を根本的に遮断する。メモリ破損バグは本来ある程度相互交換可能だが、MIEは基本段階であまりにも多くのエクスプロイト経路を塞ぐため、新しいバグに置き換えてもチェーンを復元できなかった。どれだけ試みても回避チェーンを再構成できなかった。残っているいくつかの効果も信頼性が低く、攻撃者が成功裏に悪用するには不十分だ。これは非常に良い知らせであり、見過ごされがちだが重要なポイントだ。傭兵型スパイウェアの経済構造の一部は交換可能なチェーンに依存しており、その性質を直接狙う防御策は特に興味深い
    • Appleの戦略が、CHERI(参照: Capability Hardware Enhanced RISC Instructions)のような完全な capability-based メモリ安全へ進む段階なのか、それともAppleがそのようなシステムなしでも十分だと判断したというシグナルとして見るべきなのか、気になる
    • Appleの事例に対応するGoogleのメモリ安全アプローチも紹介したい。GoogleはChrome/Androidの初期からメモリ安全に真剣に取り組んでおり、ASAN、syzkaller、Hardware MTEの導入も主導してきた。私自身このようなチームを率いる責任者だったので、さまざまな長所と短所を直接経験した。Googleが目指していたのは、ASANレベルの検証を必要に応じてオン・オフできるようにすることだった。セキュリティ対策として常時有効にしておく方式には、メモリオーバーヘッド以外にもいくつもの問題がある。たとえば、すべての端末で一貫しない形でユーザーに見えるクラッシュが多数発生する。開発者の立場では、100万台程度しかないMTE対応端末でしか十分にテストできないため、不満が出るのも当然だった。MTEで捕捉されるのはセキュリティエクスプロイトだけでなく、無害なバグも多数含まれる。ただし、runtime mitigation 用途として常に最良の選択なのかは不明だ。Google Security、Project ZeroなどではCSVs対応に非常に多くの努力をしているが、MTEを製品化する点では本社は不十分だったと感じる(リンク
    • Vigilant Labsにとって良い知らせではないかもしれないが、実際に大きな影響を受けたかははっきりしない
  • Appleの「メモリ安全保護は必ず常時同期的に、デフォルトで有効になっており、継続的に動作しなければならない」という主張は、原理主義というより経験から来ているのだろうと思う。これは初期のカーネル保護とは異なる。2015年のiOS 9で導入されたKernel Patch Protection(KPP)は、カーネルが改変されたかどうかを数分ごとに、端末がアイドル時に非同期でチェックする方式だった。この方式はセキュリティ的にそれほど信頼できず、設計上の欠陥があり、完全に回避するハックが公表されていた。KPPはカーネルパッチを根本的に防ぐのではなく、検知時にパニックを発生させるだけだ。つまり、攻撃者が十分素早く作業を終えて元に戻せば、KPPは検知できない構造だった(writeup参照
    • 内部情報によれば、KPPはA11のKTRRが導入されるころ、A11 SoC上で同等のセキュリティレベルを意図的に合わせるために急ごしらえされた。このような短いタイムラインの中で最善の方法で実装され、その後はこの方式を繰り返さなかった
    • 最初から原則として準備していたというより、MTE導入の初期設計時点でこうした結論に達したように見える。Appleのセキュリティレベルは着実に向上しており、その背景には脱獄などによって半ば強制的に学んだ経験が大きい
    • こうしたシステムを最初から完璧に実装するのが難しいという点には同意する
  • Appleは「iPhoneに対する成功した広範なマルウェア攻撃はなかった」と述べたが、既存のスパイウェアコードを少し修正するだけで、すぐに大規模攻撃に使えると思う。実際、この区別はそれほど明確ではない
    • AppleもGoogleも、実際の攻撃規模を完全に把握できるわけではないのが現実だ。GrapheneOSが公開した流出資料によれば、エクスプロイト開発者は人々が思っている以上に端末攻撃とアップデート対応に長けている。さらに未公開の資料もあり、複数の独立した情報源で検証されない限り、流出経路の露見を防ぐため一部しか共有しない。こうしたエクスプロイトツールは広く利用可能で、日常的なデータ抽出なのかリモート悪用なのかを区別することすら容易ではない。実戦でエクスプロイトが検知されることはまれで、その多くは検知されないまま大規模利用が可能なため、単一のチェーンでも長期間価値を持つ。世界中の法執行機関がCellebrite Premiumのようなツールを使い、国境やデモ現場などで多くの人々に適用している。これはすでに大規模利用に当たる。リモートエクスプロイトの場合、広く使われていても広く配布する必要すらない
    • XcodeGhostは、iPhoneに対する大規模マルウェア攻撃の代表例だ。当時はWeChatなどが感染していた。参考資料: XcodeGhostウィキペディア
    • 実際に大規模攻撃に使えたかは確実ではないが、Windowsのように露出度が高ければ事例はもっと多かったはずだ
    • その文言は主にAndroidと比較して、自社の統制モデルの利点を強調する意図があるのかもしれない
    • 弁護士的な言い回しではあるが、今回のMIEのような新技術についてAppleが非常に詳細な資料と自信に満ちたメッセージを出した点は、私たち全員にとって前向きだ
  • 今回のシステムは確かに印象的だ。ただし、攻撃者が何度も再試行できる場合には、防御として十分でないかもしれない。たとえば、隣接していないオブジェクトまで外れたアクセスが可能だったり、多数のメモリ割り当て操作の末に偶然タグが一致したりすれば回避できる。タグが一致する確率は1/16だ。ただし本文に詳しい説明がないので、この予測が正しいかは確信が持てない。もしうまく適用されるなら、残るエクスプロイトはロジックバグに依存せざるを得ず、攻撃者にとってはるかに難しくなるだろう
    • Android MTEでも同様に、小さなタグサイズの問題を狙った確率的攻撃(複数回の再試行)が可能だった。ただし、重要な違いは、ここでは一貫した同期的 enforcement が中核だという点だ。つまり、コンテキストスイッチ時ではなく、メモリ書き込み操作ごとに即座に trap が発生する
    • 1/16の確率以外の15/16の試行はすべてクラッシュを引き起こす。このように不安定なバグは、ユーザーや診断システムに露出しやすく、複数段階を連続して成功させる必要があるなら、確率的に実際の悪用はほぼ不可能に近い
    • サプライチェーン攻撃など、長い時間をかけて侵入する国家レベルの攻撃には、こうした防御策が適用されない可能性もある
  • Apple/ARMのモデルははるかに洗練されているだろうが、Burroughs large systemのメモリタグ付けアーキテクチャを思い出させる(参考
  • 「攻撃者はシステムが選択するタグ値を予測できてはならない。そのため、頻繁にPRNGをリシードして新しいタグを生成する」という説明について、根本的な問題はタグのエントロピーが低いこと(わずか4ビット)だ。攻撃者がランダムに当てれば成功確率は1/16であり、PRNGのリシードでその確率が変わるわけではない。追加説明が必要に見える
    • 攻撃者には推測の機会が一度しかない。外せばプロセスが終了するか、カーネルがパニックになる。次に試すときは新しいタグになっているため、再び推測し直さなければならず、連続試行は不可能だ
    • 4ビットでは可能な組み合わせが少なすぎる。メモリ割り当ては毎秒数百万回発生し、リシードが頻繁でも衝突の可能性はすぐに高くなる
  • 今回のシリーズ機種の最大の強みは、まさにこの新機能だ
  • EUのchat controlのような政策が実施されれば、国家が自分のデバイス上の望むあらゆるものにアクセスできるようになり、GoogleがWEIを強制すればWeb全体が閉ざされかねない。Secure bootとMIEが導入されると、ユーザーが従来の自由を取り戻すのは難しくなるかもしれない
    • つまり、こうした自由を守るには、システムとサービスをもう少し分離(バルカン化)する必要があるだろう
    • ここでMIE強化が脱獄(jailbreak)などユーザーの自由を制限するという不満も含まれているのか、気になる
    • WEIが何なのか気になる
  • Googleが昨年MTEをopt-inで提供したのは良い第一歩だが、完全な統合が不足しており、Appleが強調するEMTEベースのMIEとは異なる。AppleのiPhone 17とAirの登場により、業界初の包括的な常時有効メモリ安全システムが導入される点は印象的だ。もっとも、GrapheneOSの先導的な取り組み(リリース例認知向上)が十分に注目されなかったのは残念だが、Appleの本気の試みがGoogle、Pixel OS、そしてさまざまなセキュアOSへと早く広がることを望む。GrapheneOSは、未知の脅威まで防ぐシステムの先導者であることを改めて示している
    • Appleはこの分野で長年準備してきた。GrapheneOSで有効化された時点から始まったわけではない
  • 「2018年、A12 BionicチップにPointer Authentication Codes(PAC)を業界で初めて適用し、コードフロー完全性保護に取り組んだ」とあるが、PAC導入後にもフルチェーン攻撃の事例は何度もあった。PACは有意な攻撃抑止策ではなかった。攻撃者は今もPAC回避策を見つけ続けている。この点はMIEの実効性を判断する際に考慮すべきだ
    • 実際のところAppleはPACを攻撃抑止策とは言っておらず、「エクスプロイト複雑性の増大」が成果だと述べていた。文章自体はいくぶん曖昧だが、私の読みではPACだけでは不十分で、SW/HWを組み合わせたアプローチが必要だと認めているように見える。PAC自体もSW変更を要するHW機能だが、EMTEはさらに広い領域と調整を必要とする技術だ
    • PACが無意味というわけではなく、むしろ攻撃者にPAC回避策を必ず探させる促進剤として機能する。PAC回避策は無限にあるわけではない
    • PACが何度も回避されたからといって無効というわけではなく、それだけ効果的に機能しているとも言える