歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Linux沙箱技術介紹

Linux沙箱技術介紹

日期:2017/3/1 9:33:38   编辑: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/112913.htm
  • http://www.linuxidc.com/Linux/2015-02/112914.htm

Copyright © Linux教程網 All Rights Reserved