我不知道技術是否有罪,我只知道,這些盤踞在我們廣袤版圖上數以十億計的爬蟲,無時無刻不在提醒著我們:抱怨不會讓這個世界變得更好,你想生活在一個怎樣的世界,就要用自己的雙手去創造它。
這裡有三個問題:
- 你以為你在大眾點評上找到的館子,真的是幾百個人給了好評,然後才出現在你的推薦里的嗎?
- 你以為你在百度上搜索到的信息,真的是百度想讓你看到的嗎?(注意體會這句話的意思,不是日常黑百度)
- 你以為在微博上看到的熱搜話題大V互動,真的都是真實發生的嗎?
每年總有那麼幾天,幺哥會心情焦慮,坐立不安。那是因為,他又要準備搶回家的火車票了。幺哥家在湖南,離北京上千公里。他是家裡的獨子,每年買到火車票準時出現在家門口是他的「義務」。
這兩年,他的救命稻草是一個搶票軟體,他在打折的時候買了會員,據說會員是有特權的:哪怕只搶到一張票,都會優先給他。(起碼幺哥是這樣安慰自己的。)
從技術上說,幺哥的救命稻草不是搶票軟體,而是搶票軟體背後,無數個叫做「爬蟲」的東西。
爬蟲就是一個探測機器,它的基本操作就是模擬人的行為去各個網站溜達,點點按鈕,查查數據,或者把看到的信息背回來,就像一隻蟲子在一幢樓里不知疲倦地爬來爬去。
你每天使用的百度,其實就是利用了這種爬蟲技術:每天放出無數爬蟲到各個網站,把他們的信息抓回來,然後化好淡妝排著小隊等你來檢索。搶票軟體,也相當於撒出去無數個分身,每一個分身都幫助你不斷刷新 12306 網站的火車余票。
正好在上周末,一位黑客盆友御風神秘兮兮地給我發來一份《中國爬蟲圖鑑》,這哥們在某安全實驗室主要負責加班,順便和同事們開發了很多黑科技。比如:他們搞了一個威脅情報系統,號稱能探測到全世界的「爬蟲」都在做什麼。
我打開《圖鑑》,一分鐘以後,我整個人都不好了,我看到了另一個「平行世界」:
就在我們身邊的網路上,已經密密麻麻爬滿了各種網路爬蟲,它們善惡不同,各懷心思。而越是每個人切身利益所在的地方,就越是爬滿了爬蟲。看到最後,我發現這哪裡是《中國爬蟲圖鑑》,這分明是一份《中國焦慮圖鑑》。
我們今天要說的,就和這些 App 有關。
一、爬蟲的「騷操作」
爬蟲也分善惡。像谷歌這樣的搜索引擎爬蟲,每隔幾天對全網的網頁掃一遍,供大家查閱,各個被掃的網站大都很開心。這種就被定義為「善意爬蟲」。
但是,像搶票軟體這樣的爬蟲,對著 12306 每秒鐘恨不得擼幾萬次,鐵總並不覺得很開心,這種就被定義為「惡意爬蟲」。(注意:搶票的你覺得開心沒用,被掃描的網站覺得不開心,它就是惡意的。)
給你看一張圖:
這張圖裡顯示的,就是各行各業被爬「叨擾」的比例。(這張圖顯示是全世界,不是全中國)而每一個色塊背後,都是一條真實而強大的利益鏈條。
1. 排名第一的是出行
出行行業中爬蟲的佔比最高(20.87%),在出行的爬蟲中,有89.02%的流量都是沖著 12306 去的。這不意外,全中國賣火車票的獨此一家別無分號。
你還記得當年12306 上線王珞丹和白百何的「史上最坑圖片驗證碼」么?
這些東西不是為了故意難為老老實實賣票的人的,而恰恰是為了阻止爬蟲(也就是搶票軟體)的點擊。剛才說了,爬蟲只會簡單的機械點擊,它不認識白百何,所以很大一部分爬蟲就被擋在了門外。
你可能會說,不對啊,我現在還可以用搶票軟體搶到票啊。
沒錯,搶票軟體也不是吃素的,它們在和鐵總搞「對抗」,有一種東西叫做「打碼平台」,你可以了解一下。
打碼平台雇傭了很多叔叔阿姨,他們在電腦屏幕前不做別的事情,專門幫人識別驗證碼。那邊搶票軟體遇到了驗證碼,系統就會自動把這些驗證碼傳到叔叔阿姨面前,他們手工選好哪個是白百何哪個是王珞丹,然後再把結果傳回去。總共的過程用不了幾秒時間。
這樣的打碼平台還有記憶功能,如果叔叔阿姨已經標記了這張圖是「鍋鏟」,那麼下次這張圖片再出現的時候,系統就直接判斷它是「鍋鏟」。時間一長,12306 系統里的圖片就被標記完了,機器自己都能認識。
你可能會問:為什麼 12306 這麼「摳」呢?它大方地讓爬蟲隨意爬會死嗎?
會死。
你知道每年過年之前,12306 被點成什麼樣了嗎?
公開數據是這麼說的:
「最高峰時1天內頁面瀏覽量達 813.4 億次,1 小時最高點擊量 59.3 億次,平均每秒 164.8 萬次。」
這還是加上驗證碼防護之後的數據,可想而知被攔截在外面的爬蟲還有多少。鐵路被爬蟲「點雞」成這樣已經夠慘了,但它還有個難兄難弟,就是航空。航空軟體里,被搞得最慘的不是國航,不是海航也不是東航,而是亞航。
航空類爬蟲的分佈比例
很多人可能都沒坐過亞洲航空,這是一家馬來西亞的廉價航空公司,航線基本都是從中國各地飛往東南亞的旅遊勝地,飛機上連礦泉水都得自費買,是屌絲度假之首選。
為什麼爬蟲這麼青睞亞航呢?
因為它便宜,確切地說,因為它經常放出便宜的票。本來,亞航的初衷只是隨機放出一些便宜的票來吸引遊客,但這裡面黃牛黨是有利可圖的。
據我所知,他們是這樣玩的:
技術宅黃牛黨們利用爬蟲,不斷刷新亞航的票務介面,一旦出現便宜的票,不管三七二十一先拍下來再說。
亞航有規定,你拍下來半小時(具體時間記不清了)不付款票就自動回到票池,繼續賣。但是黃牛黨們在爬蟲腳本里寫好了精確的時間,到了半小時,一毫秒都不多,他又把票拍下來,如此循環。直到有人從黃牛黨這裡定了這個票,黃牛黨就接著利用程序,在亞航系統里放棄這張票,然後0.00001秒之後,就幫你用你的名字預定了這張票。
2. 排名第二的是社交
社交的爬蟲重災區,就是你們喜聞樂見的微博。
給你看張圖:
爬蟲經常光顧的微博地址
這裡的代碼其實指向了微博的一個介面,它可以用來獲取某個人的微博列表、微博的狀態、索引等等。
獲得這些,能搞出什麼騷操作呢?
你想想看,如果我能隨心所欲地指揮一幫機器人,打開某人的微博,然後刷到某一條,然後瘋狂關注、點贊或者留言,這不就是標準的殭屍粉工作的流程么……
其實,殭屍粉都只是爬蟲的常規操作,更騷的來了:
- 我是一個路人甲,我的微博沒人關注,我用大量的爬蟲,給自己做了十萬人的殭屍粉,一群殭屍在我的微博下面點贊評論;
- 我去找一個遊戲廠商,讓他在我這投廣告吧。我發一條遊戲的註冊鏈接,每有一個人通過我的鏈接註冊了遊戲,遊戲廠商就給我一毛錢;
- 十萬爬蟲繼續前赴後繼地點擊註冊鏈接,然後自動去完成註冊動作。
(以上數據不一定和現實吻合,只是展現一個邏輯。具體操作也會更複雜。)
同樣的,十萬殭屍粉去搶你家愛豆在微博上發的紅包,都是一樣的道理。
3. 排名第三的是電商
你回憶一下,有幾種東西叫做「比價平台」、「聚合電商」和「返利平台」。
他們大體都是一個原理:你搜索一樣商品,這類聚合平台就會自動把各個電商的商品,都放在你面前供你選擇,如:淘寶、京東,還有唯品會蘇寧易購。
這就是爬蟲的功勞,它們去淘寶上,把不同網站的產品的圖片和價格統統扒下來,然後在自己這裡展示。
這個原理和谷歌差不多,只不過他們展示的不是網頁而是商品。但是被放在一起比價,淘寶是拒絕的,京東也是拒絕的啊……
然而,由於機器爬蟲模擬的是人的點擊,電商很難阻止這類事情發生,他們甚至都不能向 12306 學習。你想想看,如果你每點開一個商品詳情,淘寶都讓你先分辨一次白百何和王珞丹,你肯定沒心情剁手了。
當然,電商對抗爬蟲有另外的方法,那就是「web 應用防火牆」,簡稱 WAF,這個我們後面再單獨說。
說到這,有人會有個疑問:那些聚合平台,自己寫爬蟲,然後幫助淘寶京東賣貨,他們的名字叫雷鋒么?
醒醒啊同學,這裡隨便給你說一下這種聚合電商平台的盈利模式:
- 假設幾家店鋪都賣杜蕾斯,但是用戶在我這裡搜索「杜蕾斯」的時候,我是有權利決定誰的店鋪在前面誰在後面。誰給的錢多,我就讓誰在搜索的前面。(注意,每個店鋪和淘寶平台可不是一致行動人。淘寶平台不希望自己的內容被聚合平台抓取,但每個店鋪可是很樂意多一個渠道幫他們賣貨的。)
- 如果你覺得搞競價排名良心會痛,也可以用更簡單的方式——在網頁上展示獨立的廣告。訪問你網站的用戶,看到頁面上的廣告,也有可能會點擊。每點擊一次,你就賺一次錢。
- 你還可以作為中間商,收點中介費。你幫店家賣貨,店家會進行返利。這種套路,就是「返利網」這類平台的玩法。
4. 接下來是 O2O 和搜索引擎
還記得開頭我問的幾個問題:你在大眾點評上看到的信息,真是吃貨們點評的嗎?
答:大部分時候是,但有時候不是。這裡面的影響因素還是爬蟲。
御風告訴我,這些爬蟲很可能被用來做兩件事:
- 大眾點評是點評網站,內容比較全面,很多網站都會爬取大眾點評的數據,用來豐富自己的信息。
- 很多剛上點評的商戶,信譽值不高,可以用爬蟲來模擬留言、點贊,刷高自己的信譽值。
所以,理論上講一旦大眾點評對這些爬蟲對抗出現鬆懈,就會有一些並不怎麼樣的店鋪被「刷」到頂部。
與之相似的,是爬蟲針對搜索引擎的進攻。
你可能了解,搜索引擎決定哪個網頁排名靠前,(除了廣告以外)主要一個指標就是看哪個搜索結果被人點擊的次數更多。既然這樣,那麼我就派出爬蟲,搜索某個特定的「關鍵詞」,然後在結果里拚命地點擊某個鏈接,那麼這個網站在搜索引擎的權重里自然就會上升。這個過程就叫做 SEO(搜索引擎優化)。
舉個例子:我隨意搜索一個關鍵詞。
它排在前面的網址,有可能就是經過 SEO 的。作為任何一個搜索引擎,都肯定不允許外人對於自己的搜索結果動手動腳,否則就會喪失公立性。它們會通過不定期調整演算法來對抗 SEO。
5. 最後是政府部門網站
你看這張圖,全是爬蟲針對政府信息的爬取。
第二名,北京市預約挂號統一平台,這個鍋,板上釘釘要號販子來背。
其他的,例如:法院公告、信用中國、信用安徽,為什麼爬蟲要爬這些信息呢?
因為有些信息,是只有政府部門才掌握的。
比如:誰被告過,哪家公司曾經被行政處罰,哪個人曾經進入了失信名單。這些信息綜合起來,可以用來做一個公司或者個人的信譽記錄。
我試著打開了一下排名第四位的「信用中國」。
在這個平台上,你只要輸入一個身份證號或者手機號,就可以查詢到一個人的信用情況,而這個網站正是屬於政府機構的。
如果一家公司要對外做信譽庫的服務,它必須先把信用中國的信息下載到自己的庫里,然後才能和其他數據進行綜合運算。如此,信用中國被爬,也就很容易解釋了。
剛才那張表格里,排名第七的是四川住建廳。根據御風的推測,這很可能是某些公司提供的一項「特殊服務」:他們把四川省各個地區的招標情況匯總起來,然後實時提醒那些房地產公司「別睡了,起來投標了」。
二、爬蟲戰爭
說了這麼多,我猜你會有幾個疑問。
1. 爬蟲搞出這麼多姿勢,它究竟是不是違法呢?
我打開中國網安第一大法《網路安全法》仔細看了半小時,在裡面沒有發現「爬取網路公開信息被認定為違法」的條款。
繼續搜索,我又發現了幾條司法解釋:
未經授權爬取用戶手機通訊錄超過50條記錄;未經授權抓取用戶淘寶交易記錄超過500條;未經授權讀取用戶運營商網站通話記錄超過500條;未經授權讀取用戶公積金社保記錄的超過50000條的。以上這些情況可以入刑。
但是仔細看看,如果我只是用機器代替了人的手點擊滑鼠敲擊鍵盤,接觸的都是公開信息,並不觸犯這些司法解釋。(這只是我簡單查詢后的結果,不代表任何官方意見)
但是,對企業來說,爬蟲卻著實傷害了自己。有句話說:「主救自救者」,他們得組織「民兵」自己保衛自己。
2. 爬蟲戰爭誰會贏?
爬蟲和被爬企業越來越勢不兩立,說白了,他們的對抗都是在阻擋對方的財路,所以下手都挺重。
企業經典的對抗方式,大概有幾種:圖片驗證碼、滑塊驗證、封禁 IP、給訪問者增加一些加解密運算,耗費爬蟲的程序資源等等。
極驗驗證的滑塊驗證技術
除了剛才這些小模塊,企業還可以通過 WAF(Web 應用防火牆)來防護,WAF 的功能就是通過設置一些規則,攔截掉那些不符合規則的請求。
但是,爬蟲的請求,和真人的請求太像了。
我覺得,對這種戰爭一個形象的比喻就是抗癌。癌細胞的目的就是拚命躲過免疫細胞的識別,而免疫細胞的目標就是拚命分辨哪個是好細胞哪個是癌細胞。
在我看來,這場對抗爬蟲的常規戰眼看就要升級為「智能戰」,而且戰線會向雲端轉移。最近一些雲安全廠商,已經在計劃通過人工智慧的方法來識別爬蟲,主推反爬蟲的技術。
不過,就像人類目前難以消滅癌症一樣,企業也難以完全消滅爬蟲。但是我相信,在對抗中這條戰線會達到一個精妙的平衡。這個戰線每向前推進一步,都需要安全研究員付出艱辛的努力。
三、《中國焦慮圖鑑》
最後,幫你搞到了一張表格,這是被監測到的受爬蟲侵擾最多的 Top50。(採樣數據,僅供參考)
這張表裡,除了google、Youtube、ask、亞洲航空這四家企業之外,應該全是中國企業(或機關)。正是從這些名字背後,我體會到了很多人的辛酸和焦慮。
爬蟲是趨利的,它們永遠會向有利益的地方爬行。而爬蟲覺得有利益的地方,往往是我們不忍提及的隱痛。
排名第1的是「中國鐵路路客戶服務中心」,無數像幺哥一樣的遊子,他們奮鬥在一個遠離家鄉的城市,為了讓家人有更幸福的生活。正是他們難以買到過年回家車票的事實,才把 12306 推上了爬蟲榜的第一名。
排名第8的是「最高人民法院公告查詢」,在中國,我們的信用體系還很不完善,騙子和老賴還可以繼續矇騙新人。所以才催生了爬蟲收集法院公告,形成民間信用記錄的服務。
排名第15的是「北京市預約挂號統一平台」,我們的醫療改革在進行,但像你我一樣的普通人仍然看病難,又便宜又好的醫療資源需要爭奪,這才有了「一號難求」的現實,才有了黃牛用爬蟲拚命搶號的現象。
自不用說那些神坑的虛假廣告,沖榜刷量,背後都有爬蟲的影子。
有人說技術有罪,有人說技術無罪。
我不知道技術是否有罪,我只知道,這些盤踞在我們廣袤版圖上數以十億計的爬蟲,無時無刻不在提醒著我們:
抱怨不會讓這個世界變得更好,你想生活在一個怎樣的世界,就要用自己的雙手去創造它。
作者:史中,是一個傾心故事的科技記者,微博:@史中方槍槍
原文鏈接:https://www.huxiu.com/article/254155.html