勇敢心资源网

当前位置:首页 > 百科 / 正文

SIP(系统完整性保护)

(2020-07-24 19:36:03) 百科
SIP(系统完整性保护)

SIP(系统完整性保护)

SIP(System Integrity Protection,有时被称作rootless,中文名为系统完整性保护) 是苹果公司的macOS系统中一个安全功能,最早出现在OS X El Capitan。它由很多核心强制实施的机制构成。它的主要功能是保护系统档案及目录,以免这些档案及目录被没有特定许可权的进程修改,包括root用户或者拥有root许可权的用户。

苹果公司指出root用户会是系统安全性的一个严重危害因素,特别当系统上只有一个用户账户,且这个用户账户是administrator。系统完整性保护会默认开启,但可以被关闭。

基本介绍

  • 中文名:系统完整性保护
  • 外文名:System Integrity Protection
  • 开发者:苹果公司
  • 作业系统:macOS

原理

苹果公司指出系统完整性保护是确保系统更高等级安全的必要手段。在一次WWDC开发者会议中,苹果工程师Pierre-Olivier Martel提到未受限的root访问是系统遗留的缺陷,并说道“任何恶意程式只要得到密码就能拥有设备的全部许可权”。他陈述道大部分macOS只有一个用户账户。这个账户必然拥有管理员许可权,意味着用户可以同意所有程式提出的root请求。每当一个用户在上述的系统中同意了root请求并输入了密码(Martel说这些密码往往简单或者不存在),整个系统的安全性便处于危险之中。在macOS上限制root的许可权并不是史无前例。例如,早于Mac OS X Leopard的系统版本会强制实施securelevel的level 1,这是个起源于BSD的安全功能,并且macOS部分基于它。

功能

系统完整性保护包括以下机制:
- 保护系统档案及目录的内容和档案系统许可权;
- 保护进程免于代码注入,运行时的附属(例如调试)和DTrace
- 保护系统免于未签名的核心扩展(“kexts”)
系统完整性保护会给被标记需要保护的系统档案及目录提供安全保障。它会通过添加一个扩展档案属性给档案及目录,或者添加档案及目录到/System/Library/Security/rootless.conf,或者两者兼备。被保护的目录有:/System,/bin,/sbin,/usr(/usr/local除外)。从/etc,/tmp 和 /var 到 /private/etc,/private/tmp 和 /private/var 的符号连结也会被保护。绝大多数在/Applications 路径下的苹果预安装套用也会被保护。当没有特定许可权的进程修改被保护档案及目录的许可权和内容时,核心会阻止这些进程。
自从OS X Yosemite,核心扩展(比如驱动),需要被苹果授权和签名。开发者需要申请开发者ID来获得授权。如果出现未签名的扩展,核心会拒绝开机,并在萤幕上显示禁行。这个机制称作“核心扩展签名”,集成在了系统完整性保护里。

配置

系统完整性保护只能在非系统分区被关闭(完全关闭或者部分关闭)。苹果提供了 csrutil 命令行工具,可以在恢复分区或者macOS安装盘里的终端执行。csrutil 命令行工具会添加一个开机参数到设备的NVRAM里。这会套用于设备上所有El Capitan或macOS Sierra里的设定。当macOS安装时,安装器把受保护系统目录下的未知档案移动到/Library/SystemMigration/History/Migration-[UUID]/QuarantineRoot/。为了防止写入系统目录,苹果软体升级时会自动维护系统档案及目录的许可权。因而,磁碟工具取消了许可权修复功能,相应的diskutil操作也被剔除了。

接受度

系统完整性保护的接受度是褒贬参半的。MacWorld担心苹果在未来的更新中可能会移除开发者和用户的完全控制许可权,并把macOS的安全机制逐渐转变成iOS的机制。iOS上许多工具和修改需要通过越狱来实现。很多套用和驱动不能正常工作,除非系统完整性保护被暂时或永久关闭。Ars Technica建议道这个功能可能会更多地影响到小规模开发团队,因为大规模开发团队可能会跟苹果直接合作。然而,他们建议对于绝大多数用户,这个功能是没有理由关闭的,因为这个功能“几乎没有缺点”。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net
搜索
随机推荐

勇敢心资源网|豫ICP备19027550号