百度上搜索“App破解”,會出現1210萬條結果。從App破解的入門知識到逆向工具下載,從破解技術視頻到全圖文教程。
隨著黑客技術的普及化平民化,App——智能手機的應用軟件,這個承載我們移動數字工作和生活的重要工具,不僅是黑客眼中的肥肉,也獲得更多網友另類關注。
百度搜索“App破解”找到1210萬條結果
一旦App被破解,不僅使用者的照片、身份證、手機號、聯系住址、郵箱和支付密碼等敏感信息會泄露,還可能感染手機的操作系統,進而導致手機被入侵篡改,乃至成為攻擊者操控的“僵尸網絡”中的一部分。
對于廣大移動開發者來說,如何保障自己App的安全、保護App使用者的安全呢?在12月26日今日頭條的一個技術沙龍上,頂象技術移動安全負責人梁家輝詳細闡述了App存在風險漏洞、App安全技術及新一代App安全防護方案。
頂象技術移動安全負責人梁家輝在今日頭條的技術沙龍上講解App安全保護
App為什么會被破解入侵呢?
安卓App的開發除了部分功能采用C/C++編碼外,其余主要都是采用Java進行編碼開發功能。Java源碼最終編譯成smali字符碼,以classes.dex保存在App的APK中。
Java是一種解釋性語言,功能強大,易用性強。初學者能輕松地學習Java,并編寫簡單的應用程序。而且Java的基本類庫(JDK)是開源的,這就使很多Java開發的應用被逆向破解的門檻很低。目前市面上有大量的逆向破解工具,例如:Dex2Jar、JEB、JD-GUI等等。只要懂代碼編程,利用這些工具就可以破解市面上那些防御薄弱、存在大量安全漏洞的App。這就很好理解為什么會有如此多人去搜索“App破解”了。
之前曾有媒體報道,有網絡黑產專門從各種渠道找到App的apk,然后將apk文件逆向破解,再植入廣告、病毒代碼,最后重新打包投入公開市場,當不明真相的網友將帶病毒廣告的App下載后,會帶來巨大經濟損失。
App的安全保護技術
為App做安全加固無疑是最便捷、有效的一種防護方式了,通過加固可以對App進行安全性強化,一定程度上達到防破解和防止被二次打包的效果。
App加固主要對源碼的保護,混淆、常量字符串加密、指令虛機轉換;對匯編插花(防IDA F5)、控制流扁平化等;抹除二進制ELF信息、ELF殼、自定義Linker等;對安卓的可執行文件加殼,抽取可執行文件指定等。此外,還可以對js、html、圖片、自定義資源進行保護,對anti-debug等環境進行檢查等。
App安全防護技術已經歷了動態加載、不落地加載、指令抽離、指令轉換/VMP、虛機源碼保護等五個階段。每一階段的安全技術都是一次升級。這五代技術有什么特點呢?詳細參見下表 。
五代App安全保護技術比較
新一代App安全技術:虛機源碼保護
作為下一代App安全加固和保護技術—頂象虛機源碼保護,是用虛機技術保護所有的代碼,包括Java,Kotlin,C/C++,Objective-C,Swift等多種代碼,具備極高的兼容性,能夠給與App更高安全級別的保護。
頂象虛機源碼保護首先把待保護的核心代碼編譯成二進制文件,然后生成獨特的執行環境和只能在該環境下執行的運行程序。生成的虛機源碼保護擁有獨特的可變指令集,極大的提高了指令跟蹤、逆向分析的難度,并提供了反調試能力和監控能力。
同時,虛機源碼保護可以通過自身的探針感知到環境的變化,實時探測到外界對本環境的調試、注入等非正常執行流程變化,將調試動作引入程序陷阱,并發出警報,進而進行實時更新,進一步提高安全強度。
由于虛機源碼保護在App內部隔離出獨立的執行環境,因此被保護的核心代碼的運行程序在此獨立的執行環境里運行。即便App本身被破解,這部分核心代碼仍然不可見。
虛機源碼保護不僅適用于安卓和iOS,Linux、RTOS、STM32等嵌入式系統也支持,因此不僅可以防護App,服務器、物聯網固件等均能防護。