技術詳析 | 通付盾為行程卡App保駕護航


中國產(chǎn)業(yè)經(jīng)濟信息網(wǎng)   時間:2021-04-20





  前言


  近期,由通付盾提供安全技術保障服務的最新版“通信大數(shù)據(jù)行程卡App”已登錄各大應用商店,用戶搜索"通信行程卡"即可下載使用。


  “通信大數(shù)據(jù)行程卡App”(簡稱“行程卡”)是在工信部指導下,由中國信息通信研究院與中國電信、中國移動、中國聯(lián)通三大電信運營商共同推出的行程查詢服務,該服務于2020年2月13日面向公眾推出,用戶可免費查詢本人14天內的到訪地。上線僅一個多月累計查詢量已經(jīng)超過8.5億次。


  2020年2月13日起,三大運營商提供的短信查詢行程服務已覆蓋2億多用戶。


  2020年2月29日,短信查詢升級為掃碼查詢,并提供了統(tǒng)一的網(wǎng)頁查詢入口。


  2020年3月6日始,在“通信大數(shù)據(jù)行程卡”上上線了境外到訪地的查詢功能,可以對手機用戶前14天到訪的境外國家或者地區(qū)的信息進行查驗,可及時發(fā)現(xiàn)瞞報、漏報、不實申報行程信息的問題。


圖片1_副本.png

  圖 1-1 行程卡App


  通付盾憑借自身在移動安全領域與隱私保護領域研發(fā)服務實力,成為此次技術保障服務支撐方,為“行程卡”提高安全防護等級,防止代碼注入、動態(tài)調試、內存注入攻擊,讓應用免遭破解、二次打包、API攻擊、數(shù)據(jù)竊取等威脅,保護App及其資源的完整性及安全性。


  下文將分別從Android,iOS兩個平臺的App出發(fā),從代碼安全、攻防安全、API接口安全三個方面詳細描述此次保護方案的具體實施辦法及最終的保護效果。


  Android保護方案的具體辦法


  針對程序開發(fā)過程中可能產(chǎn)生的安全漏洞風險以及Android系統(tǒng)自身的安全缺陷,為行程卡安卓端設計了一套集合代碼安全、攻防安全、完整性安全、數(shù)據(jù)安全于一體的完整解決方案,使程序反逆向能力更強,安全性更高。


圖片2_副本.png

  圖2-1 Android解決方案功能示意圖


  1.代碼安全


  市場上針對Android反編譯工具很多,如IDA,dex2Jar,jd-gui等。通過反編譯后的程序代碼接近源代碼,具有極高易讀性,極易暴露程序的業(yè)務邏輯和處理方式,如服務器數(shù)據(jù)請求方式、行程結果顯示邏輯等。因此,對Android程序代碼進行加密保護至關重要。


  代碼保護采用了DEX加殼與VMP虛擬機技術混合的解決方案。可以有效的防止反編譯工具,內存dump等技術對代碼造成泄漏或篡改。


  1)技術原理


  Android主要使用Java進行代碼編寫,開發(fā)完成后,編譯器將Java代碼打包進安裝包中classes.dex文件中,有些程序業(yè)務較復雜,編譯時會生成多個dex文件。因此,代碼保護的首要目標就是Android安裝包中的dex文件。


  DEX加殼技術:基本原理是對原始的dex文件進行整體加密,隱藏dex文件源碼,修改程序入口。運行時通過Dalvik虛擬機動態(tài)加載執(zhí)行解密后的dex文件。具體流程如下:


圖片3_副本.png

  圖2-2 DEX加殼技術流程示意圖


  VMP保護技術:與傳統(tǒng)的加殼工具不同,不是簡單地對目標進行加密、壓縮。而是修改目標源碼,讓目標的部分指令在VMP創(chuàng)建的虛擬環(huán)境下運行。首先對原始字節(jié)碼進行加密處理,然后將函數(shù)(方法)替換為native屬性,轉到JNI層去執(zhí)行,最后在JNI層將字節(jié)碼解密,并解釋執(zhí)行。具體流程如下:


圖片4_副本.png

  圖2-3 VMP 虛擬機保護技術流程示意圖


  2)實現(xiàn)效果


  通過逆向工具查看經(jīng)過保護后的DEX文件反編譯效果,可見保護后的核心代碼得到了保護,無法查看具體函數(shù)方法,不易被逆向分析,重要的數(shù)據(jù)和業(yè)務邏輯不易被泄漏,達到了代碼保護的目的。


