1. 程式人生 > >作弊數減少96.6%,投訴降低90%,這位“材料學”網易專家的“安全”生涯

作弊數減少96.6%,投訴降低90%,這位“材料學”網易專家的“安全”生涯

今年7月31日,網易雲易盾在雲創大會上首家推出了手遊智慧反外掛服務,服務覆蓋99%的各類遊戲外掛,主動防禦能力國內最強——達95%。

犀利數字的背後是易盾在業界的眾多首創,包括在國內率先推出了第三代U3D函式級加密、可熱更U3D資源加密、防協議離線功能、反地理位置模擬功能和反同步器功能等。某客戶接入後,外掛作弊數減少了96.6%,客戶投訴量降低了90%以上。

深挖卓有成效的產品,你會發現“主刀”產品的居然是一個學材料學的。一個研究材料組成、結構、工藝、性質和使用效能之間相互關係的人,是怎麼走上安全這條路的?後來又是如何打怪升級,在安全這個圈子裡站穩腳跟的?研發手遊智慧反外掛產品中,他都付出了哪些?又是如何修煉自己的安全能力的?

“知物由學”欄目近日探訪了這位低調的技術人,希望能給大家帶來一些啟發和思考。

心之所向,素履以往
作弊數減少96.6%,投訴降低90%,這位“材料學”網易專家的“安全”生涯
網易雲易盾移動安全專家陳士留

陳士留,網易雲易盾移動安全專家,手遊智慧反外掛服務的操刀“醫生”。他致力於安全研究十多年,有六年多從事遊戲保護研究,諳熟遊戲的黑產生態和操作手法。回顧他過去過去的經歷,你一定會好奇:本科、碩士都學的是材料學,第一份工作也是和材料相關的,究竟是什麼讓他進入了安全領域,成為手遊反外掛領域的專家?

這一切可以用八個字來形容——心之所向,素履以往。“凡是心所向往的地方,即便穿著草鞋也要前往。”拿這句話的含義來概括陳士留精彩的“轉身”是再恰當不過了。

高考時,由於對專業沒什麼概念,他錯過了計算機。為了能夠來到計算機領域,讀本科的時候,陳士留就看了大量的計算機方面的書籍。研究生時候,他又把網路工程師的證書考到手,同時,他也把計算機相關的系統理論融會貫通。從事第一份工作的兩年裡,他一直在為來到安全領域準備著:別人的空閒都用來打遊戲,追劇、瀟灑,而他則把所有的時間都用來鑽研技術,實踐之前所學——而且往往一不小心,他就搞到了凌晨兩三點。

之所以轉身,並不是陳士留的專業學的不好。大學生涯,陳士留基本上每年都能拿到獎學金;科班領域的第一份工作,他也做得卓有成績。那麼沒日沒夜的痴迷計算機,是因為他真的對安全心有所屬。

付出總有回報,而在陳士留身上,則是以一種訝異的形式體現。

他第一份工作是在江蘇某家生產光碟的企業,他當時負責技術(材料)研發和採購。當時他們生產的光碟需要在最快的一個燒錄機上燒錄,他們生產的光碟雖然支援最高速燒錄,但對應的裝置卻不支援它們品牌。“不支援不是說光碟質量不好,而是某品牌的燒錄機鎖了指定品牌光碟的型號。”陳士留解釋,它會先通過光盤裡的資訊,判斷是否為指定品牌,只有是指定品牌才能燒錄。

陳士留把韌體重新刷下,就能支援他們企業的光碟刻錄了。大家這下驚呆了,他們都知道陳士留電腦技術比較強,但不知道他技術居然如此牛逼,破解都能搞!本來只是讓他試一下,要是不行,就找外面專業的技術人員參與進來,想不到就這麼被他破解了。

為能早日踏入安全行業,放棄華為Offer

陳士留早就知道,自己不屬於材料學這個行業,因此他在第一份工作合同期滿時,就全心謀劃在安全行業的發展。這時,他也面臨兩個選擇:第一個選擇是上海的華為,第二個選擇是杭州一家做反病毒閘道器的小公司。

2008年那會,華為雖然還不是世界500強的公司,也沒有今天的巨集大規模,但在當時的國內外依然算得上是一家頗具影響力的公司。一般人的正常選擇,肯定都會想盡辦法到這樣的大公司歷練或鍍金,而陳士留在確定可以拿到華為Offer的前提下,卻毅然決然地選擇去了杭州的小公司。

如此抉擇的原因是陳士留渴望早日踏入安全行業。他說,當時華為面試流程有點長,而杭州的這家公司電話溝通後,很快就確定錄用他了。“我清晰記得,杭州入職的前兩天,華為上海打電話過來說錄用了,但我已經確定了,不想再等了。”

