前段時間藍(lán)點網(wǎng)曾提過國內(nèi)某家搜索引擎爬蟲不遵守協(xié)議高頻抓爬導(dǎo)致國內(nèi)外許多網(wǎng)站如被攻擊般訪問極度緩慢。當(dāng)時相關(guān)公司看到報道后對爬蟲進(jìn)行緊急優(yōu)化解決高頻抓爬問題,不過最近藍(lán)點網(wǎng)又發(fā)現(xiàn)新的陌生爬蟲高頻抓爬。這個新爬蟲為名為AspiegelBot主要模擬安卓機(jī)進(jìn)行抓爬,UA標(biāo)識符里也沒有標(biāo)注爬蟲所屬公司對應(yīng)的介紹界面。
經(jīng)過搜索藍(lán)點網(wǎng)發(fā)現(xiàn)這個爬蟲屬于華為旗下的Aspiegel公司,該公司位于愛爾蘭都柏林,負(fù)責(zé)華為移動服務(wù)(HMS)國際版的運營。
▲截圖來自ASPIEGEL公司官網(wǎng)
華為向國外用戶提供的搜索服務(wù):
高頻抓爬如小型DDoS攻擊:
爬蟲通常指的是搜索引擎用于索引互聯(lián)網(wǎng)內(nèi)容的自動化程序,當(dāng)然現(xiàn)在爬蟲也被用于抓取各類特定的互聯(lián)網(wǎng)內(nèi)容。正常情況下搜索引擎爬蟲會根據(jù)網(wǎng)站的負(fù)載情況動態(tài)調(diào)整抓爬頻率,防止因抓爬頻率過高影響被抓取網(wǎng)站的訪問。爬蟲抓取內(nèi)容時與正常用戶訪問網(wǎng)站類似,因此當(dāng)抓爬頻率過高時會消耗網(wǎng)站大量服務(wù)器資源影響正常用戶訪問。
華為的搜索引擎爬蟲就存在高頻抓爬問題,即爬蟲無視服務(wù)器負(fù)載情況瘋狂抓取和重復(fù)抓取大量內(nèi)容消耗服務(wù)器。這種抓爬情況的結(jié)果就是被抓爬的網(wǎng)站服務(wù)器資源被消耗過大影響正常服務(wù),甚至還會出現(xiàn)網(wǎng)站服務(wù)中斷等情況。個別時候華為搜索引擎爬蟲的超高頻抓取甚至如小型 DDoS 攻擊,遭到抓爬的網(wǎng)站瞬間癱瘓只能購買更多服務(wù)器。例如國外某開發(fā)者網(wǎng)站最近華為爬蟲訪問頻次增加達(dá)460%,迫于無奈該網(wǎng)站只能通過多種措施屏蔽華為的訪問。
▲國外開發(fā)者平臺Hypernode統(tǒng)計的華為爬蟲頻次趨勢
華為爬蟲UA標(biāo)識符信息:
114.119.160.95--"Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; AspiegelBot)" 114.119.1166.4--"Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; AspiegelBot)" 114.119.166.86--"Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; AspiegelBot)" 114.119.165.202--"Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; AspiegelBot)" 114.119.163.184--"Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; AspiegelBot)" 114.119.161.58--"Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; AspiegelBot)"
在網(wǎng)站日志中出現(xiàn)的華為爬蟲:
為何不愿遵守Robots.txt協(xié)議:
在互聯(lián)網(wǎng)世界有個約定俗成的規(guī)范,那就是使用Robots.txt協(xié)議來告訴爬蟲你是否可以抓爬或可以抓爬哪些內(nèi)容。盡管這并不是法律但在互聯(lián)網(wǎng)世界里多數(shù)知名公司的爬蟲還是遵守該協(xié)議的,如果網(wǎng)站不愿被抓爬可以禁止爬蟲。然而華為爬蟲不知道是因開發(fā)問題還是運營問題并沒有遵守該協(xié)議,甚至都不會訪問網(wǎng)站設(shè)置的Robots.txt文件。這導(dǎo)致許多被抓爬到幾乎癱瘓的網(wǎng)站無法通過配置協(xié)議來阻止華為抓取,要想屏蔽華為爬蟲需使用更高級的策略。
華為搜索只為國際用戶服務(wù)但國內(nèi)網(wǎng)站也遭殃:
由華為子公司 Aspiegel 運營的華為移動服務(wù)國際版主要為國外用戶服務(wù),華為搜索服務(wù)同樣也只面向國外用戶。在藍(lán)點網(wǎng)的查詢中發(fā)現(xiàn)受到華為搜索爬蟲影響最大的還是歐洲網(wǎng)站,畢竟該爬蟲主要索引的都是國外網(wǎng)站的內(nèi)容。然而國內(nèi)網(wǎng)站也同樣遭到華為爬蟲的高頻抓取,部分小型網(wǎng)站和個人網(wǎng)站等不得不增加服務(wù)器配置應(yīng)對超高負(fù)載。增加服務(wù)器配置意味著網(wǎng)站需要支出更多服務(wù)器費用,然而爬蟲不斷地重復(fù)性抓取對于網(wǎng)站來說也沒有太大意義。尤其是國內(nèi)網(wǎng)站多數(shù)為中文不太可能被國外用戶通過華為搜索引擎看到,所以與其浪費錢不如直接屏蔽華為爬蟲。
▲IPIP.NET對部分爬蟲地址進(jìn)行查詢的結(jié)果
怎么屏蔽或阻擋華為爬蟲的高頻訪問:
建議網(wǎng)站管理員調(diào)整Robots.txt將華為爬蟲添加到阻止列表,盡管當(dāng)前并不能阻止但說不好以后華為會遵守該協(xié)議。
User-agent:AspiegelBot
Disallow:/
目前最簡單也是最有效的屏蔽方式就是直接將華為爬蟲所屬IP端攔截,只要把這些IP地址全部攔截即可高枕無憂。經(jīng)藍(lán)點網(wǎng)手工排查目前華為搜索引擎爬蟲主要托管在華為新加坡數(shù)據(jù)中心,該爬蟲使用的IP地址歸類后主要是:114.119.16x.xxx
網(wǎng)站應(yīng)該屏蔽的范圍可以從114.119.160.0~114.119.167.254(備注:從114.119.167.255開始標(biāo)注為華為云不帶AspiegelBot字樣因此應(yīng)該不是爬蟲所使用的IP段了)。只要將這個IP段屏蔽訪問就應(yīng)該可以明顯緩解華為爬蟲帶來的壓力,屏蔽后網(wǎng)站可以繼續(xù)通過日志排查爬蟲情況。
目前藍(lán)點網(wǎng)初步判斷從 114.119.167.255~114.119.169.255 不是爬蟲使用的,因為我們排查日志沒有發(fā)現(xiàn)痕跡。若網(wǎng)站管理員發(fā)現(xiàn)該IP端仍然有華為爬蟲的話可以擴(kuò)大屏蔽范圍,將 114.119.16x.xxx 整個IP地址段全部屏蔽掉緩解華為爬蟲高頻抓爬帶來的壓力。