SandBox 系列 01 Windows 沙盒通用框架

admin 2021年4月2日20:28:07评论41 views字数 1582阅读5分16秒阅读模式

SandBox系列 01 Windows沙盒通用框架

杀戮 (某无业游民) | 2014-12-09 10:31

0x00 背景

跟瞌睡龙商量后决定把这个系列重新开始写,尽量通俗易懂,第一篇只对一些概念做简单介绍。

近几年来,知名浏览器厂商似乎获得了同一个认知,黑客的淫荡是没有边界的。似乎他们采用的ASLR等的防御手段总是被黑客绕过,于是开始去寻找一个安全边界,去定义不可信数据,显然现在的结果是,网页,插件这些由未知来源获得的数据与呈现的代码被定义为不可信数据。

当确定了不可信数据,(大家就可以做个盒子把他丢进去了 ),我们需要限制不可信数据的时候同时还要为操作这些数据的进程提供一组受限的API(当然也可以不提供,你得先让产品经理保证不打死你),并且整体的设计能够符合最小权限的原则。

那么我们就可以得出,一个沙盒的基本工作就是将处理不可信数据的进程 放进一个封闭的符合最小权限环境,当需要与系统进行交互时,只能通过提供一组收到权限限制的API。

0x01 Windows安全框架

现在的浏览器沙盒都是基于windows的底层安全框架,07年的时候微软牛David LeBlanc,发布了一系列文章,关于如何建立安全的windows沙盒。最后总结就是四个,并且各家浏览器都以不同方式基于以下四个实现了自家的沙盒。

1. 受限令牌(Restricted Access Tokens)

2. Windows job object

3. Windows desktop object

4. integrity levels(强制完整性检查)

1. Restricted Access Tokens

什么是受限令牌,先说access token ,这是一个描述进程的安全属性的对象,比如进程所拥有的权限,登陆会话的安全信息等。

那Restricted Access Tokens呢,从Restricted(受限)我们就可以察觉到一些,这是一种建立在access tokens上的,但是禁止了它对于一些特殊资源以及对象的访问。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa379316(v=vs.85).aspx

2. Windows job object

对linux 可能知道 ulimit ,Job object是很类似的东西,不过因为系统的差异有一些不同。Job object是一个用于管理一组进程的东西。一旦你建立一个job对象,就可以对其进行配置,对进程进行限制。(需要注意的是,貌似微软自家的沙盒不用job object,虽然他们对谷歌说很好用。。。。。。。)

通俗来说,就是限制进程的一种方式。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms684161(v=vs.85).aspx

3. Windows desktop object

这个某种意义上碉堡了,其核心意义是,沙盒程序应该运行在一个单独的Desktop中,就是桌面,其威胁假设就是,同一个桌面上运行的进程可能互相危害。不过各个厂商实施的方式不同。

4. integrity levels (强制完整性控制)

就是说会对 请求的对象 通过DACL进行一次评估,就是看你权限够了没的意思。

IL (Integrity Labels) 指定程序的完整性等级,由一系列SID来带代表,SID储存在SACL中。

[原文地址]

文章来源于lcx.cc:SandBox 系列 01 Windows 沙盒通用框架

相关推荐: 讨论:因为这次小米信息泄漏事件,总结一下数据泄漏造成的危害

因为这次小米信息泄漏事件,总结一下数据泄漏造成的危害,大家也可以继续说 Hxai11 (求工作) | 2014-05-14 20:31 关于小米数据泄漏也可以看:对小米论坛泄露数据的一次分析 密码成功破解率高达37.8% 正文: 这里理清一下这次不仅是小米数据…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月2日20:28:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SandBox 系列 01 Windows 沙盒通用框架http://cn-sec.com/archives/317435.html

发表评论

匿名网友 填写信息