近日,針對馬蜂窩「數據造假」的文章刷屏網絡。文章指出,馬蜂窩2100萬條真實點評中,有1800萬條是經過機器人從點評、攜程等其餘平臺抄襲而來。做者表示,在馬蜂窩上發現了7454個抄襲帳號,平均每一個帳號從攜程、藝龍、美團、Agoda、Yelp上抄襲搬運了數千條點評,合計抄襲572萬條餐飲點評,1221萬條酒店點評。python
其實,不只旅遊網站遭到網絡爬蟲的惡意抓取,航空、視頻等也是被惡意爬取的重災區。算法
今年2月,視頻彈幕網站嗶哩嗶哩(bilibili)大量用戶的視頻、暱稱、頭像及用戶評論,出如今某新成立的視頻網站上,就是非法網絡爬蟲的盜取;而航空公司的官網上的機票、訂座等信息,長期被代理公司將機票信息爬取、佔座,而後在其餘網站上加價銷售。瀏覽器
網絡爬蟲:數據造假背後的「惡人」網絡
網絡爬蟲,又被稱爲網頁蜘蛛、網絡機器人,是按照必定的規則,自動地抓取網絡信息的程序或者腳本。機器學習
網絡爬蟲分爲兩類:一類是搜索引擎爬蟲,一類是其餘爬蟲。前者是爲搜索引擎從廣域網下載網頁,便於搜索檢索,後者則是在指定目標下載信息,用於存儲或其餘用途。學習
網絡爬蟲不只可以抓取網頁商品、服務、文字、圖片等關鍵的靜態網頁信息,還可以爬取用戶評價、價格和帳戶等動態信息等。在知識產權日益受到重視的今天,數據是互聯網平臺的重要資產。網絡爬蟲的非法操做不只竊取了平臺的數據資產,更消耗了平臺的服務和帶寬資源。優化
被網絡爬蟲竊取的信息不只能夠用於同類型平臺製做,還可能被轉售或者可能用於釣魚網站製做等其餘違法行爲。這不但會給平臺帶來重大損失,更可能致使平臺上的用戶敏感信息泄露,進而使用戶遭遇各種網絡和電信詐騙。網站
如何識別搜索引擎爬蟲和惡意爬蟲?搜索引擎
針對網絡爬蟲的識別通常是經過用戶HTTP請求中的UA(UserAgent)、IP地址字段以及以及瀏覽器Cookie。翻譯
首先,不少的惡意爬蟲程序頭或者UA中默認含有相似python-requests/2.18.4等固定字符串,很容易被系統辨別出來;其次,爬蟲常用某些固定IP,當某一個IP訪問量特別特別大、某一段時間內訪問了屢次的網頁等,也能夠被快速識別。
常規防護是拒絕訪問,或直接封殺IP。可是,UA能夠僞造裝成搜索爬蟲或者其餘瀏覽器,而IP地址能夠經過頻繁變動代理IP繞過。此外,經過模擬登陸或者手動登陸Cookie 也能繞過系統監測。因此,這三類方式均不完善。
驗證碼是比較有效的一種方式,當某一用戶訪問次數過多後,就自動讓請求跳轉到一個驗證碼頁面,只有在輸入正確的驗證碼以後才能繼續訪問網站。而驗證碼不只能夠檢測訪問者行爲,還集合設備指紋和風控等多種因素綜合判斷。
頂象數據反爬解決方案就是基於驗證碼和風控。該方案在登陸端部署頂象的智能無感驗證,直接攔截爬蟲對重點數據的爬取。同時,結合頂象設備指紋和實時風險決策系統,實現對於爬蟲的整體攔截。再基於對抗過程當中的數據積累,利用智能分析平臺對數據進行分析,創建基於符合業務場景和需求的風控策略,實時優化風控效果,良好防範數據遭惡意爬取的風險。
驗證碼後面的技術
在用戶訪問方面,無感驗證經過人機交互行爲進行防禦。如鼠標在頁面內的滑動軌跡、鍵盤的敲擊速率、滑動驗證碼的滑動軌跡、速率、按鈕點擊等行爲軌跡模型檢測來進行防禦。
基於頂象機器學習模型平臺建立優化相關模型,用於驗證碼機器模擬軌跡防禦。這裏麪包含軌跡耗時檢測、異常軌跡檢測(包括直線、勻速、聚合曲線等常規信號發生器生成的軌跡和經過異常檢測算法發現的離羣行爲)。
在異常檢測方面,頂象技術使用的其中一種異常檢測算法爲孤立森林(Isolation Forest),Isolation Forest 中提出Isolation概念,即將異常數據從既有數據分佈中孤立,用以實現異常檢測的目的,這種算法較基於正常數據點建立profile進行異常檢測的算法,如Replicator Neural Network、one-class SVM有更高的異常識別能力和準確度。
除此外,二分類器還能夠根據既有的驗證碼數據進行訓練,對採集到的人機交互行爲數據進行預測區分,進一步提高識別惡意行爲的精確度。
此爲了防止網絡爬蟲對驗證碼的防暴力破解,無感驗證經過圖片亂序切條、圖片更新定時加工、圖片變異等技術,結合關聯性檢測進行防禦,經過內置規則和策略,判斷相關關聯性,如同一設備關聯性、同一IP關聯性、滑動失敗關聯性、驗證次數關聯性等,有效識別短期內異常關聯性。
驗證碼背後的機器學習
頂象技術將深度學習技術應用於驗證碼的軌跡分析,經過LSTM等深度學習技術,對滑動驗證碼的滑動軌跡進行特徵提取,而後基於LargeVis,對提取的特徵進行可視化分析,以下圖所示,經過歷史數據的可視化對比分析,能夠發現一些異常的軌跡數據。
LSTM是一種遞歸神經網絡,適合於處理和預測時序及行爲數據。基於 LSTM 的系統能夠學習翻譯語言、控制機器人、圖像分析、文檔摘要、語音識別、圖像識別等任務,因爲驗證碼的軌跡是連續的行爲數據,所以很是適合使用LSTM來進行特徵提取。
除此以外,頂象將深度學習技術應用於點選驗證碼中,對點選驗證碼進行「風格遷移」,可大大增長驗證碼被破解的難度。
風格遷移是深度學習領域頗有創意的研究成果,經過神經網絡,將一張圖片的藝術風格應用在另一張圖片上,例如上圖中是將梵高的名做「星空」的藝術風格應用於點選驗證碼圖片上。經過風格遷移,能夠將點選圖片中的內容進行變換,例如文字變得扭曲及模糊,使得機器破解的難度增長。可是又不會徹底改變圖片的內容,使用戶又能夠很容易的識別圖片中的文字。