Mac OS X El Capitan系统完整性保护System Integrity Protection (SIP)

简介: 引言:前段时间经历了XCode编译器代码被注入的事件后,这次 Mac OS X El Capitan系统的升级,启用了更高的安全性保护机制:系统完整性保护System Integrity Protection (SIP),是By Design?还是巧合呢?关于 系统完整性保护System Integrity Protection (SIP),可以从Apple官网下载下来学习,从第29页到54页
引言:前段时间经历了XCode编译器代码被注入的事件后,这次 Mac OS X El Capitan系统的升级,启用了更高的安全性保护机制:系统完整性保护System Integrity Protection (SIP),是By Design?还是巧合呢?

关于 系统完整性保护System Integrity Protection (SIP),可以从 Apple 官网下载下来学习,从第29页到54页  http://devstreaming.apple.com/vi ... y_and_your_apps.pdf

关键点:
1、Security policy applying to every process, including privileged code running unsandboxed
2、Extends additional protections to system components on disk and at runtime
3、System binaries can only be modified by Apple Installer and Software Update, and no longer permit runtime attachment or code injection

实际上从Mac AppStore下载的应用是不受影响的;如果不是则可能会受影响,比如:
修改系统文件,安装文件到系统目录中,观察系统进程内存,注入代码到系统进程中等
内核会直接中断这些破坏性的工作,哈哈哈。
所以对于像 /System /bin /usr /sbin 仅仅供系统使用,开发者或者应用程序则无法直接使用,而使用 ~/Library /usr/local / Application s,升级之后,那些文件将被移出去。

注入代码到系统进程中等同于修改 硬盘 上的可执行文件,所以会进行各种安全检查确保安全可信,比如签名检查

整个机制主要从三方面入手:
1、文件系统保护(Filesystem protections)
2、运行时保护(Runtime protections)
3、内核扩展签名(Kernel extensions)

总结:
1、新的安全策略机制适用于每一个进程
2、默认下系统启用SIP系统完整性保护机制,无论是对于硬盘还是运行时的进程
     限制对系统目录的写操作
     阻止在运行时附加或注入代码到系统进程中
3、第三方安装的内容必须移入系统目录
4、SIP系统完整性保护机制可以在Recovery OS状态下进行更改,也就是留有余地啊哈哈


如何禁用SIP系统完整性保护机制?
1、重新启动操作系统;
2、按住Command + R键;
3、菜单“实用工具” ==>> "终端" ==>> 输入 csrutil disable 回车
    执行成功后,返回信息如下:
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
4、这样,更改的 配置 保存到NVRAM中,对整台机器生效,重新启动即可

如何查看SIP系统完整性保护机制?
命令行终端
$ csrutil status
System Integrity Protection status: enabled.

$ csrutil clear / enable / disable 只能在 恢复模式下使用

在禁用掉SIP后,查看状态信息如下
$ csrutil status
System Integrity Protection status: enabled (Custom Configuration).

Configuration:
        Apple Internal: disabled
        Kext Signing: disabled
        Filesystem Protections: disabled
        Debugging Restrictions: disabled
        DTrace Restrictions: disabled
        NVRAM Protections: disabled

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.

那么将之前升级而被移走的文件从 /Library/System Migration /History 对应移回到原来的目录下,应用程序就可以使用了。

如何对被移出的应用程序进行恢复?
比如Mobility Client,进入终端,并切换到 root 用户下,然后

su -
cd /Library/SystemMigration/History/Migration-*/Quar ant ineRoot/usr/libexec
mv MobilityClient/ /usr/libexec/

再启动 Mobility Client 就可以了,不需要重新安装,就这么简单!
相关文章
|
3天前
|
测试技术 Android开发 iOS开发
移动应用与系统:深入探索移动应用开发和移动操作系统
【9月更文挑战第37天】移动应用已经成为我们日常生活中不可或缺的一部分,而移动操作系统则是这些应用运行的基础。本文将深入探讨移动应用开发和移动操作系统的相关知识,包括应用开发流程、常用工具和技术、移动操作系统的类型和特点等。通过本文的学习,读者可以更好地理解移动应用的开发过程和移动操作系统的工作原理,为进一步学习和实践打下基础。
|
3天前
|
存储 API 数据安全/隐私保护
移动应用与系统:探索移动应用开发与操作系统的奥秘
本文将深入探讨移动应用开发与移动操作系统的关系,分析它们如何相互影响并塑造我们的数字世界。我们将从移动应用开发的基本概念入手,逐步解析移动操作系统的核心功能,以及这两者如何共同推动移动技术的进步。通过深入浅出的方式,让读者对移动应用与系统有一个全面而清晰的认识。
|
1天前
|
存储 Java C语言
MacOS环境-手写操作系统-08-C语言调色板(绘制系统界面)
本文介绍了如何使用C语言在系统界面中应用调色板,通过向硬件发送指令改变颜色显示模式。首先,定义了16种基本颜色并存储在数组中,然后通过关闭中断、写入调色板号和RGB颜色值来更新调色板。接着,展示了如何编译和反汇编C代码,最后通过汇编语言将调色板数据发送给硬件,并实现在屏幕上绘制方块。整个过程涉及到中断处理、端口操作和图形绘制技术。 摘要由CSDN通过智能技术生成
11 3
|
1天前
|
Ubuntu Java C语言
MacOS环境-手写操作系统-07-C语言绘制系统界面
MacOS环境-手写操作系统-07-C语言绘制系统界面
7 1
|
11天前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
8天前
|
安全 API 调度
移动应用与系统:探索移动应用开发与操作系统的融合之道
本文旨在探讨移动应用开发与移动操作系统之间的紧密联系,分析如何通过优化开发策略和系统设计,提升移动应用的性能和用户体验。我们将从移动应用开发的基本概念入手,逐步深入到移动操作系统的核心机制,揭示两者相互影响、相互促进的内在逻辑。通过案例分析和实践指导,本文将为读者提供一套行之有效的方法论,助力在移动应用领域取得卓越成就。
22 3
|
11天前
|
人工智能 安全 数据安全/隐私保护
移动应用与系统:构建现代数字生态的双引擎在数字化浪潮席卷全球的今天,移动应用与系统作为连接用户与数字世界的重要桥梁,正发挥着越来越重要的作用。它们不仅改变了人们的生活方式,也推动了各行各业的创新与发展。本文将深入探讨移动应用开发的最新趋势、移动操作系统的演进历程以及两者如何共同塑造我们的未来。
随着智能手机的普及和移动互联网的快速发展,移动应用已成为人们日常生活中不可或缺的一部分。从社交媒体到移动支付,从在线教育到远程办公,移动应用无处不在,极大地丰富了我们的生活体验。与此同时,移动操作系统也在不断进化,为应用提供了更加稳定、高效的运行环境。本文旨在分析当前移动应用开发的热点技术、探讨移动操作系统的未来发展方向,并展望这两者如何相互促进,共同推动数字经济的繁荣。
|
10天前
|
数据采集 中间件 关系型数据库
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
30 2
|
1天前
|
Java iOS开发 MacOS
MacOS环境-手写操作系统-10-绘制系统鼠标
MacOS环境-手写操作系统-10-绘制系统鼠标
6 0
|
1天前
|
Java iOS开发 MacOS
MacOS环境-手写操作系统-09-绘制系统字体
MacOS环境-手写操作系统-09-绘制系统字体
9 0