廖方圓
(中國電子科技集團公司,北京100846)
SOA面向服務(wù)架構(gòu)是為了解決網(wǎng)絡(luò)中心環(huán)境下業(yè)務(wù)集成和信息交互的需要,通過組件間的動態(tài)連接和協(xié)同完成特定任務(wù)的分布式軟件系統(tǒng)架構(gòu)。服務(wù)間通過定義良好的接口和策略產(chǎn)生聯(lián)系,這些接口的實現(xiàn)是獨立硬件平臺、操作系統(tǒng)或者編程語言的,使得SOA架構(gòu)下承載功能單元的Web服務(wù)能夠以統(tǒng)一的方式進行交互。功能的服務(wù)化適應(yīng)了信息系統(tǒng)演進、集成和發(fā)展的趨勢,促進了信息資源的共享,提升了業(yè)務(wù)交互的能力,保障了功能重組和編排的靈活性,為構(gòu)建面向任務(wù)的信息保障體系提供了有力支撐[1]。
與傳統(tǒng)終端-服務(wù)器的運行方式相比,應(yīng)用系統(tǒng)功能的抽象和服務(wù)化極大提升了系統(tǒng)組件的兼容性和靈活性,但也引入了新的安全風險,安全問題成為制約信息系統(tǒng)集成和資源共享發(fā)展的瓶頸。在網(wǎng)絡(luò)化服務(wù)環(huán)境中用戶、資源都可能是動態(tài)的,網(wǎng)絡(luò)域的邊界逐漸消失,服務(wù)運行的動態(tài)性、復(fù)雜性和跨組織的松耦合性使服務(wù)系統(tǒng)的可認證性、機密性、完整性和可用性面臨嚴重的攻擊威脅?,F(xiàn)有的安全解決方案包括兩類,一種是通過加固來增強服務(wù)自身的安全防護能力來抵御攻擊;另一種是利用服務(wù)環(huán)境的靈活重構(gòu)、動態(tài)組合的優(yōu)點,在服務(wù)面臨風險時通過主動遷移來規(guī)避入侵,從而確保服務(wù)交付的連續(xù)性[2-3]。從服務(wù)全生命周期安全防護的角度出發(fā),將這兩類方式有機結(jié)合,可以預(yù)期實現(xiàn)Web安全防護體系的進一步完善。
SOA由于其分布、松耦合和高度互操作性的特點,非常適于成為實現(xiàn)網(wǎng)絡(luò)中心性和信息共享的關(guān)鍵技術(shù),服務(wù)通過動態(tài)組合可以支援不同種類的應(yīng)用業(yè)務(wù),保證信息順暢流動,按需使用。但傳統(tǒng)業(yè)務(wù)系統(tǒng)由面向流程向面向服務(wù)轉(zhuǎn)化的過程中,不可避免地會因機制不成熟或外部原因?qū)е掳踩珕栴}。
安全威脅首先來自于攻擊者對服務(wù)體系了解的不斷深入。攻擊者在服務(wù)體系、實現(xiàn)接口、消息格式、通信協(xié)議等方面進行漏洞挖掘,攻擊的目標包括但不限于終端系統(tǒng)、網(wǎng)絡(luò)安全設(shè)備、應(yīng)用服務(wù)和管理平臺等,攻擊手段包括身份仿冒,可用性攻擊,非法授權(quán)和系統(tǒng)入侵等,其存在對網(wǎng)絡(luò)設(shè)施的正常運行、管理和各類業(yè)務(wù)系統(tǒng)的功能實現(xiàn)造成了嚴重威脅。
另一方面,服務(wù)環(huán)境下特有的消息傳遞、服務(wù)管理、服務(wù)發(fā)現(xiàn)、服務(wù)提供和數(shù)據(jù)存儲等都存在新的防護需求,安全防護的難度加大,進行有效安全防護的復(fù)雜性空前提升。除原有的身份鑒別、權(quán)限分配、安全審計、入侵檢測等傳統(tǒng)安全機制以外,必須根據(jù)Web服務(wù)運行特點和應(yīng)用模式設(shè)計針對性的防護手段,使合法用戶能夠在安全訪問策略的控制下訪問所需資源,隔離惡意用戶,提供端到端的可靠信息交互能力。
在分布式環(huán)境中,面向服務(wù)的Web應(yīng)用程序依靠本地或遠程服務(wù)器實現(xiàn)功能的交付,它們通常架設(shè)在局域網(wǎng)或環(huán)境復(fù)雜的廣域網(wǎng)中,從而帶來明顯的安全問題。由于Web服務(wù)的開放性,必然會導(dǎo)致惡意服務(wù)請求的攻擊和潛在的安全隱患不斷出現(xiàn),其應(yīng)對手段包括訪問安全、消息安全、網(wǎng)絡(luò)入侵防護、安全監(jiān)測審計和服務(wù)容災(zāi)幾個方面[4]。
訪問安全的目標是對服務(wù)關(guān)鍵資源進行保護,防止服務(wù)和數(shù)據(jù)被非法用戶訪問。訪問安全的關(guān)鍵要素是對Web服務(wù)的用戶進行身份認證和權(quán)限鑒別,在認證方面通過采用PKI安全架構(gòu),屏蔽底層的認證機制差異,提供獨立于服務(wù)具體技術(shù)實現(xiàn)的信任關(guān)系管理機制,實現(xiàn)證書簽發(fā)、驗證、更新、吊銷服務(wù)與時間戳機制,解決面向服務(wù)應(yīng)用環(huán)境中訪問請求者的身份認證問題。用戶必須使用數(shù)字證書證明其身份后才能使用服務(wù),并以此為基礎(chǔ)提供單點登錄、合作登錄、聯(lián)合認證和全局退出等附加功能;在鑒權(quán)方面通過策略描述服務(wù)的控制規(guī)則,將用戶、角色與允許訪問的對象進行綁定,實現(xiàn)細粒度的訪問控制,將業(yè)務(wù)細節(jié)與策略管理分離,降低了訪問安全實現(xiàn)的復(fù)雜性。
Web服務(wù)可被各種程序和數(shù)據(jù)存儲訪問,確保相關(guān)信息在生成、傳輸、處理過程中的安全成為迫切需求。并且在網(wǎng)絡(luò)中心環(huán)境下,復(fù)雜的Web服務(wù)可能會牽涉到多個動態(tài)網(wǎng)絡(luò)的位置,這些位置有可能被組合為更大的交互場景(例如構(gòu)成一個服務(wù)調(diào)用鏈)。這些位置間可能會以服務(wù)化的方式傳遞敏感信息,因此需要為整個服務(wù)訪問流程提供端到端的消息安全。
在用戶與Web服務(wù)與進行通信和信息交互時,在傳輸層面通過HTTP/SSL技術(shù)進行雙向傳輸保護;在消息層使用用XML簽名和加密機制確保消息接收者的消息安全,使服務(wù)在通信過程中和消息轉(zhuǎn)發(fā)過程中確保機密性和完整性。對于服務(wù)鏈的使用場景,除在用戶和服務(wù)之間建立安全通信隧道外,在所有相關(guān)的服務(wù)之間也應(yīng)建立安全通信隧道,從而使參與服務(wù)交互流程的所有節(jié)點位于安全的通信平面中,確保消息傳遞的完整性和機密性。
由于Web服務(wù)的開放性,必然會導(dǎo)致惡意服務(wù)請求的攻擊和潛在的安全隱患不斷出現(xiàn)。Web服務(wù)高峰期大量的XML文檔也會增加網(wǎng)絡(luò)資源的開銷,增加訪問的延遲時間,未受保護的服務(wù)很容易超負荷運轉(zhuǎn),與傳統(tǒng)的二進制通信協(xié)議相比,XML最高可以消耗高達50倍的帶寬,這不僅會導(dǎo)致交互系統(tǒng)性能下降,而且會為分布式拒絕服務(wù)攻擊提供可趁之機。在這種情況下,如果沒有攻擊檢測、流量過濾、負載均衡等防護手段,SOA服務(wù)將很容易受到此類攻擊,服務(wù)器被來自黑客的大量SOAP消息所“淹沒”,影響服務(wù)的正常運行,甚至宕機。
采用消息攔截轉(zhuǎn)發(fā)技術(shù),對用戶的服務(wù)請求和服務(wù)器的應(yīng)答進行檢查和驗證,針對HTTP應(yīng)用模式和WEB service的進行網(wǎng)絡(luò)層和應(yīng)用層攻擊防護,實現(xiàn)SQL注入、跨站腳本攻擊、SOAP消息合規(guī)性檢查、XML攻擊安全防護等能力。
Web服務(wù)的安全審計通過數(shù)據(jù)的采集、分析、識別,實時動態(tài)監(jiān)測通信內(nèi)容、行為和流量,發(fā)現(xiàn)和捕獲各種敏感信息、違規(guī)行為,實時報警響應(yīng),全面記錄Web服務(wù)中的各種會話和事件作為審計線索,實現(xiàn)對信息的智能關(guān)聯(lián)分析、評估及安全事件的準確全程跟蹤定位,有助于發(fā)現(xiàn)安全漏洞、違規(guī)操作、欺騙以及試圖規(guī)避安全措施的行為,從而能夠進行服務(wù)安全狀態(tài)的確認。
通過備份與恢復(fù)技術(shù)實現(xiàn)系統(tǒng)的高可用性,基于服務(wù)的分布式部署、安全性檢測和數(shù)據(jù)、狀態(tài)的一致性同步機制,為Web服務(wù)提供風險評估、異地恢復(fù)、容災(zāi)運行功能,保障服務(wù)環(huán)境在遭受人為攻擊、自然災(zāi)難等情況下的服務(wù)連續(xù)性,提高系統(tǒng)的生存能力。
Web服務(wù)結(jié)構(gòu)日益復(fù)雜,可以預(yù)期軟件錯誤和系統(tǒng)風險將進一步增加,同時在面向服務(wù)的環(huán)境Web服務(wù)頻繁調(diào)用、密集訪問和惡意攻擊者的持續(xù)入侵將對服務(wù)交付造成巨大的壓力。建立能抵抗惡意攻擊、彈性靈活、抗毀頑存的可遷移服務(wù)安全機制是保障服務(wù)化環(huán)境中服務(wù)的安全性、可靠性和可用性的重要手段。
Web服務(wù)在運行過程中面臨各種各樣的攻擊威脅及風險,受其影響,服務(wù)在初始化完成后并不是始終處于受保護的運行狀態(tài),根據(jù)通常情況下Web服務(wù)可能進入的狀態(tài)及狀態(tài)間的轉(zhuǎn)移關(guān)系,可以構(gòu)建出服務(wù)節(jié)點狀態(tài)生命周期以明確服務(wù)安全狀態(tài)遷移的作用時機。
將服務(wù)安全的生命周期以狀態(tài)機的形式描述。如圖1所示,服務(wù)在初始化完成后即進入穩(wěn)定的受保護運行狀態(tài),服務(wù)節(jié)點如未受到攻擊破壞,則進行定期維護;在攻擊入侵來臨時,服務(wù)自身的狀態(tài)檢測及安全防護機制發(fā)揮作用,在攻擊強度未到達防護的閾值范圍內(nèi)時依然對外提供服務(wù),并在攻擊因素消除后返回至受保護運行狀態(tài);如果攻擊強度過大,即將導(dǎo)致服務(wù)癱瘓,Web服務(wù)出于自我保護的目的,會進入中止狀態(tài)并向周邊運行正常的服務(wù)節(jié)點發(fā)起遷移請求,待遷移完成后重啟進入初始化狀態(tài);此外,正常運行的服務(wù)節(jié)點在自身資源允許的情況下,可以接受來自受攻擊節(jié)點的遷移請求,在完成狀態(tài)和數(shù)據(jù)的同步后準備就緒,加載安全防護機制并進入受保護的運行狀態(tài)。
圖1 服務(wù)節(jié)點生命周期狀態(tài)轉(zhuǎn)移Fig.1 State transition graph of service node life cycle
可遷移服務(wù)安全功能結(jié)構(gòu)基于服務(wù)安全狀態(tài)生命周期設(shè)計,使服務(wù)節(jié)點具備可遷移的服務(wù)安全防護能力??蛇w移服務(wù)安全功能結(jié)構(gòu)如圖2所示,安全功能位于服務(wù)層和業(yè)務(wù)層之間,由安全防護模塊、服務(wù)風險檢測模塊、服務(wù)遷移代理模塊、服務(wù)資源同步模塊和安全遷移守護模塊構(gòu)成。
圖2 可遷移服務(wù)安全功能結(jié)構(gòu)Fig.2 Structure of migration-supported service security function
(1)安全防護模塊
安全防護模塊實現(xiàn)用戶的身份驗證、權(quán)限判決和攻擊檢測能力。模塊通過對服務(wù)交互的內(nèi)容進行協(xié)議解析,獲得SOAP請求的具體信息,包括URL、主機名稱、用戶地址、用戶證書和身份信息等,在通過有效性驗證和數(shù)字簽名驗證之后,調(diào)用服務(wù)訪問控制策略接口取得相關(guān)的訪問控制策略,將服務(wù)請求者與請求的資源間的訪問關(guān)系進行判決,如果不符合規(guī)則就拒絕服務(wù)的調(diào)用。在攻擊檢測方面,模塊通過編解碼標準化對服務(wù)請求內(nèi)容各種編碼格式的數(shù)據(jù)進行解碼處理,轉(zhuǎn)化為可識別數(shù)據(jù)格式。在解碼后,對數(shù)據(jù)進行攻擊檢測,通過基于規(guī)則的檢測方式發(fā)現(xiàn)各種有效的服務(wù)注入攻擊,通過基于會話的檢測方式來發(fā)現(xiàn)攻擊試探行為和DOS攻擊行為。
(2)服務(wù)風險檢測模塊
服務(wù)風險檢測模塊實現(xiàn)服務(wù)運行安全性、正確性和可用性的監(jiān)控。通過對服務(wù)節(jié)點、Web服務(wù)運行狀態(tài)的各項指標數(shù)據(jù)進行收集和統(tǒng)計,來綜合評定服務(wù)節(jié)點和承載服務(wù)面臨的安全風險,相關(guān)指標包括資源的占用情況、服務(wù)響應(yīng)時間、服務(wù)結(jié)果的正確性、服務(wù)節(jié)點遭受到的攻擊類型以及攻擊程度。在計算得出的服務(wù)風險大于一定閾值的情況下,節(jié)點將主動發(fā)起遷移請求,試圖將所承載的所有服務(wù)和相關(guān)安全防護措施遷移至另一節(jié)點上。
(3)服務(wù)遷移代理模塊
服務(wù)遷移代理模塊實現(xiàn)服務(wù)遷移的發(fā)起,服務(wù)遷移過程的管理、服務(wù)遷移請求的接收等功能。在服務(wù)風險檢測模塊感知服務(wù)風險偏高,功能水平已經(jīng)即將下降至不可接受的程度時,會向服務(wù)遷移代理模塊發(fā)起警告,通知服務(wù)遷移。服務(wù)遷移代理模塊隨即向其它各服務(wù)節(jié)點發(fā)起服務(wù)遷移請求,并由相關(guān)節(jié)點的服務(wù)遷移代理模塊評估處理,在選擇一個較優(yōu)的服務(wù)遷移目標后,服務(wù)遷移代理模塊發(fā)起狀態(tài)數(shù)據(jù)同步操作,開始節(jié)點間資源的傳輸進程。另外,在遷移完畢后,服務(wù)遷移代理模塊還必須通知服務(wù)管理中心對服務(wù)的地址進行重定向,以保證服務(wù)提供的連續(xù)性。
(4)服務(wù)資源同步模塊
服務(wù)資源同步模塊實現(xiàn)節(jié)點間服務(wù)狀態(tài)、服務(wù)數(shù)據(jù)等信息的同步,將業(yè)務(wù)運行狀態(tài)、暫存變量、配置信息和資源數(shù)據(jù)等序列化為可以網(wǎng)絡(luò)傳輸?shù)母袷?,在通知接收?jié)點做好數(shù)據(jù)傳輸準備后,通過數(shù)據(jù)流進行服務(wù)資源的同步,并于傳輸完畢后在目標服務(wù)節(jié)點對數(shù)據(jù)進行還原、校驗,確保服務(wù)節(jié)點遷移前后服務(wù)類型、服務(wù)內(nèi)容、上下文信息的一致性。
(5)安全遷移守護模塊
安全遷移守護模塊實現(xiàn)服務(wù)在遷移發(fā)起、資源同步和服務(wù)重新上線過程中的主動安全防護,安全遷移守護模塊對系統(tǒng)服務(wù)的遷移動作保持實時監(jiān)控,一旦感知到遷移發(fā)起,安全遷移守護模塊即通過自身機制實現(xiàn)遷移過程的安全增強。包括目標安全防護能力檢測、安全參數(shù)據(jù)協(xié)商、資源同步過程過的安全隧道建立、服務(wù)遷移后的安全基線掃描和安全策略配置同步等,確保服務(wù)在遷移過程中的安全防護能夠?qū)崿F(xiàn)全生命周期的無縫覆蓋。
服務(wù)安全遷移過程(見圖2)由遷移準備、遷移協(xié)商、資源同步、服務(wù)上線等步驟組成,安全遷移守護進程在遷移過程的關(guān)鍵節(jié)點實現(xiàn)安全防護功能。
圖3 服務(wù)安全遷移過程Fig.3 Secure migration process of service
遷移準備過程:
1)在節(jié)點a服務(wù)運行過程中,服務(wù)風險模塊對服務(wù)的運行狀態(tài)進行持續(xù)檢測。
2)如果風險過高,則向服務(wù)遷移代理模塊發(fā)出告警。
3)服務(wù)遷移代理模塊尋找可供服務(wù)遷移的對端節(jié)點。
遷移協(xié)商過程:
4)服務(wù)遷移代理模塊在返回應(yīng)答請求前,通知安全遷移守護模塊進行環(huán)境確認。
5)安全遷移守護模塊調(diào)用服務(wù)風險檢測模塊,檢查當前b節(jié)點服務(wù)的安全狀態(tài)。
6)服務(wù)安全狀態(tài)滿足策略,向服務(wù)遷移代理模塊返回確認結(jié)果。
7)向發(fā)起請求的服務(wù)遷移代理模塊回復(fù)。
資源同步過程:
8)在遷移前,安全遷移代理模塊攔截資源同步操作。
9)遷出和遷入服務(wù)節(jié)點的安全遷移代理模塊進行資源同步通信安全參數(shù)、源節(jié)點安全策略等配置的協(xié)商。
10)安全遷移守護模塊通知服務(wù)資源同步模塊可以開始狀態(tài)同步。
11)服務(wù)資源同步模塊間基于已協(xié)商的安全參數(shù),通過安全隧道傳輸需同步的狀態(tài)和數(shù)據(jù)。
12)服務(wù)資源同步模塊通知服務(wù)遷移代理模塊同步完成。
服務(wù)上線過程:
13)安全遷移守護模塊對同步后的節(jié)點狀態(tài)進行檢查,配置相應(yīng)的安全防護參數(shù),使遷入節(jié)點的安全防護策略生效。
14)通知遷出節(jié)點的服務(wù)遷移代理,服務(wù)即將停止運行。
針對分布式環(huán)境中服務(wù)全生命周期安全防護的應(yīng)用需求,提出了一種可遷移的Web服務(wù)安全防護方法,將傳統(tǒng)web服務(wù)安全機制與服務(wù)生命周期的可遷移能力結(jié)合,不僅能夠在服務(wù)節(jié)點正常運行過程中通過安全防護模塊支撐服務(wù)的認證、訪問控制和攻擊檢測,而且能夠?qū)Ψ?wù)遷移的全過程進行安全增強,實現(xiàn)無縫的安全防護能力,使服務(wù)環(huán)境在確保安全性的同時不失靈活性,促進面向服務(wù)環(huán)境下安全體系的不斷完善。
[1] 龍興剛.Web應(yīng)用的安全現(xiàn)狀與防護技術(shù)研究[J].通信技術(shù),2013,46(07):63-66.LONG Xing-gang.Security Status and Protection Technology of Web Applications[J].Communications Technology.2013,46(07):63-66.
[2] 夏敏,陳平.Web服務(wù)安全關(guān)鍵技術(shù)研究綜述[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2009(03):69-71.XIA Min,CHEN Ping.Review of Key Security Technologies of Web Service[J].Network Security Technology and Applications.2009(03):69-71.
[3] 蔡啟申.Web服務(wù)在線遷移問題研究與實現(xiàn)[D].山東:山東大學(xué).2012.CAI Qi- sheng.Research and Implementation of Web Service Online Migration[D].Dissertation of Master’s Degree.Shandong University.2012.
[4] 陳世林,王強,曾夢岐,等.Web應(yīng)用增強安全模型[J].信息安全與通信保密,2011(09):87-89,96.CHEN Shi-ling,WANGQiang,ZENG Meng-qi,QING Yu.A Security-Enhanced Model for Web Applications[J].Information Security and Communications Privacy.2011(09):87-89,96.