廖方圓
(中國電子科技集團公司,北京100846)
SOA面向服務架構是為了解決網絡中心環(huán)境下業(yè)務集成和信息交互的需要,通過組件間的動態(tài)連接和協(xié)同完成特定任務的分布式軟件系統(tǒng)架構。服務間通過定義良好的接口和策略產生聯(lián)系,這些接口的實現(xiàn)是獨立硬件平臺、操作系統(tǒng)或者編程語言的,使得SOA架構下承載功能單元的Web服務能夠以統(tǒng)一的方式進行交互。功能的服務化適應了信息系統(tǒng)演進、集成和發(fā)展的趨勢,促進了信息資源的共享,提升了業(yè)務交互的能力,保障了功能重組和編排的靈活性,為構建面向任務的信息保障體系提供了有力支撐[1]。
與傳統(tǒng)終端-服務器的運行方式相比,應用系統(tǒng)功能的抽象和服務化極大提升了系統(tǒng)組件的兼容性和靈活性,但也引入了新的安全風險,安全問題成為制約信息系統(tǒng)集成和資源共享發(fā)展的瓶頸。在網絡化服務環(huán)境中用戶、資源都可能是動態(tài)的,網絡域的邊界逐漸消失,服務運行的動態(tài)性、復雜性和跨組織的松耦合性使服務系統(tǒng)的可認證性、機密性、完整性和可用性面臨嚴重的攻擊威脅。現(xiàn)有的安全解決方案包括兩類,一種是通過加固來增強服務自身的安全防護能力來抵御攻擊;另一種是利用服務環(huán)境的靈活重構、動態(tài)組合的優(yōu)點,在服務面臨風險時通過主動遷移來規(guī)避入侵,從而確保服務交付的連續(xù)性[2-3]。從服務全生命周期安全防護的角度出發(fā),將這兩類方式有機結合,可以預期實現(xiàn)Web安全防護體系的進一步完善。
SOA由于其分布、松耦合和高度互操作性的特點,非常適于成為實現(xiàn)網絡中心性和信息共享的關鍵技術,服務通過動態(tài)組合可以支援不同種類的應用業(yè)務,保證信息順暢流動,按需使用。但傳統(tǒng)業(yè)務系統(tǒng)由面向流程向面向服務轉化的過程中,不可避免地會因機制不成熟或外部原因導致安全問題。
安全威脅首先來自于攻擊者對服務體系了解的不斷深入。攻擊者在服務體系、實現(xiàn)接口、消息格式、通信協(xié)議等方面進行漏洞挖掘,攻擊的目標包括但不限于終端系統(tǒng)、網絡安全設備、應用服務和管理平臺等,攻擊手段包括身份仿冒,可用性攻擊,非法授權和系統(tǒng)入侵等,其存在對網絡設施的正常運行、管理和各類業(yè)務系統(tǒng)的功能實現(xiàn)造成了嚴重威脅。
另一方面,服務環(huán)境下特有的消息傳遞、服務管理、服務發(fā)現(xiàn)、服務提供和數據存儲等都存在新的防護需求,安全防護的難度加大,進行有效安全防護的復雜性空前提升。除原有的身份鑒別、權限分配、安全審計、入侵檢測等傳統(tǒng)安全機制以外,必須根據Web服務運行特點和應用模式設計針對性的防護手段,使合法用戶能夠在安全訪問策略的控制下訪問所需資源,隔離惡意用戶,提供端到端的可靠信息交互能力。
在分布式環(huán)境中,面向服務的Web應用程序依靠本地或遠程服務器實現(xiàn)功能的交付,它們通常架設在局域網或環(huán)境復雜的廣域網中,從而帶來明顯的安全問題。由于Web服務的開放性,必然會導致惡意服務請求的攻擊和潛在的安全隱患不斷出現(xiàn),其應對手段包括訪問安全、消息安全、網絡入侵防護、安全監(jiān)測審計和服務容災幾個方面[4]。
訪問安全的目標是對服務關鍵資源進行保護,防止服務和數據被非法用戶訪問。訪問安全的關鍵要素是對Web服務的用戶進行身份認證和權限鑒別,在認證方面通過采用PKI安全架構,屏蔽底層的認證機制差異,提供獨立于服務具體技術實現(xiàn)的信任關系管理機制,實現(xiàn)證書簽發(fā)、驗證、更新、吊銷服務與時間戳機制,解決面向服務應用環(huán)境中訪問請求者的身份認證問題。用戶必須使用數字證書證明其身份后才能使用服務,并以此為基礎提供單點登錄、合作登錄、聯(lián)合認證和全局退出等附加功能;在鑒權方面通過策略描述服務的控制規(guī)則,將用戶、角色與允許訪問的對象進行綁定,實現(xiàn)細粒度的訪問控制,將業(yè)務細節(jié)與策略管理分離,降低了訪問安全實現(xiàn)的復雜性。
Web服務可被各種程序和數據存儲訪問,確保相關信息在生成、傳輸、處理過程中的安全成為迫切需求。并且在網絡中心環(huán)境下,復雜的Web服務可能會牽涉到多個動態(tài)網絡的位置,這些位置有可能被組合為更大的交互場景(例如構成一個服務調用鏈)。這些位置間可能會以服務化的方式傳遞敏感信息,因此需要為整個服務訪問流程提供端到端的消息安全。
在用戶與Web服務與進行通信和信息交互時,在傳輸層面通過HTTP/SSL技術進行雙向傳輸保護;在消息層使用用XML簽名和加密機制確保消息接收者的消息安全,使服務在通信過程中和消息轉發(fā)過程中確保機密性和完整性。對于服務鏈的使用場景,除在用戶和服務之間建立安全通信隧道外,在所有相關的服務之間也應建立安全通信隧道,從而使參與服務交互流程的所有節(jié)點位于安全的通信平面中,確保消息傳遞的完整性和機密性。
由于Web服務的開放性,必然會導致惡意服務請求的攻擊和潛在的安全隱患不斷出現(xiàn)。Web服務高峰期大量的XML文檔也會增加網絡資源的開銷,增加訪問的延遲時間,未受保護的服務很容易超負荷運轉,與傳統(tǒng)的二進制通信協(xié)議相比,XML最高可以消耗高達50倍的帶寬,這不僅會導致交互系統(tǒng)性能下降,而且會為分布式拒絕服務攻擊提供可趁之機。在這種情況下,如果沒有攻擊檢測、流量過濾、負載均衡等防護手段,SOA服務將很容易受到此類攻擊,服務器被來自黑客的大量SOAP消息所“淹沒”,影響服務的正常運行,甚至宕機。
采用消息攔截轉發(fā)技術,對用戶的服務請求和服務器的應答進行檢查和驗證,針對HTTP應用模式和WEB service的進行網絡層和應用層攻擊防護,實現(xiàn)SQL注入、跨站腳本攻擊、SOAP消息合規(guī)性檢查、XML攻擊安全防護等能力。
Web服務的安全審計通過數據的采集、分析、識別,實時動態(tài)監(jiān)測通信內容、行為和流量,發(fā)現(xiàn)和捕獲各種敏感信息、違規(guī)行為,實時報警響應,全面記錄Web服務中的各種會話和事件作為審計線索,實現(xiàn)對信息的智能關聯(lián)分析、評估及安全事件的準確全程跟蹤定位,有助于發(fā)現(xiàn)安全漏洞、違規(guī)操作、欺騙以及試圖規(guī)避安全措施的行為,從而能夠進行服務安全狀態(tài)的確認。
通過備份與恢復技術實現(xiàn)系統(tǒng)的高可用性,基于服務的分布式部署、安全性檢測和數據、狀態(tài)的一致性同步機制,為Web服務提供風險評估、異地恢復、容災運行功能,保障服務環(huán)境在遭受人為攻擊、自然災難等情況下的服務連續(xù)性,提高系統(tǒng)的生存能力。
Web服務結構日益復雜,可以預期軟件錯誤和系統(tǒng)風險將進一步增加,同時在面向服務的環(huán)境Web服務頻繁調用、密集訪問和惡意攻擊者的持續(xù)入侵將對服務交付造成巨大的壓力。建立能抵抗惡意攻擊、彈性靈活、抗毀頑存的可遷移服務安全機制是保障服務化環(huán)境中服務的安全性、可靠性和可用性的重要手段。
Web服務在運行過程中面臨各種各樣的攻擊威脅及風險,受其影響,服務在初始化完成后并不是始終處于受保護的運行狀態(tài),根據通常情況下Web服務可能進入的狀態(tài)及狀態(tài)間的轉移關系,可以構建出服務節(jié)點狀態(tài)生命周期以明確服務安全狀態(tài)遷移的作用時機。
將服務安全的生命周期以狀態(tài)機的形式描述。如圖1所示,服務在初始化完成后即進入穩(wěn)定的受保護運行狀態(tài),服務節(jié)點如未受到攻擊破壞,則進行定期維護;在攻擊入侵來臨時,服務自身的狀態(tài)檢測及安全防護機制發(fā)揮作用,在攻擊強度未到達防護的閾值范圍內時依然對外提供服務,并在攻擊因素消除后返回至受保護運行狀態(tài);如果攻擊強度過大,即將導致服務癱瘓,Web服務出于自我保護的目的,會進入中止狀態(tài)并向周邊運行正常的服務節(jié)點發(fā)起遷移請求,待遷移完成后重啟進入初始化狀態(tài);此外,正常運行的服務節(jié)點在自身資源允許的情況下,可以接受來自受攻擊節(jié)點的遷移請求,在完成狀態(tài)和數據的同步后準備就緒,加載安全防護機制并進入受保護的運行狀態(tài)。

