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