林楚苓 關(guān)春喜 梁焰豪

摘? 要:網(wǎng)絡(luò)的迅速發(fā)展,讓萬(wàn)維網(wǎng)成為大量信息的載體,搜索引擎進(jìn)入大眾的生活。為了定向的幫助搜索引擎抓取相關(guān)網(wǎng)頁(yè)資源,網(wǎng)絡(luò)爬蟲(chóng)應(yīng)運(yùn)而生。網(wǎng)絡(luò)爬蟲(chóng)是一個(gè)自動(dòng)提取網(wǎng)頁(yè)的程序,一些惡意的網(wǎng)絡(luò)爬蟲(chóng)不僅會(huì)對(duì)網(wǎng)站的信息進(jìn)行竊取,還會(huì)對(duì)網(wǎng)站造成不可彌補(bǔ)的傷害。隨之進(jìn)入我們生活的還有網(wǎng)絡(luò)爬蟲(chóng)的死對(duì)頭——反爬蟲(chóng)。本文研究使用機(jī)器學(xué)習(xí)進(jìn)行爬蟲(chóng)識(shí)別,從而使得更好的制定反爬蟲(chóng)策略,用機(jī)器識(shí)別代替人工識(shí)別,減少了人為識(shí)別爬蟲(chóng)的工作量,降低了識(shí)別爬蟲(chóng)的人力物力的損耗,還能提高爬蟲(chóng)的識(shí)別率,從而做到保護(hù)網(wǎng)站信息以及網(wǎng)站設(shè)備。
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲(chóng);反爬蟲(chóng)策略;機(jī)器學(xué)習(xí);信息安全
1? 引言
現(xiàn)階段,科技不斷地發(fā)展,人們的搜索引擎變得多種多樣,為了快速?gòu)幕ヂ?lián)網(wǎng)中獲得大量目標(biāo)數(shù)據(jù),就需要編寫一些腳本程序,按照一定規(guī)律批量獲取數(shù)據(jù),這就是所謂的爬蟲(chóng)[1]。網(wǎng)絡(luò)爬蟲(chóng)的出現(xiàn),既是造福了社會(huì),也是污染了網(wǎng)絡(luò)環(huán)境,惡意爬蟲(chóng)會(huì)嚴(yán)重增加了網(wǎng)站服務(wù)器的負(fù)擔(dān),還可能造成僵尸網(wǎng)絡(luò)的出現(xiàn)。不僅如此,惡意爬蟲(chóng)的出現(xiàn)還為盜取他人網(wǎng)站重要數(shù)據(jù)提供了便利的途徑,非法爬取網(wǎng)站的重要數(shù)據(jù)會(huì)造成網(wǎng)站重要數(shù)據(jù)和用戶信息的泄露,導(dǎo)致網(wǎng)站重大的商業(yè)損失。針對(duì)網(wǎng)絡(luò)爬蟲(chóng),反爬蟲(chóng)機(jī)制孕育而生,如今大部分的網(wǎng)絡(luò)爬蟲(chóng)還依靠著人為進(jìn)行識(shí)別,這樣的反爬蟲(chóng)工作即費(fèi)時(shí)又費(fèi)力。近幾年來(lái),機(jī)器學(xué)習(xí)由于可以大大減少人為工作量,減少了對(duì)人力物力損耗而出現(xiàn)在人們的生活中。本文將研究基于機(jī)器學(xué)習(xí)實(shí)現(xiàn)反爬蟲(chóng)的應(yīng)用策略,針對(duì)網(wǎng)絡(luò)爬蟲(chóng)的特征實(shí)現(xiàn)機(jī)器學(xué)習(xí)自動(dòng)化識(shí)別惡意網(wǎng)絡(luò)爬蟲(chóng),從而實(shí)現(xiàn)反爬蟲(chóng)策略,使得能夠?qū)W(wǎng)站及其重要數(shù)據(jù)進(jìn)行更好的保護(hù)。
2? 機(jī)器學(xué)習(xí)爬蟲(chóng)識(shí)別的實(shí)現(xiàn)
2.1? 機(jī)器學(xué)習(xí)
目前人工智能已經(jīng)為人類創(chuàng)造出了非常可觀的經(jīng)濟(jì)效益,人工智能可以代替人類做大量人類不想做、不能做的工作,而且機(jī)器犯錯(cuò)誤的概率比人低,并且能夠持續(xù)工作,大大的提升工作效率,節(jié)約了大量的成本。機(jī)器學(xué)習(xí)(Machine Learning,ML)是一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、算法復(fù)雜度理論等多門學(xué)科,是人工智能的一個(gè)分支。
2.2? 爬蟲(chóng)特征
為了更好的識(shí)別網(wǎng)絡(luò)爬蟲(chóng),從而進(jìn)行反爬蟲(chóng)策略的實(shí)施,收集了網(wǎng)絡(luò)爬蟲(chóng)的特征。目前網(wǎng)絡(luò)上的網(wǎng)絡(luò)爬蟲(chóng)具有以下特征:①相同IP的請(qǐng)求頻率大、②相同的IP每次訪問(wèn)的時(shí)間間隔小、③IP所在地不穩(wěn)定、④user-agent不是常見(jiàn)標(biāo)識(shí)、⑤驗(yàn)證碼的請(qǐng)求次數(shù)多、⑥激活爬蟲(chóng)陷阱、⑦圖片訪問(wèn)百分比高、⑧錯(cuò)誤響應(yīng)高、⑨不對(duì)robot.txt進(jìn)行訪問(wèn)。
2.3? 識(shí)別算法
決策樹(shù)是機(jī)器學(xué)習(xí)的經(jīng)典算法之一,決策樹(shù)(Decision tree)由一個(gè)決策圖和可能的結(jié)果(包括資源成本和風(fēng)險(xiǎn))組成,用來(lái)創(chuàng)建到達(dá)目標(biāo)的規(guī)劃。決策樹(shù)建立并用來(lái)輔助決策,是一種特殊的樹(shù)結(jié)構(gòu)。根據(jù)網(wǎng)絡(luò)爬蟲(chóng)的特征,使用決策樹(shù)算法對(duì)訓(xùn)練集訓(xùn)練生成概率運(yùn)算的決策模型,從而使用該決策模型進(jìn)行識(shí)別網(wǎng)絡(luò)爬蟲(chóng)。
2.4? 實(shí)現(xiàn)流程
通過(guò)連接需檢測(cè)網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)站數(shù)據(jù)庫(kù),遍歷需檢測(cè)網(wǎng)站的所有訪問(wèn)請(qǐng)求特征,再使用決策數(shù)通過(guò)訓(xùn)練集訓(xùn)練出來(lái)的識(shí)別模塊對(duì)收集到的訪問(wèn)請(qǐng)求特征進(jìn)行請(qǐng)求分析,從而實(shí)現(xiàn)對(duì)訪問(wèn)中網(wǎng)絡(luò)爬蟲(chóng)的識(shí)別,最后輸出對(duì)應(yīng)IP的檢測(cè)結(jié)果和判斷依據(jù)。通過(guò)這樣的反饋可以使得網(wǎng)站管理員對(duì)網(wǎng)站訪問(wèn)進(jìn)行限制、人工糾錯(cuò)等相關(guān)操作。使用機(jī)器學(xué)習(xí)識(shí)別爬蟲(chóng),在降低了人工成本和提高網(wǎng)站運(yùn)行效率的同時(shí)還能避免特殊訪問(wèn)節(jié)點(diǎn)的爬蟲(chóng)檢測(cè)誤判。流程圖如圖1所示。
3? 反爬蟲(chóng)策略的實(shí)現(xiàn)
有矛必有盾,網(wǎng)絡(luò)爬蟲(chóng)的反制機(jī)制便是針對(duì)惡意爬蟲(chóng)而制定的、為防止爬蟲(chóng)對(duì)網(wǎng)站進(jìn)行侵害的一種策略。反爬蟲(chóng)機(jī)制是針對(duì)爬蟲(chóng)特征對(duì)網(wǎng)絡(luò)爬蟲(chóng)進(jìn)行防御的一系列計(jì)策。反爬蟲(chóng)機(jī)制大大減小了爬蟲(chóng)對(duì)網(wǎng)站的危害,在一定程度上保護(hù)了網(wǎng)站的數(shù)據(jù)安全、減小了網(wǎng)站服務(wù)器的負(fù)擔(dān)。但在現(xiàn)階段,大部分的反爬蟲(chóng)工作仍然依靠著人為操作,人工判斷、識(shí)別爬蟲(chóng),從而實(shí)現(xiàn)對(duì)爬蟲(chóng)的封禁等操作,浪費(fèi)了大量的人力、物力、財(cái)力等,而且識(shí)別爬蟲(chóng)的效率也處于較低的狀態(tài)。
通過(guò)機(jī)器學(xué)習(xí)識(shí)別網(wǎng)絡(luò)爬蟲(chóng),不僅可以讓網(wǎng)站管理人員可以對(duì)可疑的IP進(jìn)行限制等相關(guān)操作,網(wǎng)站設(shè)計(jì)者還可以根據(jù)識(shí)別爬蟲(chóng)后輸出的信息優(yōu)化自身系統(tǒng)中的反爬蟲(chóng)機(jī)制,從而做到更好的保護(hù)網(wǎng)站的安全。如同一IP訪問(wèn)頻率過(guò)高的情況出現(xiàn)過(guò)多時(shí),可以在服務(wù)端增加對(duì)IP訪問(wèn)頻率的限制,當(dāng)超過(guò)一定頻率便認(rèn)定為網(wǎng)絡(luò)爬蟲(chóng),從而進(jìn)行防御。網(wǎng)站管理人員也可以直接根據(jù)爬蟲(chóng)檢測(cè)對(duì)系統(tǒng)的爬蟲(chóng)檢測(cè)數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,設(shè)計(jì)出合理的主題反爬蟲(chóng)方案,從而更有效的實(shí)現(xiàn)對(duì)網(wǎng)站的保護(hù),減少網(wǎng)絡(luò)爬蟲(chóng)對(duì)網(wǎng)站硬件資源侵害和重要數(shù)據(jù)盜取,使得網(wǎng)站在互聯(lián)網(wǎng)時(shí)代的潮流中保持的競(jìng)爭(zhēng)優(yōu)勢(shì)。
4? 總結(jié)
目前網(wǎng)絡(luò)上超過(guò)60%的訪問(wèn)請(qǐng)求都來(lái)源于爬蟲(chóng)機(jī)器人,而其中便有不少爬蟲(chóng)屬于惡意爬蟲(chóng)。這類爬蟲(chóng)擁有一些共性,如盜竊站點(diǎn)數(shù)據(jù)、偷取敏感信息、對(duì)站點(diǎn)進(jìn)行攻擊等。[3]由于網(wǎng)絡(luò)爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì)根據(jù)特定策略盡可能多的訪問(wèn)頁(yè)面,占用網(wǎng)絡(luò)帶寬并增加Web服務(wù)器的處理開(kāi)銷,不少小型站點(diǎn)的站長(zhǎng)發(fā)現(xiàn)當(dāng)網(wǎng)絡(luò)爬蟲(chóng)光顧的時(shí)候,訪問(wèn)流量將會(huì)有明顯的增長(zhǎng)。惡意用戶可以利用爬蟲(chóng)程序?qū)eb站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪問(wèn)下,資源耗盡而不能提供正常服務(wù)。惡意用戶還可能通過(guò)網(wǎng)絡(luò)爬蟲(chóng)抓取各種敏感資料用于不正當(dāng)用途。網(wǎng)絡(luò)爬蟲(chóng)及其對(duì)應(yīng)的技術(shù)為網(wǎng)站帶來(lái)了可觀訪問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全威脅,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對(duì)網(wǎng)絡(luò)爬蟲(chóng)的限制問(wèn)題。在網(wǎng)絡(luò)世界中,作為站點(diǎn)管理員,保障網(wǎng)站及其數(shù)據(jù)安全是一件十分重要的事情。本文研究了機(jī)器學(xué)習(xí)與網(wǎng)絡(luò)爬蟲(chóng)識(shí)別相結(jié)合,使得更加有效智能的識(shí)別網(wǎng)絡(luò)爬蟲(chóng),降低網(wǎng)絡(luò)爬蟲(chóng)對(duì)網(wǎng)站的侵害,還大大減小了人為識(shí)別網(wǎng)絡(luò)爬蟲(chóng)的誤差,在一定程度上阻止了網(wǎng)絡(luò)爬蟲(chóng)對(duì)網(wǎng)站的侵害,達(dá)到數(shù)據(jù)保護(hù)、系統(tǒng)穩(wěn)定性保障、競(jìng)爭(zhēng)優(yōu)勢(shì)保持的目的。
參考文獻(xiàn)
[1]? 周立柱,林玲.聚焦爬蟲(chóng)技術(shù)研究綜述[J].計(jì)算機(jī)應(yīng)用,2005(09):1965-1969.
[2]? 劉宇,程學(xué)林.基于決策樹(shù)算法的爬蟲(chóng)識(shí)別技術(shù)[J].軟件,2017,38(07):122-125.
[3]? 梁焰豪,關(guān)春喜,林楚苓,等.基于機(jī)器學(xué)習(xí)的電商網(wǎng)站知識(shí)產(chǎn)權(quán)保護(hù)[J].電腦迷,2018,000(021):188.