話說“六間房”

一.問題出現
    那天,客服 MM 告訴我說,有北京的網友反映,在登錄我們網站的時候,彈出大量的六間房廣告窗口,瀏覽器馬上就停止響應,崩潰了。開始,我不以爲然,認爲也就是這些個別的用戶電腦“中鏢”了吧。所以就告訴客服 MM 說,告訴那些投訴的網友,說是他們的電腦中毒了,殺殺毒也就 OK 了。下午,客服 MM 又來“騷擾”了,說是先前反映情況的北京網友按照我們的指點,用了最新的殺毒軟件,但是沒有查到病毒,而且殺毒後“濤聲依舊”。並且,廣州和深圳也有網友反映同樣的情況。我開始意識到問題的嚴重性了。可是,由於當天維護任務比較多,我就拖了拖,準備第二天再來處理。第二天早上上班後,我打開郵箱,一封客服主管的郵件出現在眼前:內容大概是到今天凌晨爲止,已有數十網友反映了六間房彈窗問題,請求技術及時解決。我心裏惡狠狠地罵了一句“TMD,你個該死的六間房”,開始幹活了。
二.問題跟進
    我想還是先上問題用戶的電腦上去實地“偵查”一下吧。於是就叫客服 MM 提供他們的 QQ 號碼,可是他們說現在還沒有人提供,不過可以聯繫他們請求他們提供 QQ 號碼。看來暫時沒戲了。
    那就先上網看看吧。於是我先 google 了一下,發現跟“六間房彈窗”有關的“緋聞”還真不少,看來六間房這次又大出風頭了。隨便進入了一條跟我們的情況相似的網頁,那是一個論壇的帖子,樓主的分析是,並非六間房在搗鬼,實際上是某個拉流量的網站在作怪,而六間房不過是背了黑鍋而已,並且提出瞭解決方案:在機器的 hosts 文件裏面,把那個拉流量的網站的域名解析爲 127.0.0.1,問題就解決了。後面的跟貼,有人說這樣搞定了,有人說這樣沒有用。不管那麼多,先把這種解決方案記下來再說吧。
    繼續看 google 搜出的結果。突然,360 出現在我的眼前。“難道這個問題跟***惡意軟件之內的東西也‘有一腿’”,我暗自問了一句。進去一看,原來是 360 的論壇,樓主說“六間房彈窗”實際上是由於一種十分厲害的***在作怪,好像叫什麼“隱身僵死***”,名字挺恐怖。而且,還貼出了彙編語言寫的清除代碼,筆者當年也認真學過彙編語言,可是看不懂,看來自己對 windows 下的彙編技術還太差勁了。我打開了該頁面上的一個鏈接,出現的是 360 對“隱身僵死***”的相關描述,和他們開發出來的專殺工具。同樣地,先把解決方案記錄下來。
    解決方案找到了兩種,接下來,就應該上出問題的用戶的電腦上去“實驗實驗”了。再次 call 客服 MM, 這次他們提供了幾個 QQ 號碼給我,其中有一個是北京分公司一個同事的。我決定先從熟人下手。聯繫上了她,登錄上了她的電腦,請她打開彈窗的頁面。一時間,N各個窗口彈了出來,瀏覽器動不了了。我馬上使用了第一種解決方案,修改系統的 hosts 文件,關閉瀏覽器,清除緩存文件,再訪問彈窗頁面,shit, “濤聲依舊”啊。心裏有几絲失望。再試試另外一種方案,下載 360 的專殺工具。不幸,360 專殺工具提示並沒有發現“傳說中”的“隱身僵死***”。這下玩完兒了。
三.問題解決
    局勢一下子陷入了僵局,客服那邊叫得越來越厲害了,因爲反映彈出問題的用戶越來越多了。
    怎麼辦?
    怎麼辦?
    怎麼辦?
    看來,只有使用最後的殺手鐗了,抓取數據包來分析。
    我在北京同事的電腦上裝了 ethereal,再打開先前總是彈窗的頁面,奇怪了,這次不彈窗了,關閉瀏覽器再試,還是不彈窗,重啓電腦再試,還是不彈窗,“這不是擺明了要‘調戲’我嗎”,我苦笑不已。
    北方的不行,我看看有沒有南方用戶的 QQ 號碼(跟南方的用戶做遠程協助,效果比北方的好多了,南北分家,帶給人的就是不方便)。嗯,不錯,有一個深圳的小夥子的 QQ 號碼,而且他也恰好在線。寒暄幾句後,登錄上了他的電腦。這次,我打算換一個抓包工具,畢竟是分析 HTTP 數據流,還是用專門分析 HTTP 數據流的工具,我用了 httpwatch。這次,抓取到了出現彈窗時的數據樣本。經過分析,發現是在用戶訪問我們的某些網頁的時候,被注入了惡意 js 造成的,而這些 js 的作用,就是反覆打開六間房的廣告窗口。再分析,發現該用戶訪問到的是大連的某個CDN 節點。接下來,我修改了自己電腦的 hosts 文件,把 public.xxxx.com 定位到該節點,再訪問我們的 public.xxxxx.com, 眼前的窗口跳個不停,瀏覽器停止響應。Oh yeah,問題的根源找到了。原來就是這個 CDN 節點出了問題。我給我們的 CDN 廠商打電話,告訴他們情況,他們的反應,好像一點都不覺得驚奇,似乎見怪不怪了。他們的解釋是,他們也不知道是怎麼回事,這樣的問題,經常發生在他們的大型網站客戶身上。第二天,他們關閉了大連的 CDN 節點,一切恢復正常。
四.事後感悟
    回首整個過程,我感慨良多。
    不要輕易相信網上解決方案。人家的解決方案並不是錯誤的,但是可能並不適合解決你所碰到的問題,雖然表面上看起來,他們解決的是同樣的問題。
    做技術的人,就要以技術說話,以數據說話,根據數據做分析,根據分析結果定解決方案。
    中國的互聯網,怎麼就那麼亂呢?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章