◆楊 建
分布式網絡爬蟲技術及對其安全防御研究
◆楊 建
(國防大學 北京 100091)
分布式網絡爬蟲技術是為快速、全面搜索網絡數據資源而發明的一項技術,在網絡服務中得到廣泛應用。然而,在別有用心的人手中,它也成為非法獲取敏感數據、個人隱私的“利器”。研究網絡爬蟲技術原理并防范其攻擊,對于維護網絡安全、數據安全具有重要的現實意義。
分布式;網絡爬蟲;防御
網絡爬蟲(Web Crawler),又稱網絡蜘蛛或網絡機器人,是一種按照一定規則自動搜索獲取網絡空間數據資源的程序或者腳本,已被廣泛應用于互聯網領域。當前,很多搜索引擎使用分布式網絡爬蟲抓取網頁、文檔、圖片,甚至是音樂、視頻等資源,為大數據分析、情報獲取等工作提供有效的數據支撐。而針對一些敏感網站和數據庫,聚焦網絡爬蟲技術也成為獲取其數據的重要手段。在數據安全意識日益提升的情況下,防御網絡爬蟲技術的攻擊也就愈發重要。
隨著信息技術的發展,現階段網絡爬蟲已經發展為涵蓋網頁數據抽取、機器學習、數據挖掘、語義理解等多種方法綜合應用的智能工具。為適應大數據時代的旺盛需求,網絡爬蟲已經從單機模式發展為分布式系統。目前,世界上一些大型互聯網企業開發出了大規模分布式網絡爬蟲,但是其技術一直作為核心技術加以控制。有的開源企業陸續發布一些關于網絡爬蟲的技術,但是該領域技術復雜性高、使用門檻高的現狀短期內無法改變。
分布式網絡爬蟲的基本工作原理是,由主系統和多個具有相似功能模塊的部分組成,在主系統的總體控制協調下,分布式的各功能模塊針對一組給定的URL種子集合,通過爬蟲程序的多個線程分別獲取種子URL后,將URL對應的頁面內容下載到本地進行分析,數據提取模塊將頁面中的可供搜索引擎建立索引的信息獲取到本地保存起來,種子提取模塊將網絡頁面中新的指向其他頁面的鏈接提取出來,經過一系列處理存儲供后續繼續爬行。目前,世界上比較著名的分布式爬蟲有Google Crawler、Internet Archive Crawler 、Mercator、UbiCrawler等。隨著信息技術的迅速發展,聚焦網絡爬取技術已經成為主流的爬蟲技術。
聚焦型網絡爬蟲(Focused Crawler),也叫作主題網絡爬蟲,其主要是按照預先定義的主題、有目的地進行網絡資源爬取的一種爬蟲。從功能上看,分布式聚焦型網絡爬取技術將爬取目標定位在與主題相關的網絡頁面上,因此可以大大提高爬取的效率,同時針對有關鎖定目標數據的獲取也更加全面和有力,因而一旦被非法使用,產生的危害也更大。其特點主要有:
一是工作原理更加先進。與通用的網絡爬蟲技術不同,聚焦網絡爬蟲并非從一個或多個初始網頁的URL開始工作,從當前頁面提取相關URL放到隊列當中,重復這一過程,直到滿足程序的停止條件;而是對爬行的范圍進行控制,查找過濾與主題無關的URL,保留有用的URL,通過一定的搜索策略,選擇下一步要爬取的網頁,并循環往復。
二是搜索范圍更加聚焦。在通用爬蟲技術的基礎上,聚焦型網絡爬蟲進一步縮小爬行范圍,提高搜索的精確性。其不僅支持關鍵字搜索,而且支持根據語義的搜索,能夠對諸如圖片、音頻等信息含量較大且具有一定結構性的數據進行爬取。
三是搜索功能更加完備。針對搜索任務,增加了相應的網頁分析算法和內容搜索策略。對于被爬取的網頁內容,將被爬蟲系統進行存儲,并進行分析過濾、建立索引,以便進一步的查詢和檢索。在前期分析的基礎上,形成搜索結果,對后續的爬取過程進行校正和指導。
分布式網絡爬蟲的策略是盡可能多、盡可能快地爬取網絡中的高價值信息,會根據定制的策略盡可能多地訪問頁面。惡意用戶就能通過網絡爬蟲爬取各種敏感數據,并用于不正當用途,其主要做法如下:
網絡用戶在網絡瀏覽和使用的過程中,會使用和產生相關的個人信息,包括姓名、Email地址、電話等,以及個人興趣愛好、關注領域、有關聯系人等信息。網絡爬蟲會針對某些特定用戶,將頁面中的元數據信息進行爬取,并下載到后臺服務器中進行存儲分析。對于靜態頁面來說,這些元數據信息中可能包括頁面的標簽、關鍵詞、熱詞等,對于目前大量應用的動態頁面來說,元數據中包含的將是用戶名、登錄時間、IP地址、購物清單等,甚至是個人密碼、郵件內容等重要信息。掌握這些信息后,惡意用戶利用社會工程學實施攻擊或詐騙的成功幾率將大幅提高。
爬蟲程序可以通過某些算法,在爬取頁面信息的同時,獲取網站后臺的敏感數據,如系統配置、重要參數、測試頁面等,并利用掌握的有關信息掃描掌握網絡系統存在的安全漏洞,有的系統信息甚至能夠提供繞過認證直接訪問服務數據的方法。其中,比較常見的一種是,根據動態查詢或提交URL,在參數部分試探性插入符號以及script標簽,并根據服務器返回的結果判斷是否存在跨站腳本漏洞。一些技術先進的網絡爬蟲能夠輕而易舉將網站后臺的所有敏感信息轉移到爬蟲程序的后臺服務器中,并進行存儲。
在互聯網中,有很多Web服務器在用戶請求該站點中某個沒有的頁面目錄時,往往會返回一個目錄列表。這個目錄列表通常包括可供用戶點擊的目錄和文件鏈接,通過這些鏈接能夠訪問當前及下一層目錄中的有關文件。網絡爬蟲程序通過獲取目錄列表,能夠達成掌握系統目錄結構、敏感文件以及相關配置信息等數據的目的,甚至是直接獲取日志文件、密碼文件、數據庫文件等。這些數據的丟失,將給網站或個人產生嚴重的安全威脅。
在數據安全愈發重要的今天,如何防御爬蟲攻擊,已經成為維護網絡安全的一個重要組成部分。針對分布式網絡爬蟲,特別是聚焦型網絡爬蟲的攻擊應當引起重視,并采取有效措施加以應對。
對于在網頁打開請求的User Agent字段刻意偽裝成通用瀏覽器的網絡爬蟲,可以通過識別其行為特征進行限制。網絡爬蟲的訪問一般情況下,規律性比較強、頻率比較高,明顯區別于真實用戶瀏覽使用時的特征。針對此類爬蟲的防御原理與DDos攻擊防御的原理相似,都是基于統計數據,并通過應用識別設備、IPS等能夠進行深度識別的安全設備來實現。使用專門的網絡設備來識別和限制網絡爬蟲攻擊,不僅比較全面,而且適合在多服務器條件下的統一管理、各自管理產生的疏漏。
隨著網絡安全技術的快速發展,密碼技術全面應用于網絡安全的各個方面,并成為一道關鍵的安全防線。一種簡便的方法是,通過頁面腳本程序加密頁面內容,使得網絡爬蟲無法采集到網頁上的任何有效信息,從而杜絕了爬蟲的進一步爬取數據。但是,存在的不利一面是,加密后的網頁無法通過搜索引擎找到這個頁面。
對于采取ASP和PHP技術的網站,可以通過讀取請求的HTTP_REFERER屬性,來判斷該請求是否來自本網站,從而限制網絡爬蟲的數據爬取。此外,由于目前網絡爬蟲仍無法高效處理多媒體類的內容,所以將有關內容以靜態、動態圖片的形式展現出來。即便是網絡爬蟲爬取了圖片,也難以從圖片中提取網絡系統和用戶的敏感數據。
當前,網絡爬蟲技術發展很快,在別有用心的人手里,它已經成為快速獲取大量數據的利器,對網絡安全和有關數據安全帶來嚴峻挑戰。而應對網絡爬蟲的攻擊也需要根據威脅的變化不斷改進和完善,正所謂“魔高一尺、道高一丈”,以更為先進的技術和管理來抵制有關網絡非法行徑,使網絡空間成為既能夠方便大眾工作生活,又能保護大眾信息安全的安寧空間。
[1]李毓麗.關于網絡web服務器中攻擊信息優化檢測仿真[J].計算機仿真, 2017.
[2]柳毅,洪俊斌.基于網絡爬蟲與頁面代碼行為的XSS漏洞動態檢測方法[J].電信科學, 2016.
[3]趙艷. 基于網絡爬蟲的跨站腳本漏洞動態檢測技術研究[D].成都:西南交通大學, 2011.