無論是 Android app 還是 Jar 應用,代碼一旦分發出去,都會以某種形式處於不可信環境中,難免被有心人分析**。隱藏在代碼中的祕密,無論是私有算法,或是私有協議,或者是加解密祕鑰,都可能被攻擊者**出來,然後侵犯原作者的商業利益或知識產權。所以應用被逆向**是商業風險源頭之一。
根據工信部的數據顯示,截止2019年,中國移動應用數量已經達到 450萬個,其中游戲類、生活服務類、電子商務類 App 排名前三。
細分市場,我們再看下金融行業,根據信通院的數據,在2019年,針對國內 22777 款金融行業 App進行觀測發現,僅 17.08% 金融行業 App 完成加固,而超過 80% 金融行業 App 在應用市場「裸奔」,未進行任何安全加固。通過金融行業這一個細分行業來看全行業,其他行業也有類似的問題。
我們再看監管政策:
對於金融行業——中國人民銀行下發的了移動金融客戶端應用軟件安全管理規範,明確規範了移動 App 的安全加固要求。
對於教育行業——教育部下發的《關於引導規範教育移動互聯網應用有序健康發展的意見》以及《高等院校管理服務類教育移動互聯網應用專項治理行動方案》,發文明確提出教育App應當經過安全評估後方可上線,並及時通過安全加固修復安全隱患。
通過金融、教育行業的監管要求以及國家對於移動互聯網的越來越重視大的背景,後續其他行業也會可能會陸續出臺相關的安全政策要求。
下面介紹下阿里內部移動安全防護策略升級迭代的過程。
在一代和二代的加固方案上,主要針對 APK 的加殼保護,對 dex 做隱藏,同時加密 dex,在運行時動態加載加密的 dex並做解殼操作。加殼加固的優勢是不會增加應用的體積,同時dex被隱藏,可以對抗dex的靜態分析。
隨着攻擊手段的不斷升級,阿里移動安全加固進行了全新能力的升級。目前已發展到了第三代加固:Java字節碼轉換爲 Native二進制碼。
阿里內部加固的原則和目標秉承着既要充分提高自身安全能力,增加對手的**難度和攻擊成本,也要儘量降低業務方的接入成本,還要兼顧運行效率與體積。
應對的主要風險點:
Java 字節碼因爲格式和指令限制,安全保護能力是有上限的。但是,native 二進制碼相對於 Java 字節碼**難度大大提高。於是我們將字節碼轉換爲 native 二進制碼,代碼邏輯轉移到 so 裏面,原來是 Java 函數調用,現在變成了 JNI 調用。攻擊者的 Java 逆向相關技能直接失效,被逼去逆向 native 二進制,而這個難度遠遠高於逆向字節碼。
結合着阿里內部移動應用安全加固能力的升級,我們在 mPaaS 中對外正式上線移動應用安全加固能力。
針對市面上移動應用普遍存在的**、篡改、盜版、釣魚欺詐、內存調試、數據竊取等各類安全風險,mPaaS移動安全加固爲 App 提供穩定、簡單、有效的安全防護,提升 App 整體安全水平,力保 App 不被**和攻擊。
在應對 Android 常見的攻擊手段,比如 反編譯、二次打包、動態調試等的同時,我們也注重性能和兼容性。
通過前面的介紹,相信大家對於 mPaaS 移動應用加固有了一個初步的認識,下面總結下 mPaaS 移動應用安全加固的優勢。
我們從反編譯保護、防篡改保護、防調試保護等多個維度上做了安全性保障,針對 dex文件、so文件以及各種 hook框架都做了相應的安全策略,能力清單如下:
與此同時,mPaaS移動安全加固還完美兼容 mPaaS 的熱修復能力,通過熱修復能力,可以快速修復線上版本問題,不需要發版,保障業務的連續性,大家可以到 mPaaS 控制檯體驗熱修復的能力。
移動應用安全加固,接入簡單,只需 8 步即刻完成。而且在雙 11 來臨之際,mPaaS 移動安全加固將正式在阿里雲上線,歡迎大家接入試用。
關注公衆號「mPaaS」,回覆「安全加固」,獲取完整 PPT 內容