《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種多層次的云平臺(tái)安全解決方案
一種多層次的云平臺(tái)安全解決方案
來源:電子技術(shù)應(yīng)用2013年第4期
董振江1,, 王 雪2, 胡 潔1,,華 宇2
1. 中興通訊股份有限公司,, 江蘇 南京 210012; 2. 北京郵電大學(xué),,北京100876
摘要: 論述了云平臺(tái)的整體安全解決方案,。該方案分為應(yīng)用級(jí)別安全、容器級(jí)別安全,、網(wǎng)絡(luò)級(jí)別安全等層次,。著重闡述了針對(duì)PaaS云平臺(tái)的解決方案,從容器內(nèi)部應(yīng)用安全,、容器自身安全,、容器外部的入侵防御安全三個(gè)方面做出了分析。
關(guān)鍵詞: 云計(jì)算 安全 PaaS 安全容器
中圖分類號(hào):TP309
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)04-0133-04
A multi-level cloud platform security solution
Dong Zhenjiang1, Wang Xue2, Hu Jie1, Hua Yu2
1. ZTE Corporation,, Nanjing 210012, China; 2. Beijing University of Posts and Telecommunications, Beijing 100876, China
Abstract: This solution is divided into several levels, which are container-level security, virtual machine-level security, network-level security. This paper focuses on solutions for PaaS Cloud platform, and makes the analysis of three aspects, which are the application security inside of the container, the container’s own security, the intrusion prevention security outside of the container.
Key words : Cloud computing; security; PaaS; container security

    云計(jì)算代表了IT領(lǐng)域向集約化,、規(guī)?;c專業(yè)化道路發(fā)展的趨勢,但它在提高使用效率的同時(shí),,為實(shí)現(xiàn)用戶信息資產(chǎn)安全與隱私保護(hù)帶來極大的沖擊與挑戰(zhàn),。2009年11月,F(xiàn)orrester Research公司的調(diào)查結(jié)果顯示,,有51%的中小型企業(yè)認(rèn)為安全性和隱私問題是其尚未使用云服務(wù)的最主要原因,。因此,云安全問題成為必須解決的問題之一[1],。

    平臺(tái)即服務(wù)(PaaS)作為云計(jì)算的一種,,是將基礎(chǔ)設(shè)施平臺(tái)作為一種服務(wù)呈現(xiàn)給用戶的商業(yè)模式,是一種低成本的方案,。
    本文首先分析了現(xiàn)有的PaaS平臺(tái)特征及其面臨的安全問題,,然后提出了一個(gè)提供容器安全功能的多層次PaaS平臺(tái)安全解決方案。
1 相關(guān)工作
    目前,,針對(duì)云計(jì)算安全問題,,一些學(xué)者和組織給出了相應(yīng)的解決方案。巴斯塔和哈爾頓提出一種通過盡可能地使用加密協(xié)議來避免IP欺騙的方法,。他們提出,為了避免ARP中毒,需要root權(quán)限才能更改ARP表,而且盡量使用靜態(tài)表而非動(dòng)態(tài)ARP表,;如果一家要使用ARP表,至少也要確定變化的ARP表被記錄下來,。拉吉等人提出了資源隔離的方法,,通過在處理過程中隔離虛擬機(jī)中處理器的高速緩存并隔離這些虛擬高速緩存的虛擬機(jī)管理程序緩存,確保數(shù)據(jù)的安全性,。在數(shù)據(jù)管理頂級(jí)會(huì)議SIGMOD 2009上,,Wong等[2]提出了一種安全性較高KNN查詢方案,使得惡意的云服務(wù)器無法獲得用戶私有的敏感信息。Apache自由軟件基金會(huì)基于Google云計(jì)算系統(tǒng)的設(shè)計(jì)思想,實(shí)現(xiàn)了開源的Hadoop項(xiàng)目[3], Hadoop實(shí)現(xiàn)了Google的MapReduce編程模型,提供了簡單易用的編程接口,,也提供了自己的分布式文件系統(tǒng)HDFS,。
