熱搜詞

m6米樂(lè)app官網(wǎng)登錄-技術(shù)詳析 | 通付盾為行程卡App保駕護(hù)航~

來(lái)源:網(wǎng)絡(luò)?2021-04-20
技術(shù)詳析 | 通付盾為行程卡App保駕護(hù)航~

前言

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

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

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

2020年2月29日,短信查詢升級(jí)為掃碼查詢,并提供了統(tǒng)一的網(wǎng)頁(yè)查詢?nèi)肟凇?/p>

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

圖 1-1 行程卡App

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

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

Android保護(hù)方案的具體辦法

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

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

1、代碼安全

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

代碼保護(hù)采用了DEX加殼與VMP虛擬機(jī)技術(shù)混合的解決方案??梢杂行У姆乐狗淳幾g工具,內(nèi)存dump等技術(shù)對(duì)代碼造成泄漏或篡改。

1)技術(shù)原理

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

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

圖2-2 DEX加殼技術(shù)流程示意圖

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

圖2-3 VMP 虛擬機(jī)保護(hù)技術(shù)流程示意圖

2)實(shí)現(xiàn)效果

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

圖2-4 代碼保護(hù)后效果演示圖

2、攻防安全

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

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

1)技術(shù)原理

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

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

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

2)實(shí)現(xiàn)效果

反調(diào)試:采用調(diào)試防護(hù)策略后的程序在檢測(cè)到處于調(diào)試狀態(tài)時(shí)會(huì)強(qiáng)制退出,阻止動(dòng)態(tài)調(diào)試操作。

防注入:采用注入防護(hù)策略后的程序在監(jiān)測(cè)到發(fā)生注入時(shí),會(huì)進(jìn)行加載攔截,讓注入無(wú)法掛載。

圖2-5 保護(hù)后的注入效果演示圖

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

3、完整性驗(yàn)證

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

應(yīng)用完整性驗(yàn)證保護(hù)方案主要從文件校驗(yàn)、簽名證書校驗(yàn)、配置文件加密入手。

1)技術(shù)原理

文件校驗(yàn) :通過(guò)對(duì)程序安裝包中所有的文件做加密提取處理,再對(duì)提取的校驗(yàn)數(shù)據(jù)及校驗(yàn)代碼進(jìn)行存儲(chǔ)保護(hù),程序啟動(dòng)時(shí)立即校驗(yàn)所有文件,檢測(cè)是否發(fā)生篡改。

簽名證書校驗(yàn) :通過(guò)對(duì)程序安裝包中的證書信息進(jìn)行加密處理,提取加密后的數(shù)據(jù)作為校驗(yàn)標(biāo)準(zhǔn),將校驗(yàn)數(shù)據(jù)進(jìn)行存儲(chǔ)保護(hù),程序啟動(dòng)時(shí)校驗(yàn)當(dāng)前簽名信息是否與校驗(yàn)數(shù)據(jù)一致。

配置文件加密 :遍歷提取程序包中的XML配置文件,對(duì)文件做加密處理,并提取加密后的數(shù)據(jù)作為校驗(yàn)標(biāo)準(zhǔn)。程序啟動(dòng)后校驗(yàn)當(dāng)前的配置文件是否與校驗(yàn)數(shù)據(jù)一致。

2)實(shí)現(xiàn)效果

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

4、小結(jié)

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

iOS保護(hù)方案的具體辦法

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

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

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

1.代碼安全

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

1)技術(shù)原理

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

圖3-1 iPA動(dòng)態(tài)殼保護(hù)技術(shù)流程示意圖

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

2)實(shí)現(xiàn)效果

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

圖3-2 保護(hù)后代碼反編譯效果圖

2. 動(dòng)態(tài)防護(hù)

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

1)技術(shù)原理

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

反調(diào)試 (anti-Debug): 程序運(yùn)行時(shí),實(shí)時(shí)檢測(cè)ptrace狀態(tài)防止被調(diào)試工具如debugserver、lldb等掛載,當(dāng)檢測(cè)到程序被調(diào)試時(shí),啟動(dòng)防護(hù)機(jī)制,防止調(diào)試工具掛載,處于調(diào)試狀態(tài)時(shí)程序退出運(yùn)行。

反鉤子 (anti-Hook): 程序運(yùn)行時(shí),動(dòng)態(tài)監(jiān)測(cè)應(yīng)用是否正在被 Hook,檢測(cè)到程序被 Hook,啟動(dòng)防護(hù)機(jī)制,程序退出運(yùn)行。

反注入 (anti-Inject): 程序運(yùn)行時(shí),實(shí)時(shí)動(dòng)態(tài)檢測(cè)應(yīng)用的動(dòng)態(tài)庫(kù)加載情況,一旦發(fā)現(xiàn)有新的動(dòng)態(tài)庫(kù)注入程序退出運(yùn)行。其次,動(dòng)態(tài)監(jiān)測(cè)應(yīng)用是否正在被第三方工具進(jìn)行注入操作,檢測(cè)到程序被注入,啟動(dòng)防護(hù)機(jī)制,程序退出運(yùn)行。反篡改 (anti-Tamper): 程序運(yùn)行時(shí),動(dòng)態(tài)監(jiān)測(cè)應(yīng)用進(jìn)程,防止被篡改工具掛載調(diào)試篡改。

2)實(shí)現(xiàn)效果

當(dāng)檢測(cè)到程序處于動(dòng)態(tài)攻擊狀態(tài)時(shí),啟動(dòng)防護(hù)機(jī)制,終止程序運(yùn)行。

圖3-3 保護(hù)后調(diào)試效果圖(掛載攔截)

3 . 完整性校驗(yàn)

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

1)技術(shù)原理

資源文件校驗(yàn) :通過(guò)對(duì)程序安裝包中所有的資源文件做加密提取處理,再對(duì)提取的校驗(yàn)數(shù)據(jù)進(jìn)行安全存儲(chǔ)保護(hù),程序啟動(dòng)時(shí)立即校驗(yàn)所有資源文件,檢測(cè)是否發(fā)生篡改。

簽名證書校驗(yàn) :通過(guò)對(duì)程序安裝包中的證書信息作為校驗(yàn)數(shù)據(jù)進(jìn)行提取并安全存儲(chǔ),程序啟動(dòng)時(shí)校驗(yàn)當(dāng)前簽名信息是否與校驗(yàn)數(shù)據(jù)一致。

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

2)實(shí)現(xiàn)效果

當(dāng)檢測(cè)到程序處于動(dòng)態(tài)攻擊狀態(tài)時(shí),啟動(dòng)防護(hù)機(jī)制,終止程序運(yùn)行。

4 . 小結(jié)

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

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

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

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

2)時(shí)間戳超時(shí)機(jī)制,可有效防止DOS攻擊;

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

4)拒絕重復(fù)調(diào)用,防止接口被重放攻擊、防止被惡意采集;

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

結(jié)語(yǔ)

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

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

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

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

[展開(kāi)全部↓]
關(guān)鍵字:
相關(guān)資訊
查看更多
熱門游戲
返回 回到頂部
x