摘 要:本文主要分析了當(dāng)前的Web服務(wù)器出現(xiàn)了哪些安全問(wèn)題與隱患,在此基礎(chǔ)上,我們提供了XML技術(shù)解決了Web服務(wù)防御的技術(shù)原理、機(jī)制、和配置計(jì)劃;論述了相應(yīng)的算法和實(shí)現(xiàn),并就結(jié)果進(jìn)行展示。
關(guān)鍵詞:防火墻;Web服務(wù)器;網(wǎng)絡(luò)安全
中圖分類號(hào):TP393
1 Web服務(wù)器的安全問(wèn)題與隱患
1.1 存在原因
Web服務(wù)器存在的原因,是在于為了更好地滿足企業(yè)、公司,對(duì)信息的及時(shí)性、交互性、廣泛性的要求,實(shí)現(xiàn)企業(yè)在互聯(lián)網(wǎng)上的自主性與獨(dú)立性,因此,Web服務(wù)器應(yīng)運(yùn)而生。由于B/S服務(wù)體系所占比重日益增加,Web服務(wù)的安全已經(jīng)受到了廣泛的重視。
1.2 安全與隱患
Web服務(wù)是通過(guò)向外界提供各種操作來(lái)完成服務(wù)運(yùn)作的,當(dāng)相關(guān)的操作被惡意地利用,就會(huì)對(duì)系統(tǒng)本身產(chǎn)生極大的危害。
如果一個(gè)Web服務(wù)收到一個(gè)合法的SOAP消息,而這個(gè)消息里面包含一個(gè)非法的操作系統(tǒng)命令(如圖1),Web服務(wù)會(huì)把這個(gè)命令傳遞給操作系統(tǒng)并執(zhí)行,這顯然是不安全的。
圖1
目前,針對(duì)Web服務(wù)的安全性提出了很多新的協(xié)議,如比如AVDL,DSS,XrML,SAML,XML En-cryption和XML Signature等,這些協(xié)議并不能完全防止安全問(wèn)題發(fā)生,除了這些協(xié)議本身固有的局限性之外,還有一部分原因是Web服務(wù)本身的特殊性造成的。
這樣的安全隱患不僅針對(duì)操作系統(tǒng)、服務(wù)器,對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)也是如此。總的來(lái)說(shuō),Web的入侵手法主要分為以下幾種:
(1)利用程序錯(cuò)誤的邊界判斷,進(jìn)行溢出。
(2)用Web服務(wù)器的錯(cuò)誤編碼或解碼執(zhí)行系統(tǒng)命令或查看系統(tǒng)文件。如UNICODE編碼漏洞,如果主機(jī)存在Unicode漏洞就會(huì)返回c盤(pán)內(nèi)的目錄列表。從而暴露目標(biāo)主機(jī)c盤(pán)內(nèi)的文件信息。
2 XML技術(shù)搭建防火墻的實(shí)現(xiàn)。
2.1 解決方法
我們將重點(diǎn)放在使用Web服務(wù)提供的操作上面,這就要求對(duì)傳入的SOAP消息的內(nèi)容進(jìn)行深入的檢查,調(diào)查參數(shù)是否合法。將安全防護(hù)措施提升到應(yīng)用層,為Web服務(wù)提供有效的保護(hù)。
2.2 防御技術(shù)原理
圖2
對(duì)于應(yīng)用層的防御:
(1)XML防火墻必須有能力檢查SOAP消息的內(nèi)容,這決定了XML防火墻本身也應(yīng)該是Web服務(wù)。
(2)用戶可以像使用普通的Web服務(wù)的方式去調(diào)用它提供的操作,但是XML防火墻收到用戶傳遞進(jìn)來(lái)的SOAP消息后,要先對(duì)其中的調(diào)用參數(shù)進(jìn)行檢查,如果沒(méi)有問(wèn)題,就以這些參數(shù)去調(diào)用實(shí)際的Web服務(wù)提供的操作。
2.3 防御機(jī)制
XML防火墻采用“確認(rèn)服務(wù)訪問(wèn)”機(jī)制,即是否有權(quán)訪問(wèn)它所請(qǐng)求的資源,從而控制對(duì)服務(wù)器的訪問(wèn)。
2.4 防御配置計(jì)劃
(1)配置一個(gè)XML代理,用來(lái)截獲XML流量,并提供鑒定、授權(quán)和確認(rèn)服務(wù),同時(shí)記錄下進(jìn)出的消息以提供認(rèn)可。
(2)配置認(rèn)證機(jī)制,來(lái)驗(yàn)證發(fā)送方的身份,以及確保包括數(shù)字證書(shū)、用戶名和密碼、HTTP基本認(rèn)證在內(nèi)的諸多信息的完整性,還可以限制對(duì)特定的IP地址段進(jìn)行訪問(wèn)。
3 防火墻規(guī)則匹配算法以及優(yōu)化
3.1 算法分析
該算法基于Divide And Conquer(分治)的idea,將定義的規(guī)則集合以protocol的類型分組,將其分為多個(gè)子集按照一定的rule將其分為兩個(gè)type:
(1)無(wú)序匹配規(guī)則組;
(2)有序匹配規(guī)則組。
然后設(shè)計(jì)hash函數(shù)和對(duì)應(yīng)的索引針對(duì)不同的類型進(jìn)行識(shí)別,其性能通過(guò)分析平均的時(shí)間復(fù)雜度可大O(logn),在一定程度上遠(yuǎn)比linux防火墻中樸素的匹配算法效率要高。
1)無(wú)序組匹配算法。其核心思想是通過(guò)設(shè)計(jì)hash函數(shù)把信息與索引一一對(duì)應(yīng),對(duì)出Hash過(guò)程中的沖突盡量小的原則,將匹配的信息通過(guò)映射定位,使得hash表盡量均勻,設(shè)計(jì)的hash偽代碼如下:
int GetHashIndex(long SrcAddress, long DesAddress, int SrcPort, int DesPort) {
int add = SrcAddress+DesAddress;
int port = SrcPort+DesPort; int Low16Bit = add~(~0<<0x16); //low 16 bit int High16Bit = (add>>0x16)~(~0<<0x16); //high 16 bit int addr=xor(Low16Bit,High16Bit); //xor low16bit, high16bit return (xor(add, port)%LEN); //len is hash length } hash沖突的存在是必然的,解決辦法:
若兩個(gè)規(guī)則經(jīng)過(guò)哈希運(yùn)算后得到的索引相等,把這兩個(gè)規(guī)則按照插入順序組成一個(gè)線性表,規(guī)則匹配時(shí),沿著線性表依次進(jìn)行順序匹配
2)有序組匹配算法。有序規(guī)則中個(gè)順序是非常重要的(優(yōu)化的重點(diǎn)),不能隨便insert或者delete,如果使用線性超找的算法就沒(méi)有什么改進(jìn)了,效率會(huì)非常低下,在進(jìn)行規(guī)則匹配的過(guò)程中可以采用索引來(lái)輔助進(jìn)行匹配來(lái)提高匹配效率,具體的就是將具有相關(guān)性的規(guī)則看成一個(gè)線性表,線性表的結(jié)構(gòu)嚴(yán)格按照序列的優(yōu)先級(jí)來(lái)sort,可以采用索引中的一個(gè)index來(lái)提升匹配的查找效率,通過(guò)索引值來(lái)進(jìn)行二分查找
3.2 實(shí)現(xiàn)結(jié)果和性能展示
防火墻的數(shù)據(jù)包匹配算法:匹配速度是遠(yuǎn)優(yōu)于的線性搜索,其空間復(fù)雜度的能力范圍內(nèi)現(xiàn)代化的硬件,即使對(duì)于非常大的規(guī)則速度都很客觀,如下:
NumberDescription Space
0 Srouce Ip Address 32 Bit
1 Destination Ip Address 32 Bit
2 Source Port Number 16 Bit
3 Destination Port Number16 Bit
4 Protocol 8 Bit
其中計(jì)算機(jī)的配置如下:
OS: Ubuntu 12.10: quantal(i686)
Kernel / Build: 3.5.0-27-generic
Processor: Intel Core i3-2330M 2.20GHz*2
以下是一定規(guī)模下運(yùn)行10,000次結(jié)果的平均值所得的時(shí)間和空間(忽略記憶體)數(shù)據(jù):
表1
改進(jìn)算法的時(shí)間在大規(guī)模的情況下遠(yuǎn)比樸素的算法要快10倍以上。
參考文獻(xiàn):
[1]Bellovin S, Smith J, Keromytis A D, et al. Implementing a Distributed Firewall[C]//Proc. of the 7th ACM Conference on Computer and Communications Security. Athens, Greece:ACM Press,2000.
[2] Payne C, Markham T. Architecture and Applications for a Distributed Embedded Firewall[C]//Proceedings of the 17th Annual Conference on Computer Security Applications. [S. l.]:IEEE Press,2001.
[3]Fulp E W. Parallel Firewall Designs for High-speed Networks[C]//Proc. of the 25th IEEE International Conference on Computer Communications. Barcelona, Spain: [s. n.],2006.
[4]Farley R J. Parallel Firewall Designs for High-speed Networks[D].North Carolina, USA: Wake Forest University,2005.
作者簡(jiǎn)介:吳亮(1990.02-),男,土家族,湖南張家界人,本科在校學(xué)生,主要研究方向:軟件工程;黃偉(1981.10-),男,瑤族,湖南花垣人,講師,主要研究方向:計(jì)算機(jī)科學(xué)。
作者單位:吉首大學(xué) 軟件服務(wù)外包學(xué)院,湖南省張家界 427000
基金項(xiàng)目:吉首大學(xué)科研論文項(xiàng)目。