操作系统完整性 您所在的位置:网站首页 苹果的完整访问是什么功能 操作系统完整性

操作系统完整性

2024-07-16 08:59| 来源: 网络整理| 查看: 265

操作系统完整性

Apple 的操作系统软件在设计时以安全性为核心。此设计包括硬件信任根(可用于启用安全启动),以及快速安全的安全软件更新过程。Apple 操作系统还使用为特定目的构建的基于芯片的硬件功能,以在系统运行时帮助阻止恶意利用。这些运行时功能可以保护受信任的代码在执行时的完整性。简而言之,Apple 的操作系统软件可帮助减少攻击和对技术的恶意利用,无论攻击是来自恶意 App、网页还是通过任何其他渠道。此处列出的保护措施在搭载 Apple 设计的受支持 SoC 的设备上可用,此类 SoC 包括 iOS、iPadOS、Apple tvOS 和 watchOS,现在还包括搭载 Apple 芯片的 Mac 上的 macOS。

功能

A10

A11、S3

A12、A13、A14

S4–S9

A15、A16、A17

M1、M2、M3

内核完整性保护

快速权限访问限制

系统协处理器完整性保护

指针认证代码

页面保护层

请参阅下方注 1。

安全页表监控器

请参阅下方注 2。

注 1:页面保护层 (PPL) 要求平台仅执行受信任的签名代码;这种安全模型在 macOS 中不适用。

注 2:安全页表监控器 (SPTM) 在 A15、A16 和 A17 上受支持,并在支持的平台上替代了页面保护层。

内核完整性保护

操作系统内核初始化完成后,会启用内核完整性保护 (KIP) 来帮助防止对内核和驱动器代码进行修改。内存控制器提供了受保护的物理内存区域,供 iBoot 用于载入内核和内核扩展。启动完成后,内存控制器会拒绝对受保护的物理内存区域的写入。应用程序处理器的内存管理单元 (MMU) 被配置为帮助防止从受保护内存区域之外的物理内存中映射权限代码,并帮助防止对内核内存区域内的物理内存进行可写入映射。

为防止重新配置,用于启用 KIP 的硬件会在启动过程完成后锁定。

快速权限访问限制

自 Apple A11 仿生和 S3 后的 SoC 新增了硬件原语。此“快速权限访问限制”原语中包括可基于每个线程快速限制访问权限的 CPU 寄存器。通过快速权限访问限制(也称为 APRR 寄存器),支持的操作系统可从内存移除执行权限,无需通过系统调用和页表寻访或刷新。这些寄存器更进一步减少了来自网页的攻击,尤其是经过运行时编译(即时编译)的代码,因为内存无法在读写的同时有效执行。

系统协处理器完整性保护

协处理器固件会处理许多关键系统任务,例如安全隔区、图像感应处理器和运动协处理器,因此其安全性是整个系统安全性中的关键部分。Apple 使用一种叫做系统协处理器完整性保护 (SCIP) 的机制来阻止协处理器固件修改。

SCIP 的工作方式与内核完整性保护 (KIP) 类似:启动时,iBoot 将每个协处理器的固件载入到独立于 KIP 区域并且受保护的保留内存区域。iBoot 会配置每个协处理器的内存单元,以帮助防止:

协处理器的受保护内存区域部分外的可执行映射

协处理器的受保护内存区域部分内的可写入映射

同时,在启动期间,安全隔区操作系统会用于为安全隔区配置 SCIP。启动过程完成后,用于启用 SCIP 的硬件会锁定。此设计旨在防止重新配置。

指针认证代码

指针认证代码 (PAC) 用来防止对内存损坏错误的利用。系统软件和内建 App 使用 PAC 来帮助防止修改函数指针和返回地址(代码指针)。PAC 使用五种 128 位密钥值来签名内核指令和数据,并且每个用户空间进程都有其自己的 B 类密钥。项目按照如下所示加盐和签名。

项目

加盐

函数返回地址

IB

存储地址

函数指针

IA

0

块调用函数

IA

存储地址

Objective-C 方法缓存

IB

存储地址 + 类 + 选择器

C++ 虚函数表条目

IA

存储地址 + 哈希值(损坏的方法名称)

计算的 Goto 标签

IA

哈希值(函数名称)

内核线程状态

GA

用户线程状态寄存器

IA

存储地址

C++ 虚函数表指针

DA

0

签名值储存在 64 位指针顶部未使用的填充位中。在使用签名前会进行验证,且填充会恢复以帮助确保指针地址正常工作。验证失败会导致中止使用签名。这种验证提高了许多攻击的难度,如试图通过操纵储存在堆栈中的函数返回地址来欺骗设备恶意执行现有代码的面向返回编程 (ROP) 攻击。

页面保护层

iOS、iPadOS 和 watchOS 中的页面保护层 (PPL) 旨在防止代码签名验证完成后对用户空间代码进行修改。PPL 以内核完整性保护和快速权限访问限制为基础,通过管理页表权限覆盖来确保只有 PPL 才能修改包含用户代码和页表的受保护页面。系统支持实施系统层面代码完整性检查(即使在内核遭到入侵的情况下),从而大大减小了攻击面。此保护在 macOS 上不提供,因为 PPL 只在所有执行代码都必须签名的系统上适用。

安全页表监控器和可信执行监控器

安全页表监控器 (SPTM) 和可信执行监控器 (TXM) 设计为协同工作以帮助保护用户和内核进程的页表免遭修改,即使攻击者可写入内核和可绕过控制流程保护也是如此。SPTM 通过使用比内核更高的权限级别,并利用权限相对较低的 TXM 来实际实施用于管理代码执行的政策,从而实现这一目标。该系统的设计由于这种权限分离和两者之间的信任管理,TXM 遭到入侵不会自动转化为绕过 SPTM。在 A15、A16 和 A17 SoC 中,SPTM(与 TXM 结合使用)取代了 PPL,它提供了更小的攻击面,且不依赖内核信任,即使在启动初期也是如此。同时,SPTM 依赖于新的芯片原语,它基于 PPL 所用的快速权限访问限制进行了改进。

发布日期:2024 年 5 月 7 日另请参阅Apple SoC 安全性安全隔区数据保护概览保护用户数据抵抗攻击

下载本手册的 PDF 版



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有