1
本文作者: 史中 | 2016-07-15 17:14 | 專題:100個頂級黑客的故事 |
人人都被迫接受某些事實。例如我們的世界無法根除犯罪,例如網(wǎng)絡空間無法滅絕病毒。正是因此,我們需要 AV 常駐在系統(tǒng)之中。不要誤會,AV是 Anti-Virus(殺毒軟件)的簡稱。
殺毒一如緝兇,通俗來講就是依靠通緝犯的照片(病毒樣本),找到喬裝改扮的罪犯(病毒及變種)。被廣泛安裝的騰訊管家類軟件,其中都搭載了騰訊反病毒引擎 TAV。而這個引擎,出自騰訊反病毒實驗室之手。
殺毒引擎就像一部汽車的發(fā)動機,你無法通過外觀來判斷它的性能。想要知道它究竟有多大的能力,非得親自踩下油門不可。當你每次點擊查殺病毒的時候,實際上都在和實驗室的每一位安全專家“對話”;然而在現(xiàn)實中,用戶卻很難有機會和他們面對面交談。
雷鋒網(wǎng)采訪到了騰訊反病毒實驗室的負責人馬勁松,他講述了騰訊殺毒引擎白手起家的創(chuàng)業(yè)故事。
【馬勁松】
作為一名技術(shù)出身的“病毒殺手”,馬勁松談吐沉穩(wěn),有一種老刑警的風范。
殺毒的本質(zhì)是技術(shù)對抗,而這正是他一直以來專注的領(lǐng)域。馬勁松仍然可以清晰地回憶起十年前自己剛到騰訊時的“特別任務”。
當時的搜索引擎還處在江湖混戰(zhàn)的階段,有騰訊的搜搜、3721、百度、谷歌、雅虎、CNNIC。用戶在IE地址欄里輸入關(guān)鍵詞進行搜索的時候,IE 會按照順位自動指定一個搜索引擎進行查詢。為了爭到第一順位,幾家搜索引擎在后臺已經(jīng)打得不可開交。于是我和劉桂澤兩個人接下了這個對抗的任務。
搜索引擎的流量決定了廣告收入規(guī)模。通俗來講,這就像幼兒園的老師讓小朋友排好隊,排在第一的就可以得到小紅花,于是面前的小朋友就開始了你爭我奪的“廝殺”。
非常明顯,每次我們推送新版本之后,廣告收入就會有明顯的提升,但是競品的技術(shù)團隊也在做同樣的對抗,今天我們排第一,明天可能就是對手排第一。所以我們必須不斷地研究對手的程序,改進自己的程序。
這樣的升級開始以周為單位,之后逐漸白熱化到以天為單位。讓馬勁松頗感驕傲的是,對抗到后來只要下發(fā)幾十個字節(jié)的配置升級文件,就可以保證搜搜的搜索接口排到隊首。甚至有的時候,他可以研發(fā)出一個“大版本”,讓對手兩三天都沒辦法破解。
雖然對抗激烈如斯,但是所有的搜索廠商都在遵守著同樣的江湖規(guī)矩,那就是:所有的對抗只能在后臺進行,不能彈窗,不能崩潰,不能讓用戶有所感覺。
正是因為如此,在馬勁松眼里,十年前的這場混戰(zhàn)更像是技術(shù)的競賽,而不是你死我活的戰(zhàn)爭。
軟件對抗中不可能出現(xiàn)一招制敵的戰(zhàn)術(shù),如果你使出這樣的招數(shù),一定會把戰(zhàn)爭升級。如此一來局面肯定會失衡,會有更大的麻煩等在后面。
這個觀點也成為了后來騰訊反病毒引擎的行為哲學。
2010年,世界上還不存在一個為名“騰訊殺毒引擎”的東東。但是命運總是這么讓人猝不及防,3Q 大戰(zhàn)爆發(fā)。
嚴峻的形勢擺在面前,我們必須要有一部殺毒引擎。但是由于時間緊迫,從頭研發(fā)肯定來不及,所以我負責和某國際廠商接觸,購買一部 OEM(定制生產(chǎn))引擎。
但是,鑒于騰訊的體量、用戶量,當然還有他們對殺毒引擎要求的迫切程度,某廠商制定了苛刻的協(xié)議,要了一個高出天際的價碼。用馬勁松的話說,這個價錢“讓人驚愕”。他十分憤怒,然后交了錢。
然而,這部賓利價格的引擎卻只提供了夏利引擎的性能?!耙坏┡芷饋恚R上占用 200M 內(nèi)存,連打開 Word 都很卡。”時隔六年,馬勁松仍然忍不住吐槽?!岸沂褂眠^程中,有客戶反應有的病毒查不到,清不掉。我們只好給廠家反映,他們態(tài)度倒是很好,24小時響應。只是接到我們的反饋之后就杳無音訊,幾個月都不升級?!倍@是傳統(tǒng)殺軟廠商的通病。
2011年,忍無可忍的馬勁松拍案而起,決定搞騰訊自己的殺毒引擎。
由于我來到騰訊之前就在國內(nèi)著名的傳統(tǒng)殺毒軟件廠商工作,所以我對自己的技術(shù)很有信心。但是由于是從零開始,為一個引擎研發(fā)虛擬執(zhí)行、脫殼拆包這些基礎能力仍然需要一定的時間?!敝钡桨肽曛?,騰訊反病毒引擎 TAV 才基本成型,團隊決定把引擎放到測試平臺上接受考驗。
上線測試之前我就覺得應該不會太差,但是收到第一份測試報告的時候我還是非常興奮,因為我們的引擎對病毒的檢出率指標一上來就排在所有競品的中上等位置。
但是,此時的 TAV 引擎絲毫沒有驕傲的資本,因為馬勁松一手打造的引擎,對資源的占用甚至超過買來的那部 OEM 引擎。某種程度上他理解了競品的苦衷,但是他并沒想為此妥協(xié)?!耙WC檢出率,同時還要保證檢測的速度,這是一個需要仔細考量的平衡?!?/p>
為此, 馬勁松帶領(lǐng)兄弟們做了如下幾件事:
在文件進入引擎之前,就要先行篩選過濾。有一些在白名單中的文件可以肯定不是病毒,所以可以利用某些條件,有選擇性地讓疑似文件進入虛擬執(zhí)行等耗費資源的流程。
在檢測文件安全性的時機上,不一定是文件剛登陸系統(tǒng)就進行檢查,而是根據(jù)細分場景,在系統(tǒng)閑置的時候,或者拷貝文件的時候?qū)ξ募M行檢查。
對于病毒庫進行了精簡,團隊的安全研究員反復實驗,提取到病毒最好的特征,短小的同時誤報率低。
改進算法引擎,用機器學習的辦法幫助提取病毒的特征。
從2012年中期開始,TAV 的資源占用逐漸達到了馬勁松的理想狀態(tài),用他的話說,“這才是互聯(lián)網(wǎng)廠商做的殺毒引擎”。他告訴雷鋒網(wǎng),現(xiàn)在電腦管家內(nèi)的 TAV 引擎,包括病毒特征庫在內(nèi)總體積只有不到 10M。
從那時開始,使用了 TAV 的電腦管家在VB100、AVC、 AV-Test 等國際殺毒軟件的官方測評中一直保持在第一梯隊,在 PC 殺毒領(lǐng)域緊緊追趕卡巴斯基,小紅傘等超一流殺毒引擎。
【2016年度,TAV 將要參加各種機構(gòu)測評的“日程表”】
有了自己的殺毒引擎,馬勁松感到了前所未有的暢快:“這幾年我們偶爾還會遇到疑難病毒特殊樣本的處理。之前有一個復制能力很強的宏病毒,我們向 OEM 引擎反映了兩三個月,都沒有得到處理;而我們自己的團隊算上關(guān)鍵模塊開發(fā)的時間,也只用了一周左右就實現(xiàn)完全查殺了?!?/p>
馬勁松告訴雷鋒網(wǎng),在殺毒引擎進化的過程中,云的功勞無可替代。一些大體量的陳舊的病毒樣本可以放在云端,而目前流行的傳染性強的病毒放在本地,也成為了目前各家殺毒引擎的標配。
一套完整地反病毒體系,不僅應該有“對著照片抓兇手”的前端查殺引擎,還應該有“判斷誰是兇手”的后端偵測系統(tǒng)。在最初的階段,TAV 的病毒庫來源的主要部分是通過各種渠道收集來的樣本。但是在 TAV 不斷完善的過程中,馬勁松發(fā)現(xiàn),對于這些樣本,自家引擎已經(jīng)游刃有余了。
于是哈勃系統(tǒng)出現(xiàn)在他們的計劃中。簡單說來,哈勃就是通過對全網(wǎng)所有文件進行全量分析,然后根據(jù)文件的行為檢測出新病毒的系統(tǒng)。通俗來說,這個抓捕能力很強的“警察局”要開始增強自己的偵察能力了。
現(xiàn)在哈勃系統(tǒng)每天可以對上千萬個全網(wǎng)新增文件進行分析,通過構(gòu)建一個虛擬的運行環(huán)境,加之各種規(guī)則來綜合判斷一個文件是否安全。
告訴哈勃怎樣來判斷一個文件究竟是不是病毒,這件事情其實遠比想象中復雜,因為馬勁松和團隊面對的,是一個個病毒背后活生生的黑客。
很多病毒會和殺毒軟件進行對抗,比如通過周圍的條件判斷自己是不是運行在殺毒軟件的虛擬機中;
還有很多盜號的木馬,他們會檢測 DNS 服務在不在,檢測系統(tǒng)里的 QQ 是否在運行。由于我們不可能在虛擬機中真的安裝 QQ,所以我們需要用代碼來模擬這些軟件存在的特征。
還有些病毒,它的發(fā)作需要很特殊的觸發(fā)條件,例如被下載之后,會等待30秒才開始攻擊行為?;蛘呤状芜\行的時候什么都不干,重啟的時候再攻擊。對于這種病毒我們就要跳過前面的等待代碼,直接檢查后面的代碼。
還有一些復雜的病毒,他們自身可以加密、變形。這種特殊的病毒,只能依靠真實的執(zhí)行,讓它在運行的過程中自己解密為明文代碼。但是這就對虛擬機提出了很高的要求,如果虛擬機寫得不夠精巧,很可能病毒跑到一半就解密不下去了。
馬勁松告訴雷鋒網(wǎng),由于分析的數(shù)據(jù)非常龐大,哈勃引擎還可以產(chǎn)生出質(zhì)量很高的威脅情報。
“在這些病毒樣本中,我們可以提取到 IP 地址、URL 地址、手機號、短信號、E-mail 地址。這些都是非常有價值的信息。例如你可以通過 E-mail 查詢到注冊者的信息,通過網(wǎng)址也可以查詢到注冊者的信息,這些信息可以提供給騰訊內(nèi)部以及合作伙伴,看到整個網(wǎng)絡中對特定目標的攻擊態(tài)勢?!?/strong>
【2015年冬天,馬勁松和同事們在辦公室等待測評結(jié)果】
2015年6月,馬勁松和反病毒實驗室接到了一項艱巨的任務,那就是扛起“手機病毒查殺”的重擔。雖然團隊專家之前對手機病毒有所研究,但是主攻方向一直是 PC 端。
手機病毒和 PC 病毒雖然原理相同,但是文件格式、黑白名單的比例構(gòu)成、有害行為的特征都不一樣。這些細節(jié)的東西還是非常吃功夫的。
馬勁松說,他盡量不讓兄弟們加班加點,從容有序地完成這個龐大的計劃。他告訴雷鋒網(wǎng)一個印象深刻的場景:
到了11月的時候,我們的手機引擎第一次參加 AV-Test 的測評。我們知道成績就會在這兩天公布,于是我們幾個人每天都等在公司。由于和德國有時差,所以我們一直等到晚上11點。但是連續(xù)兩三天都沒有等到,去年的冬天非常冷,我們半夜回家都凍得夠嗆。
不過最后一天晚上十一點半,我們終于等到了那個郵件。我們以98%的檢出率得到了滿分。那一瞬間,我們突然覺得餓了,大半夜里我就請大伙出去吃了頓大餐。
雖然檢出率超過98%就被認定是滿分,但是“98%”的數(shù)據(jù)還是讓馬勁松覺得很刺眼,因為這意味著距離100%還差兩個百分點。但是這2%的距離,卻不是輕易可以補足的。奇怪的是,說到如何補足這兩個點,馬勁松覺得并沒有獨門絕技?!安⒉淮嬖谖易隽四臣?,就突然提高了這兩個點的一一對應關(guān)系。我們其實就是把所有的細節(jié)重新扣了一遍,優(yōu)化了所有覺得有進步空間的邏輯。功夫、心態(tài),98%到100%就差這點距離。”
2016年3月,TAV 在手機病毒查殺評測中第一次拿到了100%的成績。
【AV-Test 2016年3月 移動端殺毒軟件的測評報告,騰訊和其他公司并列第一(并列先后順序按照公司字母排序)】
“從這以后,我再也看不到競品的同學秀他們的評測成績了?!瘪R勁松對此非常驕傲。
說到當年研發(fā) TAV 的初衷,馬勁松頗為感慨:
因為殺毒軟件的權(quán)限是系統(tǒng)級別的,處在核心位置;就像防火墻處在防御系統(tǒng)的邊界一樣。如果在核心的能力上受制于國外,就有可能被留下后門,做手腳,受制于人。我們沒有任何辦法。
故事的發(fā)展印證了這位“老刑警”的判斷,2014年,國家發(fā)布規(guī)定,國有企業(yè)禁止采購國外的殺毒軟件。
在馬勁松心里,TAV 站在中國的網(wǎng)絡邊疆之上,守土有責。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。