圖片5_副本.png

  圖2-4 代碼保護后效果演示圖


  2.攻防安全


  動態(tài)攻擊指攻擊者利用攻擊工具如調試工具、攔截器、注入工具等跟蹤攔截目標程序,進行代碼查看,業(yè)務邏輯分析,并對其操作數(shù)據(jù)進行竊取或篡改。比如:修改行程結果處理邏輯為永遠顯示綠色碼等。


  動態(tài)攻擊防護采用了反調試、防注入、防模擬器以及防界面劫持等多重交叉混合的解決方案。通過添加防護處理,可以有效保護用戶的敏感信息安全,防止攻擊者通過內存注入等方式竊取。


  1)技術原理


  反調試:通過雙向ptrace保護,阻止其他進程進行ptrace調試操作,同時采用輪詢的方式監(jiān)控重點函數(shù)方法,檢查其是否處于調試狀態(tài),最后監(jiān)聽進程狀態(tài)。


  防注入:動態(tài)注入一般使用如hijack工具,向指定進程中注入SO文件。防注入的保護方案通過對市場主流注入工具進行監(jiān)測,保護整個程序生命周期的進程安全,阻止動態(tài)注入攻擊。


  動態(tài)劫持:對相關檢測函數(shù)添加__attribute__(constructor)屬性,保證其在SO加載時優(yōu)先進行系統(tǒng)運行環(huán)境檢測,查看是否存在zjdroid、xposed、substrate等劫持工具。


  2)實現(xiàn)效果


  反調試:采用調試防護策略后的程序在檢測到處于調試狀態(tài)時會強制退出,阻止動態(tài)調試操作。


  防注入:采用注入防護策略后的程序在監(jiān)測到發(fā)生注入時,會進行加載攔截,讓注入無法掛載。


圖片6_副本.png

  圖2-5 保護后的注入效果演示圖


  防劫持:采用劫持防護策略后的程序在監(jiān)測到環(huán)境中存在劫持工具時,終止程序繼續(xù)運行或者彈窗提示運行風險。


  3.完整性驗證


  攻擊者通過逆向分析,對程序代碼、資源文件等進行添加或修改,再打包生成新的程序安裝包發(fā)布到市場中,即可實現(xiàn)應用釣魚。在應用中廣告SDK,或者通過插入惡意代碼竊取用戶的登錄賬號密碼、攔截短信驗證碼,甚至修改行程碼的顯示結果等。這些被二次打包發(fā)布的安裝包,對疫情防空會產(chǎn)生嚴重威脅。因此,需要對程序的完整性進行有效保護。


  應用完整性驗證保護方案主要從文件校驗、簽名證書校驗、配置文件加密入手。


  1)技術原理


  文件校驗:通過對程序安裝包中所有的文件做加密提取處理,再對提取的校驗數(shù)據(jù)及校驗代碼進行存儲保護,程序啟動時立即校驗所有文件,檢測是否發(fā)生篡改。


  簽名證書校驗:通過對程序安裝包中的證書信息進行加密處理,提取加密后的數(shù)據(jù)作為校驗標準,將校驗數(shù)據(jù)進行存儲保護,程序啟動時校驗當前簽名信息是否與校驗數(shù)據(jù)一致。


  配置文件加密:遍歷提取程序包中的XML配置文件,對文件做加密處理,并提取加密后的數(shù)據(jù)作為校驗標準。程序啟動后校驗當前的配置文件是否與校驗數(shù)據(jù)一致。


  2)實現(xiàn)效果


  APK具有完整性校驗,只要修改了其中的程序代碼、資源文件、配置文件,程序立即終止運行。


  4.小結


  通付盾的Android保護方案對程序的代碼安全,動態(tài)攻擊防護、程序完整性都起到了很好保護作用,大大增加程序逆向閱讀難度,有效阻止動態(tài)攻擊,保護App及其資源的完整性及安全性。


  iOS保護方案的具體辦法


  相對安卓系統(tǒng)而言,iOS系統(tǒng)的封閉性為其終端上的APP起到了很好的保護作用。但近年來iOS系統(tǒng)漏洞頻發(fā),iOS設備上的應用屢遭惡意攻擊;此外,安全開發(fā)管制缺失,安全編碼不規(guī)范,缺乏對應用運行環(huán)境、傳輸協(xié)議、加密機制等的安全防護,導致應用防護能力極弱。


  其次,iOS設備一旦被越獄后系統(tǒng)便失去了安全防護,設備安全性降低。運行在越獄設備上的iOS應用,非常容易遭受破解分析,同時,iOS越獄的漏洞很容易被惡意軟件利用,造成用戶信息泄露、惡意扣費、設備中毒等安全問題。


  為此,針對行程卡App iOS端的程序安全采用了集合代碼安全、動態(tài)防護以及完整性校驗于一體的App保護解決方案。


  1. 代碼安全


  iOS端行程卡的代碼保護方案采用的是iPA動態(tài)殼保護的模式。整體采用 iPA加固技術,對安裝包中的可執(zhí)行文件進行加殼保護。


  1)技術原理


  iPA動態(tài)殼保護:提取iPA文件中的可執(zhí)行文件、info.plist等資源文件,通過加密程序對可執(zhí)行文件鏈接殼代碼、Mach-O文件加密,對保護后的二進制文件進行重打包、重簽名后生成受保護IPA,受保護的IPA功能、性能等均不受影響。