2 PaaS平臺(tái)的安全問題
    PaaS平臺(tái)分為兩類,一類是應(yīng)用部署和運(yùn)行平臺(tái)APaaS(Application- Platform-as-a-Service),另一類是集成平臺(tái)IPaaS(Integration-Platform-as-a-Service),。在多租戶APaaS中,,云平臺(tái)主要面臨三個(gè)方面的安全威脅:容器內(nèi)部應(yīng)用共享資源引起的安全問題、容器自身安全問題及容器在網(wǎng)絡(luò)層的安全問題,。
2.1 容器內(nèi)部應(yīng)用共享資源引起的安全問題
     林兆驥等人在《云計(jì)算安全關(guān)鍵問題研究》中提到[4],,在多租戶APaaS中,應(yīng)用面臨著一些安全隔離問題,。
2.2 容器自身安全問題
    在2009年,,Google、Microsoft,、Amazon等公司的云計(jì)算服務(wù)均出現(xiàn)了重大故障,,有些是由于容器自身引起的安全問題,。云平臺(tái)中,惡意應(yīng)用通過獲取容器的特征信息(如類型,、版本信息等),,針對(duì)容器本身進(jìn)行攻擊,將造成安全問題,。以目前主流的Tomcat為例,,其面臨的安全問題如下:
    (1) 掃描威脅
    由于Tomcat默認(rèn)通過8080端口對(duì)外提供Web服務(wù)。通過掃描網(wǎng)絡(luò)中開啟了8080端口的主機(jī),,并利用掃描工具,,攻擊者不但能夠獲得開啟了8080端口的Tomcat服務(wù)器的IP地址,還可以掃描自動(dòng)破解弱口令,。
    (2) 登錄后臺(tái)威脅
    通過掃描獲得IP和弱口令后,,攻擊者就可以通過默認(rèn)的admin用戶登錄后臺(tái)。在Tomcat的后臺(tái)可以看到站點(diǎn)的所有目錄和文件,,并且對(duì)目錄實(shí)施“開啟”,、“停止”、“重啟”,、“卸除”等操作,。對(duì)于攻擊者來說,不僅可以通過停止或卸除操作影響當(dāng)前容器內(nèi)應(yīng)用的正常運(yùn)行,,更可以通過把jsp網(wǎng)馬打包生成war包,,上傳后在容器內(nèi)運(yùn)行該網(wǎng)馬,。
    (3) Webshell威脅
    通過后臺(tái)上傳用war打包的網(wǎng)馬后,,在Tomcat站點(diǎn)下生成與上傳文件同名的目錄。點(diǎn)擊該目錄,,可以看見jsp網(wǎng)馬,,在瀏覽器中輸入該網(wǎng)馬的URL地址,可獲得一個(gè)Webshell,。攻擊者可以通過Webshell對(duì)系統(tǒng)進(jìn)行提權(quán),、滲透,進(jìn)而獲得整個(gè)服務(wù)器的控制權(quán),。
2.3 容器網(wǎng)絡(luò)層的安全問題
    互聯(lián)網(wǎng)是云計(jì)算的基礎(chǔ),,所以PaaS平臺(tái)運(yùn)行托管環(huán)境中實(shí)現(xiàn)安全容器,需要考慮容器在網(wǎng)絡(luò)層的幾個(gè)安全問題:
    (1) DDoS攻擊
    DDoS攻擊即通過向服務(wù)器提交大量請求使服務(wù)器超負(fù)荷,,從而阻斷用戶訪問服務(wù)器,,阻斷某服務(wù)與特定系統(tǒng)或個(gè)人的通信。DDoS攻擊帶來兩方面的安全威脅:阻斷VM正常的網(wǎng)絡(luò)通信,,使其無法響應(yīng)用戶請求,;向某一Web Container提交大量請求,,影響Container內(nèi)應(yīng)用的正常運(yùn)行。亞馬遜采取保持內(nèi)部帶寬超過互聯(lián)網(wǎng)給予帶寬的方式來減少潛在的DDoS攻擊[5],。
    (2) IP欺騙
    SUBASHINI S等人在參考文獻(xiàn)[5]中提到IP欺騙在網(wǎng)絡(luò)安全方面給了攻擊者可乘之機(jī),。IP欺騙是指一臺(tái)主機(jī)通過冒充另外一臺(tái)主機(jī)的IP地址與其他設(shè)備通信,從而達(dá)到某種目的,。
    (3) 端口掃描
    在PaaS平臺(tái)中,,通過端口掃描獲得某主機(jī)上提供的網(wǎng)絡(luò)服務(wù),并搜集到很多關(guān)于目標(biāo)主機(jī)有用的信息,例如是否能夠匿名登陸,、是否有可寫的FTP目標(biāo),、是否能用Telnet等。
