等標(biāo)簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標(biāo)簽中包含URL信息,便于惡意用戶進(jìn)行更深入的Web訪問或提交操作。
2)URL匹配:對(duì)Web頁(yè)面中的URL進(jìn)行自動(dòng)匹配,提取由參數(shù)組合而成的動(dòng)態(tài)查詢URL或提交URL,進(jìn)行下一步的漏洞探測(cè)。如動(dòng)態(tài)查詢 URL“http://baike.xxxx.com/searchword/?word=frameset&pic=1”,其中 frameset為URL中動(dòng)態(tài)的參數(shù)部分,可以進(jìn)行參數(shù)變換。提交URL用于把Web用戶的輸入提交到服務(wù)器進(jìn)行處理,其參數(shù)多為用戶輸入,同樣可以進(jìn)行參數(shù)變換。
3)漏洞試探:根據(jù)動(dòng)態(tài)查詢URL或提交URL,自動(dòng)在參數(shù)部分進(jìn)行參數(shù)變換,插入引號(hào)、分號(hào)(SQL注入對(duì)其敏感)及script標(biāo)簽(XSS對(duì) 其敏感)等操作進(jìn)行試探,并根據(jù)Web服務(wù)器返回的結(jié)果自動(dòng)判斷是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢URL可以變換成 http://baike.xxxx.com/searchword/?word= &pic=1進(jìn)行跨站腳本漏洞探測(cè)。
圖 基于網(wǎng)絡(luò)爬蟲技術(shù)的WEB漏洞掃描原理圖
如何應(yīng)對(duì)爬蟲的安全威脅
由于網(wǎng)絡(luò)爬蟲帶來(lái)的安全威脅,不少網(wǎng)站的管理人員都在考慮對(duì)爬蟲訪問進(jìn)行限制甚至拒絕爬蟲訪問。實(shí)際上,根據(jù)網(wǎng)站內(nèi)容的安全性及敏感性,區(qū)別對(duì)待爬 蟲是比較理想的措施。網(wǎng)站的URL組織應(yīng)該根據(jù)是否為適合大范圍公開,設(shè)置不同的URL路徑,在同一Web頁(yè)面中既有需要完全公開信息也有敏感信息時(shí),應(yīng) 通過鏈接、標(biāo)簽嵌入網(wǎng)頁(yè)等方式顯示敏感內(nèi)容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評(píng)估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開。當(dāng)限制爬蟲時(shí)可以針對(duì) URL路徑的安全性與敏感性對(duì)不同種類的爬蟲與代理進(jìn)行限制。
限制爬蟲可以通過以下幾種方法實(shí)現(xiàn):
1) 設(shè)置robots.txt文件
限制爬蟲最簡(jiǎn)單的方法是設(shè)置robots.txt文件。robots.txt文件是搜索引擎爬蟲訪問網(wǎng)站的時(shí)候要查看的第一個(gè)文件,它告訴爬蟲程序在服務(wù)器上什么文件是可以被查看的,如設(shè)置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲會(huì)遵守這個(gè)規(guī)則,因此僅僅設(shè)置robots文件是不夠的。
2) User Agent識(shí)別與限制
要對(duì)不理會(huì)robots.txt文件的爬蟲訪問進(jìn)行限制,首先要把爬蟲流量與普通用戶的訪問流量進(jìn)行區(qū)分,即對(duì)其進(jìn)行識(shí)別。一般的爬蟲程序都可以通過其HTTP請(qǐng)求中的User Agent字段進(jìn)行識(shí)別,該字段使服務(wù)器能夠識(shí)別客戶使用的操作系統(tǒng)及版本、CPU類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲的User Agent字段一般與瀏覽器的有所不同,如Google搜索引擎爬蟲User Agent字段中會(huì)有類似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( http://www.google.com/bot.html),百度搜索引擎爬蟲則會(huì)有類似Baiduspider的字符串。不少Web服務(wù)器軟件如 Apache,可以設(shè)置通過User Agent字段進(jìn)行訪問過濾,可以比較有效的限制大部分爬蟲的訪問。
3) 通過訪問行為特征識(shí)別與限制
對(duì)于在HTTP請(qǐng)求的User Agent字段刻意偽裝成瀏覽器的爬蟲,可以通過其訪問行為特征進(jìn)行識(shí)別。爬蟲程序的訪問一般是有規(guī)律性的頻率比較高,區(qū)別于真實(shí)用戶瀏覽時(shí)的隨意性與低 頻率。對(duì)這類爬蟲的限制原理與DDoS攻擊的防御原理很相似,都基于統(tǒng)計(jì)數(shù)據(jù)。對(duì)于這類爬蟲的限制只能通過應(yīng)用識(shí)別設(shè)備、IPS等能夠做深度識(shí)別的網(wǎng)絡(luò)設(shè) 備來(lái)實(shí)現(xiàn)。用網(wǎng)絡(luò)設(shè)備限制網(wǎng)絡(luò)爬蟲,不僅比較全面,而且非常適合在多服務(wù)器情況下進(jìn)行統(tǒng)一的管理,避免多服務(wù)器單獨(dú)管理有可能造成的疏漏。
結(jié)束語(yǔ)
網(wǎng)絡(luò)爬蟲及其對(duì)應(yīng)的技術(shù)為網(wǎng)站帶來(lái)了可觀訪問量的同時(shí),也帶來(lái)了直接與間接的安全威脅,越來(lái)越多的網(wǎng)站開始關(guān)注對(duì)網(wǎng)絡(luò)爬蟲的限制問題。隨著互聯(lián)網(wǎng)的 高速發(fā)展,基于網(wǎng)絡(luò)爬蟲與搜索引擎技術(shù)的互聯(lián)網(wǎng)應(yīng)用將會(huì)越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲的原理及限制方法,準(zhǔn)備好應(yīng)對(duì)各種各樣的網(wǎng)絡(luò)爬 蟲。