圖1 服務節(jié)點生命周期狀態(tài)轉移Fig.1 State transition graph of service node life cycle
可遷移服務安全功能結構基于服務安全狀態(tài)生命周期設計,使服務節(jié)點具備可遷移的服務安全防護能力。可遷移服務安全功能結構如圖2所示,安全功能位于服務層和業(yè)務層之間,由安全防護模塊、服務風險檢測模塊、服務遷移代理模塊、服務資源同步模塊和安全遷移守護模塊構成。

圖2 可遷移服務安全功能結構Fig.2 Structure of migration-supported service security function
(1)安全防護模塊
安全防護模塊實現(xiàn)用戶的身份驗證、權限判決和攻擊檢測能力。模塊通過對服務交互的內容進行協(xié)議解析,獲得SOAP請求的具體信息,包括URL、主機名稱、用戶地址、用戶證書和身份信息等,在通過有效性驗證和數字簽名驗證之后,調用服務訪問控制策略接口取得相關的訪問控制策略,將服務請求者與請求的資源間的訪問關系進行判決,如果不符合規(guī)則就拒絕服務的調用。在攻擊檢測方面,模塊通過編解碼標準化對服務請求內容各種編碼格式的數據進行解碼處理,轉化為可識別數據格式。在解碼后,對數據進行攻擊檢測,通過基于規(guī)則的檢測方式發(fā)現(xiàn)各種有效的服務注入攻擊,通過基于會話的檢測方式來發(fā)現(xiàn)攻擊試探行為和DOS攻擊行為。
(2)服務風險檢測模塊
服務風險檢測模塊實現(xiàn)服務運行安全性、正確性和可用性的監(jiān)控。通過對服務節(jié)點、Web服務運行狀態(tài)的各項指標數據進行收集和統(tǒng)計,來綜合評定服務節(jié)點和承載服務面臨的安全風險,相關指標包括資源的占用情況、服務響應時間、服務結果的正確性、服務節(jié)點遭受到的攻擊類型以及攻擊程度。在計算得出的服務風險大于一定閾值的情況下,節(jié)點將主動發(fā)起遷移請求,試圖將所承載的所有服務和相關安全防護措施遷移至另一節(jié)點上。
(3)服務遷移代理模塊
服務遷移代理模塊實現(xiàn)服務遷移的發(fā)起,服務遷移過程的管理、服務遷移請求的接收等功能。在服務風險檢測模塊感知服務風險偏高,功能水平已經即將下降至不可接受的程度時,會向服務遷移代理模塊發(fā)起警告,通知服務遷移。服務遷移代理模塊隨即向其它各服務節(jié)點發(fā)起服務遷移請求,并由相關節(jié)點的服務遷移代理模塊評估處理,在選擇一個較優(yōu)的服務遷移目標后,服務遷移代理模塊發(fā)起狀態(tài)數據同步操作,開始節(jié)點間資源的傳輸進程。另外,在遷移完畢后,服務遷移代理模塊還必須通知服務管理中心對服務的地址進行重定向,以保證服務提供的連續(xù)性。
(4)服務資源同步模塊
服務資源同步模塊實現(xiàn)節(jié)點間服務狀態(tài)、服務數據等信息的同步,將業(yè)務運行狀態(tài)、暫存變量、配置信息和資源數據等序列化為可以網絡傳輸的格式,在通知接收節(jié)點做好數據傳輸準備后,通過數據流進行服務資源的同步,并于傳輸完畢后在目標服務節(jié)點對數據進行還原、校驗,確保服務節(jié)點遷移前后服務類型、服務內容、上下文信息的一致性。
(5)安全遷移守護模塊
安全遷移守護模塊實現(xiàn)服務在遷移發(fā)起、資源同步和服務重新上線過程中的主動安全防護,安全遷移守護模塊對系統(tǒng)服務的遷移動作保持實時監(jiān)控,一旦感知到遷移發(fā)起,安全遷移守護模塊即通過自身機制實現(xiàn)遷移過程的安全增強。包括目標安全防護能力檢測、安全參數據協(xié)商、資源同步過程過的安全隧道建立、服務遷移后的安全基線掃描和安全策略配置同步等,確保服務在遷移過程中的安全防護能夠實現(xiàn)全生命周期的無縫覆蓋。
服務安全遷移過程(見圖2)由遷移準備、遷移協(xié)商、資源同步、服務上線等步驟組成,安全遷移守護進程在遷移過程的關鍵節(jié)點實現(xiàn)安全防護功能。