3 PaaS平臺(tái)安全的解決方案
    圖1顯示了云計(jì)算環(huán)境下的容器及其關(guān)系,。為解決PaaS云平臺(tái)面臨的安全問題,,本文將PaaS平臺(tái)安全容器進(jìn)行分層來提供安全,三個(gè)層次分別為容器內(nèi)部應(yīng)用安全,、容器自身安全及容器外部入侵防御安全,。

3.1 容器內(nèi)部的應(yīng)用安全
    在多租戶PaaS模式中,最核心的安全原則就是多租戶應(yīng)用隔離,。為了實(shí)現(xiàn)多租戶應(yīng)用隔離,,云提供商必須提供“沙盒”架構(gòu),通過平臺(tái)的“沙盒”性實(shí)現(xiàn)集中維護(hù)客戶部署在PaaS平臺(tái)上應(yīng)用的保密性和完整性,。為此,,云提供商一般通過為每一個(gè)用戶應(yīng)用提供一個(gè)Servlet容器的方法來實(shí)現(xiàn)邏輯上的隔離。
    現(xiàn)有解決方案能有效提供平臺(tái)的“沙盒”架構(gòu),,實(shí)現(xiàn)多租戶應(yīng)用隔離,。但同時(shí),多租戶模式下運(yùn)行多個(gè)Servlet容器的模式會(huì)帶來較大的系統(tǒng)開銷,。本文在現(xiàn)有解決方案的基礎(chǔ)上,,提出了一種由一個(gè)Servlet容器承載不同應(yīng)用的解決方案,在實(shí)現(xiàn)多租戶應(yīng)用隔離的同時(shí)保證系統(tǒng)性能,。
    本文提出的PaaS平臺(tái)安全容器,,就是利用Java技術(shù)提供的安全性,并在此基礎(chǔ)上結(jié)合托管PaaS平臺(tái)特點(diǎn)進(jìn)行定制而實(shí)現(xiàn)的,。
3.1.1 Java安全體系結(jié)構(gòu)
    Java技術(shù)從多個(gè)方面提供了對(duì)安全性的支持:Java語言本身安全性,、虛擬機(jī)的雙親委托類加載機(jī)制、安全管理器和Java API,。這些共同構(gòu)成了Java安全體系結(jié)構(gòu),,即沙盒模型,是一個(gè)支持靈活的細(xì)粒度訪問控制的安全策略,并且具有可擴(kuò)充性和伸縮性的安全體系結(jié)構(gòu)。
    Java沙盒采用了靈活的保護(hù)域安全模型,,由安全策略來決定代碼具有的訪問許可,,對(duì)被保護(hù)資源的訪問會(huì)激發(fā)安全檢查,這些檢查會(huì)將授權(quán)的許可和其試圖訪問所需要的權(quán)限進(jìn)行比較,。這些激發(fā)安全檢查的訪問包括文件系統(tǒng)訪問,、JNI訪問本地代碼、創(chuàng)建Socket連接等,。
