亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于多安全機制的 Linux 應用沙箱的設計與實現

        2014-11-23 06:39:12涂碧波馮圣中
        集成技術 2014年4期
        關鍵詞:沙箱權能進程

        李 晨 涂碧波 孟 丹 馮圣中

        1(中國科學院深圳先進技術研究院 深圳 518055)

        2(中國科學院信息工程研究所 北京 100093)

        1 引 言

        眾所周知,大多數病毒會利用應用程序這條路徑進行傳播。用戶在使用計算機時,對一些應用程序的非法操作往往會導致嚴重的安全問題,給用戶帶來極大的困擾。例如用戶使用的應用程序需要訪問網絡時,有可能會從不安全的站點下載惡意程序,執(zhí)行一些非法操作,如盜取用戶的敏感信息,干擾用戶的日常工作、數據安全和個人隱私等[1]。一種有效的保護計算機安全的方法就是為應用程序提供一個隔離的運行空間,而這可以由沙箱來提供[2-4]。本文基于多種資源隔離和安全機制設計并實現了一種應用在 Linux 操作系統(tǒng)上的沙箱。相對于現有的沙箱技術而言,該沙箱簡化了實現機制,且提供了更高的安全性和隔離性。

        2 沙箱的設計與實現

        2.1 現有沙箱技術分析

        現有的沙箱技術有很多種,如 FreeBSD Jails是 FreeBSD 平臺上一種基于容器的虛擬化技術,它擴展了傳統(tǒng)的 Chroot 機制,為進程提供了一個具有獨立的文件系統(tǒng)、進程和網絡空間的環(huán)境。當進程調用了 jail 系統(tǒng)調用后,它就被限定在這個 jail 內,且不能脫離。該機制的缺點是不能夠隔離物理資源,且不具備安全機制。Seccomp 是Linux-2.6.23 版本之后支持的一種沙箱機制,該機制為進程提供了一種“安全”模式。在這種模式下,只允許沙箱內的進程使用指定的 4 種系統(tǒng)調用:exit()、sigreturn()、read()和 write()[5],否則進程將會被終止,但該機制的實現需要修改內核及應用程序,且只支持“純計算型”代碼的應用程序,安全機制單一。BufferZone 是通過在用戶電腦上指定的目錄中創(chuàng)建一個虛擬區(qū)域,當該沙箱在運行程序時,程序下載的所有文件都將存儲在這個虛擬區(qū)中,進而使它們與操作系統(tǒng)的其他部分隔離開來,因此惡意軟件只能對虛擬區(qū)造成影響。但這種機制的開銷大,且虛擬機本身存在很多安全問題。DefenseWall 將運行程序分為兩類:系統(tǒng)自帶的文件程序作為可信任程序,而第三方軟件程序作為非信任程序。它還可隨時對非信任程序進行跟蹤監(jiān)聽。雖然該機制內置一些策略和規(guī)則來限制不可信程序的運行,但它不具備網絡過濾的功能,且不能實現資源隔離。SELinux 是一種強制訪問控制機制,它首先給系統(tǒng)的主體和客體打上不同的安全標記,然后通過定制訪問控制規(guī)則來限制主體對客體的訪問,但這種機制的配置比較復雜,易用性較差。表 1 為一部分典型的沙箱的特性對比。

        綜上所述,現有的沙箱中有一部分需要修改內核和應用程序本身,易用性差,且使用的隔離和安全策略有限,不能夠很好地防范各種惡意攻擊[6,7]。

        本文設計的沙箱可以為不可信應用程序提供一個系統(tǒng)資源、物理資源和文件系統(tǒng)隔離的運行環(huán)境,同時還添加了強制訪問控制策略、權能限制和內存保護功能,在防范應用程序漏洞攻擊的同時還可以防止部分系統(tǒng)漏洞攻擊,而且無需修改內核及應用程序本身。與已有的沙箱對比,本文設計的沙箱提高了系統(tǒng)的隔離性和安全性,且對性能造成的影響在可控的范圍之內。

        2.2 沙箱的設計目標

        為了保證沙箱的隔離性和安全性,本文為沙箱提出了以下兩個設計目標:

        (1)實現資源隔離

        ① 沙箱擁有自己獨立的文件系統(tǒng);

        ② 實現沙箱間及沙箱與主機間的系統(tǒng)資源和物理資源隔離。

        (2)實現多種安全機制

        ① 使用強制訪問控制策略實現主機的關鍵文件和目錄不受沙箱影響;

        表1 典型沙箱技術對比Table 1 . Typical sandbox technology contrast

        ② 限制沙箱可以使用的權能(Capabilities);

        ③ 為沙箱添加內存保護安全策略。

        2.3 沙箱的實現

        2.3.1 資源隔離

        首先,利用命名空間(Namespace)機制實現沙箱內系統(tǒng)資源的隔離。所有的系統(tǒng)資源都默認為全局管理,Linux 系統(tǒng)提供了 PID、IPC 和Internet 等多個 Namespace,而且每個 Namespace的資源相對于其他的 Namespace 均為透明。我們?yōu)槊總€沙箱建立一個獨立的 Namespace,這樣網絡、PID 和 IPC 等資源就屬于特定的Namespace。這種機制的實現依靠在啟動沙箱進程后調用 clone()系統(tǒng)調用時,指定相應的flags,flags 標識的是我們要為沙箱建立的新Namespace 類型。我們將 PID Namespace 和 IPC Namespace 一起使用可以使沙箱中的進程彼此不可見、不可通信,實現了進程間的隔離;掛載Namespace 和網絡 Namespace 一起使用可以為沙箱虛擬出一個具有獨立主機名和網絡空間的環(huán)境,對于應用程序而言,沙箱就像網絡上一臺獨立的主機一樣。

        其次,隔離沙箱可以使用的物理資源。沙箱利用控制組(Control Groups,Cgroups)子系統(tǒng)來實現這一功能。Cgroups 是一種可以隔離、限制和記錄進程組所使用的物理資源(如 CPU、memory 和 IO 等)的機制。例如,內存子系統(tǒng)用來限制進程組可以使用的內存上限,一旦進程組使用的內存達到了限額以后還繼續(xù)申請內存,系統(tǒng)就會終止該進程并報錯。我們將沙箱中的進程作為一個進程組來進行管理,這樣就可以避免沙箱中的惡意程序想要霸占某些物理資源的行為。

        此外,我們還為沙箱定制了一個完全獨立的文件系統(tǒng),如圖 1 所示。

        圖1 沙箱的獨立文件系統(tǒng)Fig. 1. Rootfs of Sandbox

        該文件系統(tǒng)相當于主機文件系統(tǒng)的一個簡化副本,其中包含了應用程序本身以及它執(zhí)行時需要的配置文件、動態(tài)鏈接庫和特殊設備等,沙箱中的進程只能在這個文件系統(tǒng)中進行操作。在沙箱的文件系統(tǒng)中,主機系統(tǒng)中默認禁止訪問的敏感目錄文件只是一個拷貝,所以無論惡意應用程序在沙箱中做任何操作都不會對主機產生任何影響。該機制的實現利用了系統(tǒng)調用函數 chdir(),在啟動沙箱時調用該函數,即可更改當前進程的工作目錄。

        2.3.2 安全策略

        除了以上提供的資源隔離策略,我們還為沙箱引入了一些安全策略。首先是強制訪問控制機制,強訪機制就是將系統(tǒng)中的進程、文件等對象分為主體和客體兩種,并給主、客體添加相應的標簽,定制特定的強制訪問控制規(guī)則來限制主體對客體的操作[8]。我們使用簡單的文本標簽(如host)標記主機上的關鍵文件和目錄,給沙箱的獨立文件系統(tǒng)以及沙箱進程添加沙箱標簽(可以用沙箱名作為標簽,如 vs 1、vs 2),設置沙箱使用的訪問控制規(guī)則如表 2 所示。其中,第一列為主體標簽,第二列為客體標簽,第三列為主體可以對客體執(zhí)行的操作,沙箱對標有 host 標簽的對象不能做任何操作,沙箱互相之間也不能做任何操作,這樣就可以保證沙箱本身及沙箱中的惡意程序不會對主機的關鍵文件和目錄產生影響。

        表2 沙箱的強制訪問控制規(guī)則Table 2 . MAC rules of sandboc

        其次,對沙箱中的進程進行權能限制。Linux Kernel 自 2.1 版開始就有了權能的概念,Linux 支持權能的主要目的是細化根用戶的特權,利用這一機制,我們可以根據實際的安全需要來控制沙箱擁有的權能范圍,從而防止攻擊者利用惡意應用程序趁機獲取控制系統(tǒng)的特權,對系統(tǒng)安全造成威脅。該機制的實現是通過在沙箱中啟動進程時,先獲取進程擁有的權能,然后使用 cap_clear_flag()函數來清除禁止該沙箱使用的權能。

        此外,為沙箱添加了地址隨機化、不可執(zhí)行頁保護等安全策略,這些安全策略可以防止由緩沖區(qū)溢出漏洞導致的攻擊行為。例如,如果攻擊程序熟悉進程的地址空間,從而將程序的執(zhí)行流程跳轉到惡意代碼的位置,危害系統(tǒng)安全。而利用地址隨機化策略使程序地址隨機化,使得攻擊者無法將程序執(zhí)行流程跳轉到預期位置,從而阻止攻擊代碼執(zhí)行。這樣不僅可以對已知漏洞進行防護,還能對未知漏洞利用攻擊進行防御。

        3 性能分析及測試

        3.1 安全性分析

        因為沙箱具有獨立的文件系統(tǒng),所以從沙箱中啟動應用程序后,在執(zhí)行過程中所做的操作,如下載的文件以及在網頁上安裝的軟件都被重定向到沙箱獨立的文件系統(tǒng)中,可以隨時刪除且不會對主機系統(tǒng)造成任何影響;此外,沙箱引入了Namespace 機制和 Cgroups 機制,實現了沙箱與系統(tǒng)間系統(tǒng)資源和物理資源的隔離;權能機制使應用程序及沙箱都不可能進行除了賦予給它們的權能之外的任何特權操作;強訪策略可以限制沙箱程序讀取或修改系統(tǒng)的關鍵文件和敏感數據;地址隨機化和不可執(zhí)行頁保護策略防止了惡意代碼的緩沖區(qū)漏洞攻擊行為。如圖 2 所示為沙箱使用的各種機制及達到的隔離和安全效果。

        3.2 測 試

        測試環(huán)境:

        Intel(R)Core(TM)i5-3470 CPU 3.20 GHz

        Fedora 12 linux-2.6.36

        (1)安全性測試

        測試1:對存在安全漏洞的應用程序直接執(zhí)行與在沙箱中執(zhí)行的結果進行測試。根據Mozilla 官網安全公告,火狐瀏覽器(Firefox)的某一版本存在高危級別的漏洞 MFSA 2010-65。如果向 document.write()發(fā)送一個超長字符串,可能會導致文字渲染程序出現混亂,堆棧內存的一部分被串數據所覆寫。攻擊者可利用此漏洞導致用戶瀏覽器崩潰,并可能執(zhí)行任意代碼。

        測試過程如下:

        ① 向 document.write()發(fā)送超長字符串;

        ② 打開 Debuggy,直接運行 Firefox,在Debuggy 中多次查看 Call Stack 的內容。

        Call Stack 被寫入為 41414141,也就意味著在進行正常的瀏覽器操作之后,32 位指令寄存器(Extended Instruction Pointer,EIP)就會變?yōu)?1414141,這個地址是不可執(zhí)行的,返回地址被覆蓋,EIP 指向的一段惡意代碼(如盜取系統(tǒng)敏感數據)就會立刻被執(zhí)行,導致火狐瀏覽器崩潰。圖 3 所示為系統(tǒng)打印的錯誤信息。

        圖2 沙箱使用機制及達到的隔離和安全效果Fig. 2. Isolation and security with sandbox mechanisms

        但是,將火狐瀏覽器在沙箱中啟動,執(zhí)行上述操作之后,惡意代碼并不會被執(zhí)行,原因是我們在沙箱中采用了堆棧地址隨機化技術。此外,即使火狐瀏覽器運行時跳轉到惡意代碼的位置,這段代碼也只會在沙箱中運行,它所破壞的僅僅是我們虛擬出來的一個系統(tǒng)副本,并不會對沙箱外的系統(tǒng)造成任何危害,因此,沙箱隔離了存在安全漏洞的應用程序對系統(tǒng)的危害。

        圖3 系統(tǒng)打印的錯誤信息Fig. 3. Error information printed by the system

        測試 2:對惡意霸占資源的程序直接執(zhí)行與在沙箱中執(zhí)行的結果進行測試。測試程序關鍵代碼如下:

        該程序處在 while 循環(huán)中,在程序執(zhí)行時,會循環(huán)申請變量,不停地分配內存,導致系統(tǒng)可用內存的數量不斷減少。我們測試的結果在經13.5 s 以后,1 G 的可用內存幾乎完全被占用,導致其他應用程序無法執(zhí)行。之后我們從沙箱中啟動該程序,限制沙箱所能使用的內存大小為 100 M。當程序執(zhí)行時,系統(tǒng)為該程序分配的內存達到限制值以后,應用程序被終止,而其他應用程序仍可正常執(zhí)行。由此可見,沙箱防止了惡意程序對于資源的惡意霸占,保護了系統(tǒng)的安全。

        (2)性能測試

        ① 應用級性能測試

        以三種典型的桌面應用程序 Firefox、Office和 Kaffeine 為例來分析該沙箱性能損耗。對比直接啟動應用程序和從沙箱中啟動應用程序的啟動時間(以 s 為單位),結果如圖 4 所示。圖 4 顯示,在沙箱中啟動應用程序的時間比直接啟動稍慢一些,但是屬于可接受的范圍。

        圖4 三種應用程序直接運行和在沙箱中運行時間(s)對比Fig. 4. Time contrast of three apps running directly and in sandbox

        ② 系統(tǒng)級性能測試

        使用工具 Unixbench 對沙箱及主機進行系統(tǒng)級的性能對比測試。Unixbench 是一個用于評價系統(tǒng)綜合性能的開源工具,能夠測試包括文檔讀寫、內存操作、進程創(chuàng)建銷毀開銷和網絡等性能開銷。正常運行 Unixbench 的測試結果如圖 5 所示,而在沙箱中運行 Unixbench 的測試結果如圖6 所示。經對比發(fā)現,在沙箱中運行時,系統(tǒng)的性能開銷增加了 2.88%,屬于可接受范圍。

        圖5 正常運行時的測試結果Fig. 5. Test results of normal operation

        圖6 在沙箱中運行時的測試結果Fig. 6. Test results in sandbox

        4 總 結

        該沙箱利用各種安全策略和隔離機制給不可信任的應用程序提供一個安全隔離的運行環(huán)境,配置簡單并且無需修改內核和應用程序,具有很強的安全性和隔離性,是一種保護 Linux系統(tǒng)安全的有效手段。但是,沙箱對系統(tǒng)的性能會產生一些影響,如何進一步降低沙箱性能消耗還是一個亟待解決的問題,這將是我們下一步研究的重點。

        [1]程龍, 楊小虎. Linux 系統(tǒng)內核的沙箱模塊實現[J]. 計算機應用, 2004, 24(1): 79-81.

        [2]Acharya A, Raje M. MAPbox: using parameterized behavior classes to confine untrusted applications[C]// Proceedings of the 9th Conference on USENIX Security Symposium, 2000: 1.

        [3]Peterson DS, Bishop M, Pandey R. A flexible containment mechanism for executing untrusted code [C]// Proceedings of the 11th USENIX Security Symposium, 2002: 207-225.

        [4]Provos N. Improving host security with systemcall policies [C]// Proceedings of the 12th Conference on USENIX Security Symposium, 2003: 257-272.

        [5]Bernaschi M, Gabrielli E, Mancini LV. Operating system enhancements to prevent the misuse of system calls [C]// Proceedings of the 7th ACM Conference on Computer and Communications Security, 2000: 174-183.

        [6]王洋, 王欽. 沙盒安全技術的發(fā)展研究 [J]. 軟件導刊, 2009, 8(8): 152-153.

        [7]李時惠. 一種增強的基于威脅度的沙箱框架設計[J]. 計算機技術與自動化, 2006, 25(3): 123-127.

        [8]張愛華, 林園. 一種基于安全標簽的訪問控制模型的設計和實現 [J]. 計算機應用研究, 2007, 1:183-185.

        猜你喜歡
        沙箱權能進程
        五指成拳 靶向發(fā)力 拓展股權權能 助力富民增收
        宅基地資格權:原則遵循、性質定位和權能闡述
        上海房地(2021年12期)2021-05-23 12:36:22
        債券市場對外開放的進程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        Removing a stone
        巧用沙箱檢測文件安全
        “四荒”土地承包經營權能抵押嗎
        農地產權權能擴展及管理措施完善研究
        經濟與管理(2016年2期)2016-12-01 04:29:00
        基于函數注入的沙箱攔截識別方法
        社會進程中的新聞學探尋
        民主與科學(2014年3期)2014-02-28 11:23:03
        我國高等教育改革進程與反思
        亚洲va中文字幕欧美不卡 | 日本伦理美乳中文字幕| 日韩精品在线一二三四区| 狠狠人妻久久久久久综合蜜桃| 亚洲欧洲巨乳清纯| 久久亚洲国产欧洲精品一| 按摩少妇高潮在线一区| 亚洲国产av无码精品| 18成人片黄网站www| 国产成人av在线影院无毒| 水蜜桃在线观看一区二区国产| 日韩精品无码熟人妻视频| 日本丰满人妻xxxxxhd| 中文字幕亚洲人妻系列| 亚洲av资源网站手机在线| 无码人妻精品一区二区三区东京热| 欧美综合区| 日本最新在线一区二区| 亚洲成人免费av影院| 精品成人av一区二区三区| 久久精品中文字幕极品| 女女同性av一区二区三区| 99国产精品久久久久久久成人热 | 国产精品性色av麻豆| 熟女少妇内射日韩亚洲| 精品手机在线视频| 热门精品一区二区三区| 99re6在线视频精品免费下载| 天堂中文在线资源| 亚洲欧洲日韩另类自拍| 一区二区人妻乳中文字幕| 2019日韩中文字幕mv| 国产一区视频在线免费观看| 好爽要高潮了在线观看| 国产精品蝌蚪九色av综合网| 精品无码中文字幕在线| 亚洲精品成人网线在线播放va| 国产内射一级一片高清内射视频 | 777精品出轨人妻国产| 国产成人+亚洲欧洲+综合| av一区二区不卡久久|