移動APP外掛攻防實戰

前言

近日,某某龍在2018年的一次會議上發表了一個演講,4000多人聚集在現場玩“跳一跳”遊戲。隨着他們指尖的翻飛跳躍,大屏幕上的現場排名也在不斷刷新……而在全場的驚歎聲中,最高分出現了,967分!而這位最高分得主,就是某某龍本人。

在隨後的演講中,某某龍也表示,這款DAU在一點幾個億的小遊戲,網上居然出現了非常多的外掛。筆者以“跳一跳”爲關鍵詞在全球最大的同性社交平臺github上進行搜索,居然有650個搜索結果。這些外掛,大多數都是以圖像識別爲基礎的遊戲輔助程序。利用這些外掛,玩家們可以很輕鬆的跳到幾千分,甚至上萬分。


同樣,在2018年1月23日舉辦的阿里遊戲雲“棋牌X安全”技術分享沙龍的活動現場,阿里巴巴集團安全部專家陵軒也對遊戲從業者深惡痛絕的外掛問題進行了詳細的解讀,並針對反外掛提出了阿里的最新解決方案。



阿里遊戲雲“棋牌X安全”技術分享沙龍活動現場

 

陵軒在活動中提到,作爲一款社交平臺上的小遊戲,如果外掛氾濫,一方面,看到朋友使用外掛打出了一個很高的分數,那麼朋友之間的信任可能會出現問題;另一方面,外掛行爲會破壞整個遊戲的規則,並且讓規則立即失效。基於這兩方面,最終導致的就是正常玩家的流失,遊戲面臨衰敗和死亡。

比如,一個正常玩家,在不斷練習之後,每局的分數應該是會緩慢增長的,如果某個時間段突然增加了幾千分甚至幾萬分,這本身就已經很不正常了。


外掛的種類

根據外掛的實現原理,以及對遊戲正常業務造成的危害程度,我們對外掛大致可以分爲如下三大類:輔助型、修改內存型、破解型



輔助型

這類外掛對遊戲和業務的影響相對比較小,本身不會修改和破解遊戲的代碼,主要是模擬用戶點擊,自動化的做一些重複性的操作。比較常見的是圖像識別和按鍵精靈等工具。通過圖像識別技術,可以判斷人物當前的位置、火車票餘量等;然後通過按鍵精靈模擬用戶點擊,達到人物在遊戲中的走動、自動購買火車票等操作。

最火的案例莫過於現在的直播答題場景了。


外掛程序通過OCR識別出題目的文字,然後通過搜索引擎檢索答案,最後自動化點擊題目的答案,做到全自動化答題,並且準確率還很高。



修改內存型

修改內存型外掛依託於官方遊戲APP,屬於動態修改遊戲業務邏輯,這類外掛往往會向遊戲進程中注入第三方惡意模塊,然後通過修改代碼的邏輯、修改內存中的數值等手段達到修改遊戲地理位置、人物奔跑加速、破解收費道具、修改遊戲幣數量和增加血量等。此類外掛會極大的破壞遊戲的平衡性。

如下是“XX酷跑”的遊戲外掛,屬於典型的內存修改類外掛程序。此外掛程序會往遊戲進程中注入第三方模塊,然後通過修改遊戲的代碼邏輯和內存中的數值,可以隨意改變遊戲的飛行距離、獎勵的倍數、奔跑的速度等參數。



破解型

破解型遊戲外掛對於遊戲廠商來說影響是最大的,不僅會破壞遊戲的平衡性,更會加速遊戲業務走向衰亡。

破解型外掛又分爲兩類:二次打包和脫機外掛。

APP的二次打包是基於對官方APP的修改,屬於靜態修改代碼邏輯。黑客們通過逆向分析遊戲邏輯,修改遊戲賴以生存的核心功能,比如去除遊戲中的廣告代碼,破解單機遊戲的收費邏輯,插入盜號代碼等。

如下是《XX那三國》遊戲的二次打包版本,其中被插入了“一鍵跳過”副本、遊戲對話速度可調至3倍速等外掛功能。


脫機外掛的出現對遊戲廠商來說是毀滅性的打擊,這意味着遊戲客戶端和服務器端通信的邏輯都已經被黑客逆向的非常清楚了,所有的遊戲操作都可以脫離遊戲客戶端而通過腳本來實現。

脫機外掛的危害也顯而易見的,首先,原本屬於遊戲客戶端的廣告、道具等收入沒有了;其次,腳本操作比正常的客戶端操作要快很多很多,極大的破壞了遊戲的平衡性。當年PC時代最爲火爆的《傳奇》遊戲,很大程度上也是沒落於脫機外掛的出現。

如下是《狼人殺》遊戲的批量註冊小號工具,黑客通過逆向遊戲註冊邏輯和算法,編寫PC端自動化註冊工具,完全脫離遊戲客戶端APP,屬於典型的脫機外掛。



外掛難防

作爲一名遊戲行業反外掛領域多年的從業者,陵軒也在現場對外掛的存在原因,防控難度及外掛的分類等進行了詳細的分析。


阿里巴巴集團安全部專家 陵軒

 

遊戲外掛問題,不僅僅只在微信“跳一跳”小遊戲中出現,它更是一個手遊行業普世存在的、並且不能被忽視的嚴重問題。那麼,這些外掛究竟是如何產生的呢?

