丁文豪 武斌
摘? 要: 目前針對(duì)爬蟲的防御技術(shù)主要是根據(jù)檢測(cè)結(jié)果對(duì)惡意爬蟲進(jìn)行封禁,檢測(cè)和防御機(jī)制單一,無(wú)法應(yīng)對(duì)復(fù)雜多變的惡意爬蟲,檢測(cè)誤判率高,容易造成誤封、漏封。本文提出一種基于移動(dòng)目標(biāo)防御思想的惡意爬蟲主動(dòng)防御技術(shù),使用一種新型的HTML動(dòng)態(tài)化方法,結(jié)合自適應(yīng)跳變策略來(lái)遏制爬蟲規(guī)則的制訂和后續(xù)的惡意操作。通過(guò)實(shí)驗(yàn)對(duì)比,本文提出的主動(dòng)防御的方法可以有效地限制惡意爬蟲自動(dòng)化、批量化的行為;在保證數(shù)據(jù)內(nèi)容安全的前提下有效地降低了其對(duì)服務(wù)性能的影響。
關(guān)鍵詞: 主動(dòng)防御;移動(dòng)目標(biāo)防御;惡意爬蟲;數(shù)據(jù)安全
中圖分類號(hào): TP393? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.01.011
【Abstract】: Nowadays, the researches of malicious crawler defense mainly depends on the detection results to block the malicious crawler`s IP address. The single detection and defense mechanism unable to deal with the complex and changeable malicious crawlers, the high error rate of detection resulting in false blocking and leaky blocking. This paper proposes a malicious crawler active defense technology based on the idea of moving target defense, and uses a new dynamic method of HTML. Combined with adaptive jump strategy to curb the formulation of crawler rules and subsequent malicious operations. Through experimental comparison, the active defense method proposed in this paper can effectively limit the automated and batch behavior of malicious crawlers; in the premise of ensuring the security of data content, it can effectively reduce the impact on service performance.
【Key words】: Active defense; Moving target defense; Malicious crawler; Information security
0? 引言
大數(shù)據(jù)時(shí)代背景下,人們獲取有效信息的需求不斷增加,網(wǎng)絡(luò)爬蟲作為自動(dòng)化獲取信息的有力助手得以迅猛發(fā)展[1]。網(wǎng)絡(luò)爬蟲能夠根據(jù)預(yù)設(shè)規(guī)則實(shí)現(xiàn)自動(dòng)化、持續(xù)化、低成本地和網(wǎng)絡(luò)應(yīng)用進(jìn)行交互,使之被應(yīng)用到了各個(gè)領(lǐng)域,如用以解決信息過(guò)載的搜索引擎[2]。
在享受網(wǎng)絡(luò)爬蟲帶來(lái)的便利的同時(shí),網(wǎng)絡(luò)爬蟲也帶來(lái)了諸多安全隱患,企業(yè)核心數(shù)據(jù)被利用網(wǎng)絡(luò)爬蟲暴力批量獲取、非法批量采集敏感數(shù)據(jù)進(jìn)行社會(huì)工程學(xué)攻擊、刷票/刷點(diǎn)評(píng)/秒殺工具帶來(lái)惡意競(jìng)爭(zhēng)、批量檢測(cè)站點(diǎn)漏洞從而造成經(jīng)濟(jì)損失以及占用網(wǎng)絡(luò)帶寬、虛耗網(wǎng)絡(luò)資源等[3],這些不按照網(wǎng)站給出的robots協(xié)議,未經(jīng)授權(quán)進(jìn)行惡意訪問(wèn)的爬蟲本文中定義為惡意爬蟲,這些爬蟲的存在對(duì)網(wǎng)絡(luò)環(huán)境帶來(lái)了巨大的安全隱患。
Distil Networks 2018研究報(bào)告指出,互聯(lián)網(wǎng)中有約40%~60%的流量來(lái)自網(wǎng)絡(luò)爬蟲,其中惡意爬蟲占據(jù)一半的流量[4]。惡意爬蟲的存在給網(wǎng)絡(luò)安全帶來(lái)了新的挑戰(zhàn),如何高效的防御惡意爬蟲成為網(wǎng)絡(luò)應(yīng)用建設(shè)者和安全研究者的共同目標(biāo)。
本文提出一種基于移動(dòng)目標(biāo)防御且自適應(yīng)調(diào)整變換頻率的惡意爬蟲主動(dòng)防御方法,能夠有效的對(duì)惡意爬蟲進(jìn)行防御,并能夠在保證數(shù)據(jù)安全的前提下降低時(shí)間和資源的開銷。本文主要提出一種新型的HTML動(dòng)態(tài)化方法,來(lái)增強(qiáng)HTML代碼的復(fù)雜性和不可預(yù)測(cè)性,并通過(guò)實(shí)驗(yàn)驗(yàn)證其有效性;提出一種自適應(yīng)調(diào)整變換頻率的策略,通過(guò)實(shí)驗(yàn)證明該策略可以有效的降低系統(tǒng)的開銷。
1? 研究現(xiàn)狀
惡意爬蟲帶來(lái)的安全隱患已經(jīng)引起了研究人員和網(wǎng)絡(luò)應(yīng)用從業(yè)者的廣泛關(guān)注,提出了很多防御機(jī)制,現(xiàn)階段常見的防御方式有依據(jù)檢測(cè)結(jié)果對(duì)相應(yīng)的IP地址進(jìn)行封禁,采用驗(yàn)證碼進(jìn)行限制和利用頁(yè)面元素隨機(jī)化進(jìn)行主動(dòng)防御的機(jī)制。
魯念平[5]檢測(cè)后利用圖形驗(yàn)證碼進(jìn)行攔截,該方案的主要觀點(diǎn)是,通過(guò)識(shí)別進(jìn)行封禁,為了容錯(cuò)性,選用了較為簡(jiǎn)單的數(shù)字和字母混合的驗(yàn)證碼方式進(jìn)行攔截。然而,當(dāng)前技術(shù)研究中已經(jīng)出現(xiàn)了大量針對(duì)驗(yàn)證碼識(shí)別的模型,能夠快速準(zhǔn)確的進(jìn)行識(shí)別、提交,該方案無(wú)法達(dá)到預(yù)期效果。
歐陽(yáng)志友[6]等人提出行為式驗(yàn)證碼,通過(guò)梯度提升模型的二分器對(duì)訪問(wèn)者的鼠標(biāo)軌跡進(jìn)行分類,可以限制對(duì)惡意爬蟲的訪問(wèn),但是文章中并未提及該驗(yàn)證碼的實(shí)際形式,并且,現(xiàn)有的惡意網(wǎng)絡(luò)爬蟲技術(shù)有能力可以事先錄制鼠標(biāo)軌跡進(jìn)行模擬,能夠完全繞過(guò)該類驗(yàn)證碼。
任宏偉[7]提出基于BreakOut異常檢測(cè)算法,對(duì)異常流量的IP地址進(jìn)行懲罰封殺,從而降低異常流量占比,緩解網(wǎng)站服務(wù)的壓力,該方法完全依賴檢測(cè)結(jié)果,如果檢測(cè)結(jié)果存在較高誤差,將會(huì)對(duì)正常用戶進(jìn)行限制,影響系統(tǒng)的可用性;另一方面,考慮到IPv4的有限性,多數(shù)的客戶端都使用的一個(gè)出口IP,如果對(duì)IP地址進(jìn)行懲罰,將會(huì)導(dǎo)致大量正常用戶無(wú)法訪問(wèn)。因此該方法無(wú)法保證系統(tǒng)的用戶體驗(yàn)。
Wang W[8]等人,利用將HTML頁(yè)面靜態(tài)的標(biāo)簽隨機(jī)化用來(lái)限制對(duì)頁(yè)面內(nèi)容的持續(xù)匹配從而限制惡意爬蟲和廣告過(guò)濾器,使用隨機(jī)數(shù)增加了爬蟲批量化的難度,但是靜態(tài)路徑問(wèn)題依然存在,通過(guò)xPath方式進(jìn)行路徑匹配可以完全定位,并沒能解決爬蟲問(wèn)題。另一方面,該方案沒有考慮到頁(yè)面性能的問(wèn)題,為了防御爬蟲增加的各類特征,都增加了系統(tǒng)的資源開銷。
以上研究都對(duì)惡意爬蟲的防御起到了一定作用,但是主要還依賴于檢測(cè)結(jié)果,由于檢測(cè)、防御機(jī)制的單一,在面對(duì)智能化的爬蟲檢測(cè)成功率越來(lái)越低,無(wú)法有效的檢測(cè)出目前復(fù)雜多變的惡意爬蟲,進(jìn)而導(dǎo)致防御機(jī)制的誤封、漏封。本文提出的HTML動(dòng)態(tài)化的惡意爬蟲主動(dòng)防御方法,可以有效的增加爬蟲編寫者的分析難度,增加頁(yè)面的復(fù)雜性和不可預(yù)測(cè)性,通過(guò)主動(dòng)、動(dòng)態(tài)的方式預(yù)先加固了頁(yè)面的脆弱環(huán)節(jié)。
2? 基于HTML動(dòng)態(tài)化的惡意爬蟲主動(dòng)防御方法
該方法主要解決HTML內(nèi)容靜態(tài)性、路徑單一性、確定性所帶來(lái)數(shù)據(jù)安全威脅的問(wèn)題,旨在通過(guò)HTML代碼動(dòng)態(tài)化的方式,在保證不影響瀏覽器的正常解析的前提下,消除靜態(tài)、唯一匹配的元素、路徑,并在此基礎(chǔ)之上提出一種自適應(yīng)的跳變策略,降低系統(tǒng)因跳變所帶來(lái)的能耗。圖1所示為本文中主動(dòng)防御方法的流程圖,接下來(lái)章節(jié)將對(duì)該方法中的頁(yè)面動(dòng)態(tài)化和自適應(yīng)策略進(jìn)行進(jìn)一步闡述。
2.1? 頁(yè)面動(dòng)態(tài)化
惡意爬蟲的工作依賴于一系列預(yù)先設(shè)定好的規(guī)則,可以歸納為正則匹配和路徑匹配兩類。前者通過(guò)分析預(yù)匹配內(nèi)容所在HTML內(nèi)的位置,制訂相應(yīng)的正則表達(dá)式;后者通過(guò)分析DOM樹的xPath路徑,來(lái)確定精準(zhǔn)指向目標(biāo)元素的路徑。為了更好地分析這些規(guī)則中存在的共性問(wèn)題,本文通過(guò)針對(duì)Alexa排名前1000的站點(diǎn)編寫對(duì)應(yīng)的爬蟲進(jìn)行分析對(duì)比,如圖2所示,現(xiàn)有爬蟲通常依賴于HTML代碼中的靜態(tài)內(nèi)容,如靜態(tài)class/id/name等屬性值或由于HTML 的DOM樹結(jié)構(gòu)導(dǎo)致的確定性的路徑,因此本文提出動(dòng)態(tài)加密算法和動(dòng)態(tài)陷阱的概念對(duì)靜態(tài)屬性和路徑進(jìn)行動(dòng)態(tài)化處理。
2.1.1? 動(dòng)態(tài)加密靜態(tài)元素
由于HTML靜態(tài)屬性值賦予了爬蟲匹配規(guī)則的唯一定位和持久可用性,本文采用動(dòng)態(tài)加密的方式對(duì)靜態(tài)屬性進(jìn)行加密處理,使得每次響應(yīng)的HTML代碼中原有的HTML靜態(tài)屬性動(dòng)態(tài)變化,且具有不可逆向和不可預(yù)測(cè)性。
文獻(xiàn)[8]提到的頁(yè)面隨機(jī)化技術(shù)應(yīng)用于阻止AdBlock,其將HTML靜態(tài)屬性進(jìn)行隨機(jī)化處理,需要將隨機(jī)化的內(nèi)容進(jìn)行映射存儲(chǔ),存在逆向風(fēng)險(xiǎn)。本文引入一種動(dòng)態(tài)加密算法,將Rijndael算法進(jìn)行改進(jìn)提升。Rijndael算法是基于代換-置換網(wǎng)絡(luò)(SPN,Substitution-permutation network)的迭代算法[9],具有較高的效率和安全性。
2.1.2? 動(dòng)態(tài)陷阱
經(jīng)過(guò)驗(yàn)證,對(duì)HTML靜態(tài)屬性值動(dòng)態(tài)化之后,靜態(tài)路徑仍然存在單一性和可匹配性的問(wèn)題存在,由于HTML源代碼DOM(文檔對(duì)象模型)樹結(jié)構(gòu)的緣故,父、子、同胞、先輩以及后代節(jié)點(diǎn)的上下級(jí)關(guān)系確定了任意子節(jié)點(diǎn)都至少存在一條從根節(jié)點(diǎn)到該節(jié)點(diǎn)的路徑支持精準(zhǔn)定位,并且由于路徑是由元素標(biāo)簽依次組成的,在沒有新的元素生成的前提下該路徑是靜態(tài)不變的,從圖中可以觀察到,即使其屬性或者文本發(fā)生變化也不會(huì)影響到該從根元素到該元素的路徑。惡意爬蟲可以利用xPath等selector方式進(jìn)行精準(zhǔn)定位,提取定位到節(jié)點(diǎn)的內(nèi)容、屬性或者事件做相應(yīng)操作。
通過(guò)實(shí)驗(yàn)分析,指向指定節(jié)點(diǎn)的任一路徑如果中間插入了任一標(biāo)簽,都會(huì)影響到該路徑的準(zhǔn)確性,路徑會(huì)發(fā)生變化,從而消除靜態(tài)路徑的可匹配性。因此,本文提出一種動(dòng)態(tài)陷阱技術(shù),消除DOM樹結(jié)構(gòu)導(dǎo)致的靜態(tài)路徑問(wèn)題,使HTML在動(dòng)態(tài)加密靜態(tài)屬性之后動(dòng)態(tài)混淆DOM層級(jí)關(guān)系。動(dòng)態(tài)陷阱的目標(biāo)是動(dòng)態(tài)地加入隱藏DOM樹節(jié)點(diǎn),只是影響DOM樹的層級(jí)結(jié)構(gòu)的相對(duì)位置,消除DOM路徑的單一性和可匹配性。本文提出自動(dòng)抽取當(dāng)前頁(yè)面結(jié)構(gòu),動(dòng)態(tài)加入陷阱節(jié)點(diǎn)。
該模塊根據(jù)指定內(nèi)容進(jìn)行動(dòng)態(tài)插入陷阱節(jié)點(diǎn),主要分為插入點(diǎn)的選取和插入內(nèi)容的選取兩部分。
(1)插入點(diǎn)的選取
路徑/html/body/div[5]/dl/dd/ul/li[7]/div[2]/div[1]/a表示的是一條指向a節(jié)點(diǎn)的路徑,路徑由節(jié)點(diǎn)、謂語(yǔ)等構(gòu)成,其中謂語(yǔ)包含在[]中,表示在當(dāng)前級(jí)別中選取的該類節(jié)點(diǎn)的第幾個(gè)節(jié)點(diǎn)。路徑的語(yǔ)法包含了根據(jù)DOM樹結(jié)構(gòu)的特點(diǎn)可以看出,在此條路徑中a元素的上級(jí)添加任意節(jié)點(diǎn)都會(huì)改變指向當(dāng)前a節(jié)點(diǎn)的路徑。
根據(jù)設(shè)定需要防護(hù)的內(nèi)容首先找到該內(nèi)容所處節(jié)點(diǎn)的路徑,DOM樹節(jié)點(diǎn)的精準(zhǔn)路徑會(huì)因?yàn)樵摴?jié)點(diǎn)的先輩節(jié)點(diǎn)和前驅(qū)同胞節(jié)點(diǎn)的增減而變化,故選取插入點(diǎn)的方式便是在其先輩節(jié)點(diǎn)中進(jìn)行插入或在其前面插入同胞節(jié)點(diǎn)。因此可以根據(jù)指定節(jié)點(diǎn)計(jì)算其先輩節(jié)點(diǎn)和前驅(qū)同胞節(jié)點(diǎn)的可能情況。
(2)插入內(nèi)容的選取
DOM樹中節(jié)點(diǎn)包含標(biāo)簽、標(biāo)簽屬性以及內(nèi)容,標(biāo)簽一般包含起始標(biāo)簽和結(jié)束標(biāo)簽均嵌入在尖括號(hào)中,內(nèi)容位于兩個(gè)標(biāo)簽的中間,如
(3)基于梅森旋轉(zhuǎn)算法的插入機(jī)制
插入機(jī)制通過(guò)隨機(jī)選擇的方式從插入點(diǎn)和插入內(nèi)容中進(jìn)行選取,為了能夠提升隨機(jī)性和不可預(yù)測(cè)性,需要對(duì)插入位置和插入內(nèi)容進(jìn)行隨機(jī)選擇,用來(lái)產(chǎn)生隨機(jī)數(shù)的方法有很多,如線性同余法、平方取中法以及梅森旋轉(zhuǎn)算法,考慮到隨機(jī)數(shù)質(zhì)量以及生成效率都有很大的優(yōu)勢(shì)[12],本文中引入梅森旋轉(zhuǎn)法做相應(yīng)改造后來(lái)進(jìn)行隨機(jī)選擇,通過(guò)實(shí)驗(yàn)分析動(dòng)態(tài)陷阱具有很高的不可逆向性和不可預(yù)測(cè)性,能夠高效地消除HTML中的靜態(tài)路徑問(wèn)題。
2.2? 自適應(yīng)調(diào)整動(dòng)態(tài)頻率
移動(dòng)目標(biāo)防御最重要的三個(gè)問(wèn)題,“變什么”、“什么時(shí)間變”以及“怎么變”,前邊章節(jié)已經(jīng)講述了“變什么”和“怎么變”,而動(dòng)態(tài)的改變就會(huì)給系統(tǒng)帶來(lái)負(fù)面影響,影響系統(tǒng)的響應(yīng)時(shí)間,因此選取一個(gè)合理的跳變策略,能夠?qū)崿F(xiàn)一個(gè)高效的移動(dòng)目標(biāo)防御系統(tǒng)[10-11]。
文獻(xiàn)[8]中忽略了對(duì)實(shí)際應(yīng)用中并發(fā)的考慮,假設(shè)web頁(yè)面元素動(dòng)態(tài)化頻率為1秒鐘一次,在t0時(shí)刻剛結(jié)束上一次跳變則t0+1時(shí)刻繼續(xù)跳變,這時(shí),如果訪問(wèn)量達(dá)到了原有系統(tǒng)(未加跳變模塊時(shí))的最大承受量,且響應(yīng)時(shí)間接近1秒,即系統(tǒng)將針對(duì)每一個(gè)響應(yīng)都要進(jìn)行一次跳變,系統(tǒng)的,進(jìn)而無(wú)法繼續(xù)提供服務(wù)。
本文提出一種自適應(yīng)調(diào)整變換頻率的策略,旨在降低因動(dòng)態(tài)化帶來(lái)的系統(tǒng)開銷。自適應(yīng)的初衷即是為了能夠更好的利用系統(tǒng)性能,保證系統(tǒng)的服務(wù)質(zhì)量,引進(jìn)一種對(duì)系統(tǒng)剩余性能狀態(tài)進(jìn)行量化的方法,該方法對(duì)系統(tǒng)的性能指標(biāo)實(shí)時(shí)采集、計(jì)算,從而得出目前的系統(tǒng)性能狀態(tài)。為了確保系統(tǒng)性能狀態(tài)對(duì)自適應(yīng)策略影響的準(zhǔn)確性,需要獲得較為全面的系統(tǒng)信息參數(shù),采集和處理過(guò)程中過(guò)多的參數(shù)會(huì)帶來(lái)額外的開銷。如果對(duì)性能的改進(jìn)不能彌補(bǔ)過(guò)程中額外的開銷,過(guò)多的參數(shù)易造成負(fù)載均衡服務(wù)器過(guò)載。因此,盡量避免引入過(guò)多冗余的參數(shù)。根據(jù)本系統(tǒng)實(shí)際情況分析,由于服務(wù)器節(jié)點(diǎn)在存儲(chǔ)方面對(duì)系統(tǒng)負(fù)載影響較小,本文中的方法不考慮硬盤利用率,采用CPU利用率、內(nèi)存利用率和IO消耗。
3? 模型驗(yàn)證
為了測(cè)試本文中的模型的安全性和效率,本文開發(fā)了支持各類請(qǐng)求和實(shí)際訪問(wèn)的web應(yīng)用,用于實(shí)驗(yàn)測(cè)試。使用Python語(yǔ)言搭建一個(gè)涵蓋所有頁(yè)面類型的站點(diǎn),其中包括各類可匹配的靜態(tài)元素、靜態(tài)路徑,支持惡意爬蟲的采集爬取、惡意模擬提交等150個(gè)web頁(yè)面。
3.1? 頁(yè)面動(dòng)態(tài)化實(shí)驗(yàn)分析
本文中頁(yè)面動(dòng)態(tài)化主要采用了對(duì)靜態(tài)屬性動(dòng)態(tài)加密和動(dòng)態(tài)插入陷阱節(jié)點(diǎn),增強(qiáng)了頁(yè)面數(shù)據(jù)的安全性,降低了冗余存儲(chǔ)以及加密時(shí)間,因此本實(shí)驗(yàn)選擇本文方法(方案一)與文獻(xiàn)[8](方案二)以及普通方案(正常情況)進(jìn)行比較,主要從爬蟲交互的成功率、動(dòng)態(tài)化時(shí)間兩個(gè)維度進(jìn)行實(shí)驗(yàn)。
爬蟲交互成功率采用實(shí)際請(qǐng)求的方式,分別使用成熟的爬蟲工具(八爪魚、集搜客等)、GitHub成熟的爬蟲代碼以及針對(duì)性的編寫爬蟲代碼三種方式進(jìn)行對(duì)自建站點(diǎn)的所有頁(yè)面惡意爬取和交互,并統(tǒng)計(jì)每種方案下的交互成功率。
分析不同方案對(duì)頁(yè)面加載時(shí)間的影響,為了更好地統(tǒng)計(jì)頁(yè)面加載時(shí)間,降低其它因素對(duì)響應(yīng)時(shí)間的干擾,本次實(shí)驗(yàn)中采用對(duì)不同大小頁(yè)面進(jìn)行分組,分為了0-0.5*10^6byte,0.5-01*10^6byte以此類推共計(jì)六組來(lái)驗(yàn)證三種方案下頁(yè)面加載時(shí)間;加載時(shí)間的記錄通過(guò)對(duì)每個(gè)重復(fù)頁(yè)面請(qǐng)求10次取均值處理。
表1中數(shù)值代表了不同防御方案、不同爬蟲工具對(duì)實(shí)驗(yàn)站點(diǎn)所有頁(yè)面進(jìn)行交互的成功率,通過(guò)對(duì)比實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),由于文獻(xiàn)[8]中只是對(duì)靜態(tài)屬性值進(jìn)行了隨機(jī)化,從一定程度上對(duì)惡意爬蟲進(jìn)行了限制,但是針對(duì)性代碼仍能通過(guò)xPath路徑,仍可以精準(zhǔn)定位到關(guān)鍵元素,并進(jìn)行后續(xù)的惡意攻擊操作。而本文中提出的方案在各類攻擊工具面前成功率均在10%以內(nèi),幾乎能夠?qū)λ许?yè)面進(jìn)行防護(hù)。因此,本文提出的方案能夠有效的對(duì)惡意爬蟲進(jìn)行全面的防御。
可以看出本文中提出的方案在各類頁(yè)面大小分組下都具有較好的優(yōu)勢(shì),另外由于方案二中增加了過(guò)多的冗余存儲(chǔ),當(dāng)頁(yè)面過(guò)大,過(guò)多元素映射關(guān)系的存儲(chǔ)帶來(lái)檢索的壓力,導(dǎo)致時(shí)間變長(zhǎng),實(shí)驗(yàn)結(jié)果也表明,當(dāng)頁(yè)面不斷增大時(shí),本文提出的方案(方案二)的效果也更為凸顯。
3.2? 自適應(yīng)策略性能分析
增加動(dòng)態(tài)化策略增大了系統(tǒng)的開銷,為了能夠選定一個(gè)高效率的動(dòng)態(tài)頻率,將本文提出的自適應(yīng)動(dòng)態(tài)頻率和固有頻率進(jìn)行對(duì)比,固有頻率選取保證安全性前提下的三個(gè)值與自適應(yīng)頻率進(jìn)行對(duì)比。
編寫實(shí)時(shí)獲取系統(tǒng)性能指標(biāo)的代碼用于自適應(yīng)跳變策略的,本實(shí)驗(yàn)增加動(dòng)態(tài)變換策略后主要影響的性能點(diǎn)事CPU利用率和頁(yè)面響應(yīng)時(shí)間,本文中采用真實(shí)的用戶進(jìn)行對(duì)站點(diǎn)的訪問(wèn)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)分組分為四組,各組配置如表2所示。
以上分析可以得出,當(dāng)加入動(dòng)態(tài)策略之后,系統(tǒng)的性能受到影響,并且隨著用戶并發(fā)量愈發(fā)顯著,在不考慮性能的情況下,每秒鐘對(duì)頁(yè)面進(jìn)行一次動(dòng)態(tài)加密,幾乎可以完全阻止頁(yè)面數(shù)據(jù)的采集行為,但是頻率越大,對(duì)性能影響也越大,在自建站點(diǎn)上正常最佳用戶量為40,當(dāng)頻率達(dá)到一秒鐘一次自建系統(tǒng)最佳用戶量為25,自適應(yīng)策略可以根據(jù)系統(tǒng)真實(shí)情況自適應(yīng)動(dòng)態(tài)調(diào)整變換頻率,從而減少了系統(tǒng)消耗并提升了數(shù)據(jù)安全性。
4? 總結(jié)
本文針對(duì)惡意爬蟲利用靜態(tài)路徑進(jìn)行惡意操作的問(wèn)題,提出了惡意陷阱技術(shù),通過(guò)動(dòng)態(tài)化的添加陷阱節(jié)點(diǎn)消除了靜態(tài)路徑帶來(lái)的精準(zhǔn)匹配隱患;同時(shí)對(duì)靜態(tài)屬性隨機(jī)化進(jìn)行優(yōu)化,使用動(dòng)態(tài)加密算法解決了利用正則等方式進(jìn)行匹配目標(biāo)元素的問(wèn)題,這兩個(gè)主動(dòng)、動(dòng)態(tài)措施有效的遏制了復(fù)雜多變的爬蟲的惡意行為,彌補(bǔ)了現(xiàn)有被動(dòng)防御技術(shù)中過(guò)于單一、誤判率高等問(wèn)題。另外,本文考慮到動(dòng)態(tài)化帶來(lái)的資源消耗問(wèn)題,提出一種自適應(yīng)的動(dòng)態(tài)化機(jī)制,有效地降低了因附加動(dòng)態(tài)化而帶來(lái)的系統(tǒng)性能問(wèn)題。
參考文獻(xiàn)
Lee J, Cha S, Lee D, et al. Classification of web robots: An empirical study based on over one billion requests[J]. Computers & Security, 2009, 28(8): 795-802.
胡晟. 基于網(wǎng)絡(luò)爬蟲的Web挖掘應(yīng)用[J]. 軟件, 2012, 7: 145-147.
Vikram S, Yang C, Gu G. NOMAD: Towards non-intrusive moving-target defense against web bots[C]//Communications and Network Security. IEEE, 2014: 55-63.
Distil Networks.2017 Bad Bot Report[R]. San Francisco, 2018.
魯念平. 針對(duì)信息披露網(wǎng)站的實(shí)時(shí)爬蟲檢測(cè)與攔截[D]. 哈爾濱工業(yè)大學(xué), 2016.
歐陽(yáng)志友, 孫孝魁等. 基于梯度提升模型的行為式驗(yàn)證碼人機(jī)識(shí)別[J]. 信息網(wǎng)絡(luò)安全, 2017(9): 143-146.
任宏偉. 基于異常檢測(cè)技術(shù)的數(shù)據(jù)防爬系統(tǒng)設(shè)計(jì)與應(yīng)用[D]. 中國(guó)科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院), 2016.
Wang W, Zheng Y, Xing X, et al. WebRanz: web page randomization for better advertisement delivery and web-bot prevention[C]//ACM Sigsoft International Symposium on Foundations of Software Engineering. ACM, 2016: 205-216.
趙凱,胡云琴. Rijndael加密算法的原理分析[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2015(4): 14-15.
劉丹軍, 蔡桂林, 王寶生. AMTD: 一種適應(yīng)性移動(dòng)目標(biāo)防御方法[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2018(1): 15-25.
趙鑫. 跳變信息服務(wù)系統(tǒng)研究[J]. 軟件, 2018, 39(3): 204- 208.
焦然, 王宜敏. 引入梅森旋轉(zhuǎn)算法的三角網(wǎng)格模型部分隱寫算法[J]. 電子測(cè)量技術(shù), 2017(12): 228-232.