3.1.2 基于Java安全體系結(jié)構(gòu)的托管PaaS安全容器
  利用Java沙盒模型提供的訪問控制功能,,可以將同一JVM中運(yùn)行的代碼邏輯上分開,分別運(yùn)行于不同的沙盒中。在本研究中,,托管PaaS平臺(tái)安全容器,,利用Java沙盒模型,使不同的應(yīng)用運(yùn)行于不同的沙盒中,,實(shí)現(xiàn)應(yīng)用隔離功能,。
   本研究中,針對(duì)托管PaaS平臺(tái)及Jetty和用戶應(yīng)用的特點(diǎn),在Java沙盒模型的基礎(chǔ)上進(jìn)行了擴(kuò)展,,其體系結(jié)構(gòu)如圖2所示,。

    在托管PaaS平臺(tái)運(yùn)行環(huán)境中,安全容器提供應(yīng)用運(yùn)行的受限的環(huán)境,,即沙盒環(huán)境,。沙盒環(huán)境實(shí)現(xiàn)應(yīng)用運(yùn)行時(shí)5個(gè)方面的訪問控制:文件訪問控制、網(wǎng)絡(luò)訪問控制,、多線程控制,、JNI訪問控制及System.exit()方法訪問控制。如圖2所示,,在托管PaaS平臺(tái)運(yùn)行環(huán)境中,,安全容器在Java安全體系結(jié)構(gòu)基礎(chǔ)上進(jìn)行擴(kuò)展,實(shí)現(xiàn)了兩套邏輯沙盒模型,,在邏輯上將系統(tǒng)代碼和應(yīng)用代碼分開處理,,簡化了安全策略文件的配置,,提高了系統(tǒng)性能,。
    在托管PaaS平臺(tái)運(yùn)行環(huán)境中,兩套邏輯沙盒模型(默認(rèn)沙盒和應(yīng)用沙盒)分別提供系統(tǒng)代碼和應(yīng)用代碼的運(yùn)行環(huán)境,,并實(shí)現(xiàn)訪問控制,。托管PaaS平臺(tái)運(yùn)行環(huán)境安全模型主要通過保護(hù)域模塊、類加載模塊,、安全策略模塊和訪問控制模塊來實(shí)現(xiàn),。
 在PaaS系統(tǒng)中,保護(hù)域模塊由系統(tǒng)保護(hù)域和應(yīng)用保護(hù)域組成。系統(tǒng)保護(hù)域使用Java安全體系結(jié)構(gòu)中默認(rèn)的域模型,,即通過代碼位置及簽名指定保護(hù)域,。應(yīng)用保護(hù)域由每個(gè)應(yīng)用的AppContext來指定,邏輯上與一個(gè)Web應(yīng)用相對(duì)應(yīng),。在類加載模塊中實(shí)現(xiàn)了系統(tǒng)類(Jetty代碼和服務(wù)端代碼)和應(yīng)用類兩套類加載策略,,分別由系統(tǒng)類加載器和WebApp類加載器加載。在安全策略模塊中,,默認(rèn)沙盒采用Java安全體系結(jié)構(gòu)默認(rèn)的安全策略文件來實(shí)現(xiàn)安全策略,。默認(rèn)安全策略指定了PaaS系統(tǒng)中應(yīng)用的默認(rèn)權(quán)限,由WebApp ClassLoader加載應(yīng)用類型時(shí),,創(chuàng)建相應(yīng)App實(shí)例,,同時(shí)初始化該App的權(quán)限集合Permissions。對(duì)于訪問控制模塊,,按照兩套邏輯分別進(jìn)行權(quán)限檢查,。同時(shí)出于安全考慮,設(shè)計(jì)了WebApp SecurityManager。當(dāng)代碼請求訪問被保護(hù)資源時(shí),,WebApp SecurityManager判斷當(dāng)前請求是否來自應(yīng)用,,繼而觸發(fā)相應(yīng)的訪問控制邏輯或是將請求委托給父類安全管理器。
