Gatekeeper
macOS 10.7.5 引入的安全特性,检测从互联网下载或其他第三方安装的软件,在首次运行时,确保它们的行为对系统没有危害。
系统在默认情况下只允许用户安装来自 App Store 的软件,如果需要安装从网上下载或其他地方复制的软件,系统会弹出提示框并阻止软件运行。
首先,系统会检测软件的签名是否有效,以此来判断是否被篡改,如果签名不对,系统会弹出让用户删除该软件的提示框。
如果软件的签名没有问题,系统会进入下一步检测恶意代码。
SIP/Rootless
SIP简介
SIP
全名 System Integrity Protection
(系统完整性保护),又叫做 Rootless
保护机制,它是为了保护系统进程、文件、文档不被其它进程修改。
简单的来说,SIP 限制了 Root 账户的权限,使其没有了对系统的完全控制权。
macOS 系统自10.11之后,SIP 默认是开启的,让恶意 app 无法通过用户授权的方式从而获得所有系统权限了。
SIP技术作用
文件系统保护:利用沙盒机制限制 root 账户的权限,让重要的目录与文件不能被第三方程序任意修改,例如 /System
、/bin
、/sbin
、/usr(/usr/local目录除外)
等目录中的文件。
运行时保护:向一个系统进程中注入代码与修改磁盘上受保护的文件一样,都是会失败的。受系统保护的程序与使用苹果私有的 entitlements
签名的程序,在运行时都会被内核标记为 restricted
(受限的)。防止被注入代码或挂调试器以及内核调试等。
内核扩展签名:第三方开发的 kext
内核扩展必须经过签名之后放到 /Library/Extensions
目录下。
完全关闭SIP机制
重启按住 command + R
进入恢复模式(recovery),在顶部工具栏找到终端(Terminal),执行下面命令后重启系统即可:
csrutil disable
启用SIP,关闭debug
和上面一样,只是执行命令不同:
scrutil enable —without debug
重新启用SIP
和上面一样,只是执行命令不同:
csrutil enable