打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Chromium的沙盒Sandbox
代码位置:
http://src.chromium.org/viewvc/chrome/trunk/src/sandbox/
Android使用和Linux一样的代码。http://src.chromium.org/viewvc/chrome/trunk/src/sandbox/linux/
1.设计目的/目标
纯粹地为了安全。
sandbox本身就意味着程序要使用多进程架构。做到安全的方法就是让可能不安全的代码在被剥夺了部分权限的sandboxed进程(非主进程)上跑,原则上在sandboxed进程中能利用的资源只有CPU和内存。
所以sandbox虽然和进程紧密相关,但sandbox的核心功能和大部分代码是关于降低权限,多进程只是其前提。sandbox和SandboxedProcess应该区分来理解。
2.特点
Sandbox目录下的代码是独立的(依赖base目录少部分文件),可以供其它项目使用
利用操作系统提供的特性来控制进程的权限,如不允许读写文件系统(框架有提供API可以开放指定文件的读写权限)。Linux下有两个级别的sandbox,Setuid sandbox(限制大部分资源的访问权限)和Seccomp-BPF(限制影响到系统内核的资源访问)。
sandbox进程可以通过IPC跟外部通信。
Chromium中对Renderer进程进行sandbox,是期望对WebKit输入数据就得到输出渲染好的图,过程中的网络和文件读写操作通过IPC由Browser进程处理。部分插件也运行在独立的sandboxed进程,它崩溃掉并不影响浏览器进程,如Flash。
3.使用方法
参考 src/content/common/sandbox_linux/sandbox_init_linux.cc:
bool InitializeSandbox(scoped_ptr<sandbox::SandboxBPFPolicy> policy) {
return SandboxSeccompBPF::StartSandboxWithExternalPolicy(policy.Pass());
}
参考链接:
http://www.chromium.org/developers/design-documents/sandbox
http://www.chromium.org/developers/design-documents/sandbox/Sandbox-FAQ
https://code.google.com/p/chromium/wiki/LinuxSandboxing
http://dev.chromium.org/developers/design-documents/process-models#TOC-Sandboxes-and-plug-ins
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Chromium架构及安全机制概况攻防启示:Chromium组件风险剖析与收敛
Linux文件权限,数字代码的由来
Sandbox
Linux中selinux是什么意思?其作用有哪些?
Android的安全设计与架构
探秘linux-Linux基础之权限管理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服