3.2 容器自身安全
    目前主流的Servlet容器有Tomcat,、jetty,、jboss等,這些容器都存在自身的弱點(diǎn),,為預(yù)防攻擊者針對(duì)容器進(jìn)行攻擊,,在PaaS云平臺(tái)中應(yīng)該隱藏容器信息,包括容器類型,、版本信息等,。
    目前獲取容器特征信息的方式主要有以下三種:
    (1)通過容器提供的API獲取,對(duì)于實(shí)現(xiàn)sun的Servlet2.3以上的Servlet提供以下方法支持,,通過GenericServlet類的getServletContext()獲取ServletContext,,再由ServletContext.getServerInfo()方法獲取服務(wù)器類型;
    (2) 通過工具類提供的API獲取,,Liferay里面提供了一個(gè)方法來判斷不同的應(yīng)用服務(wù)器,;
    (3) 惡意應(yīng)用通過執(zhí)行非法操作拋出異常,通過捕捉異常信息追蹤調(diào)用堆棧,也可分析獲取容器類型信息。
    針對(duì)上述3種獲取容器特征信息的方法,,本文將從兩個(gè)方面來實(shí)現(xiàn)PaaS平臺(tái)容器的信息隱藏,。圖3顯示了容器信息隱藏的過程: (1)應(yīng)用運(yùn)行依賴的jar包、容器本身的靜態(tài)信息和動(dòng)態(tài)信息等由安全容器來集中管理,; (2)安全容器的Connector模塊負(fù)責(zé)處理用戶請求并返回應(yīng)用運(yùn)行結(jié)果,,在所有運(yùn)行結(jié)果返回給用戶之前進(jìn)行檢測,所有可能暴露容器特征信息的異常信息通過包裝之后由過濾模塊進(jìn)行決策再將相應(yīng)結(jié)果返回給用戶。

    如圖4所示,,當(dāng)外部入侵者通過多種方式盜取容器信息時(shí),,容器過濾模塊中的攔截模塊和欺騙模塊都將做出防御行為。攔截模塊指依據(jù)策略攔截入侵者的請求,;行為模塊包括允許,、不允許、過濾部分請求,、欺騙用戶等行為,;決策模塊具有智能算法,它依托于策略服務(wù)器作為其策略庫,,以此給出合適的處理方式,。對(duì)于決策模塊時(shí),本解決方案為各種決策算法設(shè)計(jì)了公共的可用接口,,神經(jīng)網(wǎng)絡(luò),、決策樹等決策算法均可以插件的形式應(yīng)用到該模塊中。欺騙模塊指對(duì)入侵者發(fā)送假消息來誤導(dǎo)入侵者,,從而保護(hù)容器自身的信息不泄露,。當(dāng)容器過濾模塊收到用戶請求時(shí),由決策模塊調(diào)用策略服務(wù)器來決定處理方式,,若需要欺騙用戶來保證容器安全則會(huì)調(diào)用欺騙模塊,。最后由行為模塊來執(zhí)行動(dòng)作。

3.3 容器外部的入侵防御安全
 互聯(lián)網(wǎng)是云計(jì)算的基礎(chǔ),,所以PaaS平臺(tái)運(yùn)行托管環(huán)境中實(shí)現(xiàn)安全容器,,需要考慮容器在網(wǎng)絡(luò)層的安全問題,包括避免容器受到DDoS攻擊,、防止外部對(duì)容器的嗅探等,。如圖5所示,本文針對(duì)以上情況給出了PaaS平臺(tái)的安全解決方案,。
3.3.1 DDoS攻擊防御
 單一的DoS攻擊一般采用一對(duì)一方式,,當(dāng)攻擊目標(biāo)各項(xiàng)性能指標(biāo)不高時(shí)(CPU速度低、內(nèi)存小或者網(wǎng)絡(luò)帶寬小等),它的效果是非常明顯的,。分布式拒絕服務(wù)DDoS(Distributed Denial of Service)攻擊逐漸出現(xiàn),。處于不同位置的多個(gè)攻擊者同時(shí)向一個(gè)或多個(gè)目標(biāo)發(fā)起協(xié)同的拒絕服務(wù)攻擊,或者一個(gè)或多個(gè)攻擊者控制了位于不同位置的多臺(tái)機(jī)器并利用這些機(jī)器對(duì)受害者同時(shí)實(shí)施攻擊,。
  本文提出的多層次解決方案采取了3種措施來防御DDoS攻擊:
    (1) 提出網(wǎng)絡(luò)節(jié)流和服務(wù)器均衡算法
  在圖5所示的云平臺(tái)子系統(tǒng)中,,采用了負(fù)載均衡的算法。該算法由負(fù)載監(jiān)控,、負(fù)載調(diào)整和負(fù)載策略控制器3個(gè)子模塊共同協(xié)作完成。

    (2) 提出報(bào)文過濾算法
  在圖5所示的云平臺(tái)接入子系統(tǒng)中,反DDoS模塊采用了報(bào)文過濾算法,。具體來說,,采用了入口報(bào)文過濾和路由報(bào)文過濾兩種算法。入口報(bào)文過濾[4](Ingress Filtering)是一種對(duì)付匿名攻擊的方,,可以過濾掉偽造源IP地址的數(shù)據(jù)包,。本文將這種機(jī)制配置在路由器的入口,通過網(wǎng)絡(luò)提供者利用路由器將來源地址不屬于該客戶區(qū)域的數(shù)據(jù)包過濾掉,。
    (3) 為云平臺(tái)安裝防火墻
  在反DDoS模塊中,,系統(tǒng)采用的另一方法是在PaaS云平臺(tái)中加裝防火墻系統(tǒng),使得無論是進(jìn)入還是送出防火墻的數(shù)據(jù)都經(jīng)過嚴(yán)格過濾,。同時(shí),,在防火墻中關(guān)掉未使用的端口號(hào),從而防止容器從外部被入侵,。