圖3 服務安全遷移過程Fig.3 Secure migration process of service
遷移準備過程:
1)在節(jié)點a服務運行過程中,服務風險模塊對服務的運行狀態(tài)進行持續(xù)檢測。
2)如果風險過高,則向服務遷移代理模塊發(fā)出告警。
3)服務遷移代理模塊尋找可供服務遷移的對端節(jié)點。
遷移協(xié)商過程:
4)服務遷移代理模塊在返回應答請求前,通知安全遷移守護模塊進行環(huán)境確認。
5)安全遷移守護模塊調用服務風險檢測模塊,檢查當前b節(jié)點服務的安全狀態(tài)。
6)服務安全狀態(tài)滿足策略,向服務遷移代理模塊返回確認結果。
7)向發(fā)起請求的服務遷移代理模塊回復。
資源同步過程:
8)在遷移前,安全遷移代理模塊攔截資源同步操作。
9)遷出和遷入服務節(jié)點的安全遷移代理模塊進行資源同步通信安全參數、源節(jié)點安全策略等配置的協(xié)商。
10)安全遷移守護模塊通知服務資源同步模塊可以開始狀態(tài)同步。
11)服務資源同步模塊間基于已協(xié)商的安全參數,通過安全隧道傳輸需同步的狀態(tài)和數據。
12)服務資源同步模塊通知服務遷移代理模塊同步完成。
服務上線過程:
13)安全遷移守護模塊對同步后的節(jié)點狀態(tài)進行檢查,配置相應的安全防護參數,使遷入節(jié)點的安全防護策略生效。
14)通知遷出節(jié)點的服務遷移代理,服務即將停止運行。
針對分布式環(huán)境中服務全生命周期安全防護的應用需求,提出了一種可遷移的Web服務安全防護方法,將傳統(tǒng)web服務安全機制與服務生命周期的可遷移能力結合,不僅能夠在服務節(jié)點正常運行過程中通過安全防護模塊支撐服務的認證、訪問控制和攻擊檢測,而且能夠對服務遷移的全過程進行安全增強,實現(xiàn)無縫的安全防護能力,使服務環(huán)境在確保安全性的同時不失靈活性,促進面向服務環(huán)境下安全體系的不斷完善。
[1] 龍興剛.Web應用的安全現(xiàn)狀與防護技術研究[J].通信技術,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服務安全關鍵技術研究綜述[J].網絡安全技術與應用,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服務在線遷移問題研究與實現(xiàn)[D].山東:山東大學.2012.CAI Qi- sheng.Research and Implementation of Web Service Online Migration[D].Dissertation of Master’s Degree.Shandong University.2012.
[4] 陳世林,王強,曾夢岐,等.Web應用增強安全模型[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.