沙河机制实现的原理到底是什么?

[复制链接]
258 3
就是你的程序是如何被限制在只能读写本沙河的内容的?
iOS系统是如何做到的?
我的理解是每个app有个bundle id,会对应一个文件夹,那么iOS系统会根据你app的进程对应到这个文件夹,这个进程只能修改这个文件夹里的内容。
我的猜测正确吗?
有了解的吗?谢谢

举报 使用道具

回复

3 个评论

daxiego  新手上路  发表于 2018-5-25 16:13:49  | 显示全部楼层
苹果的沙盒最早出现在 Mac OS X中,一开始代号为 Seatbelt(安全带)。就像AMFI那样,它被实现为 TrustedBSD强制访问控制(MAC)框架的个策略模块。苹果公司将 TrustedBSD从 FreeBSD 移植到了XNU内核中。除了 TrustedBSD系统对挂钩和策略管理引擎的调用之外,沙盒框架还提供了可从用户空间配置、与各个进程对应的描述文件,从而显著增加了其价值。沙盒由以下儿个部分组成:

口一些用于初始化和配置沙盒的用户空间库函数

口用来处理内核日志和存放预置配置的Mach服务器;

口利用 TrustedBSD API实施单独策略的内核扩展;

口为在实施过程中评估某些策略限制提供则表达式引擎的内核支持扩展。

iOS提供了多层漏洞攻击缓解机制。DEP(数据执行保护)和ASLR(地址空间分布随机化)加大了人们获取代码执行权的难度,不过还需有其他机制限制恶意代码所造成的破坏。脱胎自 Mac OS X中类似系统的iOS沙盒机制,就提供了一种限制进程行为的方法。

沙盒的目的在于,通过提供接口约束进程行为,从而限制代码执行后的行为。假设有一个PDF阅读应用,该应用的一个子系统会解析打开的文件,生成内部的表示形式。而另一个子系统则负责利用这种内部表示,将该文档渲染在屏幕上。因为这个负责解析的了系统在处理用户提供的输入时最容易受到攻击,所以除了输入文件之外它不需要访问其他内容。通过禁止该子系统打开其他文件、执行其他程序或使用网络,我们限制了攻击者在代码执行后的行为。理论上讲,这很容易实现,不过在实际应用中,约束进程的预期行为是很难而且很容易出错的.

为应用实施沙盒机制首先要调用libSystem函数 sandbox init。该函数利用 ibsandbox.dylib库把人们可以理解的策略定义(以“不允许访问opt/ sekret目录下的文件”这样的形式描述的规则)转换成内核需要的二进制格。该二进制格式会被传递给由 TrustedBSD子系统处理的mac_ Syscall系统调用。而 Trusted BSD会把沙盒初始化请求传递给 Sandbox.kext内核扩展进行处理。这一内核扩展会为当前进程安装沙盒描述文件规则。该过程完成后会有表示处理成功的返回值被传回内核。

一旦完成沙盒的初始化, TrustedBSD层钩挂的很多函数调用会经过 Sandbox.kext实施策略。该内核扩展会根据系统调用的不同决定为当前进程实施哪些规则。某些规则(比如之前提过的拒绝对lopt/sekret路径下文件的访问)要求模式匹配的支持。 Sandbox.kext会从 AppleMatch.kext引入函数,对这些系统调用参数和策略规则使用的模式进行正则表达式匹配例如,传递给open()的路径是否匹配要拒绝访问的路径lopt/ /sekret/.*?最后的组成部分 sandbox是侦听Mach消息的,这些消息运载着记录和日志信息(比如要检查哪些操作),以及对硬编码到内核中的预置描述文件的请求比如“阻止所有对网络的使用”或“不允许进行计算之外的任何操作”)

这是一个大概概念,具体技术细节就要深入XNU内核了。准确说就是内核+用户空间+描述文件的配合。

你所使用的系统API都是会用到内核的,这时候内核就是爸爸了,描述文件里面没有的,就拒绝访问。

举报 使用道具

回复
imaverick  新手上路  发表于 2018-5-25 18:18:12  | 显示全部楼层
就是你的程序是如何被限制在只能读写本沙河的内容的?
iOS系统是如何做到的?
我的理解是每个app有个bundle id,会对应一个文件夹,那么iOS系统会根据你app的进程对应到这个文件夹,这个进程只能修改这个文件夹里的内容。
我的猜测正确吗?
有了解的吗?谢谢

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表