3.3.2 預(yù)防網(wǎng)絡(luò)監(jiān)聽與端口掃描
 近年來,,網(wǎng)絡(luò)監(jiān)聽和端口掃描一直是計(jì)算機(jī)網(wǎng)絡(luò)安全的敏感話題,它能造成極大的危害,。網(wǎng)絡(luò)監(jiān)聽是指將網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)捕獲并進(jìn)行分析的行為,。端口掃描是一種非常重要的預(yù)攻擊探測手段。通過端口掃描可以知道目標(biāo)主機(jī)上開放了哪些端口,、運(yùn)行了哪些服務(wù),,這些都是入侵系統(tǒng)的可能途徑[6]。
 在多層次的云平臺(tái)解決方案中,,由反監(jiān)聽掃描模塊來預(yù)防網(wǎng)絡(luò)監(jiān)聽和端口掃描,。它采取了3種方法來預(yù)防網(wǎng)絡(luò)監(jiān)聽與端口掃描:
    (1) 在解決方案中利用SATAN等工具分析網(wǎng)絡(luò),從而識(shí)別出一些與網(wǎng)絡(luò)相關(guān)的安全問題,;
    (2) 在PaaS平臺(tái)上通過防火墻技術(shù)監(jiān)聽,、限制以及更改跨越防火墻的數(shù)據(jù)流,盡可能地對(duì)外部網(wǎng)絡(luò)屏蔽有關(guān)被保護(hù)網(wǎng)絡(luò)的信息,、結(jié)構(gòu),,實(shí)現(xiàn)網(wǎng)絡(luò)的安全保護(hù);
    (3) 在PaaS平臺(tái)中對(duì)傳輸?shù)男畔⑦M(jìn)行加密,。使用手段使監(jiān)聽者不能有效地獲得要監(jiān)聽的信息,,使得即使監(jiān)聽者可以得到所有的網(wǎng)絡(luò)通信包,仍然不能獲得有用的信息,。
    本論文研究了PaaS云平臺(tái)所面臨的一些安全問題,,并從容器內(nèi)部應(yīng)用安全、容器自身安全,、容器外部的入侵防御安全三個(gè)方面給出了多層次的解決方案,。促進(jìn)了云計(jì)算的推廣和應(yīng)用,。
參考文獻(xiàn)
[1] NORT H S. 網(wǎng)絡(luò)入侵檢測分析員手冊[M].北京:人民郵電出版社,2000.
[2] WONG W K, CHEUNG D W, KAO B. Secure kNN computation on encrypted databases[J]. ACM SIGMOD International Conference on Management of Data.2009:139-152.
[3] Apache. Hadoop[EB/OL].[2012-05-12].http://hadoop.apache.org/.
[4] 林兆驥.云計(jì)算安全關(guān)鍵問題研究[J].信息化研究,2011,37(2):1-4.
[5] SUBASHINI S, KAVITHA V. A survey on security issues in service delivery models of cloud computing[C]. India: Anna University Tirunelveli.2007.
[6] 唐曉明,,梁錦華.網(wǎng)絡(luò)端口掃描及其防御技術(shù)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2002,23(9):15-17.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。