您現(xiàn)在的位置:專區(qū)首頁(yè)>> 優(yōu)秀作品>>作品
作品面向網(wǎng)絡(luò)服務(wù)器,普適于Windows、Linux兩大主流服務(wù)器平臺(tái),無(wú)縫內(nèi)嵌于服務(wù)器架設(shè)軟件之中,以行之有效的方式實(shí)現(xiàn)對(duì)服務(wù)器全方位、立體化的系統(tǒng)性安全防護(hù)。作品創(chuàng)造性地提出了惡意攻擊的主動(dòng)分析檢測(cè)技術(shù),特別是通過(guò)對(duì)SQL語(yǔ)句語(yǔ)法樹(shù)形結(jié)構(gòu)的分析比對(duì),從原理和根本上杜絕了惡意攻擊的可能性,在學(xué)術(shù)理論和實(shí)際應(yīng)用兩方面均具有國(guó)際先進(jìn)性和較高的實(shí)際應(yīng)用價(jià)值,對(duì)于改善互聯(lián)網(wǎng)安全環(huán)境具有較強(qiáng)的意義。
1 作品介紹
1.1 背景分析
伴隨著信息技術(shù)的高度發(fā)達(dá),互聯(lián)網(wǎng)承載著越來(lái)越多重要的信息,作為一個(gè)開(kāi)放式的網(wǎng)絡(luò),如何確保這些信息的安全顯得尤為重要。而服務(wù)器作為信息存儲(chǔ)、發(fā)布、交換的主體,存儲(chǔ)著海量信息,但由于程序開(kāi)發(fā)者的水平參差不齊,大量服務(wù)器端的應(yīng)用自誕生以來(lái)就存在諸多漏洞,加上一部分管理員對(duì)于此類安全問(wèn)題的重視程度有限,導(dǎo)致服務(wù)器以及大量重要信息的安全受到極大的威脅。
開(kāi)放式Web應(yīng)用程序安全項(xiàng)目(OWASP, Open Web Application Security Project)是一個(gè)旨在協(xié)助個(gè)人、企業(yè)和機(jī)構(gòu)發(fā)現(xiàn)和使用可信賴軟件的非盈利性組織,作者研究了該組織在2007年、2010年根據(jù)調(diào)查結(jié)果發(fā)布的網(wǎng)絡(luò)安全威脅排行,就各類威脅在易于利用性、流行程度、易于發(fā)現(xiàn)性、影響大小四個(gè)方面進(jìn)行了詳盡的比較,可以看到,注入攻擊、跨站攻擊等攻擊方式一直較為流行,而且也具有很高的危險(xiǎn)性,可能會(huì)給用戶、服務(wù)器和Web應(yīng)用造成無(wú)法挽回的損失。
與此同時(shí),由于互聯(lián)網(wǎng)的開(kāi)放程度高,靈活性強(qiáng),程序設(shè)計(jì)語(yǔ)言規(guī)范性差,給安全防護(hù)帶來(lái)的極大的難度。而現(xiàn)有的服務(wù)器安全防護(hù)軟件大多無(wú)法很好地滿足市場(chǎng)對(duì)于此類軟件的需求,根據(jù)團(tuán)隊(duì)成員的分析研究,認(rèn)為主要存在有以下幾點(diǎn)問(wèn)題:
(1)普適性差:由于互聯(lián)網(wǎng)的靈活性和多樣性,現(xiàn)有的防護(hù)軟件多是針對(duì)特定的環(huán)境下的特定攻擊威脅進(jìn)行防護(hù),缺乏對(duì)于不同環(huán)境平臺(tái)的普遍適用性;
(2)準(zhǔn)確率低:網(wǎng)絡(luò)中信息存儲(chǔ)和傳遞的形式多種多樣,標(biāo)準(zhǔn)難以統(tǒng)一,一方面為設(shè)計(jì)者提供了多種實(shí)現(xiàn)方式,另一方面也為黑客提供了多樣化的攻擊手段,致使現(xiàn)有安全防護(hù)軟件的判斷準(zhǔn)確率普遍偏低;
(3)方法陳舊:很多防護(hù)軟件所使用的技術(shù)十分陳舊,而攻擊者早已對(duì)這些方法爛熟于心,因此想要繞過(guò)防護(hù)往往輕而易舉;
(4)手段被動(dòng):現(xiàn)有安全防護(hù)軟件多針對(duì)已有的常見(jiàn)攻擊手段進(jìn)行被動(dòng)的檢測(cè)和過(guò)濾,例如對(duì)于SQL注入的檢測(cè)至今仍局限于關(guān)鍵字過(guò)濾的方式,對(duì)于新的攻擊方式難有作為,因而往往會(huì)陷入“拆東墻,補(bǔ)西墻”的尷尬境地;
(5)部署繁瑣:很多防護(hù)軟件在部署時(shí)都要求服務(wù)器管理員進(jìn)行一系列繁瑣的操作,甚至更改程序、網(wǎng)站源代碼為其提供接口,因而難以應(yīng)用于已成型的網(wǎng)站和服務(wù)器;
針對(duì)以上幾點(diǎn)問(wèn)題,項(xiàng)目開(kāi)發(fā)團(tuán)隊(duì)進(jìn)行了細(xì)致深入的研究分析,參考了國(guó)內(nèi)外大量文獻(xiàn)資料,經(jīng)過(guò)長(zhǎng)時(shí)間的討論和理論論證,針對(duì)普及程度高、危害大的各種網(wǎng)絡(luò)攻擊手段,創(chuàng)造性地將主動(dòng)防御的思想應(yīng)用于服務(wù)器的防護(hù),提出并實(shí)現(xiàn)了一個(gè)普適、便捷、智能的內(nèi)嵌式服務(wù)器安全防護(hù)系統(tǒng)。
1.2 特色描述
1.2.1 跨平臺(tái)性和可移植性
作品基于目前市面上最主流的服務(wù)器架設(shè)軟件,Apache以及IIS,支持Windows和Linux操作系統(tǒng),而且并不依賴于架設(shè)動(dòng)態(tài)網(wǎng)站所使用語(yǔ)言的種類,具有良好的跨平臺(tái)性和可移植性。
1.2.2 核心內(nèi)嵌技術(shù)
系統(tǒng)完美內(nèi)嵌于Web服務(wù)器架設(shè)軟件之中,廣泛適用于目前市場(chǎng)主流服務(wù)器,部署簡(jiǎn)便,配置輕松,無(wú)需預(yù)留接口,安裝后開(kāi)啟服務(wù)即可使用。通過(guò)Web服務(wù)器核心內(nèi)嵌技術(shù),確保服務(wù)器每一次發(fā)送和接收數(shù)據(jù)的過(guò)程均經(jīng)過(guò)本系統(tǒng)的檢測(cè)和過(guò)濾。
1.2.3 智能高效的防注入方法
SQL注入攻擊是黑客對(duì)數(shù)據(jù)庫(kù)進(jìn)行攻擊最常用的手段之一,也是其他一些攻擊手段的前提條件。系統(tǒng)改變傳統(tǒng)關(guān)鍵字過(guò)濾的防注入方式,獨(dú)創(chuàng)性地根據(jù)用戶輸入實(shí)時(shí)動(dòng)態(tài)生成標(biāo)準(zhǔn)SQL語(yǔ)句范式,將其與用戶輸入分別建立語(yǔ)法樹(shù)形結(jié)構(gòu),而由于SQL語(yǔ)法的無(wú)二義性,惡意攻擊一定會(huì)改變?cè)樵冋Z(yǔ)句的樹(shù)形結(jié)構(gòu),從而根據(jù)對(duì)兩者樹(shù)形結(jié)構(gòu)的比對(duì),即可判斷用戶輸入是否含有惡意請(qǐng)求。這種基于SQL語(yǔ)句語(yǔ)義分析的方法,真正意義上實(shí)現(xiàn)了對(duì)注入攻擊的主動(dòng)分析防御,從根本上、原理上杜絕了一切形式的SQL注入攻擊。相比于傳統(tǒng)關(guān)鍵字過(guò)濾式的防注入方法,一方面可以更加準(zhǔn)確有效地識(shí)別各種形式的注入攻擊,另一方面也避免了對(duì)用戶無(wú)惡意輸入誤操作。
1.2.4 智能化的DDOS攻擊檢測(cè)
針對(duì)DDOS攻擊特征難以辨識(shí)的防護(hù)難點(diǎn),項(xiàng)目開(kāi)發(fā)團(tuán)隊(duì)深入研究了主流DDOS攻擊的原理,并以此為根據(jù)從根本上掐斷攻擊的源頭。采用驅(qū)動(dòng)層攔截處理,應(yīng)用層回溯分析的方式,獨(dú)創(chuàng)的Trace Route回溯分析、網(wǎng)絡(luò)流拓?fù)浣Y(jié)構(gòu)分析,結(jié)合SYN-Cookie等成熟技術(shù),實(shí)現(xiàn)了智能高效的DDOS攻擊檢測(cè),有效保障只有合法數(shù)據(jù)包才能夠流入服務(wù)器內(nèi)部,同時(shí)還能夠精確定位攻擊源,從而達(dá)到保護(hù)服務(wù)器安全的目的。
1.2.5 全方位、立體化的安全防護(hù)
除防SQL注入攻擊外,本系統(tǒng)針對(duì)其他普及程度高、危險(xiǎn)性強(qiáng)的網(wǎng)絡(luò)攻擊威脅也都開(kāi)發(fā)部署了獨(dú)具特色、行之有效的檢測(cè)防御服務(wù),如跨站攻擊、資源盜鏈等,力圖為用戶提供全方位、立體化的服務(wù)器安全防護(hù)。
1.2.6 實(shí)時(shí)響應(yīng)、日志系統(tǒng)
系統(tǒng)實(shí)時(shí)檢測(cè)響應(yīng)攻擊行為,一旦檢測(cè)到攻擊,系統(tǒng)會(huì)自動(dòng)攔截動(dòng)作,并根據(jù)攻擊者的相關(guān)信息、用戶控制面板設(shè)置對(duì)其進(jìn)行封禁IP地址等相應(yīng)處理響應(yīng),并將詳細(xì)的攻擊信息、處理響應(yīng)信息存儲(chǔ)于日志系統(tǒng)之中,為服務(wù)器管理員提供完整詳盡的管理日志。
1.3 相關(guān)工作
作品是開(kāi)發(fā)團(tuán)隊(duì)在對(duì)目前互聯(lián)網(wǎng)安全狀況進(jìn)行詳細(xì)的調(diào)查評(píng)估,并對(duì)目前市場(chǎng)上已有的同類產(chǎn)品進(jìn)行研究后,自行設(shè)計(jì)開(kāi)發(fā)的一款服務(wù)器安全防護(hù)系統(tǒng)。防護(hù)系統(tǒng)經(jīng)過(guò)團(tuán)隊(duì)幾個(gè)月來(lái)的不斷測(cè)試和改進(jìn),對(duì)各種網(wǎng)絡(luò)安全威脅的檢測(cè)準(zhǔn)確率已經(jīng)能夠穩(wěn)定在較高水平,同時(shí)系統(tǒng)已部署在多個(gè)校內(nèi)服務(wù)器上試運(yùn)行,目前運(yùn)行狀況良好穩(wěn)定。希望能夠獲取更多的實(shí)際運(yùn)行數(shù)據(jù),為日后進(jìn)一步提升系統(tǒng)性能打下良好的基礎(chǔ)。
本系統(tǒng)的一個(gè)獨(dú)特之處在于防注入方法的創(chuàng)新上,同時(shí)對(duì)用戶輸入語(yǔ)句進(jìn)行語(yǔ)法語(yǔ)義的分析也是系統(tǒng)的一個(gè)難點(diǎn)。為了滿足系統(tǒng)的跨平臺(tái)性和可移植性要求,我們采用標(biāo)準(zhǔn)C++語(yǔ)言進(jìn)行開(kāi)發(fā),同時(shí)在Apache、IIS等多平臺(tái)進(jìn)行開(kāi)發(fā)和測(cè)試,克服了調(diào)試?yán)щy、平臺(tái)生疏、缺乏文檔經(jīng)驗(yàn)等諸多困難,較好地完成實(shí)現(xiàn)了項(xiàng)目系統(tǒng)的設(shè)計(jì)初衷和目標(biāo)。
此外,項(xiàng)目開(kāi)發(fā)團(tuán)隊(duì)從原理上深入分析了目前主流的DDOS攻擊方式,使用驅(qū)動(dòng)層與應(yīng)用層相結(jié)合的方式,利用層層嚴(yán)格的過(guò)濾,實(shí)現(xiàn)對(duì)于DDOS攻擊的智能精確定位,迅速有效響應(yīng)。
1.4 市場(chǎng)分析
時(shí)下互聯(lián)網(wǎng)承載著越來(lái)越多的重要信息,其安全性也自然受到了越來(lái)越多的關(guān)注,因此服務(wù)器防護(hù)軟件的市場(chǎng)也隨之不斷增大。雖然目前市場(chǎng)上已經(jīng)出現(xiàn)了大量的Web服務(wù)器防護(hù)軟件,但由于互聯(lián)網(wǎng)所特有的多樣性、不規(guī)范性,傳統(tǒng)方法對(duì)于攻擊威脅的防護(hù)效果遠(yuǎn)遠(yuǎn)不能滿足日漸龐大的市場(chǎng)需求。
而作品是著眼于信息的載體,針對(duì)傳統(tǒng)防護(hù)軟件所存在的問(wèn)題和市場(chǎng)對(duì)于此類軟件的需求,自主研發(fā)的一套獨(dú)具特色、實(shí)時(shí)動(dòng)態(tài)、智能高效的防護(hù)系統(tǒng)。
本系統(tǒng)無(wú)縫內(nèi)嵌于服務(wù)器架設(shè)軟件之中,致力于采用智能化分析的手段,幫助服務(wù)器管理員實(shí)現(xiàn)方便快捷、智能高效的服務(wù)器安全防護(hù),提供防SQL注入攻擊、防DDOS攻擊、防跨站攻擊、權(quán)限控制、資源防盜鏈、網(wǎng)頁(yè)防篡改等諸多功能,實(shí)現(xiàn)了全方位立體化的實(shí)時(shí)安全防護(hù),并為管理員提供了完整詳盡的管理日志,較好地滿足了市場(chǎng)對(duì)于此類軟件的需求。
綜上所述,作品的設(shè)計(jì)和功能符合市場(chǎng)需求,具有較為廣闊的市場(chǎng)應(yīng)用前景。
2 實(shí)現(xiàn)方案
2.1 系統(tǒng)說(shuō)明
2.1.1 說(shuō)明
作品旨在為服務(wù)器提供全方位、高效率的安全防護(hù),幫助服務(wù)器管理員更方便、有效、全面地實(shí)現(xiàn)對(duì)服務(wù)器的安全保護(hù),以確保服務(wù)器信息的正確性和保密性。
2.1.2 設(shè)計(jì)目標(biāo)
作品的雛形,來(lái)自于開(kāi)發(fā)團(tuán)隊(duì)成員對(duì)服務(wù)器端防護(hù)的長(zhǎng)期研究和國(guó)內(nèi)外相關(guān)資料的深入分析,抓住惡意攻擊者最常用、造成危害最大的攻擊方式進(jìn)行探索,從而形成了一套獨(dú)創(chuàng)性、體系化、智能高效的解決方案,力圖通過(guò)我們的努力,更好地保護(hù)網(wǎng)絡(luò)信息安全。
根據(jù)小組成員對(duì)現(xiàn)有類似軟件的研究,我們認(rèn)為被動(dòng)地根據(jù)攻擊者的攻擊方式進(jìn)行相應(yīng)的防護(hù),往往會(huì)陷入到拆東墻補(bǔ)西墻的尷尬境地,已經(jīng)遠(yuǎn)遠(yuǎn)無(wú)法滿足當(dāng)今互聯(lián)網(wǎng)對(duì)于信息安全的龐大需求。因此,開(kāi)發(fā)團(tuán)隊(duì)為滿足市場(chǎng)需求,經(jīng)過(guò)長(zhǎng)時(shí)間的理論論證,提出以主動(dòng)分析攻擊者行為的方式,達(dá)到準(zhǔn)確定位攻擊行為、高效處理響應(yīng)的設(shè)計(jì)目標(biāo)。
本系統(tǒng)廣泛適用于Windows和Linux平臺(tái),不受數(shù)據(jù)庫(kù)和服務(wù)器軟件版本的限制,安裝快捷,部署簡(jiǎn)便,操作簡(jiǎn)單,安全性高,為服務(wù)器提供全方位、多角度的立體化安全防護(hù)。
2.2 系統(tǒng)架構(gòu)
作品采用模塊化設(shè)計(jì),根據(jù)用戶的不同需求對(duì)各個(gè)模塊進(jìn)行設(shè)置管理,并通過(guò)詳盡的管理日志對(duì)用戶的操作以及客戶端訪問(wèn)信息進(jìn)行記錄和檢索,以方便服務(wù)器管理員的工作。通過(guò)各個(gè)模塊的協(xié)作來(lái)完成對(duì)服務(wù)器的全方位的防護(hù)。
攻擊檢測(cè)模塊根據(jù)瀏覽用戶輸入以及向服務(wù)器提交的請(qǐng)求,進(jìn)行SQL注入攻擊、跨站攻擊、權(quán)限控制、資源盜鏈、篡改攻擊以及DDOS攻擊6個(gè)方面的實(shí)時(shí)動(dòng)態(tài)檢測(cè),倘若檢測(cè)到攻擊者的攻擊威脅,則將攻擊信息傳遞給處理響應(yīng)模塊,該模塊根據(jù)服務(wù)器管理員對(duì)于本系統(tǒng)的控制設(shè)置,決定對(duì)于該攻擊的處理響應(yīng)方式,并將相關(guān)攻擊信息和處理響應(yīng)信息詳盡地寫(xiě)入到管理日志模塊之中,供服務(wù)器管理員日后分析查看。
2.3 功能及實(shí)現(xiàn)原理
2.3.1 攻擊檢測(cè)模塊
攻擊檢測(cè)模塊主要由6個(gè)子模塊構(gòu)成,分別負(fù)責(zé)SQL注入攻擊、DDOS攻擊、跨站攻擊、篡改攻擊、權(quán)限控制和資源盜鏈的實(shí)時(shí)動(dòng)態(tài)檢測(cè)控制。
2.3.1.1 注入攻擊檢測(cè)子模塊
? 功能
注入攻擊檢測(cè)子模塊通過(guò)攔截用戶輸入所構(gòu)成的SQL語(yǔ)句,實(shí)時(shí)動(dòng)態(tài)地生成一個(gè)絕對(duì)無(wú)害、表達(dá)Web應(yīng)用開(kāi)發(fā)者本意的SQL語(yǔ)句,并對(duì)上述兩個(gè)SQL語(yǔ)句分別建立語(yǔ)法樹(shù)形結(jié)構(gòu),根據(jù)樹(shù)形結(jié)構(gòu)和節(jié)點(diǎn)類型比對(duì)結(jié)果判斷兩語(yǔ)句在語(yǔ)義上的異同,從而進(jìn)行注入攻擊判定,返回相應(yīng)結(jié)果。
? 原理
由于T-SQL語(yǔ)言為一種無(wú)二義性的語(yǔ)言,因此其語(yǔ)句的最左推導(dǎo)或最右推導(dǎo)形式唯一,則其語(yǔ)法樹(shù)形結(jié)構(gòu)可以根據(jù)其語(yǔ)義唯一確定。若黑客通過(guò)SQL注入的方式進(jìn)行攻擊,則必須改變SQL語(yǔ)句的語(yǔ)義,其語(yǔ)義的改變也必將影響到其語(yǔ)法樹(shù)形結(jié)構(gòu)。于是,根據(jù)絕對(duì)無(wú)害的標(biāo)準(zhǔn)輸入及用戶輸入所構(gòu)成的語(yǔ)法樹(shù)形結(jié)構(gòu)的比對(duì)結(jié)果,即可判斷用戶輸入是否含有惡意。
? 具體實(shí)現(xiàn)
(1)獲取訪問(wèn)者提交請(qǐng)求
編寫(xiě)ISAPI Filter和Apache Module分別內(nèi)嵌于IIS和Apache服務(wù)器架設(shè)軟件內(nèi)部,用以獲取用戶向服務(wù)器端提交的請(qǐng)求,實(shí)現(xiàn)跨平臺(tái)、跨動(dòng)態(tài)語(yǔ)言種類的用戶輸入攔截和處理。
(2)構(gòu)建標(biāo)準(zhǔn)SQL范式
對(duì)訪問(wèn)者輸入形成的SQL語(yǔ)句進(jìn)行分析,只對(duì)其中的用戶輸入部分進(jìn)行處理,生成一個(gè)形式類似、絕對(duì)無(wú)害的SQL語(yǔ)句。其中,訪問(wèn)者輸入中特殊的、可能改變語(yǔ)句含義的符號(hào)(如等號(hào)、引號(hào)等)不做改變,對(duì)其他字符進(jìn)行簡(jiǎn)單無(wú)意義替換,以無(wú)意義字符替換原有輸入,這樣一方面保證其絕對(duì)無(wú)害性,一方面盡可能還原訪問(wèn)者本意,防止訪問(wèn)者無(wú)惡意輸入的誤判。
(3)建立語(yǔ)法樹(shù)形結(jié)構(gòu)
針對(duì)用戶輸入和標(biāo)準(zhǔn)范式,采用Lex & Yacc進(jìn)行詞法及語(yǔ)法分析。
特別地,針對(duì)訪問(wèn)者無(wú)惡意的不規(guī)范輸入,建立了一種ERRSTR類型的節(jié)點(diǎn),以防止對(duì)訪問(wèn)者正常輸入的誤判。
(4)語(yǔ)法樹(shù)比較
對(duì)兩棵語(yǔ)法樹(shù)的比對(duì)包括兩方面:樹(shù)形結(jié)構(gòu)比較和節(jié)點(diǎn)類型比較。
(a)樹(shù)形結(jié)構(gòu)比較
比較兩者樹(shù)形結(jié)構(gòu)中樹(shù)的深度、同層節(jié)點(diǎn)數(shù)、父子節(jié)點(diǎn)關(guān)系,從而判斷訪問(wèn)者輸入與標(biāo)準(zhǔn)范式語(yǔ)句含義的異同。
(b)節(jié)點(diǎn)類型比較
比較節(jié)點(diǎn)樹(shù)形結(jié)構(gòu)中相同位置節(jié)點(diǎn)的類型差異,從而判斷訪問(wèn)者輸入與標(biāo)準(zhǔn)范式語(yǔ)句含義的異同。
綜上所述,SQL注入攻擊通過(guò)向網(wǎng)頁(yè)表單添加惡意輸入,改變了Web應(yīng)用程序員為訪問(wèn)者設(shè)置的理想SQL語(yǔ)句執(zhí)行路徑,這種改變必然會(huì)在SQL語(yǔ)句的語(yǔ)法結(jié)構(gòu)上體現(xiàn)出來(lái),所以這種基于SQL語(yǔ)句語(yǔ)法分析的注入攻擊檢測(cè)方法是非常有效而且精確的。
2.3.1.2 DDOS攻擊檢測(cè)子模塊
? 功能
DDOS(Distributed Denial of Service 分布式拒絕服務(wù)攻擊)攻擊是由很多DOS攻擊源一起攻擊某臺(tái)服務(wù)器構(gòu)成的,利用合理的服務(wù)請(qǐng)求占用過(guò)多的服務(wù)資源,導(dǎo)致服務(wù)器無(wú)法正常處理合法用戶的請(qǐng)求。
目前主要DDOS攻擊方式有以下三種:
(1)SYN Flood攻擊:利用它TCP協(xié)議缺陷,通過(guò)發(fā)送大量的半連接請(qǐng)求,耗費(fèi)服務(wù)器CPU以及內(nèi)存資源;
(2)CC攻擊:利用代理服務(wù)器,想目標(biāo)主機(jī)發(fā)送大量的合法請(qǐng)求,以拖慢服務(wù)器運(yùn)行速度,甚至造成服務(wù)器崩潰;
(3)僵尸網(wǎng)絡(luò):通過(guò)在大量計(jì)算機(jī)中植入特定的惡意程序,控制者利用相對(duì)集中的若干臺(tái)機(jī)器向目標(biāo)機(jī)發(fā)送大量請(qǐng)求,造成服務(wù)器崩潰。
本模塊針對(duì)DDOS攻擊請(qǐng)求合法、攻擊源分散等特點(diǎn),利用對(duì)于不同IP地址使用不同URL訪問(wèn)地址的方式,實(shí)現(xiàn)對(duì)于DDOS攻擊的準(zhǔn)確智能檢測(cè)防護(hù)。
? 原理
改變傳統(tǒng)TCP協(xié)議三次握手的連接確認(rèn)方式,使用唯一的加密Cookie作為連接確認(rèn)的憑據(jù),從而避免大量惡意半連接請(qǐng)求占據(jù)服務(wù)器系統(tǒng)資源,有效避免偽造IP地址進(jìn)行的SYN Flood式攻擊。
為了避免黑客破解我們的Cookie算法,軟件針對(duì)性地采取了回溯檢測(cè)躍數(shù)的方法進(jìn)一步過(guò)濾偽造IP數(shù)據(jù)包。經(jīng)由理論證明,同一客戶端發(fā)往同一目標(biāo)機(jī)的數(shù)據(jù)包躍數(shù)相同,因此我們根據(jù)收到數(shù)據(jù)包以及回溯采集數(shù)據(jù)包兩者之間躍數(shù)的異同,檢測(cè)偽造IP數(shù)據(jù)包。
而針對(duì)僵尸網(wǎng)絡(luò)、CC攻擊等真實(shí)IP地址攻擊,我們則利用Trace Route的方式實(shí)時(shí)動(dòng)態(tài)建立網(wǎng)絡(luò)流拓?fù)浣Y(jié)構(gòu),根據(jù)結(jié)構(gòu)中各網(wǎng)絡(luò)節(jié)點(diǎn)的流量進(jìn)行拓?fù)渑判?,以排序結(jié)果作為依據(jù),過(guò)濾掉其中流量過(guò)大的網(wǎng)絡(luò)節(jié)點(diǎn)。
通過(guò)層層過(guò)濾,確保只有使用真實(shí)IP地址的合法訪問(wèn)請(qǐng)求才能流入服務(wù)器內(nèi)部進(jìn)行相應(yīng)的處理。
? 具體實(shí)現(xiàn)
利用SYN-Cookie的方式進(jìn)行連接確認(rèn),以唯一Cookie憑據(jù)代替等待半連接隊(duì)列的方式,有效避免大量偽造IP數(shù)據(jù)包發(fā)起的SYN-Flood式的攻擊。
而針對(duì)黑客破解Cookie加密算法的可能,我們則采用應(yīng)用層回溯的方式,比對(duì)兩次數(shù)據(jù)包躍數(shù)的異同,從而分辨?zhèn)卧霫P數(shù)據(jù)包。
對(duì)于真實(shí)IP地址發(fā)起的DDOS攻擊,則使用獨(dú)創(chuàng)的網(wǎng)絡(luò)流拓?fù)浣Y(jié)構(gòu)分析,以拓?fù)渑判虻慕Y(jié)果作為判斷依據(jù),準(zhǔn)確定位攻擊源。
三種方式層層遞進(jìn),嚴(yán)格的過(guò)濾方法,有效保證只有合法數(shù)據(jù)包才能夠流入服務(wù)器內(nèi)部;從驅(qū)動(dòng)層出發(fā),進(jìn)行攔截處理,保證了軟件的高效性,在驚人請(qǐng)求量的DDOS攻擊面前,高效準(zhǔn)確的防護(hù)機(jī)制,有效保護(hù)了服務(wù)器安全。
這樣的DDOS攻擊檢測(cè)方法理論依據(jù)完善,檢測(cè)識(shí)別精確快速,系統(tǒng)資源消耗少;其次,相比于包標(biāo)記等DDOS檢測(cè)方法,配置簡(jiǎn)單,無(wú)需路由器配置支持;另外,在處理真實(shí)IP地址攻擊時(shí),能夠準(zhǔn)確定位攻擊源。
2.3.1.3 跨站攻擊檢測(cè)子模塊
? 功能
利用Lex & Yacc對(duì)訪問(wèn)者輸入進(jìn)行JavaScript語(yǔ)法分析,判斷是否含有跨站攻擊威脅,從而返回跨站攻擊檢測(cè)結(jié)果。改變傳統(tǒng)關(guān)鍵字過(guò)濾的防護(hù)方式,實(shí)現(xiàn)了對(duì)訪問(wèn)者輸入的實(shí)時(shí)動(dòng)態(tài)行為分析,根據(jù)其實(shí)際請(qǐng)求內(nèi)容進(jìn)行檢測(cè)。
? 原理
跨站攻擊,即Cross Site Script Execution(XSS),是指攻擊者在遠(yuǎn)程頁(yè)面中寫(xiě)入含有惡意代碼的數(shù)據(jù),造成訪問(wèn)者在訪問(wèn)指定頁(yè)面時(shí)自動(dòng)執(zhí)行相應(yīng)的惡意腳本,通常使用JavaScript作為惡意腳本語(yǔ)言。
由于跨站攻擊的核心在于可執(zhí)行惡意代碼的寫(xiě)入,因此我們選擇在服務(wù)器端對(duì)訪問(wèn)者的輸入進(jìn)行可執(zhí)行性以及語(yǔ)法語(yǔ)義的檢測(cè)判斷,從而確定其是否為可執(zhí)行的惡意代碼,并返回檢測(cè)結(jié)果。
? 具體實(shí)現(xiàn)
利用ISAPI Filter與Apache Module進(jìn)行訪問(wèn)者輸入攔截,檢測(cè)其中是否含有完整腳本語(yǔ)句標(biāo)簽,若無(wú)完整標(biāo)簽,則返回正常訪問(wèn)請(qǐng)求;若含有完整腳本標(biāo)簽,則繼續(xù)進(jìn)行腳本語(yǔ)法分析,確定其語(yǔ)句含義,判斷用戶輸入的可執(zhí)行性和惡意威脅性,根據(jù)上述步驟返回跨站攻擊檢測(cè)結(jié)果。
2.3.1.4 篡改檢測(cè)子模塊
? 功能
通過(guò)服務(wù)器核心內(nèi)嵌技術(shù),實(shí)現(xiàn)對(duì)于被保護(hù)對(duì)象的實(shí)時(shí)動(dòng)態(tài)監(jiān)控,防止惡意篡改,一旦發(fā)現(xiàn)對(duì)象被篡改,立即進(jìn)行恢復(fù),并拒絕成功恢復(fù)前所有訪問(wèn)者對(duì)該對(duì)象的訪問(wèn)請(qǐng)求。
? 原理
利用具有唯一性的數(shù)字水印作為標(biāo)識(shí)被保護(hù)對(duì)象的依據(jù),對(duì)象一旦被篡改,其數(shù)字水印特征也一定會(huì)被改變,以此判別被保護(hù)對(duì)象是否被篡改。攔截訪問(wèn)者對(duì)被保護(hù)對(duì)象的全部訪問(wèn)請(qǐng)求,校驗(yàn)確定未被篡改時(shí)予以放行,且在成功恢復(fù)前拒絕一切針對(duì)該對(duì)象的訪問(wèn)請(qǐng)求,從而有效地保證了被篡改對(duì)象不會(huì)被訪問(wèn)者瀏覽。采用文件路徑以及文件內(nèi)容的雙重校驗(yàn)備份,加快篡改還原速度。
? 具體實(shí)現(xiàn)
篡改檢測(cè)子模塊一經(jīng)開(kāi)啟,即為每個(gè)需保護(hù)的對(duì)象(靜態(tài)網(wǎng)頁(yè)、執(zhí)行腳本、二進(jìn)制文件)計(jì)算出唯一的數(shù)字水印,并在安全路徑下進(jìn)行備份。備份方式以文件路徑以及文件內(nèi)容分別進(jìn)行MD5校驗(yàn),從而加快恢復(fù)是查找備份溫條件的速度,有效提高篡改恢復(fù)速度,做到實(shí)時(shí)迅速恢復(fù)。每次接收到訪問(wèn)請(qǐng)求時(shí),將當(dāng)前被保護(hù)對(duì)象水印與原始數(shù)字水印進(jìn)行比對(duì)計(jì)算,一旦發(fā)現(xiàn)對(duì)象被篡改,則立即進(jìn)行恢復(fù),并在成功恢復(fù)前拒絕所有訪問(wèn)者對(duì)該對(duì)象的訪問(wèn)請(qǐng)求,防止非法網(wǎng)頁(yè)內(nèi)容被訪問(wèn)者瀏覽,同時(shí)返回檢測(cè)結(jié)果,為日志模塊提供記錄所需的攻擊信息。
2.3.1.5 權(quán)限控制子模塊
? 功能
根據(jù)用戶對(duì)于需保護(hù)路徑和文件的權(quán)限設(shè)置,檢測(cè)攻擊者對(duì)于受保護(hù)對(duì)象的非法訪問(wèn)請(qǐng)求,并返回檢測(cè)結(jié)果。從而實(shí)現(xiàn)對(duì)特定路徑和文件的權(quán)限控制,避免攻擊者惡意訪問(wèn)和下載受保護(hù)的重要文件。
? 原理
本模塊主要針對(duì)攻擊者對(duì)于服務(wù)器端重要文件的惡意訪問(wèn)和下載,這些文件往往記錄了用戶和管理員的一些重要信息,而攻擊者利用Web應(yīng)用程序的漏洞,非法對(duì)以上文件進(jìn)行訪問(wèn)和下載,就可能會(huì)造成大量重要保密信息的流失。比如暴庫(kù)攻擊,攻擊者利用技術(shù)手段或程序漏洞得到數(shù)據(jù)庫(kù)的地址,并將數(shù)據(jù)庫(kù)非法下載到本地,從而得到網(wǎng)站的管理員賬號(hào),甚至服務(wù)器的最高權(quán)限。
權(quán)限控制子模塊針對(duì)以上問(wèn)題,對(duì)訪問(wèn)者的資源請(qǐng)求進(jìn)行有針對(duì)性的分析檢測(cè),判斷請(qǐng)求方是否具有訪問(wèn)受保護(hù)對(duì)象的權(quán)限,防止重要路徑和文件數(shù)據(jù)的流失。
? 具體實(shí)現(xiàn)
攔截訪問(wèn)者對(duì)服務(wù)器端資源的請(qǐng)求,與用戶控制面板對(duì)本模塊的設(shè)置進(jìn)行比對(duì),分析請(qǐng)求內(nèi)容是否與用戶資源權(quán)限設(shè)置沖突,即訪問(wèn)者是否對(duì)所請(qǐng)求資源具有訪問(wèn)權(quán)限,從而返回權(quán)限控制子模塊檢測(cè)結(jié)果。
2.3.1.6 資源盜鏈檢測(cè)子模塊
? 功能
攔截其他站點(diǎn)對(duì)本站資源的非法盜鏈請(qǐng)求,保護(hù)本地資源不被未經(jīng)許可的站點(diǎn)非法盜鏈。
? 原理
發(fā)往服務(wù)器端的請(qǐng)求都會(huì)具有Refer項(xiàng)標(biāo)志其來(lái)源,而我們就可以根據(jù)請(qǐng)求來(lái)源是否為本站判斷是否為非法盜鏈行為,若非授權(quán)站點(diǎn)則判定為非法盜鏈。
? 具體實(shí)現(xiàn)
對(duì)于服務(wù)器端接收到的資源請(qǐng)求,進(jìn)行非法盜鏈判定,即判斷Refer項(xiàng)內(nèi)容是否為授權(quán)站點(diǎn),若非則判定為非法盜鏈,根據(jù)用戶設(shè)置拒絕請(qǐng)求或返回警告信息。
2.3.2處理響應(yīng)模塊
? 功能
根據(jù)用戶控制面板設(shè)置的處理響應(yīng)方案,對(duì)攻擊檢測(cè)模塊檢測(cè)到的攻擊者進(jìn)行處理響應(yīng),主要包括警告信息提示以及封禁IP地址兩種方式,并分別將攻擊和處理響應(yīng)信息寫(xiě)入到相應(yīng)的管理日志中。
? 具體實(shí)現(xiàn)
根據(jù)用戶控制面板設(shè)置,決定對(duì)于惡意攻擊用戶的響應(yīng)處理。警告信息提示采用ISAPI Filter或Apache Module返回警告信息頁(yè)面,而封禁IP地址則采取將攻擊者添加至服務(wù)器架設(shè)軟件拒絕IP段中的方式,并將此次攻擊的詳細(xì)信息,以及詳細(xì)的處理響應(yīng)動(dòng)作信息,分別寫(xiě)入至攻擊日志和處理日志。
2.3.3 用戶控制面板
? 功能
用戶控制面板實(shí)現(xiàn)對(duì)于整體軟件功能的用戶自定義設(shè)置和調(diào)整,主要由模塊防御設(shè)置、攻擊響應(yīng)設(shè)置、日志管理設(shè)置和高級(jí)設(shè)置四個(gè)部分組成。
模塊防御設(shè)置提供對(duì)于各攻擊檢測(cè)模塊的開(kāi)啟和關(guān)閉設(shè)置。
攻擊響應(yīng)設(shè)置針對(duì)處理響應(yīng)模塊,為用戶提供警告信息提示、封禁IP地址等響應(yīng)動(dòng)作的相關(guān)設(shè)置。
日志管理設(shè)置,主要針對(duì)管理日志模塊,提供備份、導(dǎo)出、定期清理等自定義設(shè)置選項(xiàng),進(jìn)一步保證本軟件的安全性。
高級(jí)設(shè)置,針對(duì)攻擊檢測(cè)模塊,為高級(jí)管理員用戶提供自定義配置方案的高級(jí)檢測(cè)子模塊設(shè)置。
2.3.4 管理日志模塊
? 功能
管理日志主要分為攻擊日志和響應(yīng)日志兩部分,攻擊日志記錄惡意攻擊者的攻擊時(shí)間、攻擊方式、攻擊者IP地址等相關(guān)攻擊信息;響應(yīng)日志記錄對(duì)攻擊者處理響應(yīng)的時(shí)間、方式、結(jié)果等相關(guān)信息。為服務(wù)器管理員提供了寶貴的服務(wù)器和軟件運(yùn)行響應(yīng)數(shù)據(jù),便于其更好地保護(hù)服務(wù)器安全不受威脅。
2.4指標(biāo)
下面我們從完整性、普適性、準(zhǔn)確性三個(gè)方面對(duì)作品的相關(guān)指標(biāo)進(jìn)行詳細(xì)評(píng)價(jià)與闡釋。
2.4.1 完整性
功能完整性:除具有各模塊攻擊檢測(cè)響應(yīng)功能模塊,還有完整的控制面板、管理日志,為用戶提供了詳盡的服務(wù)器、軟件運(yùn)行數(shù)據(jù),以及針對(duì)軟件功能的自主設(shè)置,軟件功能上具有較好的完整性。
防護(hù)完整性:針對(duì)注入攻擊、DDOS攻擊、跨站攻擊等普及程度高、危險(xiǎn)性強(qiáng)的攻擊手段進(jìn)行了全方位多角度的檢測(cè)防護(hù),各模塊協(xié)同合作,為用戶提供體系化的服務(wù)器端安全防護(hù)。
2.4.2 普適性
跨平臺(tái)性:各攻擊檢測(cè)模塊與處理響應(yīng)模塊均在Windows和Linux兩個(gè)平臺(tái)下并行開(kāi)發(fā),并使用具有較好跨平臺(tái)特性的Qt進(jìn)行用戶界面的設(shè)計(jì)和編寫(xiě),作品在兩個(gè)平臺(tái)上均運(yùn)行穩(wěn)定。
動(dòng)態(tài)語(yǔ)言無(wú)關(guān)性:采用核心內(nèi)嵌的方式完成各模塊的架構(gòu),實(shí)現(xiàn)了安全防護(hù)與動(dòng)態(tài)網(wǎng)頁(yè)源代碼的彼此獨(dú)立,使本軟件可以與動(dòng)態(tài)網(wǎng)站無(wú)縫連接,具有較強(qiáng)的動(dòng)態(tài)語(yǔ)言無(wú)關(guān)性。
2.4.3 準(zhǔn)確性
作品采用動(dòng)態(tài)實(shí)時(shí)的語(yǔ)法語(yǔ)義分析、智能化DDOS攻擊檢測(cè)技術(shù),從根本上杜絕攻擊的可能性,相比較于傳統(tǒng)安全防護(hù)方式在準(zhǔn)確性方面有著顯著的提升,大大降低了用戶無(wú)惡意請(qǐng)求的誤判幾率。此外,還將系統(tǒng)運(yùn)行過(guò)程中檢測(cè)到的惡意攻擊威脅和處理響應(yīng)操作詳細(xì)記錄于日志模塊,供服務(wù)器管理員查看使用,從而進(jìn)一步提升本軟件的安全防護(hù)準(zhǔn)確性。
第十二屆“挑戰(zhàn)杯”省賽作品 省賽二等獎(jiǎng)
2010年8月,于哈爾濱工業(yè)大學(xué),獲得第三屆全國(guó)大學(xué)生信息安全競(jìng)賽一等獎(jiǎng)(第1名)
2010年12月,經(jīng)國(guó)家信息中心評(píng)審,作品在學(xué)術(shù)理論及實(shí)際應(yīng)用方面均具有國(guó)際先進(jìn)性