那非科班出生的陳士留,究竟是如何過五關斬六將,接連拿到兩份Offer,尤其是其中一家公司還比較知名。

他說,安全圈裡大都不是科班出身,甚至不少人都不是學計算機的。“行業內的人對出身並不Care,他們關注的是你在安全某個方向上是否有研究和典型的案例、成績。”陳士留不是科班出身,但他大學、研究生以及第一份工作的“不務正業”讓他有了入行的資本。

在杭州的安全公司,陳士留一開始做病毒分析,因為分析做得很不錯,領導就讓他做惡意網站攔截業務。再後來,由於其特徵分析比較深入,通用性和適應性都很好,他做的特徵攔截量基本能佔到公司的百分之八九十,公司又直接把陳士留提拔為組長,專門負責惡意網址的攔截業務。

那時,反病毒市場上有不少大體量的安全廠商,比如說趨勢等。而陳士留負責的業務,卻在這些大廠商中硬生生殺出一條血路,脫穎而出,成為他們產品的一個亮點,領先大廠商。

這對小廠商來說這是不太容易實現的事,然而陳士留卻做到了。

許可權不對等,手遊反外掛難做!

幾年後,陳士留就來到了網易安全部,開始做端遊(PC遊戲)的反外掛,和團隊一起,幫助公司打擊大量端遊外掛和非法工作室。

隨著時間的推移,移動網際網路大潮下越來越多的使用者轉戰手機端,手遊(手機端遊戲)市場已經佔有了遊戲市場的大部分份額。因此,各路工作室、黑產都已經轉戰手遊,只要人氣比較旺的手遊,都會有很多破解者盯者。

“如果一款沒有專業保護的遊戲上線,半天內就會出現針對性的外掛或破解版。”對於遊戲生態環境,陳士留這麼告訴“知物由學”欄目。在易盾總經理周森、移動安全部門總監支援下,陳士留決心幫中小遊戲公司解決在手遊外掛上的痛點。

然而現實是,手遊的反外掛很難做。端遊的遊戲基本都會有管理員許可權,跟外掛的許可權是一樣的,外掛能做的操作,遊戲防護也可以做,屬於對等的對抗。手機上的許可權是不對等的,外掛可以有Root許可權,遊戲防護卻沒有這樣的許可權。“外掛能做的,比如跨程序操作、注入模組等操作,遊戲保護是做不了的。”陳士留接著指出,手遊保護的實現難度更大,在實現思路上跟端遊有很大不同。

儘管充滿艱難險阻,有太多不確定因素,陳士留依然選擇逃離舒適區,挑起這個重擔。為了讓專案啟動順利,他一個人完成專案的框架搭建、加密保護策略等的大部分程式碼。打好開頭炮,奠定基礎後,他才逐漸把重心轉向核心保護策略的制定、保護功能的拓展以及專案質量的把控上。

開發獨有功能

開發出來,在網易內部廣泛應用後,2018年7月底,經過千錘百煉和各種進化的手遊智慧反外掛服務,正式對外服務。

前後幾批次的外部遊戲客戶接入後,對應的遊戲客服投訴量立馬降低了90%以上,有的遊戲外掛作弊數減少了30倍。效果顯著的背後是陳士留在手遊智慧反外掛上研發的業務獨有的功能:第三代Unity3D函式級加密、可熱更U3D資源加密等。

對於為什麼要開發這些獨有的功能,陳士留說:“在做Unity3D的指令碼函式級加密之前,我們分析發現,市面上所有加密過的指令碼,在載入的時候一次就完全解密,存在爆破點。即在某個程式碼點上做鉤子,就可以把完整的解密後的指令碼拿到。”基於這個背景,易盾因此研發了邊執行邊解密,執行到哪個函式才解密哪個函式的方案,“這樣破解者就無法拿到完整解密後的指令碼。”陳士留稍微有點得意地笑著說。

Unity3D的資源是除了指令碼外,遊戲的另外一個核心要素,包含了遊戲場景,遊戲指令碼等內容。破解者如果拿到這些資源,可以實現資源修改型別的外掛;競品拿到資源,也會對遊戲本身不利……所以資源加密是件非常重要的事。“我們獨特的資源加密方案對開發者透明,效能消耗非常小,不需要任何接入性的工作,只要使用加固工具輸入遊戲包,輸出的遊戲包就會把遊戲內包含的資源全部作過加密,另外還支援對動態更新的資源進行加密。”
作弊數減少96.6%,投訴降低90%,這位“材料學”網易專家的“安全”生涯
易盾手遊智慧反外掛服務對手遊效能的影響非常小

效果好,穩定、效能消耗小、相容性強、接入簡單,這一切是怎麼做到的?陳士留指出,這主要是他們做了很多功課,為了打造一個匠心級的產品,在專案立項之前做了很多市場調研和競品分析。