圖片7_副本.png

  圖3-1 iPA動態(tài)殼保護技術流程示意圖


  代碼混淆:通過在程序代碼編譯階段通過進行指令替換、字符串加密等技術手段,增加代碼閱讀難度,極大提高程序執(zhí)行邏輯被逆向分析的難度,降低被破解的風險。除此以外,通過將程序代碼中的類名、方法名、屬性名、變量名等符號進行隱藏或混淆保護。從而使代碼安全性更高,能夠更好地對抗逆向分析。


  2)實現(xiàn)效果


  通過Hopper查看經(jīng)過代碼保護后的可執(zhí)行文件反編譯效果,可見反編譯后代碼段起到了混淆和加密,代碼可讀性差,達到了代碼保護的效果。


圖片8_副本.png

  圖3-2 保護后代碼反編譯效果圖


  2. 動態(tài)防護


  對于 iOS 應用而言,越獄環(huán)境的安全性相對較低,應用存在較大的被調試、篡改的風險。因此針對iOS的動態(tài)防護實現(xiàn)體現(xiàn)在程序安裝運行時,可對運行環(huán)境進行安全檢測查看是否處于越獄環(huán)境,在程序運行時實時監(jiān)測運行環(huán)境是否遭受逆向攻擊,全周期保證應用安全。


  1)技術原理


  截屏/錄屏檢測(anti- Screen capture):程序運行時,動態(tài)監(jiān)測應用是否正在執(zhí)行截屏操作,檢測到程序正在截屏/錄屏操作,啟動防護機制,程序告警。


  反調試(anti-Debug): 程序運行時,實時檢測ptrace狀態(tài)防止被調試工具如debugserver、lldb等掛載,當檢測到程序被調試時,啟動防護機制,防止調試工具掛載,處于調試狀態(tài)時程序退出運行。


  反鉤子(anti-Hook): 程序運行時,動態(tài)監(jiān)測應用是否正在被 Hook,檢測到程序被 Hook,啟動防護機制,程序退出運行。


  反注入(anti-Inject): 程序運行時,實時動態(tài)檢測應用的動態(tài)庫加載情況,一旦發(fā)現(xiàn)有新的動態(tài)庫注入程序退出運行。其次,動態(tài)監(jiān)測應用是否正在被第三方工具進行注入操作,檢測到程序被注入,啟動防護機制,程序退出運行。


  反篡改(anti-Tamper): 程序運行時,動態(tài)監(jiān)測應用進程,防止被篡改工具掛載調試篡改。


  2)實現(xiàn)效果


  當檢測到程序處于動態(tài)攻擊狀態(tài)時,啟動防護機制,終止程序運行。


