在近期釋出的《2018年上半年中國移動網際網路行業發展分析報告》中提出,在上半年中國移動網際網路關鍵字TOP1是“安全”,安全已成為中國移動網際網路企業存亡生命線。作為平臺,首先要保證輸出內容的安全,其次要保證使用者的人身財產安全及資料安全。安全,為立“身”之本。
在過去二十多年中,伴隨著移動網際網路的發展,遊戲行業經歷很大的變化——不僅僅是從技術上的革新,遊戲的實現能力更是有了飛躍的發展,但是在移動遊戲逐漸成為大眾休閒娛樂的主流方式的背後,其安全正受到網路黑產的巨大威脅。
移動遊戲發展迅猛,安全問題如影隨形
據相關資料顯示,截止到2018年3季度,全球移動網際網路使用者已超過30億,歐美、東亞等區域滲透率近80%。從3季度基於移動網際網路應用月新增佔比分佈資料看,遊戲行業佔比位居第二,且主流手機遊戲應用MAU同比增長趨勢明顯。
但是,隨著硬體與開發技術的成熟相繼發展成型,遊戲行業安全問題也隨之出現,外掛工具、系統功能漏洞、伺服器當機漏洞等問題頻發,也將大幅影響遊戲內平衡,使使用者體驗下降。可以說,無論是移動應用還是遊戲,發生安全問題就如同開啟“潘多拉魔盒”,不但可能危害使用者切身利益,也同樣會造成企業的損失。與此同時還會發生企業信譽危機,品牌口碑大幅下滑等一系列問題。
在騰訊安全雲鼎實驗室於近日釋出《2018年遊戲行業安全監測報告及五大攻擊趨勢》的資料顯示,目前遊戲行業安全威脅主要包括賬號類攻擊、DDoS攻擊、外掛和其他四大類。
1. 帳號類攻擊
針對遊戲行業的帳號類攻擊,月均在數億次/月,且持續平穩,具有長期持續性攻擊的特徵。
(1)攻擊型別分佈
在針對帳號的攻擊中,大部分的帳號掃描其實也是為了撞庫攻擊做準備,少部分是基於歷史密碼的登入嘗試。因此,在帳號安全側,撞庫相關攻擊實際佔據了80%以上的份額。
2. DDoS 攻擊
從2018年情況統計中,遊戲行業仍為DDoS 攻擊主要目標,其中移動 Web 遊戲被攻擊數量明顯增加。從被攻擊遊戲分類看,端遊與手遊依然佔比最大。
3. 外掛
2018年主要外掛集中在手遊的吃雞類遊戲上,其中外掛熱度排名前四的吃雞類手遊佔據了超過60%的關注度,加上 PC 端的射擊類遊戲,射擊類外掛已然佔據了70%以上。
4. 其他
其他攻擊還包括主要集中在 App Store 平臺的代充值類問題,比如:外幣匯率差、黑卡和盜刷信用卡等。
移動遊戲行業發展,需與遊戲安全比翼齊飛
移動遊戲安全問題逐漸氾濫已經引起了政府監管部門的關注,政府監管部門已明顯放慢了版號審批速度,實施網路遊戲總量調控,同時也採取了一系列相應措施:
2017年12月,中共中央宣傳部、中央網信辦、工業和資訊化部、教育部、公安部、文化部、國家工商總局、國家新聞出版廣電總局聯合印發《關於嚴格規範網路遊戲市場管理的意見》(以下簡稱《意見》),部署對網路遊戲違法違規行為和不良內容進行集中整治。《意見》中明確提出:“網路遊戲系統安全、使用者資訊保安問題較為突出,個人資訊洩露、賬號非法交易現象較為普遍。同時,管理體制機制與市場發展還不完全匹配,相關法律法規還不夠健全,方式手段還不夠完善,糾錯懲戒不足以形成震懾。”
2018年2月5日下午,浦東網安支隊召開浦東地區遊戲行業網路安全工作會,會議就目前網遊行業發展所導致的文化內容缺失等突出問題為背景,向浦東地區的114家網路遊戲企業下發《網路遊戲企業基礎排摸調研表》,並開展法律法規教育,要求各單位核實並上報本單位的資訊保安問題。
與此同時,全國很多監管部門也在加緊行動,全面排查,加緊規範整治。在2018年12月21日舉行的中國遊戲產業年會上,中宣部出版局有關人士表示:“首批送審遊戲已經完成稽核,正在抓緊核發版號”,說明暫停已久的移動遊戲審批重新啟動,移動遊戲行業又將迎來新的春天。而未來,移動遊戲的健康發展更需要安全系統的有力加持。
移動遊戲主要安全攻擊分析
移動遊戲可分為單機遊戲和網路遊戲兩大類,基於不同類別遊戲特點進行分析:
1.單機遊戲
這類遊戲所有的資料基本都在本地,面臨的分析主要有內購破解,二次打包,遊戲修改器等威脅。因為資料基本都在本地,攻擊者可以修改本地資料達到一些非法的目的,比如:修改生命值,增加金錢,修改傷害值等。
還有一些抄襲者將遊戲徹底分析,或者重新二次程式碼,只修改遊戲裡面的原有包名,和遊戲人物角色ui和名稱,可以快速開發一款同類產品,減少開發週期。還有就是直接盜用,修改支付連結,轉換為自己的,並將付費額度修改為比正版更低的價格。
2.網路遊戲
這類遊戲主要的資料是和伺服器進行互動,有些戰鬥資料計算可能在本地或者是伺服器,應對本地計算的,建議放到伺服器計算,這樣安全性更高。主要的威脅有:外掛,私服,第三方抄襲等。
外掛:可以透過分析遊戲的核心資料,分析遊戲的內部程式碼達到一些非法操作,比如離線掛可以自動註冊遊戲,進行遊戲通關操作、刷金幣、刷等級等;還有透過外掛可以加速遊戲執行,縮短遊戲打鬥。
私服:這種情況是透過破解遊戲和伺服器的通訊協議自建伺服器,將遊戲網路地址給為自建伺服器地址。
第三方抄襲:破解遊戲後,分析遊戲的數值資料、關卡配置等一系列的資料資訊。若為網路資料則透過抓包等手段進行分析,開發者只需要修改ui等手段即可以快速出一款同類遊戲,減少了策劃等工作。
造成安全問題的技術實現分析:
1.內購破解:
透過暴力破解方式,繞過/破解支付校驗程式碼,支付框架、sdk破解,造成收入嚴重受損。
2.修改記憶體
透過記憶體注入、動態除錯、記憶體dump等操作惡意篡改遊戲內容,造成遊戲平衡性下降。
3.二次打包
篡改遊戲程式碼、更換遊戲logo、皮膚、包名,篡改後的遊戲,造成扣費、流量損耗、彈廣告等等,造成公司名義受損。
4.遊戲修改器
遊戲修改器對幾乎所有的遊戲都會造成嚴重破壞,修改遊戲屬性值,嚴重破壞遊戲平衡,付費環節變得沒有任何作用,收入變低,使用者興趣低,使用者量損失。
5.核心技術、資料資訊丟失
透過破解方式,獲取遊戲核心程式碼,對公司自主產權造成嚴重損害,遊戲資料資訊丟失、玩家個人資訊資料洩露。
移動遊戲安全解決方案解析
1.Java程式碼vmp加密
對dex檔案進行native指令化轉化,並且以native方式還原到安卓記憶體中,即使使用dump手段dump出當前部分程式碼,也是經過native處理過的程式碼,不會還原成APP原始碼。
2.動態除錯保護
(1)防動態注入
防注入保護,能防止APP執行時透過注入的方式獲取APP隱私資料、使用hook等方式劫持APP的正常執行流程等。當加固後的APP檢測到注入時,APP會自動退出執行。
(2)防動態除錯
反除錯機制能夠拒絕除錯工具的附加操作,阻止偵錯程式對移動應用除錯分析其業務邏輯程式碼,一旦被加固的程式檢測到有如gdb等除錯操作將自動退出執行。
(3)防記憶體dump
防記憶體dump保護,能有效阻止gdb dump等操作,同時因為程式碼採用函式體分離方式和native化保護,程式碼都是以單個函式還原到記憶體中,而記憶體中的程式碼也是經過native處理,及時dump出當前程式碼片段,也是經過native方式處理後的程式碼,不會還原成原始碼。
3.防二次打包
對簽名做完整性校驗保護,一旦更改簽名檔案,程式將不會再次執行。
4.So原始碼混淆
對SO檔案做加密和自定義載入處理,除此之外還會對SO檔案中字串加密和程式碼混淆處理,層層防止攻擊者提取SO檔案和對其二進位制程式碼做反編譯和反彙編處理。
對Objective-C、C、C++編譯後的Native程式碼進行程式碼混淆處理,被混淆過後的程式碼中存在多餘程式碼、怪癖語法、冗餘邏輯判斷,冗餘函式呼叫等難以閱讀和理解的程式碼,結合字串加密和反除錯機制等功能,讓攻擊者無法反編譯,從而有效的保護原始碼安全。
5.程式碼虛擬化保護
採用基於LLVM編譯器中間層實現的虛擬化編譯器,可透過虛擬CPU直譯器以及虛擬IR指令,將原始CPU指令進行加密轉換處理為只能由虛擬直譯器解釋執行的虛擬指令,能夠完全隱藏函式程式碼邏輯,以及函式及變數之間的依賴關係。
6.其他安全建議
iOS安全建議,為了防止在Android端無法分析出協議,但是可以透過iOS端分析的情況發生,建議iOS端也做安全加密操作,iOS端原始碼混淆功能與so檔案原始碼混淆功能相同,字串加密、程式碼結構邏輯混淆、指令替換、控制流平坦化,虛假控制流等。
例項解構
幾維安全透過長期研究開發,形成了專有技術KiwiVM虛擬化保護方案,實現CPU指令虛擬化,對手遊的核心程式碼進行安全編譯、生成受保護的安全模組,從而避免因破解造成的安全風險。
以幾維安全為某移動遊戲企業提供的安全加固案例為例進行解構:
1、基於公司現狀進行安全風險分析,梳理出該公司的安全加固需求:
(1)手遊基於Unity3d引擎開發,核心DLL檔案存在被逆向破解的風險;
(2)不具備正版校驗機制,偽冒、盜版手遊影響正版手遊的正常運營;
(3)遊戲修改器、離線掛破壞遊戲的公平性,付費使用者逐漸流失。
2、結合該公司的特點,擬定端到端的整體安全防護方案:
3.以整體安全體系架構為基礎,根據需求進行單產品或產品組合部署
如:在該案例中提供《KiwiVM虛擬機器》和《Unity3D手遊加密》方案,保護企業核心程式碼,保障手遊正常的運營與推廣。
(1)提供KiwiVM虛擬化服務
KiwiVM是基於Clang編譯器擴充套件實現的VM虛擬機器編譯器, 在編譯時直接對指定的函式[程式碼]實施虛擬化處理。其加密過程不可逆,攻擊者無法還原始碼,分析核心業務邏輯。可幫助中大型企業在通訊、支付、演算法、核心技術等模組進行深度加密,避免因逆向破解問題造成的經濟損失。
(2)Unity3D手遊加密服務
Unity3D手遊加固服務是在APP安全加固的基礎之上,針對Unity3D手遊,擴充套件了函式級[或整體級]的DLL檔案加密功能,避免DLL檔案被 .NET Reflector 等破解工具提取C#原始碼。與DEX加密、防二次打包、記憶體保護、反除錯、防系統加速掛等功能配合形成一套完整的Unity3D手遊加密方案。
登入移動安全管理平臺即可使用。DLL函式級加密為企業版,其演算法有幾十種可供選擇,同時對這些加密演算法都有高強度的加密保護,攻擊者無法透過Dump記憶體資料來竊取C#原始碼。
結語
移動遊戲安全系統價值在於維護公平的遊戲環境、保護玩家財產、提高使用者體驗感。千錘百煉,鍛造移動遊戲安全防護黃金鎧甲,為企業樹立可信品牌,使使用者安心馳騁在手遊疆場,助力遊戲行業在移動網際網路大發展浪潮中更蓬勃的發展。