深入剖析外掛種類 提出最新檢測與防御機制
近日,某某龍在2018年的一次會議上發(fā)表了一個演講,4000多人聚集在現(xiàn)場玩“跳一跳”游戲。隨著他們指尖的翻飛跳躍,大屏幕上的現(xiàn)場排名也在不斷刷新……而在全場的驚嘆聲中,最高分出現(xiàn)了,967分!而這位最高分得主,就是某某龍本人。
在隨后的演講中,某某龍也表示,這款DAU在一點幾個億的小游戲,網(wǎng)上居然出現(xiàn)了非常多的外掛。筆者以“跳一跳”為關(guān)鍵詞在全球最大的同性社交平臺github上進行搜索,居然有650個搜索結(jié)果。這些外掛,大多數(shù)都是以圖像識別為基礎(chǔ)的游戲輔助程序。利用這些外掛,玩家們可以很輕松的跳到幾千分,甚至上萬分。
同樣,在2018年1月23日舉辦的阿里游戲云“棋牌X安全”技術(shù)分享沙龍的活動現(xiàn)場,阿里巴巴集團安全部專家陵軒也對游戲從業(yè)者深惡痛絕的外掛問題進行了詳細的解讀,并針對反外掛提出了阿里的最新解決方案。
阿里游戲云“棋牌X安全”技術(shù)分享沙龍活動現(xiàn)場
陵軒在活動中提到,作為一款社交平臺上的小游戲,如果外掛泛濫,一方面,看到朋友使用外掛打出了一個很高的分數(shù),那么朋友之間的信任可能會出現(xiàn)問題;另一方面,外掛行為會破壞整個游戲的規(guī)則,并且讓規(guī)則立即失效?;谶@兩方面,最終導(dǎo)致的就是正常玩家的流失,游戲面臨衰敗和死亡。
比如,一個正常玩家,在不斷練習(xí)之后,每局的分數(shù)應(yīng)該是會緩慢增長的,如果某個時間段突然增加了幾千分甚至幾萬分,這本身就已經(jīng)很不正常了。
外掛的種類
根據(jù)外掛的實現(xiàn)原理,以及對游戲正常業(yè)務(wù)造成的危害程度,我們對外掛大致可以分為如下三大類:輔助型、修改內(nèi)存型、破解型。
輔助型
這類外掛對游戲和業(yè)務(wù)的影響相對比較小,本身不會修改和破解游戲的代碼,主要是模擬用戶點擊,自動化的做一些重復(fù)性的操作。比較常見的是圖像識別和按鍵精靈等工具。通過圖像識別技術(shù),可以判斷人物當(dāng)前的位置、火車票余量等;然后通過按鍵精靈模擬用戶點擊,達到人物在游戲中的走動、自動購買火車票等操作。
最火的案例莫過于現(xiàn)在的直播答題場景了。
外掛程序通過OCR識別出題目的文字,然后通過搜索引擎檢索答案,最后自動化點擊題目的答案,做到全自動化答題,并且準確率還很高。
修改內(nèi)存型
修改內(nèi)存型外掛依托于官方游戲APP,屬于動態(tài)修改游戲業(yè)務(wù)邏輯,這類外掛往往會向游戲進程中注入第三方惡意模塊,然后通過修改代碼的邏輯、修改內(nèi)存中的數(shù)值等手段達到修改游戲地理位置、人物奔跑加速、破解收費道具、修改游戲幣數(shù)量和增加血量等。此類外掛會極大的破壞游戲的平衡性。
如下是“XX酷跑”的游戲外掛,屬于典型的內(nèi)存修改類外掛程序。此外掛程序會往游戲進程中注入第三方模塊,然后通過修改游戲的代碼邏輯和內(nèi)存中的數(shù)值,可以隨意改變游戲的飛行距離、獎勵的倍數(shù)、奔跑的速度等參數(shù)。
破解型
破解型游戲外掛對于游戲廠商來說影響是最大的,不僅會破壞游戲的平衡性,更會加速游戲業(yè)務(wù)走向衰亡。
破解型外掛又分為兩類:二次打包和脫機外掛。
APP的二次打包是基于對官方APP的修改,屬于靜態(tài)修改代碼邏輯。黑客們通過逆向分析游戲邏輯,修改游戲賴以生存的核心功能,比如去除游戲中的廣告代碼,破解單機游戲的收費邏輯,插入盜號代碼等。
如下是《XX那三國》游戲的二次打包版本,其中被插入了“一鍵跳過”副本、游戲?qū)υ捤俣瓤烧{(diào)至3倍速等外掛功能。
脫機外掛的出現(xiàn)對游戲廠商來說是毀滅性的打擊,這意味著游戲客戶端和服務(wù)器端通信的邏輯都已經(jīng)被黑客逆向的非常清楚了,所有的游戲操作都可以脫離游戲客戶端而通過腳本來實現(xiàn)。
脫機外掛的危害也顯而易見的,首先,原本屬于游戲客戶端的廣告、道具等收入沒有了;其次,腳本操作比正常的客戶端操作要快很多很多,極大的破壞了游戲的平衡性。當(dāng)年P(guān)C時代最為火爆的《傳奇》游戲,很大程度上也是沒落于脫機外掛的出現(xiàn)。
如下是《狼人殺》游戲的批量注冊小號工具,黑客通過逆向游戲注冊邏輯和算法,編寫PC端自動化注冊工具,完全脫離游戲客戶端APP,屬于典型的脫機外掛。
外掛難防
作為一名游戲行業(yè)反外掛領(lǐng)域多年的從業(yè)者,陵軒也在現(xiàn)場對外掛的存在原因,防控難度及外掛的分類等進行了詳細的分析。
阿里巴巴集團安全部專家 陵軒
游戲外掛問題,不僅僅只在微信“跳一跳”小游戲中出現(xiàn),它更是一個手游行業(yè)普世存在的、并且不能被忽視的嚴重問題。那么,這些外掛究竟是如何產(chǎn)生的呢?
首先,相較PC時代的C++游戲客戶端,現(xiàn)在的手機游戲基本上都是以腳本語言為主。由于腳本語言的特性,游戲的開發(fā)成本降低了,迭代周期縮短了,但也同樣面臨容易被反編譯、篡改破解等問題。
第二,以往在PC時代被廣泛使用的游戲驅(qū)動保護,到了移動時代由于手機的限制,也同樣不能用了。這就導(dǎo)致了黑客可以有Root、越獄等超級權(quán)限,而游戲則只有普通的用戶權(quán)限,這種攻防對抗層面的權(quán)限不對等,也是移動端外掛難防的一個很重要原因。這就好比我是一個拿菜刀的屠夫面對一群拿AK47的恐怖分子一個道理,根本沒法打。
第三,出于對手機網(wǎng)絡(luò)的不穩(wěn)定,以及流量使用等原因的考慮,很多手機游戲的計算邏輯和過程都在客戶端進行,這就導(dǎo)致了黑客可以很容易的篡改客戶端進行游戲作弊,比如,直接跳過某些游戲關(guān)卡、BOSS一擊斃命等。
第四,手游時代對外掛工作室來說,作弊成本低。一臺主流PC機可以虛擬出幾十個模擬器;作弊工具產(chǎn)業(yè)鏈成熟,包括IP代理商,卡商貓池、打碼平臺、群控軟件等。
第五,游戲開發(fā)同學(xué)通常缺乏安全對抗經(jīng)驗,無法及時發(fā)現(xiàn)和阻斷外掛的使用和傳播。
誰在使用外掛?
隨著移動互聯(lián)網(wǎng)的興起,同時,手游行業(yè)制作外掛的成本低,導(dǎo)致更多的外掛制作者從PC紛紛向移動端轉(zhuǎn)變,這就導(dǎo)致了手游外掛的泛濫。那么,究竟是哪些人會使用外掛呢?
第一類:虛榮心作祟的玩家。在游戲中,玩家們可以沙場馳騁、江湖俠情,在現(xiàn)實中失意的人們可以再游戲中得到慰藉,使得心靈愉悅。那么,如何才能花更少的錢,得到更大的心靈慰藉呢?唯有借助外掛的力量,可以在戰(zhàn)場上殺更多的人,比分比別人高。
第二類:打金工作室。對于打金工作室來說,游戲幣的產(chǎn)量是直接關(guān)系到變現(xiàn)的。使用外掛可以自動化的執(zhí)行游戲中的一些重復(fù)性勞動,比如固定的主線任務(wù)、跑商、押鏢等。而且,在外掛的幫助下,可以24小時全程無人值守,大大提供游戲幣的產(chǎn)出量。
第三類:競爭對手。通過對官方游戲逆向分析,競爭公司可以很容易的通過換膚等手段,制造一款玩法相近、界面類似的新游戲;另外,競爭對手還會使用外掛批量注冊小號,來破壞游戲的正常運營。
通用的檢測和防御機制
游戲外掛的實現(xiàn)方式多樣,危害也都各不相同,那么游戲廠商又該如何對不同種類的外掛做針對性的防護呢?
第一步:客戶端APP的防護??蛻舳嗽谕獍l(fā)之后,最終到了正常玩家手里還是黑產(chǎn)手里,這塊是不可控的,那么如何提高黑客分析客戶端代碼的成本,保護端上代碼的安全是頭等大事。我們可以對游戲腳本進行加密處理,對于解密游戲腳本的核心代碼邏輯進行代碼混淆、加固,反外掛從提升攻防門檻開始,一個保護機制相對完善的客戶端,雖然不能杜絕外掛,但能在一定程度上將大部分躍躍欲試的黑客阻擋在外。
第二步:通信鏈路的防護。脫機外掛的產(chǎn)生,很大程度上是因為客戶端APP和服務(wù)器端通信的簽名算法、加密算法被破解了。采用常規(guī)加解密算法的變形算法,以及保護好核心秘鑰至關(guān)重要,采用白盒加密不失為一種好的對策。
第三步:業(yè)務(wù)層及時防控。云端業(yè)務(wù)層通過實時的各種IP庫、手機庫的查詢、人機模型算法以及離線的數(shù)據(jù)分析等。從服務(wù)器端及時發(fā)現(xiàn)和防控已知和未知的作弊方案,為業(yè)務(wù)及時止損。被黑客攻擊并不可怕,可怕的是不知道被攻擊,允許黑客一小段時間的作惡,換取絕大多數(shù)用戶的安全,是業(yè)界通用的做法,快速發(fā)現(xiàn)問題并解決問題才是治理外掛的核心。
物美價廉的解決方案
基于前面的介紹,手機游戲外掛的制作難度和成本極低,外掛的制作者又都是專業(yè)的黑產(chǎn)從業(yè)人員;另一方面,對于游戲廠商來說,普通游戲開發(fā)者一般都更關(guān)注游戲功能邏輯的實現(xiàn)和開發(fā),本身缺乏安全技術(shù)和游戲攻防對抗經(jīng)驗。因此,游戲廠商想要及時的發(fā)現(xiàn)并阻斷外掛作惡相對來說比較困難,從投入產(chǎn)出比來看,成本也相對偏高。
定制的解決方案研發(fā)和維護成本過高,但通用的又擔(dān)心效果不好。是不是能有一個折中的方案呢?答案是肯定的。其實,攻防對抗是一個兩軍對壘人和人、人和機器博弈的過程,一下子把門檻提升太多是不合時宜的,就像一下子改一個大版本著急大不一樣,這個是得不償失的。利用前面提到的分層而治,就能取得一個比較好的事半功倍的效果。
阿里云游戲安全解決方案,從云(云端業(yè)務(wù)層)、管(通信鏈路層)、端(游戲客戶端APP)全鏈路防檢測并防控游戲外掛。經(jīng)過多年雙11的攻防演練,阿里巴巴業(yè)務(wù)風(fēng)控體系具備及時發(fā)現(xiàn)黑產(chǎn)的“眼睛”,為游戲廠商及時止損。
阿里游戲云“棋牌X安全”技術(shù)分享沙龍還在繼續(xù),更多會議內(nèi)容及相關(guān)資訊敬請關(guān)注阿里云游戲公眾號。