圖片9_副本.png

  圖3-3 保護后調試效果圖(掛載攔截)


  3. 完整性校驗


  iOS端的應用完整性驗證保護方案主要從資源文件校驗、簽名證書校驗、可執(zhí)行文件完整性著手。


  1)技術原理


  資源文件校驗:通過對程序安裝包中所有的資源文件做加密提取處理,再對提取的校驗數(shù)據(jù)進行安全存儲保護,程序啟動時立即校驗所有資源文件,檢測是否發(fā)生篡改。


  簽名證書校驗:通過對程序安裝包中的證書信息作為校驗數(shù)據(jù)進行提取并安全存儲,程序啟動時校驗當前簽名信息是否與校驗數(shù)據(jù)一致。


  可執(zhí)行文件完整性校驗:通過對程序安裝包中的可執(zhí)行文件的數(shù)據(jù)段做加密處理,程序啟動時立即校驗程序的數(shù)據(jù)段是否發(fā)生篡改。


  2)實現(xiàn)效果


  當檢測到程序處于動態(tài)攻擊狀態(tài)時,啟動防護機制,終止程序運行。


  4. 小結


  通付盾的iOS保護方案對程序的代碼安全,動態(tài)攻擊防護、程序完整性都達到了很好保護作用,對常用的逆向工具、動態(tài)攻擊工具都起到了很好的攔截阻斷作用,應用安全性得到很大提高。同時采用iPA加固技術使整個保護過程更靈活、兼容性更強、具有更高的代碼安全性。


  0x04 API接口安全保護方案的具體辦法


  移動App的背后是支撐其運行的后臺服務,App與后臺服務通過API接口進行數(shù)據(jù)交換。在移動App安全設計中,API接口安全設計是重中之中,API接口安全的好壞,直接關系整個系統(tǒng)及用戶數(shù)據(jù)的安全。經(jīng)常會看見一些移動App的后臺API接口被非法利用,身份驗證信息和敏感數(shù)據(jù)在傳輸過程中被不法分子截獲,對用戶的信息安全造成嚴重威脅。甚至可以利用API接口漏洞攻擊篡改系統(tǒng)數(shù)據(jù),造成嚴重損失。對于API接口安全,我們也向“行程卡”App提供了以下幾種安全設計建議,保障了API接口安全。


  1)動態(tài)Token授權認證,防止未授權用戶獲取數(shù)據(jù)及完善身份認證;


  2)時間戳超時機制,可有效防止DOS攻擊;


  3)數(shù)據(jù)簽名機制,防止傳輸?shù)臄?shù)據(jù)被篡改及完善身份認證;


  4)拒絕重復調用,防止接口被重放攻擊、防止被惡意采集;


  5)采用HTTPS通信協(xié)議及有效證書驗證,防止數(shù)據(jù)明文傳輸及中間人攻擊。


  結語


  通付盾加固解決方案經(jīng)歷了長期技術積累和持續(xù)創(chuàng)新過程,采用多種專利技術,并首次將VMP虛擬機保護技術運用到App加固領域,DEX加殼與VMP保護技術相結合的混合加固模式,多種技術交叉融合,縱深防護,達到合規(guī)性要求,保護客戶的財產(chǎn)、隱私、業(yè)務、數(shù)據(jù)、交易等安全;在iOS加固中,通付盾國內首創(chuàng)IPA動態(tài)殼加固,無需提供應用的源代碼,可以有效避免源碼泄露問題。


  此次“行程卡”App的加固技術方案,同時采用了通付盾安全專家提出的DEX加殼與VMP保護技術結合的混合加固模式,以及國內首創(chuàng)的IPA動態(tài)殼加固,確保了Android和iOS兩種生態(tài)運行環(huán)境下的數(shù)據(jù)安全。


  在API接口安全保護方面,憑借多年的安全開發(fā)、滲透測試、軟件源代碼審計經(jīng)驗,為“行程卡”App提供了有效的API接口保護設計方案。


  近日,通付盾安全專家們針對Android加固方案第一時間完成了Android 12 DP2版本兼容性適配,密切關注著行業(yè)最前沿技術動態(tài),確保通付盾加固服務時刻保持完美的兼容效果,不忘初心,嚴格保證客戶服務質量。



  轉自:通付盾

  【版權及免責聲明】凡本網(wǎng)所屬版權作品,轉載時須獲得授權并注明來源“中國產(chǎn)業(yè)經(jīng)濟信息網(wǎng)”,違者本網(wǎng)將保留追究其相關法律責任的權力。凡轉載文章及企業(yè)宣傳資訊,僅代表作者個人觀點,不代表本網(wǎng)觀點和立場。版權事宜請聯(lián)系:010-65363056。

延伸閱讀

熱點視頻

“十三五”期間我國高技術制造業(yè)增長迅猛 “十三五”期間我國高技術制造業(yè)增長迅猛

熱點新聞

熱點輿情

?

版權所有:中國產(chǎn)業(yè)經(jīng)濟信息網(wǎng)京ICP備11041399號-2京公網(wǎng)安備11010502035964