網(wǎng)絡(luò)爬蟲與Web安全 |
發(fā)布時間: 2012/8/14 17:58:08 |
網(wǎng)絡(luò)爬蟲概述 網(wǎng)絡(luò)爬蟲(Web Crawler),又稱網(wǎng)絡(luò)蜘蛛(Web Spider)或網(wǎng)絡(luò)機(jī)器人(Web Robot),是一種按照一定的規(guī)則自動抓取萬維網(wǎng)資源的程序或者腳本,已被廣泛應(yīng)用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)絡(luò)爬蟲抓取Web網(wǎng)頁、文檔甚至圖片、音頻、視頻等資源,通過相應(yīng)的索引技術(shù)組織這些信息,提供給搜索用戶進(jìn)行查詢。隨著網(wǎng)絡(luò)的迅速發(fā)展,萬維網(wǎng)成為大量信息的載體,如何有效地提取并利用這些信息成為一個巨大的挑戰(zhàn)。不斷優(yōu)化的網(wǎng)絡(luò)爬蟲技術(shù)正在有效地應(yīng)對這種挑戰(zhàn),為高效搜索用戶關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò)爬蟲也為中小站點的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲的優(yōu)化曾風(fēng)靡一時。 傳統(tǒng)網(wǎng)絡(luò)爬蟲從一個或若干個初始網(wǎng)頁的URL(Universal Resource Locator統(tǒng)一資源定位符)開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定條件停止抓取,F(xiàn)階段網(wǎng)絡(luò)爬蟲已發(fā)展為涵蓋網(wǎng)頁數(shù)據(jù)抽取、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、語義理解等多種方法綜合應(yīng)用的智能工具。 網(wǎng)絡(luò)爬蟲的安全性問題 由于網(wǎng)絡(luò)爬蟲的策略是盡可能多的“爬過”網(wǎng)站中的高價值信息,會根據(jù)特定策略盡可能多的訪問頁面,占用網(wǎng)絡(luò)帶寬并增加Web服務(wù)器的處理開銷,不少小型站點的站長發(fā)現(xiàn)當(dāng)網(wǎng)絡(luò)爬蟲光顧的時候,訪問流量將會有明顯的增長。惡意用戶可以利用爬蟲程序?qū)eb站點發(fā)動DoS攻擊,使Web服務(wù)在大量爬蟲程序的暴力訪問下,資源耗盡而不能提供正常服務(wù)。惡意用戶還可能通過網(wǎng)絡(luò)爬蟲抓取各種敏感資料用于不正當(dāng)用途,主要表現(xiàn)在以下幾個方面: 1)搜索目錄列表 互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶端請求該站點中某個沒有默認(rèn)頁面的目錄時,會返回一個目錄列表。該目錄列表通常包括可供用戶點擊的目錄和文件鏈接,通過這些鏈接可以訪問下一層目錄及當(dāng)前目錄中的文件。因而通過抓取目錄列表,惡意用戶往往可獲取大量有用的資料,包括站點的目錄結(jié)構(gòu)、敏感文件以及 Web服務(wù)器設(shè)計架構(gòu)及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數(shù)據(jù)庫文件等,都有可能被網(wǎng)絡(luò)爬蟲抓取。這些信息可以作為挑選攻擊目標(biāo)或者直接入侵站點的重要資料。 2)搜索測試頁面、手冊文檔、樣本程序及可能存在的缺陷程序 大多數(shù)Web服務(wù)器軟件附帶了測試頁面、幫助文檔、樣本程序及調(diào)試用后門程序等。這些文件往往會泄漏大量的系統(tǒng)信息甚至提供繞過認(rèn)證直接訪問Web服務(wù)數(shù)據(jù)的方法,成為惡意用戶分析攻擊Web服務(wù)器的有效情報來源。而且這些文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。 3)搜索管理員登錄頁面 許多網(wǎng)絡(luò)產(chǎn)品提供了基于Web的管理接口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠(yuǎn)程管理與控制。如果管理員疏于防范,沒有修改網(wǎng)絡(luò)產(chǎn)品默認(rèn)的管理員名及密碼,一旦其管理員登錄頁面被惡意用戶搜索到,網(wǎng)絡(luò)安全將面臨極大的威脅。 4)搜索互聯(lián)網(wǎng)用戶的個人資料 互聯(lián)網(wǎng)用戶的個人資料包括姓名、身份證號、電話、Email地址、QQ號、通信地址等個人信息,惡意用戶獲取后容易利用社會工程學(xué)實施攻擊或詐騙。 因此,采取適當(dāng)?shù)拇胧┫拗凭W(wǎng)絡(luò)爬蟲的訪問權(quán)限,向網(wǎng)絡(luò)爬蟲開放網(wǎng)站希望推廣的頁面,屏蔽比較敏感的頁面,對于保持網(wǎng)站的安全運行、保護(hù)用戶的隱私是極其重要的。 基于網(wǎng)絡(luò)爬蟲技術(shù)的Web漏洞掃描 前面提到的網(wǎng)絡(luò)爬蟲對網(wǎng)站的間接安全威脅,是通過對網(wǎng)絡(luò)站點的信息收集為不法份子的非法訪問、攻擊或詐騙作準(zhǔn)備。隨著安全技術(shù)的發(fā)展,利用網(wǎng)絡(luò)爬蟲技術(shù)對Web漏洞的直接探測已經(jīng)出現(xiàn),這會直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比例很高,這兩種漏洞均可以通過對網(wǎng)絡(luò)爬蟲的改進(jìn)來進(jìn)行探測。由于缺乏足夠的安全知識,相當(dāng)多的程序員在編寫Web應(yīng)用程序時對網(wǎng)頁的請求內(nèi)容缺乏足夠的檢查,使得不少Web應(yīng)用程序存在安全隱患。用戶可以通過提交一段精心構(gòu)造的包含SQL語句或腳本的URL請求,根據(jù)程序的返回結(jié)果獲得有關(guān)的敏感信息甚至直接修改后臺數(shù)據(jù)。基于目前的安全現(xiàn)狀,網(wǎng)絡(luò)爬蟲技術(shù)在Web漏洞掃描上的應(yīng)用,大大提高了發(fā)現(xiàn)漏洞的效率。 基于網(wǎng)絡(luò)爬蟲技術(shù)的Web漏洞掃描大至分為如下過程: 1)頁面過濾:通過自動化的程序抓取網(wǎng)站頁面,對包含 等標(biāo)簽的Web頁面進(jìn)行URL提取處理,這些HTML標(biāo)簽中包含URL信息,便于惡意用戶進(jìn)行更深入的Web訪問或提交操作。 2)URL 匹配:對Web頁面中的URL進(jìn)行自動匹配,提取由參數(shù)組合而成的動態(tài)查詢URL或提交URL,進(jìn)行下一步的漏洞探測。如動態(tài)查詢 URL“http://baike.xxxx.com/searchword/?word=frameset&pic=1”,其中 frameset為URL中動態(tài)的參數(shù)部分,可以進(jìn)行參數(shù)變換。提交URL用于把Web用戶的輸入提交到服務(wù)器進(jìn)行處理,其參數(shù)多為用戶輸入,同樣可以進(jìn)行參數(shù)變換。 3)漏洞試探:根據(jù)動態(tài)查詢URL或提交URL,自動在參數(shù)部分進(jìn)行參數(shù)變換,插入引號、分號(SQL注入對其敏感)及 script標(biāo)簽(XSS對 其敏感)等操作進(jìn)行試探,并根據(jù)Web服務(wù)器返回的結(jié)果自動判斷是否存在漏洞。如“URL匹配”中的動態(tài)查詢URL可以變換成 http://baike.xxxx.com/searchword/?word= &pic=1進(jìn)行跨站腳本漏洞探測。 如何應(yīng)對爬蟲的安全威脅 由于網(wǎng)絡(luò)爬蟲帶來的安全威脅,不少網(wǎng)站的管理人員都在考慮對爬蟲訪問進(jìn)行限制甚至拒絕爬蟲訪問。實際上,根據(jù)網(wǎng)站內(nèi)容的安全性及敏感性,區(qū)別對待爬 蟲是比較理想的措施。網(wǎng)站的URL組織應(yīng)該根據(jù)是否為適合大范圍公開,設(shè)置不同的URL路徑,在同一Web頁面中既有需要完全公開信息也有敏感信息時,應(yīng) 通過鏈接、標(biāo)簽嵌入網(wǎng)頁等方式顯示敏感內(nèi)容,另外盡可能把靜態(tài)頁面等經(jīng)評估安全性較高的頁面與安全性較差的動態(tài)頁面從URL上分開。當(dāng)限制爬蟲時可以針對 URL路徑的安全性與敏感性對不同種類的爬蟲與代理進(jìn)行限制。 限制爬蟲可以通過以下幾種方法實現(xiàn): 1) 設(shè)置robots.txt文件 限制爬蟲最簡單的方法是設(shè)置robots.txt文件。robots.txt文件是搜索引擎爬蟲訪問網(wǎng)站的時候要查看的第一個文件,它告訴爬蟲程序在服務(wù)器上什么文件是可以被查看的,如設(shè)置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲會遵守這個規(guī)則,因此僅僅設(shè)置robots文件是不夠的。 2) User Agent識別與限制 要對不理會robots.txt文件的爬蟲訪問進(jìn)行限制,首先要把爬蟲流量與普通用戶的訪問流量進(jìn)行區(qū)分,即對其進(jìn)行識別。一般的爬蟲程序都可以通過其 HTTP請求中的User Agent字段進(jìn)行識別,該字段使服務(wù)器能夠識別客戶使用的操作系統(tǒng)及版本、CPU類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。爬蟲的User Agent字段一般與瀏覽器的有所不同,如Google搜索引擎爬蟲User Agent字段中會有類似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( http://www.google.com/bot.html),百度搜索引擎爬蟲則會有類似Baiduspider的字符串。不少Web服務(wù)器軟件如 Apache,可以設(shè)置通過User Agent字段進(jìn)行訪問過濾,可以比較有效的限制大部分爬蟲的訪問。 3) 通過訪問行為特征識別與限制 對于在HTTP請求的User Agent字段刻意偽裝成瀏覽器的爬蟲,可以通過其訪問行為特征進(jìn)行識別。爬蟲程序的訪問一般是有規(guī)律性的頻率比較高,區(qū)別于真實用戶瀏覽時的隨意性與低 頻率。對這類爬蟲的限制原理與DDoS攻擊的防御原理很相似,都基于統(tǒng)計數(shù)據(jù)。對于這類爬蟲的限制只能通過應(yīng)用識別設(shè)備、IPS等能夠做深度識別的網(wǎng)絡(luò)設(shè) 備來實現(xiàn)。用網(wǎng)絡(luò)設(shè)備限制網(wǎng)絡(luò)爬蟲,不僅比較全面,而且非常適合在多服務(wù)器情況下進(jìn)行統(tǒng)一的管理,避免多服務(wù)器單獨管理有可能造成的疏漏。 結(jié)束語 網(wǎng)絡(luò)爬蟲及其對應(yīng)的技術(shù)為網(wǎng)站帶來了可觀訪問量的同時,也帶來了直接與間接的安全威脅,越來越多的網(wǎng)站開始關(guān)注對網(wǎng)絡(luò)爬蟲的限制問題。隨著互聯(lián)網(wǎng)的 高速發(fā)展,基于網(wǎng)絡(luò)爬蟲與搜索引擎技術(shù)的互聯(lián)網(wǎng)應(yīng)用將會越來越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲的原理及限制方法,準(zhǔn)備好應(yīng)對各種各樣的網(wǎng)絡(luò)爬蟲。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |