
網(wǎng)站安全
網(wǎng)絡(luò )爬蟲(chóng)與Web安全
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 287 次瀏覽 ? 2020-06-11 08:02
網(wǎng)絡(luò )爬蟲(chóng)早已廣泛應用于互聯(lián)網(wǎng)搜索領(lǐng)域,為網(wǎng)路信息搜集與查詢(xún)提供了極大的便利爬蟲(chóng)網(wǎng)絡(luò ),同時(shí)也會(huì )對網(wǎng)路安全形成一定的負面影響。本文闡述了網(wǎng)路爬蟲(chóng)對網(wǎng)路安全構成的恐嚇,并討論相應的應對方式。
網(wǎng)絡(luò )爬蟲(chóng)與Web安全
文/H3C攻守團隊
網(wǎng)絡(luò )爬蟲(chóng)概述
網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
1)搜索目錄列表
互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
3)搜索管理員登入頁(yè)面
許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
/cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
如何應對爬蟲(chóng)的安全恐嚇
由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
1) 設置robots.txt文件
限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
2) User Agent辨識與限制
要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
結束語(yǔ)
網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。 查看全部
網(wǎng)絡(luò )爬蟲(chóng)與Web安全
文/H3C攻守團隊
網(wǎng)絡(luò )爬蟲(chóng)概述
網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
1)搜索目錄列表
互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
3)搜索管理員登入頁(yè)面
許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
/cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
如何應對爬蟲(chóng)的安全恐嚇
由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
1) 設置robots.txt文件
限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
2) User Agent辨識與限制
要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
結束語(yǔ)
網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。 查看全部
網(wǎng)絡(luò )爬蟲(chóng)早已廣泛應用于互聯(lián)網(wǎng)搜索領(lǐng)域,為網(wǎng)路信息搜集與查詢(xún)提供了極大的便利爬蟲(chóng)網(wǎng)絡(luò ),同時(shí)也會(huì )對網(wǎng)路安全形成一定的負面影響。本文闡述了網(wǎng)路爬蟲(chóng)對網(wǎng)路安全構成的恐嚇,并討論相應的應對方式。
網(wǎng)絡(luò )爬蟲(chóng)與Web安全
文/H3C攻守團隊
網(wǎng)絡(luò )爬蟲(chóng)概述
網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
1)搜索目錄列表
互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
3)搜索管理員登入頁(yè)面
許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
/cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
如何應對爬蟲(chóng)的安全恐嚇
由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
1) 設置robots.txt文件
限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
2) User Agent辨識與限制
要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
結束語(yǔ)
網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。
網(wǎng)絡(luò )爬蟲(chóng)與Web安全
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 287 次瀏覽 ? 2020-06-11 08:02
網(wǎng)絡(luò )爬蟲(chóng)早已廣泛應用于互聯(lián)網(wǎng)搜索領(lǐng)域,為網(wǎng)路信息搜集與查詢(xún)提供了極大的便利爬蟲(chóng)網(wǎng)絡(luò ),同時(shí)也會(huì )對網(wǎng)路安全形成一定的負面影響。本文闡述了網(wǎng)路爬蟲(chóng)對網(wǎng)路安全構成的恐嚇,并討論相應的應對方式。
網(wǎng)絡(luò )爬蟲(chóng)與Web安全
文/H3C攻守團隊
網(wǎng)絡(luò )爬蟲(chóng)概述
網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
1)搜索目錄列表
互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
3)搜索管理員登入頁(yè)面
許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
/cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
如何應對爬蟲(chóng)的安全恐嚇
由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
1) 設置robots.txt文件
限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
2) User Agent辨識與限制
要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
結束語(yǔ)
網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。 查看全部
網(wǎng)絡(luò )爬蟲(chóng)與Web安全
文/H3C攻守團隊
網(wǎng)絡(luò )爬蟲(chóng)概述
網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
1)搜索目錄列表
互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
3)搜索管理員登入頁(yè)面
許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
/cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
如何應對爬蟲(chóng)的安全恐嚇
由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
1) 設置robots.txt文件
限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
2) User Agent辨識與限制
要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
結束語(yǔ)
網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。 查看全部
網(wǎng)絡(luò )爬蟲(chóng)早已廣泛應用于互聯(lián)網(wǎng)搜索領(lǐng)域,為網(wǎng)路信息搜集與查詢(xún)提供了極大的便利爬蟲(chóng)網(wǎng)絡(luò ),同時(shí)也會(huì )對網(wǎng)路安全形成一定的負面影響。本文闡述了網(wǎng)路爬蟲(chóng)對網(wǎng)路安全構成的恐嚇,并討論相應的應對方式。
網(wǎng)絡(luò )爬蟲(chóng)與Web安全
文/H3C攻守團隊
網(wǎng)絡(luò )爬蟲(chóng)概述
網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
1)搜索目錄列表
互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
3)搜索管理員登入頁(yè)面
許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
/cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
如何應對爬蟲(chóng)的安全恐嚇
由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
1) 設置robots.txt文件
限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
2) User Agent辨識與限制
要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
結束語(yǔ)
網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。