首先,相較PC時代的C++遊戲客戶端,現在的手機遊戲基本上都是以腳本語言爲主。由於腳本語言的特性,遊戲的開發成本降低了,迭代週期縮短了,但也同樣面臨容易被反編譯、篡改破解等問題。

第二,以往在PC時代被廣泛使用的遊戲驅動保護,到了移動時代由於手機的限制,也同樣不能用了。這就導致了黑客可以有Root、越獄等超級權限,而遊戲則只有普通的用戶權限,這種攻防對抗層面的權限不對等,也是移動端外掛難防的一個很重要原因。這就好比我是一個拿菜刀的屠夫面對一羣拿AK47的恐怖分子一個道理,根本沒法打。

第三,出於對手機網絡的不穩定,以及流量使用等原因的考慮,很多手機遊戲的計算邏輯和過程都在客戶端進行,這就導致了黑客可以很容易的篡改客戶端進行遊戲作弊,比如,直接跳過某些遊戲關卡、BOSS一擊斃命等。

第四,手遊時代對外掛工作室來說,作弊成本低。一臺主流PC機可以虛擬出幾十個模擬器;作弊工具產業鏈成熟,包括IP代理商,卡商貓池、打碼平臺、羣控軟件等。

第五,遊戲開發同學通常缺乏安全對抗經驗,無法及時發現和阻斷外掛的使用和傳播。


誰在使用外掛?

隨着移動互聯網的興起,同時,手遊行業製作外掛的成本低,導致更多的外掛製作者從PC紛紛向移動端轉變,這就導致了手遊外掛的泛濫。那麼,究竟是哪些人會使用外掛呢?

第一類:虛榮心作祟的玩家。在遊戲中,玩家們可以沙場馳騁、江湖俠情,在現實中失意的人們可以再遊戲中得到慰藉,使得心靈愉悅。那麼,如何才能花更少的錢,得到更大的心靈慰藉呢?唯有藉助外掛的力量,可以在戰場上殺更多的人,比分比別人高。

第二類:打金工作室。對於打金工作室來說,遊戲幣的產量是直接關係到變現的。使用外掛可以自動化的執行遊戲中的一些重複性勞動,比如固定的主線任務、跑商、押鏢等。而且,在外掛的幫助下,可以24小時全程無人值守,大大提供遊戲幣的產出量。

第三類:競爭對手。通過對官方遊戲逆向分析,競爭公司可以很容易的通過換膚等手段,製造一款玩法相近、界面類似的新遊戲;另外,競爭對手還會使用外掛批量註冊小號,來破壞遊戲的正常運營。


通用的檢測和防禦機制

遊戲外掛的實現方式多樣,危害也都各不相同,那麼遊戲廠商又該如何對不同種類的外掛做針對性的防護呢?

第一步:客戶端APP的防護。客戶端在外發之後,最終到了正常玩家手裏還是黑產手裏,這塊是不可控的,那麼如何提高黑客分析客戶端代碼的成本,保護端上代碼的安全是頭等大事。我們可以對遊戲腳本進行加密處理,對於解密遊戲腳本的核心代碼邏輯進行代碼混淆、加固,反外掛從提升攻防門檻開始,一個保護機制相對完善的客戶端,雖然不能杜絕外掛,但能在一定程度上將大部分躍躍欲試的黑客阻擋在外。

第二步:通信鏈路的防護。脫機外掛的產生,很大程度上是因爲客戶端APP和服務器端通信的簽名算法、加密算法被破解了。採用常規加解密算法的變形算法,以及保護好核心祕鑰至關重要,採用白盒加密不失爲一種好的對策。

第三步:業務層及時防控。雲端業務層通過實時的各種IP庫、手機庫的查詢、人機模型算法以及離線的數據分析等。從服務器端及時發現和防控已知和未知的作弊方案,爲業務及時止損。被黑客攻擊並不可怕,可怕的是不知道被攻擊,允許黑客一小段時間的作惡,換取絕大多數用戶的安全,是業界通用的做法,快速發現問題並解決問題纔是治理外掛的核心。

 

物美價廉的解決方案

基於前面的介紹,手機遊戲外掛的製作難度和成本極低,外掛的製作者又都是專業的黑產從業人員;另一方面,對於遊戲廠商來說,普通遊戲開發者一般都更關注遊戲功能邏輯的實現和開發,本身缺乏安全技術和遊戲攻防對抗經驗。因此,遊戲廠商想要及時的發現並阻斷外掛作惡相對來說比較困難,從投入產出比來看,成本也相對偏高。

定製的解決方案研發和維護成本過高,但通用的又擔心效果不好。是不是能有一個折中的方案呢?答案是肯定的。其實,攻防對抗是一個兩軍對壘人和人、人和機器博弈的過程,一下子把門檻提升太多是不合時宜的,就像一下子改一個大版本着急大不一樣,這個是得不償失的。利用前面提到的分層而治,就能取得一個比較好的事半功倍的效果。

阿里雲遊戲安全解決方案,從雲(雲端業務層)、管(通信鏈路層)、端(遊戲客戶端APP)全鏈路防檢測並防控遊戲外掛。經過多年雙11的攻防演練,阿里巴巴業務風控體系具備及時發現黑產的“眼睛”,爲遊戲廠商及時止損。

阿里遊戲雲“棋牌X安全”技術分享沙龍還在繼續,更多會議內容及資訊內容敬請關注阿里聚安全公衆號或官方博客。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章