你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux沙箱技术介绍

[日期:2015-02-05] 来源:Linux社区  作者:Linux [字体: ]

在计算机安全领域,沙箱(Sandbox)是一种程序的隔离运行机制,其目的是限制不可信进程的权限。沙箱技术经常被用于执行未经测试的或不可信的客户程序。为了避免不可信程序可能破坏其它程序的运行,沙箱技术通过为不可信客户程序提供虚拟化的磁盘、内存以及网络资源,而这种虚拟化手段对客户程序来说是透明的。由于沙箱里的资源被虚拟化(或被间接化),所以沙箱里的不可信程序的恶意行为往往会被限制在沙箱中。

沙箱技术一直是系统安全领域的挑战,不存在说哪一种方案是足够安全的。沙箱技术方案通常是需要结合多种系统安全技术来实现,采用防御纵深(Defence in Depth)的设计原则,筑建多道防御屏障,尽可能地将安全风险将为最低。下面我们主要讨论如何利用Linux kernel所提供的安全功能来建立有效的沙箱技术。

在讨论之前,我们简单回顾一下Linux安全模型相关的内容(假设读者已经非常熟悉):

(1) 每个进程都有自己的地址空间;

(2) MMU硬件机制来保证地址空间的隔离;

(3) Kernel是系统的TCB(Trusted Computing Base),是安全策略的制定者和执行者;

(4) 进程是最小的权限边界;

(5) root具有最高权限,它能控制一切;

(6) 其它用户受DAC(Discretionary Access Control)限制,如文件系统的UGO权限控制。

进程是最小的权限边界,其根本原因是MMU能保证进程地址空间的隔离。

Linux Kernel还提供了与进程降权(drop privilege)相关的一些功能:

1. setuid

2. POSIX.1e capability

3. chroot jail

4. Quota control (eg, cgroup, namespace)

5. Linux Container

6. Linux Security Module (LSM)

下篇我们会介绍如何在实践中利用这些诀窍来构建一个有效的sandbox。

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-02/112915.htm

linux
相关资讯       Linux沙箱 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款