AppleのXNUカーネルExclaveアーキテクチャの詳細な分析

2025-03-09
AppleのXNUカーネルExclaveアーキテクチャの詳細な分析

この記事では、AppleのXNUカーネル内のセキュアエンベロープアーキテクチャを深く掘り下げます。Exclaveは、2レベルのカーネルテーブル構造を使用してリソースを管理し、ドメイン(例:com.apple.kernel)を含み、それぞれ複数のリソース(サービス、バッファ)を含んでいます。特殊なリソースタイプであるConclaveは、サービス間の共有アクセスを可能にし、Conclave Managerによって制御されます。新しい_exclaves_ctl_trap()システムコールは、Conclaveの起動、サービスの検索、およびダウンコール(セキュアワールドコードの実行)など、さまざまなExclave操作を管理します。アップコールにより、セキュアワールドコードは特定のXNUカーネル関数を呼び出すことができます。この記事では、3段階のExclaveブートプロセスと、SPTMメモリタイピングシステムがExclaveのメモリアクセスを制御する方法について詳しく説明します。