9月11日、Apple Security Research が「Memory Integrity Enforcement: A complete vision for memory safety in Apple devices」と題した記事を公開した。この記事では、Appleが新たに導入する「Memory Integrity Enforcement(メモリ整合性の強制:MIE)」の仕組みと狙いについて詳しく紹介している。
MIEは、Appleが過去5年にわたり進めてきた大規模な設計・エンジニアリングの成果であり、Apple Siliconのハードウェア機能とOSレベルのセキュリティを深く統合した「常時オン」のメモリ安全機構である。特に、国家支援によるスパイウェアのように高度で高額な攻撃に対して、根本から攻撃手法を制約することを目的としている。
背景 — なぜMIEが必要か
iPhoneにおいて大規模なマルウェア感染は確認されていないが、少数の標的に対しては「傭兵型スパイウェア(mercenary spyware)」が利用されてきた。これらは数百万ドル単位のコストを要する高度なエクスプロイトチェーンを駆使し、共通してメモリ安全性の脆弱性を突いている。
AppleはSwiftによる安全な言語利用、kalloc_type
やxzone malloc
といった型情報を活用する安全なメモリアロケータ導入などを積み重ねてきたが、さらなる一歩としてハードウェアレベルの保護を組み合わせたのがMIEである。
技術的基盤
MIEは以下の3つを柱に構築されている。
型認識メモリアロケータ
kalloc_type
、xzone malloc
、WebKitのlibpas
など。- 型情報に基づいた配置により、use-after-freeやバッファオーバーフロー攻撃を阻止。
Enhanced Memory Tagging Extension(EMTE)
- ArmのMTEを発展させた仕組みで、割り当てられたメモリに秘密のタグを付与。
- タグが一致しないアクセスはハードウェアレベルで拒否。
- Appleは同期モードで常時有効にし、実際の攻撃防御に利用可能とした。
隣接するメモリ領域に異なるタグを付けることでバッファオーバーフローを阻止
解放済みメモリを再利用する際にタグを変更し、use-after-free攻撃を阻止Tag Confidentiality Enforcement
- タグ情報やカーネルデータ構造の秘匿を強化。
- サイドチャネル攻撃や投機的実行攻撃(Spectre V1など)にも対策を導入。
- Apple Siliconレベルで、タグ情報が推測実行経路に影響しないよう設計。
セキュリティ評価と効果
Appleの攻撃チームは2020年からMIEを検証し、既存のエクスプロイトチェーンや最新の脆弱性に対して攻撃再現を試みた。結果として、MIEが導入された環境ではエクスプロイトチェーンの再構築が困難となり、多くの攻撃手法が根本的に封じられた。
実際のエクスプロイトチェーンに対して、MIEが攻撃を阻止する過程を示す図
特に重要なのは、攻撃の初期段階でMIEが発動し、攻撃者の手法を早い段階で無効化する点である。そのため、従来のように「脆弱性を入れ替えてチェーンを維持する」といった戦略がほぼ成立しなくなる。
パフォーマンスと普及
MIEはA19およびA19 Proチップを搭載する iPhone 17シリーズ や iPhone Air に実装される。同期モードで常時オンのEMTEは性能面での負荷が大きいが、Appleはハードウェア設計とOS調整を一体化することで、ユーザーに違和感を与えないレベルのパフォーマンスを実現した。
さらに、Xcodeの「Enhanced Security」設定を通じて、開発者も自分のアプリにMIEを活用できるようになっている。
まとめ
Appleが導入したMemory Integrity Enforcementは、次の特徴を持つ業界初の仕組みである。
- ハードウェアとソフトウェアを統合した「常時オン」のメモリ安全機構
- バッファオーバーフローやuse-after-freeといった主要な脆弱性攻撃を根本的に封じ込め
- Spectre V1を含む投機的実行攻撃にも独自の軽量対策を実装
- 開発者向けにも利用可能な拡張機能として提供
Appleは「MIEは消費者向けOSにおけるメモリ安全性の歴史上、最大のアップグレードである」と位置づけており、メモリ安全性をめぐるセキュリティ分野において大きな転換点となることが予想される。
詳細はMemory Integrity Enforcement: A complete vision for memory safety in Apple devicesを参照していただきたい。