apple沙盒研究之基础知识

来源:互联网 发布:外国人看中国妹子知乎 编辑:程序博客网 时间:2024/06/05 18:48

1 基础知识

1.1 什么是沙盒?

在计算机安全领域,沙盒(英语:sandbox,又译为沙箱)是一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用[1]#cite_note-1)。

沙盒通常严格控制其中的程序所能访问的资源,比如,沙盒可以提供用后即回收的磁盘及内存空间。在沙盒中,网络访问、对真实系统的访问、对输入设备的读取通常被禁止或是严格限制。从这个角度来说,沙盒属于虚拟化的一种。

沙盒中的所有改动对操作系统不会造成任何损失。通常,这种技术被计算机技术人员广泛用于测试可能带毒的程序或是其他的恶意代码[2]#cite_note-2)。

— 维基百科,沙盒 (计算机安全)

这样一段话说的已经很清楚了,关于在OS X系统中沙盒的简单应用,也有文章解释过了,这些不是本文的核心内容,有兴趣的读者可以自行google

OS X以及IOS系统中限制了进程对一些资源的访问权限,例如网络、某些特殊路径、文件的读写等等,限定了进程的一些行为,从而保证进程不会做出超越权限的操作。

沙盒听上去的感觉是一个进程在一个有保护的环境中执行,不会做出规定范围内不允许的事情,给人的感觉可能是这样的:

这样的理解对应用开发来说已经够用了,通过理解沙盒的内部实现,发现沙盒的实质其实更像是这样的:

而在OS X中沙盒也被称作seatbeltAPP的一举一动都被TrustedBSDHOOK组件监控,根据沙盒使用的profile中的配置做出相应的处理。

下面 就通过简单的分析沙盒的工作流程,详细了解沙盒的工作原理。

1.2 沙盒工作流程与相关系统组件

沙盒的大致工作流程入下图所示:

  • 1进程尝试进行一次系统调用(system call),调用内核功能。
  • 2、3MAC层需要根据该进程的安全策略判断此次系统调用是否可以执行。
  • 4、5、6、7、8、9如果存在策略的话,通过sandbox.kext(hook函数)和AppleMatch.kext(沙盒的profile解析)两个内核扩展实现权限的检查。
  • 10返回调用结果

与沙盒系统相关的模块大致如下:

  • libSystem.dylib: 提供sandbox_initsandbox_free_error等函数。
  • libSandbox.dylib: 提供解析,编译,生成*.sb的沙盒profile的函数。
  • sandbox.kext:提供了system call的hook函数
  • AppleMatch.kext:提供了解析profile的函数

结构图大致如下:

1.3 小结

​ 沙盒的工作流程大致可以总结为:

  1. 通过sandbox_init初始化某沙盒策略脚本并编译为二进制文件

  2. 在进程进行system call时,通过TrustedBSD提供的hook模块,利用Sandbox.kext提供的system call hook函数,结合沙盒策略进行判断,该进程是否有权限执行该system call

通过对这些基础知识的了解,可以进入对沙盒的进一步研究了,在下一章通过逆向以及部分源码,从代码实现的层面进行更深一层次的分析。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 圆通快递单号查不到物流信息怎么办 在京东买东西没收到退回去了怎么办 我的东西没收到退回去了怎么办 快递丢了快件丢失了快递公司怎么办 在天猫超市买东西订单关闭了怎么办 淘宝上退货店家收到货不理怎么办 淘宝申请退货退款卖家拒绝怎么办 闲鱼退货卖家拒绝退款怎么办 淘宝退货店家收到货不退款怎么办 卖家拒绝申请我退货了怎么办 衣服洗了卖家拒绝退货怎么办 在京东买的小米手机屏摔碎了怎么办 取消流量漫游后省内不限量怎么办 在淘宝买东西不发货也不退款怎么办 微信上充值电话号码空号怎么办 支付宝转帐到已停机的号码上怎么办 支付宝充话费充错号码怎么办 支付宝话费充错号码了怎么办 村书记打了人不给赔偿药费怎么办 淘宝退给的支付的钱怎么办 淘宝支付了钱没回信息怎么办 微信话费充值暂时缺货怎么办 天猫过敏无忧不给退款怎么办 顺丰快递指定丰巢柜发现柜满怎么办 阿里购物申请退款过期末退怎么办 韵达签收了发现里面东西丢了怎么办 没有收到快递但是显示签收了怎么办 支付宝充话费显示商家未发货怎么办 快递被买家签收后调包了怎么办 快递买家签收了东西坏了怎么办 快递没签收到买家评价了怎么办 快递买家签收后现在要退货怎么办 支付宝充话费充错对方关机怎么办 闲鱼同意退款了买家不退东西怎么办 被骗了说给存q币怎么办 方正说我的淘宝字体侵权怎么办 买家说收到衣服没有吊牌该怎么办 淘宝下完订单店主不发货怎么办 工商局不给查被告企业的信息怎么办 被职业打假人起诉到法院怎么办 京东购物如果换货不给你发货怎么办