經過充分周密的調研,他們發現,市場上的手遊保護產品存在兩種情況。一種是做應用保護轉過來的,這種型別的廠商基本就是把遊戲當成應用來保護,除了不具備對抗修改器、加速器等手遊保護的核心功能外,還存在應用加固孃胎裡帶出的毛病——相容性差,啟動時間長,執行消耗大等固有缺陷。另外一種是專門針對遊戲的保護,但是還在沿用做端遊的思路做手遊保護,接入和加固使用都非常麻煩,安全強度也比較一般。

“我們立項之初就決心解決這些行業的痛點,打造一個穩定、高效、安全、相容性好、接入簡單的手遊保護產品。”
作弊數減少96.6%,投訴降低90%,這位“材料學”網易專家的“安全”生涯
陳士留偶爾會在白板上寫寫畫畫,尋找一些靈感

因此,陳士留和他的團隊在保護的架構上下了很多功夫,拋棄了傳統遊戲上做Dex加固的陳舊思路,完全從Native層著手去做保護。由於Native層不涉及到虛擬機器,因此相容性非常好,可以做到系統升級,保護不需要針對相容做特殊處理,而且更重要的是執行效率也非常高。

由於這個方案實現的技術門檻很高,陳士留利用了自身積攢的多年技術儲備,專門為手遊做了定製的引擎So加固工具,很好地解決了相容性和執行效率的問題。

卓有成效的背後:好奇、求知

隨著專案進入“深水區”,他們不得不創新,去解決獨有功能和安全強度背後的難題,這也就意味著需要自己摸索和分析,踩過一個個坑,花費大量心力,才能達到一定的預期。

其次,手遊保護看上去是個開發專案,但是實際上是跟成千上萬的破解者去做技術競賽。做開發的同時,需要主動去了解和刺探最新的破解技術、手法,在速度和技術上跟破解者競爭。這也意味著“主刀”的人思維得開闊,不能悶頭做,否則你做得再好,也不能適應市場的動態,無法防禦最新的***。無形中,也要求負責人得具備破解技能,至少要達到資深破解者的水準,做到知己知彼才能做好保護。

非科班出身的陳士留是怎麼做到這些的?隨著深入的溝通,“知物遊學”欄目發現,是他的好奇心和始終維持的學習心態,讓他得已遊刃有餘。

學習心態,讓他哪怕不是從事專業挖漏洞的,也會對Web安全、二進位制安全、漏洞構造等領域有所涉獵。而好奇心,則讓他有一次對某個億級新聞APP的登入進行抓包分析時,發現居然可以重放實現登入,敏感地意識到這裡面很可能存在登入漏洞,於是他挖掘到這個億級APP客戶端的任意密碼登入漏洞,瞭解完畢後就報告給對方修復了。同樣是好奇心,也讓他無意中破解了某過億級App商用核心演算法。

除了沉澱經驗和做到資訊互通有無,陳士留維護著一個部落格和社群,整理自己所思思考,分享自己心得的同時,也能夠獲得別人的反饋,讓他再次獲得提升。

也正是這些一段段經歷,讓他得以勝任各種挑戰,同時也讓他在二進位制混淆保護方面有多個獨創×××成果。現階段比較流行的二進位制混淆方法要麼指令虛擬化穩定性不夠,要麼OLLVM效能開銷太大,而手遊保護需要穩定性和效能兩者都要兼顧。為了滿足需求,陳士留研究了多個原始碼層面的混淆方法,多個方法互相配合,在保證穩定性和開銷的同時,做到比OLLVM更好的混淆效果。“手遊保護上線至今,暫時還沒有加密演算法被破解的案例。”陳士留指出。

結束語

“手遊防護如下水道工程,展現出來的只是表面功能點。對於安全強度,各種複雜條件下的相容性問題,使用者短時間內感知不到。但這才是長久使用中影響遊戲平衡、玩家口碑以及對抗外掛與破解的關鍵點。”這是採訪中,陳士留隨口說的一句話。
作弊數減少96.6%,投訴降低90%,這位“材料學”網易專家的“安全”生涯

工作中的陳士留

使用者或許不知道產品背後的打磨和匠心,但他們卻懂得用腳去投票,用實際行動去支援。今天,陳士留研發的手遊智慧反外掛服務續費率非常高,還有很多客戶通過口碑傳播介紹而來……

對於未來,求真務實、腳踏實地陳士留說,反外掛實際上是一場永無止境的戰爭。未來,他還將結合人工智慧,帶領團隊不斷優化手遊智慧反外掛,對遊戲場景和遊戲型別進行細化,保護合法玩家的遊戲生態,保護好中小公司的利益。