鄒建鑫,李紅靈
(云南大學(xué) 信息學(xué)院 計(jì)算機(jī)科學(xué)與工程系,云南 昆明 650000)
基于網(wǎng)站訪問行為的匿名爬蟲檢測
鄒建鑫,李紅靈
(云南大學(xué) 信息學(xué)院 計(jì)算機(jī)科學(xué)與工程系,云南 昆明 650000)
通過分析和研究網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁內(nèi)容的行為,針對惡意網(wǎng)絡(luò)爬蟲偽裝成瀏覽器訪問網(wǎng)站難以甄別、網(wǎng)站日志檢測工具不支持匿名網(wǎng)絡(luò)爬蟲檢測等問題,總結(jié)了一些基于機(jī)器人排斥協(xié)議和基于爬蟲行為的惡意網(wǎng)絡(luò)爬蟲檢測算法。通過這些網(wǎng)絡(luò)爬蟲檢測算法的啟發(fā),提出一種基于爬蟲行為的檢測匿名爬蟲算法。該算法主要根據(jù)人為訪問網(wǎng)站與網(wǎng)絡(luò)爬蟲訪問網(wǎng)站時間的長短、訪問的周期等,對網(wǎng)絡(luò)爬蟲進(jìn)行檢測,同時對算法進(jìn)行了實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)數(shù)據(jù)來自一個服務(wù)器的網(wǎng)絡(luò)日志。應(yīng)用Python對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行處理,從而對網(wǎng)絡(luò)匿名爬蟲進(jìn)行檢測,并與當(dāng)前主流的匿名網(wǎng)絡(luò)爬蟲檢測算法進(jìn)行比較。結(jié)果表明,該算法能夠檢測出并發(fā)量小的匿名的網(wǎng)絡(luò)爬蟲。
網(wǎng)絡(luò)爬蟲;網(wǎng)絡(luò)機(jī)器人排斥協(xié)議;網(wǎng)站訪問行為;匿名爬蟲檢測
為了批量抓取互聯(lián)網(wǎng)網(wǎng)站中的特定鏈接和內(nèi)容,20世紀(jì)90年代出現(xiàn)了一種自身擁有搜索策略的網(wǎng)絡(luò)程序,將其命名為網(wǎng)絡(luò)爬蟲(Web Crawler)[1]。網(wǎng)絡(luò)爬蟲首先廣泛應(yīng)用于搜索引擎(如Google的Googlebot),其主要任務(wù)是從互聯(lián)網(wǎng)抓取內(nèi)容,將抓取的內(nèi)容經(jīng)過整理后放入自己公司搜索引擎的索引庫中,以供用戶進(jìn)行內(nèi)容查詢。
隨著大數(shù)據(jù)[2]時代的到來和數(shù)據(jù)挖掘[3]的應(yīng)用,網(wǎng)絡(luò)爬蟲也隨之迅猛發(fā)展,從而使其成為全球互聯(lián)網(wǎng)的一大公害。除了一些專門從事搜索引擎[4]的公司,如:Google、微軟、百度外,國內(nèi)大多數(shù)大型門戶網(wǎng)站都開發(fā)了自己的搜索引擎,如:搜狐、騰訊、網(wǎng)易等等,此外還有很多國內(nèi)外不知名的搜索引擎,甚至一些學(xué)生組織的科研機(jī)構(gòu)等完成的小型搜索引擎。網(wǎng)絡(luò)上充斥著如此數(shù)量巨大的網(wǎng)絡(luò)爬蟲[5],會影響網(wǎng)站安全[6],阻塞網(wǎng)絡(luò)[7]。
現(xiàn)今主流的網(wǎng)絡(luò)爬蟲檢測[8]方法主要為三種。第一:限制單個IP/api token的訪問量,比如15分鐘限制訪問180次;第二:蜜罐資源,在網(wǎng)站頁面中嵌入瀏覽器不能看到的資源,如果有IP訪問了就視為爬蟲;第三:利用網(wǎng)站日志分析工具awstats等對網(wǎng)絡(luò)日志進(jìn)行定期分析,找出并發(fā)量大的匿名訪問IP。但這幾種方法對于并發(fā)量小的,只是抓取特定內(nèi)容的匿名爬蟲顯得無能為力,只有從其訪問行為上才能區(qū)別出來。
網(wǎng)絡(luò)爬蟲實(shí)質(zhì)上是一種駐留在某個主機(jī)之內(nèi)的軟件[9-11],并不會在互聯(lián)網(wǎng)中移動。主體思想是通過主機(jī)(如:個人電腦、服務(wù)器等)發(fā)送HTTP請求來獲取網(wǎng)頁,應(yīng)用自身的搜索策略從獲取的網(wǎng)頁中得到超鏈接(URL),又通過超鏈接不斷地遞歸下去。其行為類似于人使用瀏覽器訪問英特網(wǎng)中的網(wǎng)頁,但其行為是根據(jù)爬取策略來自動完成和實(shí)現(xiàn)的。
爬蟲的一般遞歸策略為:首先選定要爬取的地址,將這些地址放入列表當(dāng)中;其次根據(jù)列表中的地址自動發(fā)送HTTP請求,獲取相應(yīng)的網(wǎng)頁之后,再對網(wǎng)頁進(jìn)行分析,得到更多的URL;最后對得到的URL進(jìn)行分析并過濾掉列表中已有的URL,將沒有的URL增加到自己的爬取列表中。重復(fù)以上步驟,遞歸地進(jìn)行爬取操作。
為了使網(wǎng)絡(luò)爬蟲和Web服務(wù)器協(xié)同工作,在保障網(wǎng)站安全運(yùn)行的前提下,允許網(wǎng)絡(luò)爬蟲抓取網(wǎng)站上的某些數(shù)據(jù),1994年眾多網(wǎng)絡(luò)爬蟲作者以及網(wǎng)絡(luò)爬蟲愛好者共同商討,提出了網(wǎng)絡(luò)機(jī)器人排斥標(biāo)準(zhǔn)。
網(wǎng)絡(luò)機(jī)器人排斥協(xié)議[12](Standard for Robot Exclusion,SRE):由網(wǎng)站管理員或者網(wǎng)站設(shè)計(jì)人員在服務(wù)器的根目錄下,設(shè)置robots.txt文件來實(shí)現(xiàn)。在這個文件中明確標(biāo)明了網(wǎng)絡(luò)爬蟲不可以抓取本網(wǎng)站的資源信息,文件的內(nèi)容由一條或者多條記錄聯(lián)合構(gòu)成。每一條記錄包含一個或者多個User-Agent,每個User-Agent后包含一個或者多個Disallow行。User-Agent所記錄的是一些網(wǎng)絡(luò)爬蟲的名稱,表示這些爬蟲可以訪問該網(wǎng)站中的網(wǎng)頁。Disallow的值是一些禁止訪問本網(wǎng)站的網(wǎng)頁鏈接名稱,在同一個記錄的User-Agent行中列出的網(wǎng)絡(luò)爬蟲將不能訪問這些網(wǎng)頁鏈接名稱。
網(wǎng)絡(luò)機(jī)器人排斥協(xié)議的Robots.txt范例如圖1所示。
User-agent:Disallow:
圖1 Robots.txt范例
Web服務(wù)器日志記錄[13]是用戶訪問該站點(diǎn)發(fā)出請求所產(chǎn)生的信息,對于遵守機(jī)器人排斥協(xié)議標(biāo)準(zhǔn)的網(wǎng)絡(luò)爬蟲可以直接通過訪問記錄將其檢測出來,方法有以下5種。
網(wǎng)絡(luò)機(jī)器人排斥協(xié)議中明確規(guī)定,爬蟲訪問站點(diǎn)的網(wǎng)頁前,必須先訪問Robots.txt文件。也就是首先要有一個請求資源robots.txt,從服務(wù)器管理的角度,在管理Web服務(wù)器時,如果一個網(wǎng)絡(luò)爬蟲沒有請求robots.txt就直接按照自身的搜索策略來對網(wǎng)站進(jìn)行爬取,那么就視這個網(wǎng)絡(luò)爬蟲為惡意爬蟲。
對于每個遵守機(jī)器人排斥協(xié)議的網(wǎng)絡(luò)爬蟲,在發(fā)送網(wǎng)頁請求時,一定會將自己的User-Agent封裝在請求頭當(dāng)中,而且自身的User-Agent是網(wǎng)絡(luò)當(dāng)中特有的,不會是某個瀏覽器的名稱。由此可以通過User-Agent來檢測是否為爬蟲程序。但是一般惡意爬蟲會通過設(shè)置User-Agent的內(nèi)容來偽裝瀏覽器。
IP地址記錄了訪問網(wǎng)站站點(diǎn)的源地址,根據(jù)源地址是否大量發(fā)送鏈接請求,可以用來鑒別是否為網(wǎng)絡(luò)爬蟲,確定為網(wǎng)絡(luò)爬蟲之后可以通過封禁IP地址來達(dá)到控制網(wǎng)站訪問的目的。但目前大部分爬蟲程序IP地址是動態(tài)變化的,或者是直接通過代理IP對網(wǎng)站進(jìn)行爬取,所以IP地址檢測的漏檢率與誤判率比較高。
一些簡易的爬蟲程序不會在發(fā)送的Request請求當(dāng)中封裝Referer字段,Web服務(wù)器可以通過檢查HTTP請求頭中是否具有Referer字段來識別網(wǎng)絡(luò)爬蟲。在地址欄中直接輸入鏈接,產(chǎn)生的Request請求中沒有這個字段,這個字段也可以被封裝進(jìn)Header當(dāng)中,所以這種方法的檢錯率也可能較低。
部分網(wǎng)絡(luò)爬蟲為了減少請求服務(wù)器的開銷回應(yīng),在Method域中采用HEAD方法來請求。如果在網(wǎng)絡(luò)日志當(dāng)中有某個IP擁有很多的HEAD請求,則此網(wǎng)站訪問者可能被判定為網(wǎng)絡(luò)爬蟲。
以上5種方法主要針對遵循網(wǎng)絡(luò)機(jī)器人排斥標(biāo)準(zhǔn)的靜態(tài)的網(wǎng)絡(luò)爬蟲的檢測,但各有其優(yōu)缺點(diǎn),結(jié)合幾種方法同時考慮會提供準(zhǔn)確度。但是網(wǎng)絡(luò)機(jī)器人排斥協(xié)議所定義的一些內(nèi)容并不能夠限制惡意網(wǎng)絡(luò)爬蟲對網(wǎng)站的抓取,因?yàn)閻阂饩W(wǎng)絡(luò)爬蟲現(xiàn)今基本上都封裝成假冒的Request請求,盡最大努力地模仿瀏覽器[14]的行為,甚至出現(xiàn)了一些專用工具。如Phantomjs,這是一個沒有界面的瀏覽器,專門解析網(wǎng)站中動態(tài)生成的JS文件以及AJXS文件,Phantomjs本身就是瀏覽器,通過它的訪問都可以偽裝成一個真正用戶的請求。只有通過服務(wù)器日志的行為分析才能夠區(qū)分出這是一個偽裝爬蟲。檢測出來后,服務(wù)器管理員可以通過IP封鎖[15]等方式對這些惡意爬蟲進(jìn)行相應(yīng)處理。
遵守網(wǎng)絡(luò)機(jī)器人排斥協(xié)議的網(wǎng)絡(luò)爬蟲很容易通過網(wǎng)站日志等進(jìn)行判斷和區(qū)分。而現(xiàn)今許多網(wǎng)絡(luò)爬蟲是通過偽裝成瀏覽器來進(jìn)行,這就不能夠簡單地從網(wǎng)站日志當(dāng)中將其區(qū)分出來,需要根據(jù)其行為進(jìn)行動態(tài)分析來進(jìn)行甄別。
在服務(wù)器根目錄的robots.txt文件代碼中,加入不允許訪問的網(wǎng)頁[16],例如/admin/hide.html。這個網(wǎng)頁是不存在或者是無關(guān)緊要的文件,而且這個網(wǎng)頁或者文件只在robots.txt里面被提及,一個網(wǎng)絡(luò)爬蟲只有通過robots.txt才能獲知這個網(wǎng)頁。非惡意爬蟲遵循robots.txt的規(guī)定,不會去訪問這個網(wǎng)頁或者文件,也不會知道這個網(wǎng)頁或者文件的URL,訪問該網(wǎng)頁或者文件的網(wǎng)絡(luò)爬蟲極可能就是那些視圖利用robots.txt抓取網(wǎng)站機(jī)密文件的惡意爬蟲。
網(wǎng)絡(luò)爬蟲通常缺乏足夠的能力去辨別網(wǎng)頁代碼中各鏈接的真?zhèn)蝃17]。根據(jù)這個策略,可以在網(wǎng)頁代碼中加入一些在瀏覽器中不能顯示的或是顯示不明顯的,但是可能被網(wǎng)絡(luò)爬蟲訪問的隱藏鏈接,通過這種方式來捕獲惡意爬蟲。例如:鏈接的文本采用與background一樣的顏色,在瀏覽器中很難看出這個鏈接,正常的網(wǎng)站訪問一般情況是不會訪問到這個鏈接的。如果爬蟲爬取了這個鏈接,即被視為惡意爬蟲。另外,如果只是檢測那些不遵守網(wǎng)絡(luò)爬蟲限制策略的爬蟲,可以在robots.txt中將這些鏈接進(jìn)行Disallow描述。
3.3.1 偽裝成瀏覽器的爬蟲行為模式
對于未知的、匿名的、惡意的網(wǎng)絡(luò)爬蟲,有幾個共性:不遵守相關(guān)的協(xié)議、偽裝自己的User-Agent、構(gòu)造虛假的Referer信息、設(shè)置代理Proxy IP。為了識別它們,不能依靠已經(jīng)存在的協(xié)議,協(xié)議都可能被假冒,只有從其訪問模式上進(jìn)行識別。
從訪問模式上看,網(wǎng)絡(luò)爬蟲與人為通過瀏覽器訪問有很大的區(qū)別,網(wǎng)絡(luò)爬蟲有自己早已設(shè)定好的訪問策略,而人為瀏覽是漫無目的的。例如:網(wǎng)絡(luò)爬蟲的搜索策略有廣度優(yōu)先和深度優(yōu)先,并且可以設(shè)置訪問深度,人為瀏覽網(wǎng)站一般跨度不可能如此之大。
人為通過瀏覽器訪問某個網(wǎng)站,步驟是:在瀏覽器當(dāng)中輸入要訪問網(wǎng)站的URL,瀏覽器解析URL,然后向解析后的URL地址的服務(wù)器發(fā)送鏈接請求;Web服務(wù)器收到請求后,檢查服務(wù)器上是否存在該資源,如果存在,就將資源傳送,如果沒有則返回錯誤信息,如404等信息;通過網(wǎng)絡(luò)傳輸之后,瀏覽器收到了網(wǎng)站服務(wù)器發(fā)送的文件,接著就會對所收到的文件進(jìn)行解析。接收到的文件是單一文件體,則直接在瀏覽器頁面當(dāng)中顯示,例如動畫。接收到的文件是ASPX、JS或者是HTML文件,分析出這些文件當(dāng)中需要的嵌入對象,包括:JS腳本、CSS、圖片、聲音等,按照嵌入對象順序,發(fā)送嵌入對象請求;服務(wù)器收到這些請求后,將對象發(fā)送;瀏覽器收到嵌入對象后,將這些嵌入對象裝進(jìn)ASPX、JS、HTML文件中,通過頁面處理,將一個完整的網(wǎng)頁呈現(xiàn)出來。綜上所述,人為通過瀏覽器訪問某個網(wǎng)頁,在服務(wù)器的訪問日志中,擁有多條請求記錄。
網(wǎng)絡(luò)爬蟲的訪問模式則與此有很大的不同:從等待爬取的URL列表當(dāng)中取出一個URL,假定所請求的是一個HTML,接下來把一些必要的參數(shù)封裝進(jìn)鏈接請求,將封裝好的請求發(fā)送出去;服務(wù)器收到請求后,將HTML框架文件發(fā)送回去;爬蟲在收到文件之后,對接收到的文件進(jìn)行解析,將該HTML中的超鏈接進(jìn)行分析,需要的就增加到自己的訪問隊(duì)列中,而對于其他的一些鏈接和嵌入對象,根據(jù)網(wǎng)絡(luò)爬蟲功能、處理方法的不同,選擇直接丟棄或是選擇特定的對象進(jìn)行抓取。但是有一個明顯的特點(diǎn)就是并不會馬上向服務(wù)器發(fā)送對象請求,所以網(wǎng)絡(luò)爬蟲的訪問,一次請求只在服務(wù)器日志中留下一條記錄信息。
爬蟲訪問網(wǎng)站和瀏覽器訪問網(wǎng)站的行為差異如圖2所示。
圖2 爬蟲訪問網(wǎng)站和瀏覽器訪問網(wǎng)站的行為差異
3.3.2 基于爬蟲訪問行為模式算法
網(wǎng)絡(luò)上一般網(wǎng)頁的訪問都遵循先請求網(wǎng)頁框架,然后再向服務(wù)器發(fā)送請求網(wǎng)頁中的內(nèi)容。所以一個網(wǎng)頁由主體的html[18]文件以及嵌入式的網(wǎng)頁成員構(gòu)成。
定義1 將頁面的成員定義為:W=
在二元組當(dāng)中,weburl為互聯(lián)網(wǎng)訪問的一般URL,webmember為頁面中所有嵌入式文件對象的URL集合。兩者的不同是服務(wù)器訪問日志記錄中訪問狀態(tài)不同,如果說請求到了weburl頁面,服務(wù)器日志記錄中所標(biāo)識的請求狀態(tài)為200,而請求到webmember對象,其服務(wù)器日志記錄中的請求狀態(tài)為304。200表示請求成功,而304表示請求重定向到本網(wǎng)站當(dāng)中的資源。
其中,嵌入式的webmember包括:FRAME之類的框架網(wǎng)頁文件;在HTML中的眾多單一文件,例如圖片、聲音、動畫等;JAVASCRIPT之類語言的腳本文件;CSS之類的樣式文件;Applet Class之類的CODE文件。例如,該算法實(shí)驗(yàn)數(shù)據(jù)網(wǎng)頁index.aspx中包括一個CSS頁面/all.css存在服務(wù)器的根目錄當(dāng)中,還有另外九個圖片文件存在根目錄下的images目錄下。根據(jù)定義構(gòu)造出index.aspx文件的二元組為:
W=
定義2 將每個訪問成員訪問過的資源定義為:
U=
其中,uid為訪問者的ID;IP為訪問者的IP地址;User-Agent為用戶代理;request為在一段時間內(nèi)向服務(wù)器發(fā)出的請求;n為請求定義1的二元組的個數(shù)。
定義3 對每一條網(wǎng)站訪問記錄定義為:
R=
其中,IP為日志訪問記錄中的訪問者IP;User-Agent為用戶代理;Time為訪問時間;Status為返回狀態(tài)碼。
算法1:偽裝爬蟲檢測算法偽代碼。
Procedure BuildUser:
ListR(定義3)W(定義1)
UserListU(定義2) user(定義2)
Begin
Fori=temp;i temp←temp+1#設(shè)置臨時變量作為訪問點(diǎn) IfR[i].request==W.url then #一條日志當(dāng)中的請求為待檢測的頁面 user←new User()#新建一個訪問用戶 user.request.append(R[i].request) #將當(dāng)前請求元素放入用戶請求表中 夾層加熱系統(tǒng)的投入減少機(jī)組啟動時間,降低上下缸溫差,改善機(jī)組啟動條件,有效避免因加熱膨脹不均可能發(fā)生的碰磨引起振動。鍋爐點(diǎn)火起壓后,爐側(cè)壓力為0.2~0.5 MPa,凝汽器建立真空后稍開聯(lián)箱進(jìn)汽門,維持聯(lián)箱壓力0.1~0.3 MPa,對汽輪機(jī)汽缸夾層加熱供汽及聯(lián)箱暖管疏水;汽輪機(jī)沖轉(zhuǎn)到500 r/min投入汽缸夾層加熱,控制汽缸溫升率小于1.5 ℃/min,使汽缸內(nèi)外加熱均勻;高壓外缸下半外壁金屬溫度達(dá)到320 ℃時停用夾層加熱系統(tǒng)。 Forj=i+1;R[i].ip==R[j].ip&R[i].ag==R[j].ag;j++ 訪問下一條日志判斷條件為ip、agent相同 IfR[j].time-R[i].time<30 then #兩者記錄時間小于30 s user.request.append(R[j].request) #將當(dāng)前日志請求放入請求表 End If temp←j#臨時變量記錄訪問到哪一個元素 End For U.append(user)#將訪問用戶記錄到用戶表當(dāng)中 End If End For For eachu∈Udo#訪問用戶表中的每一個元素 Ifu.request在W中的request數(shù)為0 then #如果用戶請求中沒有檢測頁面的請求元素,則認(rèn)定此用戶為爬蟲 Result.append(u)#將用戶放入結(jié)果列表 End If End For Return result#返回檢測出的爬蟲列表 End 通常情況下,人為訪問某個網(wǎng)站[19],通過瀏覽器來訪問幾乎是同時對頁面元素進(jìn)行請求,時間一般在0~5 s以內(nèi),一般不超過30 s。如果是網(wǎng)絡(luò)爬蟲,請求到頁面之后請求頁面內(nèi)容通常會超過30 s。最后得出的結(jié)果包含一個用戶表,而有用的信息就是訪問URL成員的數(shù)量,如果數(shù)量為0,幾乎可以判定為偽裝的網(wǎng)絡(luò)爬蟲。 對一個網(wǎng)站一段時間的日志進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果如表1所示。 表1 算法檢測出來的爬蟲 首先用網(wǎng)站分析工具SEO分析這一段時間內(nèi)的網(wǎng)絡(luò)日志,所得結(jié)果主要有頁面抓取和爬蟲分析(僅針對爬蟲的項(xiàng)),如表2所示。 表2 網(wǎng)站日志分析工具得出的頁面抓取結(jié)果 實(shí)驗(yàn)當(dāng)中僅僅測試的是/index.asp頁面,可以看到狀態(tài)碼為200,這是已經(jīng)申明自己機(jī)構(gòu)的爬蟲,通過awstats或者其他的網(wǎng)絡(luò)日志分析工具都可以查出,而匿名的爬蟲這些分析工具并不能分析出來。綜合網(wǎng)絡(luò)日志分析工具,看實(shí)驗(yàn)結(jié)果中的IP請求次數(shù),以及在鏈接當(dāng)中是否跳轉(zhuǎn)過頁面而沒有請求過本站的資源,如表3所示。 表3 實(shí)驗(yàn)所得IP請求次數(shù) 實(shí)驗(yàn)數(shù)據(jù)當(dāng)中有四個IP是屬于本地局域網(wǎng),有兩個外網(wǎng),其中有一個是只發(fā)送過一次鏈接請求,這與微軟必應(yīng)爬蟲、百度爬蟲的行為方式相同,只對網(wǎng)站爬取過一次(此為檢測方法的主要特征),初步可以判定此IP為匿名爬蟲。然后在接下來一段時間的日志當(dāng)中進(jìn)行此IP的查找,在訪問此網(wǎng)站的頁面資源時只有一個請求,并沒有其他的資源請求,而且此IP會周期性地訪問網(wǎng)站一次,凡是正常的用戶一次訪問可能會出現(xiàn)只請求頁面問題,長期反復(fù)的只請求頁面而不請求資源,即可確定此IP為匿名的網(wǎng)絡(luò)爬蟲。 該方法的提出主要針對現(xiàn)今網(wǎng)絡(luò)爬蟲分析工具匿名爬蟲檢測功能的不足,在用awstats進(jìn)行網(wǎng)站日志分析時查找匿名網(wǎng)絡(luò)爬蟲。實(shí)驗(yàn)結(jié)果當(dāng)中就用了國內(nèi)SEO網(wǎng)站分析工具對網(wǎng)絡(luò)日志進(jìn)行分析,分析結(jié)果表3已經(jīng)顯示,對于開源的國外公認(rèn)的awstats也是基本類似的功能。對此類分析工具所得出的結(jié)果只能夠檢測出并發(fā)量高的網(wǎng)絡(luò)爬蟲,而不能檢測出并發(fā)量低的網(wǎng)絡(luò)爬蟲。 該方法與主流的限制單個ip/api token的訪問量進(jìn)行比較,限制IP主要的工作是限制而不是檢測,大眾點(diǎn)評網(wǎng)站當(dāng)中就用到了。如果少量地抓取大眾點(diǎn)評上的信息,限制策略并沒有用。 該方法與蜜罐資源即上文所提及的使用隱藏資源進(jìn)行比較,不必在設(shè)計(jì)網(wǎng)站當(dāng)中加入冗余的東西來增加網(wǎng)站的復(fù)雜性,而且對于只抓取特定內(nèi)容的網(wǎng)絡(luò)爬蟲蜜罐資源并不能夠檢測出網(wǎng)絡(luò)爬蟲。 通過對爬蟲規(guī)范的解析,以及爬蟲行為的分析,檢測匿名爬蟲現(xiàn)今只能夠從爬蟲并發(fā)量、爬蟲訪問網(wǎng)站的行為等方面入手。匿名爬蟲并發(fā)量可以通過設(shè)置服務(wù)器手段完成,而從爬蟲訪問行為方面并沒有太多的工具以及手段,所以完善現(xiàn)今的網(wǎng)絡(luò)日志分析工具對匿名爬蟲的功能,網(wǎng)站才能夠得到有力的保護(hù)。 [1] Cho J,Garcia-Molina H. The evolution of the web and implications for an incremental crawler[C]//Proceedings of 26th international conference on very large data bases.San Francisco,CA,USA:Morgan Kaufmann Publishers Inc,2000:200-209. [2] 王 珊,王會舉,覃雄派,等. 架構(gòu)大數(shù)據(jù):挑戰(zhàn)、現(xiàn)狀與展望[J].計(jì)算機(jī)學(xué)報,2011,34(10):1741-1752. [3] Witten I H, Frank E, Hall M A.Data mining:practical machine learning tools and techniques[M].[s.l.]:Elsevier Science,2011. [4] Croft B, Metzler D, Strohman T.Search engines-information retrieval in practice[J].Computer Journal,2011,54(5):831-832. [5] Raghavan S, Garcia-Molina H. Crawling the hidden web[C]//Proceedings of 27th international conference on very large data bases.San Francisco,CA,USA:Morgan Kaufmann Publishers Inc,2001:129-138. [6] Tan Pangning,Kumar V.Discovery of web robot sessions ba-sed on their navigational patterns[J].Data Mining and Knowledge Discovery,2002,6(1):9-35. [7] 郭偉剛,鞠時光.電子商務(wù)網(wǎng)站中Web Robot的檢測技術(shù)[J].計(jì)算機(jī)工程,2005,31(23):219-211. [8] Najork M,Heydon A.High-performance web crawling[M]//Handbook of massive data sets.[s.l.]:Kluwer Academic Publishers,2001:25-45. [9] 詳解網(wǎng)絡(luò)爬蟲與Web安全[J].計(jì)算機(jī)與網(wǎng)絡(luò),2012,38(12):38-39. [10] Shkapenyuk V,Suel T,Shkapenyuk V,et al.Design and implementation of a high-performance distributed web crawler[C]//Proceedings of 18th international conference on data engineering.[s.l.]:IEEE,2002:357-368. [11] Cho J,Garcia-Molina H,Page L.Efficient crawling through URL ordering[J].Computer Networks & ISDN Systems,1998,30(1-7):161-172. [12] 張 峰,付 俊,楊光華,等.Web訪問日志安全分析技術(shù)研究[J].北京郵電大學(xué)學(xué)報,2014,37(2):93-98. [13] 李佳欣,潘 偉.PhantomJS在Web自動化測試中的應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013,16(18):76-77. [14] 梁雪松.網(wǎng)絡(luò)機(jī)器人對網(wǎng)絡(luò)安全的影響及其應(yīng)對策略[J].信息安全與通信保密,2008(8):94-96. [15] Linnér L,Arborelius L,Nomikos G G,et al.Locus coeruleus neuronal activity and noradrenaline availability in the frontal cortex of rats chronically treated with imipramine:effect of alpha 2-adrenoceptor blockade[J].Biological Psychiatry,1999,46(6):766-774. [16] 范純龍,袁 濱,余周華,等.基于陷阱技術(shù)的網(wǎng)絡(luò)爬蟲檢測[J].計(jì)算機(jī)應(yīng)用,2010,30(7):1782-1784. [17] Artail H,Masri Z A,Sraj M,et al.A dynamic honeypot design for intrusion detection[C]//IEEE/ACS international conference on pervasive services.[s.l.]:IEEE,2004:95-104. [18] 常紅要,朱征宇,陳 燁,等.基于HTML標(biāo)記用途分析的網(wǎng)頁正文提取技術(shù)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(24):5187-5191. [19] 賈夢青.基于用戶訪問行為分析的網(wǎng)站分類研究[D].鄭州:鄭州大學(xué),2009. AnonymousCrawlerDetectionBasedonWebAccess ZOU Jian-xin,LI Hong-ling (Department of Computer Science and Engineering,School of Information Science and Engineering,Yunnan University,Kunming 650000,China) web crawler;robot exclusion protocol;website access;camouflage crawler detection TP393.08 A 1673-629X(2017)12-0103-05 10.3969/j.issn.1673-629X.2017.12.023 2016-12-08 2017-04-10 < class="emphasis_bold">網(wǎng)絡(luò)出版時間 時間:2017-08-01 國家自然科學(xué)基金資助項(xiàng)目(61562090) 鄒建鑫(1991-),男,碩士,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)和信息安全;李紅靈,副教授,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)和信息安全。 http://kns.cnki.net/kcms/detail/61.1450.TP.20170801.1557.076.html Abstarct:By analysis and study of web crawler accessing web page,some detection algorithms of malicious web crawler are summarized based on robot exclusion protocol and crawling,aiming to the problem that it is difficult to identify website accessing from malicious web crawler disguised as a browser,and that web log detection tools don’t support anonymous web crawler detection.In consideration of above algorithms,a new one to identify the camouflage web crawler is proposed based on crawling.It detects the web crawler mainly according to the length of access time and access cycle of website accessing form both human and crawler,and is verified by an experiment,the data of which is from a server web log.The experimental data are processed by Python for anonymous crawler detection.Compared with mainstream detection algorithm of anonymous web crawler,the proposed algorithm can detect the small amount of concurrent anonymous web crawler.4 實(shí)驗(yàn)結(jié)果及驗(yàn)證
5 結(jié)束語