999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于污點(diǎn)分析的移動(dòng)端深度學(xué)習(xí)模型泄露自動(dòng)分析方法

2025-09-02 00:00:00朱文天林璟鏘

關(guān)鍵詞:動(dòng)態(tài)分析;污點(diǎn)分析;深度學(xué)習(xí);Android應(yīng)用

中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2025)08-025-2437-09

doi:10.19734/j.issn.1001-3695.2024.10.0501

Automatic method to analyze deep-learning model leakage on mobile systems using taint analysis

Zhu Wentian,Lin Jingqiang? (SchoolofCyberScienceamp;Technology,UniversityofScienceamp;TechnologyofChina,Hefei230O27,China)

Abstract:Toanalyze dep-learning modelleakageonmobilesystems,existing methods require todynamicallyrun mobile applicationsand manually trigerdeep-learningfunctions,whichareunstableand needalotof manualparticipations,limiting the widespread useof such analysis methods.To automatically analyze more deep-learing models on mobile systems,this paper proposed an automatic method to analyze deep-learning modelleakage on mobiledevices using taint analysis.This method combined keyword matching and entropy evaluation to extract modelfiles inmobile applications,usedataint-analysis method basedonsimulated execution totrackthefunctionaddress of modeldecryption,andfinallcalledthedecryption functionto obtaintheplaintextmodel.Basedonthisdesign,thispaperimplementedanautomatedanalysis toolcaledModelDec.The analysis esults on mainstream APP stores show thatthe model leakage detectionrateand theanalysis speed are better than existing methods,which demonstrate the effectiveness of the proposed method.

Key words:dynamic analysis; taint analysis;deep learning model;Android applications

0 引言

隨著人工智能技術(shù)的飛速發(fā)展和廣泛應(yīng)用,深度學(xué)習(xí)算法正逐漸被集成到智能手機(jī)等移動(dòng)設(shè)備上。與云端部署深度學(xué)習(xí)服務(wù)相比,移動(dòng)端部署展現(xiàn)出不同的優(yōu)勢(shì)。首先,用戶的數(shù)據(jù)可以在移動(dòng)設(shè)備上直接進(jìn)行處理,不僅保護(hù)了用戶隱私,還降低了數(shù)據(jù)泄露的風(fēng)險(xiǎn)。其次,由于省去了數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)牟襟E,服務(wù)的響應(yīng)速度得到顯著提升,增強(qiáng)了應(yīng)用的穩(wěn)定性和可靠性。此外,移動(dòng)端部署的深度學(xué)習(xí)服務(wù)支持離線使用,這極大地?cái)U(kuò)展了應(yīng)用的使用場(chǎng)景,使得用戶即使在沒有網(wǎng)絡(luò)連接的極端情況下也能享受到人工智能服務(wù)。

然而,在移動(dòng)端部署深度學(xué)習(xí)服務(wù)需要將深度學(xué)習(xí)模型存儲(chǔ)在用戶設(shè)備上,這也帶來了新的安全挑戰(zhàn)。深度學(xué)習(xí)模型通常是模型所有者自主知識(shí)產(chǎn)權(quán)的核心部分,若缺乏充分的保護(hù)措施,則可能被盜竊或?yàn)E用。事實(shí)上,移動(dòng)端部署使得模型保護(hù)比云端部署更具挑戰(zhàn)性。因?yàn)槟P痛鎯?chǔ)在用戶設(shè)備上,而這些設(shè)備對(duì)于模型所有者而言是不可信的,可能掌握在攻擊者手上,會(huì)將模型泄露出去。具體而言,模型泄露會(huì)導(dǎo)致模型所有者在人力、數(shù)據(jù)采集、計(jì)算資源等方面的投資損失;其次,競(jìng)爭(zhēng)對(duì)手若獲取到這些專門訓(xùn)練的深度學(xué)習(xí)模型,將削弱模型所有者的市場(chǎng)競(jìng)爭(zhēng)力,包括但不限于產(chǎn)品優(yōu)勢(shì)和定價(jià)策略;此外,泄露的模型可能遭受惡意對(duì)抗攻擊,例如生成對(duì)抗樣本[1~4]或在模型中植入后門[5-7],導(dǎo)致深度學(xué)習(xí)服務(wù)產(chǎn)生錯(cuò)誤的輸出。這種攻擊行為可能觸發(fā)嚴(yán)重的安全故障[8,對(duì)系統(tǒng)可靠性和用戶信任造成不利影響。例如在金融行業(yè),深度學(xué)習(xí)模型被用于身份驗(yàn)證、欺詐檢測(cè)等場(chǎng)景,通過竊取和偽造身份驗(yàn)證模型,攻擊者可以非法訪問用戶賬戶,導(dǎo)致資金損失甚至法律糾紛。在教育領(lǐng)域,用于知識(shí)評(píng)測(cè)的深度學(xué)習(xí)模型的泄露不僅會(huì)導(dǎo)致教育機(jī)構(gòu)的知識(shí)產(chǎn)權(quán)受損,還可能影響考試公平性和教學(xué)質(zhì)量。此外,社交媒體中的推薦算法模型一旦泄露,可能被惡意操控以傳播虛假信息,影響公共輿論環(huán)境。因此,研究一種高效、自動(dòng)化分析移動(dòng)端深度學(xué)習(xí)模型泄露的技術(shù)方法,對(duì)于保護(hù)行業(yè)利益和用戶隱私具有重要意義。

為了防止移動(dòng)端深度學(xué)習(xí)模型泄露,模型供應(yīng)商采取了一系列保護(hù)措施,包括模型加密、模型混淆和基于硬件TEE(可信執(zhí)行環(huán)境,trustedexecutionenvironment)的保護(hù)。其中使用最為廣泛的是模型加密的保護(hù)方法[9,10],該方法應(yīng)用各種加密算法對(duì)模型內(nèi)容進(jìn)行保護(hù),將其以密文形式存儲(chǔ)于用戶設(shè)備上。在使用模型時(shí),先解密再加載至深度學(xué)習(xí)推理引擎中執(zhí)行。

針對(duì)模型加密保護(hù)方法的安全性,已有研究提出了相應(yīng)的模型泄露分析方法:借助程序插樁技術(shù),在運(yùn)行時(shí)的應(yīng)用程序內(nèi)存中搜索解密后的模型明文。然而,此方法的實(shí)施要求測(cè)試者在移動(dòng)設(shè)備上動(dòng)態(tài)運(yùn)行應(yīng)用程序;更重要的是,需要手動(dòng)點(diǎn)擊移動(dòng)設(shè)備或借助工具生成模擬點(diǎn)擊行為,以引導(dǎo)應(yīng)用程序解密模型。所以,此類方法存在著很大的不穩(wěn)定性、成功率較低,并且難以實(shí)現(xiàn)自動(dòng)化。

本文針對(duì)使用加密保護(hù)的移動(dòng)端深度學(xué)習(xí)模型,提出了一種基于污點(diǎn)分析的模型泄露自動(dòng)分析方法。該方法以安卓應(yīng)用程序包(Androidapplicationpackage,APK)作為輸人,在對(duì)APK解包后,使用關(guān)鍵詞匹配和文件熵值判定篩選出APK中經(jīng)過加密的深度學(xué)習(xí)模型;隨后,使用基于模擬執(zhí)行的污點(diǎn)分析方法追蹤模型密文在程序運(yùn)行時(shí)的數(shù)據(jù)流,得到模型解密函數(shù)的地址;最后對(duì)解密函數(shù)進(jìn)行參數(shù)補(bǔ)全和運(yùn)行時(shí)調(diào)用,從而解密模型的明文內(nèi)容。相比較于現(xiàn)有研究,本方法的優(yōu)勢(shì)在于不需要?jiǎng)討B(tài)運(yùn)行應(yīng)用程序和通過人機(jī)交互觸發(fā)模型解密的行為,這不僅使得分析更加自動(dòng)化,適合大規(guī)模分析應(yīng)用,還降低了漏報(bào)率,為移動(dòng)端深度學(xué)習(xí)模型提供了更為可靠的安全評(píng)估。

基于本文提出的自動(dòng)分析方法,實(shí)現(xiàn)了自動(dòng)化工具M(jìn)o-delDec,針對(duì)從不同應(yīng)用商店下載的共57363個(gè)APK進(jìn)行分析,提取出1119個(gè)APK和其中包含的3726個(gè)被識(shí)別為經(jīng)過加密保護(hù)的深度學(xué)習(xí)模型,并成功定位了其中312( 27.9% )個(gè)應(yīng)用程序中的模型解密函數(shù),解密得到628個(gè)模型文件的明文內(nèi)容。實(shí)驗(yàn)結(jié)果表明,ModeIDec能夠有效分析加密保護(hù)的移動(dòng)端深度學(xué)習(xí)模型,成功率高于已有相關(guān)研究工作。

本文的主要貢獻(xiàn)如下:

a)提出了一種基于污點(diǎn)分析的移動(dòng)端深度學(xué)習(xí)模型泄露分析方法,設(shè)計(jì)了專用于追蹤模型數(shù)據(jù)流的污點(diǎn)傳播規(guī)則。b)實(shí)現(xiàn)了一個(gè)自動(dòng)化分析工具M(jìn)odelDec,用于移動(dòng)端深度學(xué)習(xí)模型泄露的分析,并通過實(shí)驗(yàn)展示了工具的有效性。c)通過對(duì)實(shí)驗(yàn)結(jié)果的分析,給出了移動(dòng)端應(yīng)用市場(chǎng)采用加密手段保護(hù)深度學(xué)習(xí)模型的現(xiàn)狀,為保護(hù)移動(dòng)端深度學(xué)習(xí)模型保護(hù)提供了參考。

1背景知識(shí)

1.1 深度學(xué)習(xí)的移動(dòng)端應(yīng)用

最初,在移動(dòng)端使用深度學(xué)習(xí)功能主要由應(yīng)用程序向云服務(wù)器發(fā)送請(qǐng)求,在云端執(zhí)行深度學(xué)習(xí)推理,然后返回結(jié)果。這樣做的缺點(diǎn)是需要網(wǎng)絡(luò)連接和將用戶數(shù)據(jù)上傳到服務(wù)器。隨著移動(dòng)設(shè)備上硬件加速器的不斷發(fā)展以及針對(duì)移動(dòng)端應(yīng)用程序定制的深度學(xué)習(xí)框架的出現(xiàn),越來越多的深度學(xué)習(xí)功能被直接部署在移動(dòng)端。然而,隨著深度學(xué)習(xí)模型從云端轉(zhuǎn)移到了移動(dòng)端,模型所有者也面臨全新的安全挑戰(zhàn):如何保護(hù)在不可信的用戶設(shè)備上存儲(chǔ)和使用的深度學(xué)習(xí)模型。

移動(dòng)端深度學(xué)習(xí)模型通常需由應(yīng)用開發(fā)者在具有大量計(jì)算資源的服務(wù)器上完成訓(xùn)練。訓(xùn)練好的模型可以隨應(yīng)用程序安裝包一起提供給用戶,也可以在應(yīng)用程序安裝后單獨(dú)下載。深度學(xué)習(xí)模型推理在用戶設(shè)備上執(zhí)行,依賴于深度學(xué)習(xí)框架提供的推理引擎。目前有數(shù)十種流行的深度學(xué)習(xí)框架,例如Google的TensorFlow和TensorFlowLiteFacebook的PyTorch和Caffe2、Tencent的NCNN、Apple的CoreML等。不同的深度學(xué)習(xí)框架使用不同格式的模型文件,包括ProtoBuf(.pb、.pbtxt)、FlatBuffer(.tflite)、MessagePack(.model)、pickle(.pkl)、Thrift(.thrift)等。為節(jié)約開發(fā)成本和提升服務(wù)質(zhì)量,應(yīng)用開發(fā)者有時(shí)也會(huì)直接使用深度學(xué)習(xí)服務(wù)提供商出售的模型和相應(yīng)的軟件開發(fā)套件(software developmentkit,SDK)。開發(fā)者將 SDK 和模型都集成在應(yīng)用中,通過調(diào)用SDK的指定接口執(zhí)行深度學(xué)習(xí)模型推理。

應(yīng)用開發(fā)者和深度學(xué)習(xí)服務(wù)提供商為了保護(hù)存儲(chǔ)在用戶移動(dòng)設(shè)備上的模型文件,一般會(huì)采取模型加密、模型混淆或基于硬件TEE的保護(hù)。TEE是一個(gè)硬件獨(dú)立隔離的硬件執(zhí)行區(qū)域,用于存儲(chǔ)和處理敏感數(shù)據(jù)。然而,在TEE中存儲(chǔ)和使用深度學(xué)習(xí)模型面臨諸多限制:首先TEE內(nèi)部的運(yùn)行內(nèi)存極為有限,難以加載移動(dòng)端應(yīng)用程序中的所有深度學(xué)習(xí)模型;其次,運(yùn)行深度學(xué)習(xí)模型往往需要大量運(yùn)算相關(guān)的代碼庫(kù)支持,但是可信計(jì)算基(trustedcomputingbase,TCB)的規(guī)模限制了在TEE中添加更多的額外代碼庫(kù);此外,TEE內(nèi)部難以借助GPU等硬件加速器提高深度學(xué)習(xí)模型的推理效率。盡管已有研究針對(duì)以上限制提出了眾多改進(jìn)方案[11-17],但是這些方案在當(dāng)前現(xiàn)網(wǎng)的移動(dòng)端應(yīng)用市場(chǎng)上并未得到廣泛采納。實(shí)際使用TEE保護(hù)移動(dòng)端深度學(xué)習(xí)模型的案例有限,主要集中在移動(dòng)設(shè)備制造商開發(fā)的少量特定功能,如基于人臉識(shí)別的身份驗(yàn)證系統(tǒng)[18]

模型混淆旨在增加深度學(xué)習(xí)模型被攻擊者識(shí)別和解析的難度,即攻擊者必須掌握相應(yīng)的混淆規(guī)則。混淆規(guī)則主要分為文件混淆、圖混淆和算子混淆。文件混淆是指將機(jī)器學(xué)習(xí)模型轉(zhuǎn)換為其他格式的文件,例如二進(jìn)制文件、數(shù)據(jù)庫(kù)文件等[19-21],使得模型文件無法被解析;圖混淆是指對(duì)模型文件解析得到的網(wǎng)絡(luò)圖結(jié)構(gòu)的混淆,例如在圖結(jié)構(gòu)中添加冗余邊、圖節(jié)點(diǎn)名稱改為隨機(jī)字串、權(quán)重參數(shù)添加擾動(dòng)等;算子混淆是指對(duì)模型實(shí)際執(zhí)行過程的混淆,例如算子接口變換、算子實(shí)現(xiàn)變換等。然而,模型混淆的保護(hù)方法需要開發(fā)者自行設(shè)計(jì)混淆規(guī)則并開發(fā)適用于該規(guī)則的深度學(xué)習(xí)功能庫(kù),開發(fā)成本很高,而且這種保護(hù)措施在面對(duì)經(jīng)驗(yàn)豐富的攻擊者時(shí)較為脆弱。這些攻擊者可以運(yùn)用逆向工程和程序切片等技術(shù)對(duì)混淆后的模型進(jìn)行反混淆。

目前現(xiàn)網(wǎng)系統(tǒng)使用最多的是基于模型加密的保護(hù)方法,廣泛存在于各大移動(dòng)設(shè)備制造商開發(fā)的系統(tǒng)和功能庫(kù)中,例如三星的KNOX和Apple的CoreML等,在開源社區(qū)中也能看到模型加密的快速實(shí)現(xiàn)。加密的模型文件會(huì)以密文形式存儲(chǔ)在用戶設(shè)備上,并不能被直接使用。根據(jù)這一特點(diǎn),本文所討論的模型加密使用的加密函數(shù)被定義為不僅包含各種對(duì)稱密碼加密算法,還包括各種數(shù)據(jù)壓縮算法。因?yàn)榻?jīng)過這兩類算法處理的模型文件都無法直接作為深度學(xué)習(xí)推理引擎的輸入被執(zhí)行,只有執(zhí)行相應(yīng)的解密函數(shù)(或解壓函數(shù))、將其恢復(fù)成可識(shí)別的標(biāo)準(zhǔn)格式模型文件才能正常使用。并且,不同于通常密碼功能的加解密函數(shù),在移動(dòng)端深度學(xué)習(xí)模型保護(hù)中,解密函數(shù)和調(diào)用解密函數(shù)所需的密鑰參數(shù)都被包含在了原生庫(kù)內(nèi)、無須從外界獲取,解密函數(shù)的執(zhí)行條件和執(zhí)行過程與解壓函數(shù)一致。

1.2 污點(diǎn)分析

污點(diǎn)分析技術(shù)是一種追蹤和分析污點(diǎn)信息在程序中流動(dòng)的方法,廣泛應(yīng)用于漏洞檢測(cè)和隱私泄露檢測(cè)。該技術(shù)可分為靜態(tài)和動(dòng)態(tài)兩種分析方式。

靜態(tài)污點(diǎn)分析利用程序的抽象語法樹作為輸入,將污點(diǎn)傳播過程與類型分析相結(jié)合,在類型推斷和限定過程中完成污點(diǎn)數(shù)據(jù)的傳播,以識(shí)別程序中受用戶輸入影響的部分。其主要優(yōu)勢(shì)在于能夠考慮程序的所有可能執(zhí)行路徑,但受限于靜態(tài)分析無法獲取程序運(yùn)行時(shí)的額外信息,存在分析結(jié)果準(zhǔn)確性不足的問題。

動(dòng)態(tài)污點(diǎn)分析則在程序運(yùn)行時(shí)進(jìn)行,基于指令流對(duì)目標(biāo)程序的污點(diǎn)數(shù)據(jù)進(jìn)行信息流跟蹤,監(jiān)控系統(tǒng)的安全運(yùn)行狀態(tài)。動(dòng)態(tài)污點(diǎn)分析的本質(zhì)是追蹤信息流的傳播,此技術(shù)具備語言無關(guān)性,不需要源代碼即可對(duì)二進(jìn)制應(yīng)用程序進(jìn)行分析。動(dòng)態(tài)污點(diǎn)分析系統(tǒng)通常采用模擬執(zhí)行或二進(jìn)制插樁的方式,記錄和跟蹤污點(diǎn)數(shù)據(jù),由污點(diǎn)分析引擎根據(jù)檢測(cè)規(guī)則進(jìn)行分析并生成輸出結(jié)果。

下面解釋污點(diǎn)分析在隱私泄露檢測(cè)中的常見概念。程序中產(chǎn)生隱私數(shù)據(jù)的位置稱為污點(diǎn)源(source),隱私數(shù)據(jù)泄露的位置稱為泄露點(diǎn)(sink),兩者通常都是預(yù)先規(guī)定的函數(shù)接口。程序中產(chǎn)生的隱私數(shù)據(jù)通過賦值和計(jì)算等方式在變量之間不斷傳播,這些變量稱作污點(diǎn)變量(taintedvariables)。圖1是一個(gè)污點(diǎn)分析示意圖,程序中onCreate函數(shù)調(diào)用污點(diǎn)源函數(shù)get-pwnam讀取了/etc/passwd中的內(nèi)容,得到的隱私數(shù)據(jù)隨后通過污點(diǎn)變量pwd、bak ??x 和val的傳播到達(dá)了泄露點(diǎn)函數(shù)cout。整個(gè)污點(diǎn)傳播過程包含了指針取值、函數(shù)參數(shù)傳遞、獲取對(duì)象等多種操作,這些操作在實(shí)際的污點(diǎn)分析中都需要先抽象成一般性的污點(diǎn)傳播規(guī)則。

2 相關(guān)工作

移動(dòng)端深度學(xué)習(xí)模型泄露分析的研究最早由 Xu 等人[22]引入,他們開發(fā)了DLSniffer工具,用于識(shí)別應(yīng)用程序中可能泄露的模型文件。DLSniffer的工作流程包括下載和解包APK、通過文件名和內(nèi)容關(guān)鍵詞匹配提取潛在的深度學(xué)習(xí)模型文件,并嘗試使用相應(yīng)的深度學(xué)習(xí)框架加載這些文件。對(duì)于無法加載的模型文件,則人工分析其可能采用的保護(hù)措施。通過對(duì)谷歌應(yīng)用商店中16500個(gè)應(yīng)用程序進(jìn)行檢測(cè),DLSniffer成功提取了211個(gè)深度學(xué)習(xí)模型,其中有 39.2% 的模型被混淆,19.2% 被加密,而其余模型則直接以明文形式存儲(chǔ)在APK中。

繼 Xu 等人的研究工作之后, Sun 等人[23]開發(fā)了Model-Xray和ModelXtractor兩個(gè)工具。ModelXray使用與DLSniffer類似的方法,但是檢測(cè)了更大的應(yīng)用程序集合,覆蓋了三個(gè)流行應(yīng)用商店的應(yīng)用程序。ModelXtractor則首次實(shí)現(xiàn)了一種針對(duì)加密保護(hù)的移動(dòng)端模型泄露分析方法。該方法首先通過計(jì)算模型文件的熵值來判定該模型文件是否經(jīng)過加密保護(hù),并假設(shè)應(yīng)用在運(yùn)行過程中會(huì)將模型明文加載到內(nèi)存中,進(jìn)而利用插樁技術(shù)在程序運(yùn)行時(shí)搜索內(nèi)存中的深度學(xué)習(xí)模型。與Model-Xtractor類似,Deng等人[24]開發(fā)了AdvDroid,通過在各個(gè)深度學(xué)習(xí)推理引擎的關(guān)鍵函數(shù)處插樁來提取內(nèi)存中的模型明文。

以上兩種針對(duì)加密保護(hù)的移動(dòng)端模型泄露分析方法的共同問題是難以實(shí)現(xiàn)大規(guī)模自動(dòng)化的分析,因?yàn)檫\(yùn)行時(shí)內(nèi)存搜索的前提是正確觸發(fā)應(yīng)用程序解密并加載深度學(xué)習(xí)模型的行為。ModelXtractor對(duì)此并未提出自動(dòng)化解決方案,AdvDroid則嘗試使用程序切片技術(shù)來搜索與模型推理功能相關(guān)的應(yīng)用代碼,并構(gòu)建相關(guān)的操作序列,通過自動(dòng)化工具[25]模擬用戶操作以啟動(dòng)深度學(xué)習(xí)推理過程。但是,對(duì)于許多需要身份驗(yàn)證和用戶注冊(cè)才能正常使用的應(yīng)用程序,實(shí)驗(yàn)過程中仍然需要大量人工參與。

此外, Ren 等人[26]開發(fā)了DeMistify工具,一方面提出使用深度學(xué)習(xí)的方法來識(shí)別應(yīng)用程序是否使用了移動(dòng)端深度學(xué)習(xí)服務(wù),這可以作為模型泄露分析方法的補(bǔ)充。DeMistify將移動(dòng)應(yīng)用在應(yīng)用商店的產(chǎn)品描述和APK中的可識(shí)別字符串作為語料訓(xùn)練了一個(gè)二分類模型,在識(shí)別移動(dòng)端應(yīng)用程序是否使用了深度學(xué)習(xí)服務(wù)的任務(wù)上,相比ModelXray,DeMistify的檢測(cè)率提高了大約 10% ,結(jié)果正確率提升了大約 15% 。另一方面,De-Mistify在原本的深度學(xué)習(xí)應(yīng)用中調(diào)用與模型功能相關(guān)的代碼,實(shí)現(xiàn)了就地模型重用,所以不限制于特定的模型保護(hù)方法。但是該工作的局限性在于只能實(shí)現(xiàn)模型功能的重用,無法獲取模型的明文內(nèi)容,難以用于對(duì)抗攻擊的相關(guān)研究。

在移動(dòng)端深度學(xué)習(xí)模型泄露分析的研究基礎(chǔ)上,Huang等人首次研究了移動(dòng)端模型在對(duì)抗攻擊下的魯棒性。他們假設(shè)用于移動(dòng)端的機(jī)器學(xué)習(xí)模型文件是預(yù)訓(xùn)練模型微調(diào)得到的,基于這個(gè)假設(shè),該研究提取了移動(dòng)端應(yīng)用程序中明文存儲(chǔ)的模型文件,計(jì)算其與TensorFlowHub中公開的預(yù)訓(xùn)練模型之間的相似度,使用相似度最高的預(yù)訓(xùn)練模型作為對(duì)象生成對(duì)抗樣本,將對(duì)抗樣本作為移動(dòng)端應(yīng)用程序的輸人,觀察應(yīng)用程序是否會(huì)產(chǎn)生錯(cuò)誤的輸出。在實(shí)驗(yàn)部分,該研究選取了10個(gè)安卓應(yīng)用程序,使用上述方法成功攻擊了這些應(yīng)用中的機(jī)器學(xué)習(xí)模型,這些模型主要用于識(shí)別植物種類、識(shí)別演員、判斷交通狀況等圖像分類任務(wù)。

此后,出現(xiàn)了許多類似的使用對(duì)抗攻擊方法攻擊移動(dòng)端深度學(xué)習(xí)模型的研究。Hong等人[27]利用移動(dòng)端泄露的模型文件提高攻擊原始預(yù)訓(xùn)練模型的成功率。Huang等人[2]基于提取的模型和對(duì)應(yīng)的預(yù)訓(xùn)練模型,訓(xùn)練得到與移動(dòng)端模型高度相似的“影子”模型,并使用“影子”模型訓(xùn)練生成對(duì)抗樣本攻擊移動(dòng)端應(yīng)用程序。Deng等人[24]使用程序插樁技術(shù)提取出經(jīng)過一定安全保護(hù)的模型,測(cè)試了這些模型在對(duì)抗攻擊下的魯棒性,同時(shí)使用程序分析技術(shù)從應(yīng)用程序中提取與模型輸入數(shù)據(jù)預(yù)處理、數(shù)據(jù)類型、模型功能相關(guān)的信息,從而更好地生成對(duì)抗攻擊樣本,提高攻擊成功率。Zhou等人[3]開發(fā)了一個(gè)逆向工程框架,用于將設(shè)備上的深度學(xué)習(xí)模型轉(zhuǎn)換為可以反向傳播的版本,從而直接在原有模型上實(shí)施對(duì)抗攻擊。 Wu 等人[28]則首次實(shí)現(xiàn)了移動(dòng)端深度學(xué)習(xí)模型的自動(dòng)化對(duì)抗攻擊腳本生成方法,包括面向反向傳播的模型轉(zhuǎn)換和模型I/O代碼的提取和構(gòu)建。

這些以對(duì)抗攻擊為核心的研究都需要先收集大量的移動(dòng)端深度學(xué)習(xí)模型作為測(cè)試數(shù)據(jù),然而目前針對(duì)受保護(hù)移動(dòng)端模型的自動(dòng)化泄露分析研究進(jìn)展有限,所以使用的測(cè)試數(shù)據(jù)大多是在應(yīng)用程序中明文存儲(chǔ)的模型,無法全面覆蓋經(jīng)過加密保護(hù)的模型測(cè)試樣例。所以,本研究工作一方面可以更好地分析加密保護(hù)的移動(dòng)端深度學(xué)習(xí)模型的安全性,另一方面也可以使對(duì)抗攻擊的研究人員獲得更全面的模型數(shù)據(jù)。

3方法設(shè)計(jì)

3.1 方法概述

本文方法的整體工作流程如圖2所示,該流程由三個(gè)關(guān)鍵組件構(gòu)成。第一個(gè)組件負(fù)責(zé)模型密文的提取,該組件首先對(duì)輸入的APK進(jìn)行解包,隨后通過使用關(guān)鍵詞匹配技術(shù)結(jié)合文件熵值分析,識(shí)別并提取出APK中加密保護(hù)的深度學(xué)習(xí)模型和與模型解密相關(guān)的原生庫(kù)文件。第二個(gè)組件用于定位模型解密函數(shù),以原生庫(kù)文件作為分析對(duì)象,運(yùn)用基于污點(diǎn)分析的數(shù)據(jù)流追蹤技術(shù),獲取模型解密函數(shù)在原生庫(kù)中的地址。最后,在模型解密組件中,通過結(jié)合代碼反向切片和逆向分析技術(shù)獲取解密函數(shù)的調(diào)用參數(shù),并結(jié)合程序HOOK技術(shù)調(diào)用解密函數(shù)得到模型的明文內(nèi)容。

圖2模型泄露分析流程Fig.2Overview of model leakageanalysispipeline

?

3.1.1 威脅模型

本文假定攻擊者可以使用包含了深度學(xué)習(xí)模型的應(yīng)用程序(例如從各移動(dòng)端應(yīng)用市場(chǎng)下載),但是在使用過程中會(huì)有應(yīng)用開發(fā)者設(shè)置的諸多限制,例如實(shí)名身份驗(yàn)證和用戶注冊(cè)、模型輸入內(nèi)容限制、API調(diào)用次數(shù)限制、計(jì)時(shí)付費(fèi)等。因此,攻擊者旨在獲得設(shè)備上的明文深度學(xué)習(xí)模型,從而能夠無限制地使用。為了實(shí)現(xiàn)這一攻擊場(chǎng)景,本研究認(rèn)為攻擊者能夠從移動(dòng)應(yīng)用市場(chǎng)獲取目標(biāo)應(yīng)用程序,同時(shí)也有解包APK使用的工具、實(shí)現(xiàn)污點(diǎn)分析系統(tǒng)借助的外部依賴庫(kù)、部署竊取的模型需要的深度學(xué)習(xí)框架等一系列工具和代碼開源可用。

3.1.2 適用范圍

本文工作完成的自動(dòng)化工具面向安卓應(yīng)用程序中加密保護(hù)的深度學(xué)習(xí)模型,該工具通過追蹤和使用安卓原生庫(kù)中的模型解密函數(shù),實(shí)現(xiàn)了自動(dòng)化的深度學(xué)習(xí)模型泄露分析。雖然該工具原型暫不能用于其他移動(dòng)端平臺(tái)的應(yīng)用程序,但是在設(shè)計(jì)方法原理上本文成果依舊適用。

3.2 模型密文提取

模型密文提取的方法設(shè)計(jì)旨在實(shí)現(xiàn)兩個(gè)核心目標(biāo),一是識(shí)別APK中是否包含加密保護(hù)的深度學(xué)習(xí)模型;二是篩選出包含模型解密功能的安卓原生庫(kù)。圖3展示了模型密文提取的工作流程。

圖3模型密文提取工作流程Fig.3Model ciphertext extraction pipeline

?

方法的第一步需要提取出APK中所有可能的模型文件。參考DLSniffer和ModelXray中使用的關(guān)鍵詞匹配方法,本方法通過將APK解包后得到的原生庫(kù)中的可識(shí)別字符串與各個(gè)深度學(xué)習(xí)框架中的關(guān)鍵詞進(jìn)行匹配,判斷應(yīng)用程序是否使用了深度學(xué)習(xí)功能。如果確定使用了深度學(xué)習(xí)功能,方法將進(jìn)一步對(duì)APK資源文件夾下的文件進(jìn)行文件名匹配,以提取可能的模型文件,包括對(duì)文件后綴和文件名稱的匹配。表1列出了部分主流深度學(xué)習(xí)框架使用的模型文件后綴和該框架對(duì)應(yīng)的關(guān)鍵詞示例。

表1深度學(xué)習(xí)模型匹配關(guān)鍵詞

Tab.1Keywords of deep learning models

?

對(duì)于成功提取的模型文件,本方法通過計(jì)算文件熵值來判斷其是否經(jīng)過加密保護(hù)。無論是使用密碼學(xué)算法還是數(shù)據(jù)壓縮算法,都會(huì)使文件具有非常高的熵值。在確認(rèn)模型文件的加密狀態(tài)后,本方法將進(jìn)一步提取模型文件的特征信息,包括文件名及其內(nèi)容中的關(guān)鍵詞,從而篩選出包含這些特征信息的安卓原生庫(kù)。在接下來的解密函數(shù)定位組件中,本方法需要模型解密函數(shù)存在于包含特征信息的安卓原生庫(kù)或作為外部依賴被原生庫(kù)調(diào)用。最后,加密保護(hù)的模型文件和相應(yīng)的安卓原生庫(kù)作為模型密文提取環(huán)節(jié)的輸出,被傳遞至下一個(gè)組件。

3.3 解密函數(shù)定位

圖4給出了解密函數(shù)定位的完整工作流程,在上一步獲取所有加密保護(hù)的模型文件及其關(guān)聯(lián)的安卓原生庫(kù)之后,本方法會(huì)將原生庫(kù)中存儲(chǔ)有模型文件特征信息的內(nèi)存區(qū)域定義為污點(diǎn)源。從污點(diǎn)源出發(fā),本方法會(huì)依次追蹤模型文件打開、模型文件讀取和模型文件數(shù)據(jù)操作三個(gè)階段的污點(diǎn)傳播過程。每個(gè)階段中污點(diǎn)標(biāo)記都指示不同類型的數(shù)據(jù)內(nèi)容,并且每個(gè)階段也有不同的泄露點(diǎn),最后本方法會(huì)輸出成功定位的解密函數(shù)地址。

下面給出一個(gè)示例具體闡述該過程。

3.3.1污點(diǎn)分析方法

本方法將原生庫(kù)反匯編得到的匯編語句作為分析對(duì)象,追蹤程序運(yùn)行時(shí)寄存器和內(nèi)存數(shù)據(jù)中的污點(diǎn)傳播。如圖5所示,這里為了便于理解,圖中使用通過逆向工具反編譯出的 C++ 代碼展示污點(diǎn)分析方法流程,這些代碼來源于真實(shí)的分析樣例,代碼中的函數(shù)名、變量名和常量名都經(jīng)過模糊變換處理。

在污點(diǎn)分析的第一階段,污點(diǎn)源是模型文件的特征信息,本例中是序號(hào)1處所指的模型文件的名稱“model.secret”,本方法會(huì)給該字符串常量所在的內(nèi)存地址打上污點(diǎn)標(biāo)記。當(dāng)代碼運(yùn)行到第六行時(shí),污點(diǎn)字符串與文件路徑經(jīng)過字符串操作后被賦值給了變量filename,使得filename成為了另一個(gè)污點(diǎn)變量。在深度學(xué)習(xí)模型的加載過程中,這種字符串拼接操作非常常見,因?yàn)樵趯?shí)際應(yīng)用中,僅憑文件名無法定位到文件的具體位置,還需附加額外信息,如文件路徑、文件版本號(hào)等。因此,本方法需要在這一階段追蹤這類字符串操作函數(shù)中的污點(diǎn)傳播過程,直到帶有污點(diǎn)標(biāo)記的字符串變量成為文件打開函數(shù)的調(diào)用參數(shù)。在本例中,污點(diǎn)變量filename經(jīng)過圖中序號(hào)2和3的傳播后到達(dá)函數(shù)AAssetManager_open,這是一個(gè)用于打開文件的函數(shù),所有與之功能相同的函數(shù)組成了第一階段污點(diǎn)傳播的泄露點(diǎn)。

此后,污點(diǎn)分析進(jìn)入第二階段,這一階段的污點(diǎn)變量是文件打開函數(shù)的返回值——文件指針,泄露點(diǎn)則是所有用于讀取文件內(nèi)容的函數(shù)。在本例中,污點(diǎn)變量stream通過圖中序號(hào)4的傳播到達(dá)泄露點(diǎn)函數(shù)AAsset_read,由此進(jìn)入第三階段,并產(chǎn)生了新的污點(diǎn)變量buffer。

在上一個(gè)方法組件模型密文提取中,本方法同時(shí)使用了模型文件名和文件內(nèi)容中的關(guān)鍵詞來匹配模型解密原生庫(kù)。對(duì)于使用后者匹配得到的原生庫(kù),本方法可以直接獲得第三階段的污點(diǎn)變量,對(duì)應(yīng)于圖4中的序號(hào)0。這里需要分成兩種情況解釋。第一種情況是原生庫(kù)中使用關(guān)鍵詞驗(yàn)證讀取的模型密文的格式正確性,例如使用字符串比較函數(shù)檢驗(yàn)?zāi)P兔芪念^部是否和特征字符串匹配,那么字符串比較函數(shù)的另一個(gè)參數(shù)就是存放模型密文的數(shù)組,即本方法污點(diǎn)分析過程中第三階段的污點(diǎn)變量。第二種情況是關(guān)鍵詞匹配的是原生庫(kù)中存放的模型密文。這是一個(gè)常見現(xiàn)象,因?yàn)楫?dāng)應(yīng)用程序因?yàn)楦鞣N原因無法讀取資源文件夾下的模型文件時(shí),為了能在沒有網(wǎng)絡(luò)連接的情況下正常使用移動(dòng)端深度學(xué)習(xí)服務(wù),應(yīng)用開發(fā)者會(huì)在原生庫(kù)中嵌入備用的模型文件。因此在這種情況下,本方法也直接得到了第三階段的污點(diǎn)變量。

在第三階段,本方法將追蹤模型密文的數(shù)據(jù)流。污點(diǎn)傳播的泄露點(diǎn)是以污點(diǎn)變量作為調(diào)用參數(shù)的外部函數(shù),并且函數(shù)名稱中帶有關(guān)鍵詞“aes”“decrypt”“compress”等,這一階段的泄露點(diǎn)還包括污點(diǎn)變量參與運(yùn)算的循環(huán)代碼塊。比如圖5中經(jīng)過序號(hào)6~8的污點(diǎn)傳播,污點(diǎn)變量buffer在循環(huán)中被逐字節(jié)遍歷。本方法據(jù)此假定,執(zhí)行這一循環(huán)操作的函數(shù)即為實(shí)現(xiàn)模型解密功能的函數(shù)。做出假定的依據(jù)是對(duì)于使用密碼學(xué)算法進(jìn)行模型加密的情況,加解密算法一般使用對(duì)稱密鑰算法,即明文和密文長(zhǎng)度相等,加密和解密密鑰相同,解密時(shí)密文以密鑰長(zhǎng)度分組,每一組與密鑰異或生成明文。對(duì)于使用數(shù)據(jù)壓縮算法的情況,大致的處理方式是對(duì)數(shù)據(jù)按字節(jié)遍歷,找出其中重復(fù)出現(xiàn)的部分,然后用更短的符號(hào)代替,解壓縮則是按照壓縮時(shí)的編碼方式依次對(duì)數(shù)據(jù)進(jìn)行還原。因此,無論是上述兩種算法中的哪一個(gè),都需要循環(huán)遍歷全部模型密文數(shù)組。

在本例中,本方法會(huì)返回函數(shù)sub_C的地址。這里的另外一種情況是應(yīng)用程序通過在原生庫(kù)中調(diào)用外部依賴庫(kù)函數(shù)實(shí)現(xiàn)模型解密,這時(shí)需要根據(jù)第三階段污點(diǎn)分析中追蹤到的泄露點(diǎn)函數(shù)來確定實(shí)際的模型解密函數(shù)。

3.3.2污點(diǎn)傳播規(guī)則

1)污點(diǎn)內(nèi)存集合

污點(diǎn)內(nèi)存集合是指包含所有污點(diǎn)數(shù)據(jù)的內(nèi)存地址的集合,記為 TMem. 。令表示一段內(nèi)存數(shù)據(jù),其中addr表示數(shù)據(jù)存儲(chǔ)的起始地址,length表示數(shù)據(jù)的字節(jié)數(shù),則 TMem= {?addr0,length0? , ?addr1 . length1 gt;,…|。

令 SC=addrm lengthm gt;表示污點(diǎn)源,這是一段包含模型特征信息的內(nèi)存數(shù)據(jù),初始狀態(tài)下 TEem={SC} 。

2)污點(diǎn)值函數(shù)

污點(diǎn)值函數(shù)是用來指示污點(diǎn)傳播對(duì)象的函數(shù),令 r 表示寄存器,函數(shù) T(r) 表示寄存器 r 的污點(diǎn)值, T(r)=1 表示該寄存器被打上了污點(diǎn)標(biāo)記, T(r)=0 表示沒有。

除此之外,令 [r] 表示寄存器的值, T(ρr] )表示寄存器的值所指向的內(nèi)存地址的污點(diǎn)值。 T([r])=1 成立當(dāng)且僅當(dāng):

?addri,lengthi∈TMem,[Δr]∈[addri,addri+lengthi

特別地,對(duì)于一個(gè)立即數(shù) ? ,令 T(c)=0 。

表2按照匯編指令類型給出了常規(guī)污點(diǎn)傳播規(guī)則,其中的指令示例采用ARM64指令集,其他架構(gòu)的匯編指令可以類比得到。

表2污點(diǎn)傳播規(guī)則

Tab.2Taint propagation rules

?

除了上述污點(diǎn)傳播規(guī)則外,本方法還維護(hù)了一個(gè)封裝函數(shù)集合,該集合中的函數(shù)都是一些外部依賴庫(kù)函數(shù),當(dāng)在原生庫(kù)中跳轉(zhuǎn)執(zhí)行這些函數(shù)時(shí),本方法會(huì)直接執(zhí)行對(duì)應(yīng)的污點(diǎn)傳播規(guī)則。例如當(dāng)原生庫(kù)中需要執(zhí)行memcpy函數(shù)時(shí),本方法會(huì)直接執(zhí)行規(guī)則 T(dst)=T(src) ,而無須深入內(nèi)部分析。這樣做可以在基于模擬執(zhí)行的動(dòng)態(tài)污點(diǎn)分析方法中避免引入外部依賴庫(kù),提高污點(diǎn)分析方法的穩(wěn)定性。

由于在前兩個(gè)階段的污點(diǎn)傳播中,當(dāng)污點(diǎn)變量到達(dá)泄露點(diǎn)函數(shù)后,為了正常執(zhí)行下一階段的污點(diǎn)傳播過程,需要將函數(shù)的返回值設(shè)為污點(diǎn)變量,所以本方法中還設(shè)計(jì)了針對(duì)泄露點(diǎn)函數(shù)的特殊傳播規(guī)則。表3給出了具體的泄露點(diǎn)函數(shù)和對(duì)應(yīng)的污點(diǎn)傳播規(guī)則。

3.3.3算法實(shí)現(xiàn)

解密函數(shù)定位算法的實(shí)現(xiàn)過程如算法1所示。首先初始化各項(xiàng)污點(diǎn)分析參數(shù),設(shè)置程序計(jì)數(shù)器pc的值為start,將污點(diǎn)源標(biāo)記為污點(diǎn)內(nèi)存,污點(diǎn)傳播階段stage的值為1。接著對(duì)待分析的安卓原生庫(kù)進(jìn)行逐語句執(zhí)行,分析語句是否涉及帶有污點(diǎn)標(biāo)記的寄存器變量或內(nèi)存地址。如果涉及,則檢查語句是否匹配污點(diǎn)傳播規(guī)則或泄露點(diǎn)函數(shù)規(guī)則。對(duì)于匹配污點(diǎn)傳播規(guī)則的語句,先判斷當(dāng)前是否為第3階段的污點(diǎn)傳播且語句處于循環(huán)代碼塊中,如果是則輸出當(dāng)前代碼塊的首地址作為解密函數(shù)地址并結(jié)束程序,否則根據(jù)匹配到的污點(diǎn)傳播規(guī)則傳播污點(diǎn)標(biāo)記,然后繼續(xù)執(zhí)行下一條語句。如果匹配的是泄露點(diǎn)函數(shù)規(guī)則,則根據(jù)規(guī)則設(shè)置新的污點(diǎn)源,清除之前所有的污點(diǎn)變量,將污點(diǎn)傳播階段stage增加。在循環(huán)最后,更新程序計(jì)數(shù)器,執(zhí)行下一條語句。

Tab.3Sink function rules

?

算法1解密函數(shù)定位算法

輸出:解密函數(shù)地址func_addr。

初始化: pc=start ,taint_memory(addr,length),stage =1 whiletrue://程序逐語句執(zhí)行if is_tainted(pc) ? 判斷語句是否存在污點(diǎn)變量或內(nèi)存if matches_taint_propagation_rule(pc)):if stage ==3 amp;amp;is_in_loop(pc)://發(fā)現(xiàn)循環(huán)代碼塊func_addr τ=τ get_block_start_address(pc)break//得到解密函數(shù)地址,退出循環(huán)else:propagate_taint(pc)//根據(jù)規(guī)則傳播污點(diǎn)標(biāo)記elif matches_leakage_point_rule(pc)):set_new_taint_source(pc)clear_all_taintsstage += 1/ 污點(diǎn)傳播階段迭代if is_jump_instruction(pc) ://1 更新程序計(jì)數(shù)器pc Σ=Σ get_jump_address(pc)else:pc +=4// return func_addr

3.4模型解密

在得到模型解密函數(shù)后,為了能夠成功解密模型文件,本方法將會(huì)補(bǔ)全解密函數(shù)的所有調(diào)用參數(shù)。通常情況下,模型解密函數(shù)的調(diào)用參數(shù)為存放模型密文的數(shù)組,如果是基于密碼學(xué)算法的加密保護(hù),調(diào)用參數(shù)還包括解密密鑰。模型密文數(shù)組可以通過創(chuàng)建數(shù)組變量得到,解密密鑰則可以通過結(jié)合代碼反向切片技術(shù)和簡(jiǎn)單的逆向分析來確定。

本方法自動(dòng)將包含模型解密函數(shù)的安卓原生庫(kù)加載到內(nèi)存中,通過程序HOOK技術(shù)調(diào)用解密函數(shù),結(jié)合補(bǔ)全的調(diào)用參數(shù),最終解密使用被加密保護(hù)的深度學(xué)習(xí)模型。

4實(shí)驗(yàn)評(píng)估

4.1 系統(tǒng)實(shí)現(xiàn)

本文方法開發(fā)了自動(dòng)化工具M(jìn)odelDec,用于提取、定位和解密經(jīng)過加密保護(hù)的移動(dòng)端深度學(xué)習(xí)模型。ModeIDec的模型密文提取模塊由大約1000行Python代碼實(shí)現(xiàn),該模塊使用Apktool對(duì)收集到的APK進(jìn)行解包,以獲取其中的資源文件和安卓原生庫(kù)。為了識(shí)別資源文件中加密保護(hù)的深度學(xué)習(xí)模型,模型密文提取模塊使用Linux命令行工具ent計(jì)算文件的熵值,該工具的返回結(jié)果是(0,8]內(nèi)的小數(shù),表示輸人文件平均每字節(jié)存儲(chǔ)多少比特的信息。數(shù)值越大說明文件壓縮程度越高或者越接近隨機(jī)生成,也就越有可能是經(jīng)過加密保護(hù)的文件。結(jié)合對(duì)自身初期實(shí)驗(yàn)結(jié)果的觀察和文獻(xiàn)[23]的實(shí)驗(yàn)設(shè)置,ModelDec中加密文件熵值的閾值為 7.9 0

ModelDec的解密函數(shù)定位模塊由200行Python代碼實(shí)現(xiàn),是利用 Triton[29] 構(gòu)建了一個(gè)基于模擬執(zhí)行的動(dòng)態(tài)污點(diǎn)分析系統(tǒng)。Triton是一個(gè)二進(jìn)制動(dòng)態(tài)分析工具,提供了豐富且方便使用的PythonAPI接口,可以實(shí)現(xiàn)混合符號(hào)執(zhí)行和污點(diǎn)分析等功能。

由于安卓原生庫(kù)的運(yùn)行依賴于安卓系統(tǒng)庫(kù),所以在模型解密環(huán)節(jié),為了在內(nèi)存中加載并執(zhí)行原生庫(kù)文件,ModelDec的解密程序必須在安卓系統(tǒng)下運(yùn)行。為此,本研究采用了谷歌發(fā)布的Android nativeactivity,這是安卓本地開發(fā)工具包(native de-velopmentkit,NDK)的一部分,允許在安卓應(yīng)用層運(yùn)行完全由C/C+Ω+ 編寫的應(yīng)用程序,有效避免了 C/C+Ω+ 與Java混合編程的復(fù)雜性,確保了解密程序的高效執(zhí)行。ModelDec的模型解密模塊由500行 C+β+β 代碼實(shí)現(xiàn)。

實(shí)驗(yàn)評(píng)估在配置IntelXeonSilver4410Y處理器和128GB內(nèi)存的服務(wù)器上進(jìn)行,操作系統(tǒng)為Ubuntu20.04.1。

4.2模型密文提取

實(shí)驗(yàn)評(píng)估使用的應(yīng)用程序來自于 AndroZoo[30] ,本研究從該數(shù)據(jù)庫(kù)中下載了近三年國(guó)內(nèi)外多個(gè)不同應(yīng)用商店共57363個(gè)APK。ModelDec的模型密文提取模塊首先通過關(guān)鍵詞匹配的方法篩選出2335個(gè)存在深度學(xué)習(xí)功能的APK,占收集總數(shù)的 4.07% 。接著,根據(jù)應(yīng)用程序中模型文件的熵值進(jìn)一步篩選出1119個(gè)APK和其中包含的3726個(gè)被識(shí)別為經(jīng)過加密保護(hù)的深度學(xué)習(xí)模型。

本研究從應(yīng)用程序來源和類別兩個(gè)維度對(duì)收集的APK進(jìn)行分類,表4是得到的統(tǒng)計(jì)數(shù)據(jù),其中應(yīng)用類別是綜合了來自于不同應(yīng)用商店給出的應(yīng)用分類。本研究收集的APK主要來自于三個(gè)不同的應(yīng)用商店,一個(gè)是主要面向國(guó)外市場(chǎng)的谷歌應(yīng)用商店,另外兩個(gè)則是服務(wù)于國(guó)內(nèi)用戶的應(yīng)用匯和安智。因?yàn)椴糠謶?yīng)用程序來源于多個(gè)應(yīng)用商店,所以可能存在一個(gè)應(yīng)用類別下的APK個(gè)數(shù)總和大于實(shí)際數(shù)量的情況,也就是在表4同一行中,各個(gè)應(yīng)用市場(chǎng)的應(yīng)用數(shù)量累加后大于最后一列總計(jì)的數(shù)量。

表4應(yīng)用程序統(tǒng)計(jì)數(shù)據(jù)

Tab.4Statistics of Apps collected across markets

?

輸入:執(zhí)行程序起始地址start,污點(diǎn)源地址addr、length。

由表4可以看出,使用移動(dòng)端深度學(xué)習(xí)模型的應(yīng)用程序廣泛分布在不同應(yīng)用類別下,并且每一個(gè)應(yīng)用類別下都存在使用加密算法保護(hù)模型文件的案例,這說明移動(dòng)端深度學(xué)習(xí)技術(shù)得到了應(yīng)用開發(fā)者的充分使用,同時(shí)開發(fā)者也已經(jīng)開始關(guān)注移動(dòng)端深度學(xué)習(xí)模型的泄露問題。

在不同的應(yīng)用分類中,使用移動(dòng)端深度學(xué)習(xí)技術(shù)最多的三個(gè)應(yīng)用分類是攝影、教育和生活時(shí)尚。而在金融與商業(yè)的類別下,超過 90% 的應(yīng)用程序使用加密算法保護(hù)其使用的深度學(xué)習(xí)模型,是所有應(yīng)用類別中最高的。根據(jù)模型文件的文件名稱推測(cè)模型的實(shí)際功能可以發(fā)現(xiàn),金融與商業(yè)相關(guān)的應(yīng)用使用的模型文件主要用于人臉識(shí)別、活體檢測(cè)、各類證件上的文字識(shí)別等安全級(jí)別較高的場(chǎng)景。如果這些模型文件泄露給攻擊者,不僅會(huì)使模型開發(fā)者投資受損,喪失產(chǎn)品競(jìng)爭(zhēng)優(yōu)勢(shì),還會(huì)使金融和商業(yè)這些與財(cái)產(chǎn)密切相關(guān)的行業(yè)面臨巨大的安全風(fēng)險(xiǎn)。而與之相對(duì)的是攝影相關(guān)的應(yīng)用程序,這類應(yīng)用程序主要是各種AI相機(jī),例如美顏、圖像識(shí)別、物體檢測(cè)等。這些功能對(duì)模型的準(zhǔn)確率要求并不高,已有的大量開源模型足以應(yīng)對(duì)大多數(shù)應(yīng)用程序開發(fā)場(chǎng)景,因此開發(fā)者大多選擇直接使用開源模型,或是在開源模型的基礎(chǔ)上進(jìn)行低成本的微調(diào)。開發(fā)者實(shí)際在模型開發(fā)上的投資較小,缺乏保護(hù)模型的動(dòng)力,此類應(yīng)用中只有大約 20% 對(duì)模型文件進(jìn)行了保護(hù)。

4.3模型解密與效果對(duì)比

對(duì)于提取的1119個(gè)使用加密算法保護(hù)深度學(xué)習(xí)模型的應(yīng)用程序和其中3726個(gè)經(jīng)過加密保護(hù)的模型文件,ModelDec首先篩選出637( 56.9% )個(gè)應(yīng)用程序,這些應(yīng)用程序中存在包含有加密模型特征信息的安卓原生庫(kù)文件,可以作為下一步污點(diǎn)分析方法的輸入。接著在篩選出的應(yīng)用程序中,ModelDec成功定位了其中312 27.9% )個(gè)應(yīng)用程序中的模型解密函數(shù),并解密得到628個(gè)模型文件的明文內(nèi)容。

為了更好地展示ModeIDec與目前最先進(jìn)工具的對(duì)比結(jié)果,這里給出ModelDec相比這些工具的一些顯著優(yōu)勢(shì):

a)解密效率高。ModelDec通過靜態(tài)分析與模擬執(zhí)行技術(shù),能夠不依賴人工交互或動(dòng)態(tài)觸發(fā)操作,高效地完成模型密文提取、解密函數(shù)定位和模型解密,整體分析時(shí)間大大縮短。

b)適用范圍廣。ModelDec不僅支持開源深度學(xué)習(xí)框架(如Caffe、NCNN),還能很好地解密私有格式的深度學(xué)習(xí)模型。

c)對(duì)加密算法的適應(yīng)性強(qiáng)。ModelDec使用靈活的污點(diǎn)傳播規(guī)則,能夠針對(duì)多種復(fù)雜加密保護(hù)機(jī)制(如AES和自定義加密算法)進(jìn)行高效分析。尤其是在面對(duì)定制化加密算法時(shí),ModelDec無須預(yù)先了解具體加密規(guī)則,即可通過自動(dòng)化分析過程實(shí)現(xiàn)解密功能,展現(xiàn)了強(qiáng)大的適應(yīng)能力。

表5給出了具體的對(duì)比結(jié)果, Sun 等人[23]從866個(gè)使用加密算法保護(hù)移動(dòng)端深度學(xué)習(xí)模型的應(yīng)用程序中隨機(jī)選取了82個(gè)測(cè)試樣本,使用ModelXtractor提取并解密了18( 22.0% )個(gè)APK中加密保護(hù)的模型文件。Deng等人[24]共篩選出5573個(gè)包含深度學(xué)習(xí)功能的移動(dòng)端應(yīng)用程序,接著從中選擇了一部分進(jìn)行測(cè)試,最后使用開發(fā)的AdvDroid在30個(gè)應(yīng)用程序中解密得到深度學(xué)習(xí)模型的明文,由于文獻(xiàn)24并沒有公開具體的測(cè)試集合,本研究在效果對(duì)比中無法得到其準(zhǔn)確的解密成功率。實(shí)驗(yàn)結(jié)果表明,與目前最先進(jìn)的工具相比,ModelDec在加密保護(hù)的移動(dòng)端模型泄露分析方面能力更強(qiáng)。

表5方法效果對(duì)比

?

本研究還對(duì)工具的運(yùn)行效率進(jìn)行了評(píng)估。針對(duì)所有成功完成解密函數(shù)定位和模型解密的實(shí)驗(yàn)輸人,ModelDec的解密函數(shù)定位模塊的平均運(yùn)行時(shí)間為 0.38s ,即使在最復(fù)雜的情況下,運(yùn)行時(shí)間也僅為 1.75s 。進(jìn)一步地,模型解密模塊平均運(yùn)行時(shí)間為0.27s,最慢情況也未超過0.66s。對(duì)于ModelXtrac-tor,其單個(gè)APK人工分析的時(shí)間開銷最快不超過 1h ,如果是包含注冊(cè)登錄行為的APK,甚至?xí)枰獢?shù)個(gè)小時(shí)[23],因此其設(shè)置了人工分析時(shí)間閾值為 2h ,超過該閾值后將視作分析失敗。雖然AdvDroid在ModelXtractor的基礎(chǔ)上使用了DroidBot等自動(dòng)化工具來模擬人工觸發(fā)深度學(xué)習(xí)功能的行為,但是平均每個(gè)APK的分析時(shí)間也達(dá)到了75s[24]。由此可以看出,ModelDec在運(yùn)行效率上相比之前的工作有了極大的提升。

由于ModelXtractor和AdvDroid使用了相同的分析方法:在應(yīng)用程序運(yùn)行時(shí)觸發(fā)深度學(xué)習(xí)功能,接著在內(nèi)存搜索解密后的模型銘文。這里進(jìn)一步討論ModelDec成功分析的測(cè)試樣本與它們的差異性。MoedlXtractor并沒有提供最終解密成功的APK包名和模型文件名,但是在ModelDec成功解密的APK樣本中,有83個(gè)APK并不在其給出的全部測(cè)試數(shù)據(jù)中,占ModelDec成功解密的 26.6% 。與AdvDroid進(jìn)行比較時(shí),ModelDec則與其沒有共同的成功解密樣本。

在對(duì)這些“新”解密的APK和加密保護(hù)的模型文件進(jìn)行分析時(shí)發(fā)現(xiàn),大部分APK都需要借助手機(jī)號(hào)注冊(cè)和登錄才能使用應(yīng)用中的深度學(xué)習(xí)功能,有些金融類別的應(yīng)用程序甚至還需要合法的銀行賬戶。然而,ModelXtractor和AdvDroid成功分析的前提就是可以正常使用應(yīng)用程序,因此它們會(huì)因?yàn)槿鄙僬鎸?shí)可用的手機(jī)號(hào)或銀行賬號(hào)導(dǎo)致分析失敗,另一方面也會(huì)因?yàn)轭~外的注冊(cè)登錄流程使得分析時(shí)間顯著延長(zhǎng)甚至失敗。

表6給出了在ModelDec解密函數(shù)定位模塊成功定位的312個(gè)應(yīng)用程序中的模型解密函數(shù)的算法分類。從表中不難看出,AES算法是最受歡迎的移動(dòng)端深度學(xué)習(xí)模型加密保護(hù)的解決方案,有 56.7% 的APK使用AES作為模型加解密算法。其余的APK中,有50個(gè)采用zlib壓縮算法加密深度學(xué)習(xí)模型,還有85個(gè)使用了無法識(shí)別的算法來保護(hù)模型文件,這里將其歸類為自定義算法。

表6解密函數(shù)分類

Tab.6APK categories statistics

?

ModelDec最終成功解密了628個(gè)加密保護(hù)的模型文件,這些模型的格式統(tǒng)計(jì)如表7所示。這其中占絕大多數(shù)的是伯克利人工智能研究中心開發(fā)的Caffe。除此之外,ModelDec還得到了使用XML格式的OpenCV模型和三種私有模型格式。通過對(duì)私有模型文件頭部的關(guān)鍵詞進(jìn)行網(wǎng)絡(luò)搜索,確認(rèn)這些模型文件分別來自國(guó)內(nèi)的Sensetime和兩家海外公司Ceva-ip和ZicerLab。

表7模型格式統(tǒng)計(jì)

Tab.7Model format statistics

?

4.4 加密算法分析

為了進(jìn)一步了解當(dāng)前移動(dòng)端應(yīng)用市場(chǎng)使用加密算法保護(hù)深度學(xué)習(xí)模型的現(xiàn)狀,本研究對(duì)成功還原的深度學(xué)習(xí)模型采用的加密算法進(jìn)行了分析。

4.4.1 AES算法

使用AES算法對(duì)模型進(jìn)行加密保護(hù)的APK,其實(shí)現(xiàn)方式大致可以分為兩種。第一種是由開發(fā)者自行實(shí)現(xiàn),對(duì)于這種情況,可以觀察到在ModelDec定位的模型解密函數(shù)中,出現(xiàn)了與AES算法中使用的完全相同的替換盒(substitution-box,S-BOX)。例如實(shí)驗(yàn)中部分APK使用深度學(xué)習(xí)服務(wù)提供商Sensetime出售的深度學(xué)習(xí)模型。Sensetime使用AES算法對(duì)這些模型進(jìn)行加密,并在隨模型一起出售的SDK中實(shí)現(xiàn)了AES解密算法。

ModelDec成功定位到了Sensetime的模型解密函數(shù)并解密了其出售的深度學(xué)習(xí)模型,并因此發(fā)現(xiàn)這些模型同時(shí)使用Caffe格式和Sensetime自行開發(fā)的私有模型格式,且Sensetime會(huì)將模型文件和模型配置文件壓縮成一個(gè)文件后使用AES加密。有時(shí),Sensetime還會(huì)將多個(gè)這樣加密的壓縮文件進(jìn)一步壓縮成單個(gè)文件后再使用AES加密。在對(duì)Sensetime實(shí)現(xiàn)的AES解密算法進(jìn)行人工逆向分析時(shí)還發(fā)現(xiàn),可能出于對(duì)模型加解密效率的考慮,Sensetime并沒有按照算法標(biāo)準(zhǔn)實(shí)現(xiàn)AES,例如一個(gè)128位的AES解密算法需要經(jīng)過十輪迭代,而Sensetime只調(diào)用了兩輪。

第二種AES加解密的實(shí)現(xiàn)方式是直接調(diào)用外部依賴庫(kù)中的AES算法實(shí)現(xiàn),在這種情況下,ModelDec可以追蹤到函數(shù)名中含有“aes”\"decrypt\"等關(guān)鍵詞的泄露點(diǎn)函數(shù)。例如,在污點(diǎn)分析階段,ModeIDec在一些APK中發(fā)現(xiàn)模型密文作為調(diào)用參數(shù)進(jìn)入了函數(shù)\"ziap_aes_decrypt”,由此可以確定這些模型文件使用AES算法進(jìn)行加密。通過搜索發(fā)現(xiàn),這個(gè)函數(shù)來自一家移動(dòng)安全公司Zimperium發(fā)布的安全增強(qiáng)密碼算法庫(kù)[31]。這個(gè)算法庫(kù)對(duì)AES解密函數(shù)的參數(shù)進(jìn)行了復(fù)雜的預(yù)處理工作,同時(shí)通過函數(shù)間接調(diào)用限制了代碼反向切片技術(shù)的使用,使ModelDec在模型解密環(huán)節(jié)難以構(gòu)造出正確的調(diào)用參數(shù),因此無法成功解密模型。

4.4.2zlib壓縮算法

通過ModelDec污點(diǎn)分析時(shí)記錄的泄露點(diǎn)函數(shù)“uncompress”確定了50個(gè)APK中使用的模型加密算法,“uncom-press\"函數(shù)是zlib壓縮庫(kù)中用于執(zhí)行zlib解壓縮功能的函數(shù)。進(jìn)一步調(diào)查發(fā)現(xiàn)這些經(jīng)過zlib壓縮的模型文件來源于一家名為Microblink的公司,這是歐洲的一家深度學(xué)習(xí)服務(wù)提供商,主要提供光學(xué)字符識(shí)別(opticalcharacter recognition,OCR)相關(guān)功能在移動(dòng)設(shè)備上快速部署的解決方案。他們提供的模型由一個(gè)固定格式的文件頭部和經(jīng)過zlib壓縮的文件內(nèi)容組成,經(jīng)過解壓縮后發(fā)現(xiàn)包括多種不同格式的模型文件,例如使用XML格式的OpenCV模型和標(biāo)記為“ZicerModel\"的私有模型格式。

4.4.3 自定義算法

ModelDec定位到的模型解密函數(shù)中還存在一部分難以識(shí)別的解密算法,這些算法具有對(duì)稱密鑰算法的特征,推測(cè)是在現(xiàn)有算法的基礎(chǔ)上進(jìn)行了定制化修改,也可能是開發(fā)者獨(dú)立設(shè)計(jì)的新算法。鑒于這些算法無法被識(shí)別為已知的加解密算法,本研究將其歸類為自定義算法。

圖6給出的是一個(gè)自定義解密算法的實(shí)例,其中第4~20行的代碼實(shí)現(xiàn)了類似于密鑰擴(kuò)展的功能,而第23~32行則實(shí)現(xiàn)了密文分組按位異或,可以發(fā)現(xiàn)這一流程與已知的對(duì)稱密鑰算法高度相似。本研究使用ModelDec對(duì)該自定義算法加密的模型文件進(jìn)行了解密,解密得到的模型來自一家名為Ceva-ip的深度學(xué)習(xí)服務(wù)提供商。

這里的Ceva-ip與前文提到的Sensetime以及Microblink一樣,對(duì)于這些深度學(xué)習(xí)服務(wù)提供商而言,確保其模型文件在用戶設(shè)備上的安全性是至關(guān)重要的課題。在深度學(xué)習(xí)技術(shù)快速發(fā)展的背景下,保護(hù)算法和模型不被未授權(quán)訪問或泄露,對(duì)于維護(hù)企業(yè)的核心競(jìng)爭(zhēng)力和用戶隱私安全具有不可估量的價(jià)值。這些企業(yè)實(shí)際上已經(jīng)投人了相應(yīng)的努力來加固對(duì)模型文件的保護(hù)。然而,ModelDec實(shí)驗(yàn)結(jié)果揭示了一個(gè)不容忽視的事實(shí):現(xiàn)有的移動(dòng)端深度學(xué)習(xí)模型保護(hù)手段并未達(dá)到預(yù)期的防護(hù)效果。這一發(fā)現(xiàn)不僅驗(yàn)證了本研究所提出的方法和工具的有效性,還凸顯了同步提出模型保護(hù)策略和模型泄露分析方法的重要性。

5結(jié)束語

本研究面向深度學(xué)習(xí)的移動(dòng)端應(yīng)用場(chǎng)景,針對(duì)加密保護(hù)的深度學(xué)習(xí)模型,提出了一種模型泄露的自動(dòng)分析方法。首先,設(shè)計(jì)了一種從APK中提取加密保護(hù)的模型文件的方案;隨后,通過分析基于加密保護(hù)的移動(dòng)端深度學(xué)習(xí)模型的開發(fā)和部署流程,識(shí)別其特征;本研究設(shè)計(jì)了專門的污點(diǎn)傳播規(guī)則,基于這些規(guī)則,完成了一種利用污點(diǎn)分析定位模型解密函數(shù)的方法。最后,展示了如何運(yùn)用程序HOOK技術(shù)實(shí)現(xiàn)模型文件的解密。

本文實(shí)現(xiàn)了方法原型工具M(jìn)odelDec,對(duì)眾多包含深度學(xué)習(xí)功能的APK進(jìn)行了檢測(cè),成功定位了許多模型解密函數(shù),并解密得到模型文件的明文內(nèi)容,從而驗(yàn)證了方法的有效性。未來將持續(xù)優(yōu)化ModelDec,增加對(duì)不同移動(dòng)端系統(tǒng)和加解密環(huán)境的支持,以擴(kuò)展其應(yīng)用范圍。

參考文獻(xiàn):

[1]Huang Yujin,Hu Han,Chen Chunyang.Robustness of on-device models:adversarial attack to deep learning models on Android apps [C]//Procof the 43rd IEEE/ACM International Conference on SoftwareEngineering:SoftwareEngineering inPractice.Piscataway,NJ: IEEEPress,2021:101-110.

[2]Huang Yujin,Chen Chunyang. Smart app attack:hacking deep learningmodelsin Android apps[J]. IEEETrans on Information ForensicsandSecurity,2022,17:1827-1840.

[3]Zhou Mingyi,Gao Xiang,Wu Jing,etal.Investigating white-box attacks foron-devicemodels[C]//Proc of the46th IEEE/ACM International Conferenceon Software Engineering.Piscataway,NJ:IEEE Press,2024:1876-1887.

[4]李佳琳,王雅哲,羅呂根,等.面向安卓惡意軟件檢測(cè)的對(duì)抗攻擊 技術(shù)綜述[J].信息安全學(xué)報(bào),2021,6(4):28-43.(LiJialin, WangYazhe,Luo Lyugen,etal.A survey of adversarial attack techIques Ior Anuroiu maiware uetecuon [J」. Juumai Ul Cyvel oecurity,2021,6(4):28-43.)

[5]LiYuanchun,Hua Jiayi,Wang Haoyu,et al.DeepPayload:blackbox backdoor attack on deep learning models through neural payload injection [C]//Proc of the 43rd IEEE/ACM International Conference onSoftware Engineering. Piscataway,NJ:IEEE Press,2O21:263- 274.

[6]Mink J,Kaur H,Schmuiser J,et al.“Security is not my field,I’m a stats guy”:a qualitative root cause analysis of barriers to adversarial machine learning defenses in industry [C]// Proc of the 32nd USENIX Security Symposium. Berkeley,CA:USENIX Association, 2023:3763-3780.

[7]Yoshimura S,Nakamura K,Nitta N,et al. Model inversion attack against aface recognition system in a black-box setting[C]//Proc of Asia-Pacific Signal and Information Processing Association Annual Summit and Conference.Piscataway,NJ: IEEE Press,2021:1800- 1807.

[8]孫安臨,錢亞冠,顧釗鈺,等.自動(dòng)駕駛場(chǎng)景下對(duì)交通路標(biāo)對(duì)抗 攻擊的防御[J].浙江科技學(xué)院學(xué)報(bào),2022,34(1):52-60. (Sun Anlin,Qian Yaguan,Gu Zhaoquan,et al.Defense against adversarial attack of trafc signs under autonomous driving[J]. Journal of Zhejiang University of Science and Technology,2022, 34(1):52-60.)

[9]MindSpore.MindArmour:model encryption protection [EB/OL]. [2024-09-29]. htps://www.mindspore.cn/mindarmour/docs/ en/r2.O/model_encrypt_protection. html.

[10]Hua Jiayi,Li Yuanchun,WangHaoyu.MMGuard:automatically protecting on-device deep learning models in Android apps [C]// Proc of IEEE Security and Privacy Workshops. Piscataway,NJ:IEEE Press,2021:71-77.

[11]Han S K,Jang J. MyTEE: own the trusted execution environment on embedded devices[C]//Proc of the 3Oth Annual Network and Distributed System Security Symposium.Reston,VA: Internet Society,2023.

[12]Mo Fan,Shamsabadi A,Katevas K,et al. DarkneTZ: towards model privacy at the edge using trusted execution environments[C]//Proc of the18th International Conference on Mobile Systems,Applications,and Services.New York:ACM Press,202O:161-174.

[13] Sun Zhichuang,Sun Ruimin,Liu Changming,et al. ShadowNet: a secure and efficient on-device model inference system for convolutional neural networks[C]// Proc of IEEE Symposium on Security and Privacy.Piscataway,NJ: IEEE Press,2023:1596-1612.

[14] Zhang Ziqi,Gong Chen,Cai Yifeng,et al.No privacy left outside: on the(in-) security of TEE-shielded DNN partition for on-device ML[C]//Proc of IEEE Symposium on Security and Privacy. Piscataway,NJ:IEEE Press,2024:3327-3345.

[15]Brasser F,Gens D,Jauernig P,et al.SANCTUARY:ARMing TrustZone with user-space enclaves [C]// Proc of the 26th Annual Network and Distributed System Security Symposium.Reston,VA: Internet Society,2019.

[16]Bayerl SP,F(xiàn)rasseto T,Jauernig P,et al.Offline model guard:secure and private ML on mobile devices[C]//Proc of Design,Automationamp; Test in Europe Conferenceamp; Exhibition.Piscataway,NJ: IEEE Press,2020:460-465. ments on GPUs[C]//Proc of the 13th USENIX Symposiumon Operating SystemsDesign and’Implementation.Berkeley,CA: USENIX Association,2018:681-696.

[18]Android. Face authentication HIDL[EB/OL]. [2024-09-29]. https://source.android. com/docs/security/features/biometric/faceauthentication.

[19]Mace. Mobile AI compute engine documentation [EB/OL].[2024- 09-29].https://mace.readthedocs.io.

[20]Github.BayesWitnesses/m2cgen [EB/OL].[2024-09-29].https://github.com/BayesWitnesses/m2cgen.

[21] Zhou Mingyi,Gao Xiang,Wu Jing,et al.ModelObfuscator:obfuscating model information to protect deployed ML-based systems[C]// Proc of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis. New York:ACM Press,2023:1005-1017.

[22]Xu Mengwei,Liu Jiawei,Liu Yuanqiang,et al.Afirst look at deep learning apps on smartphones [C]// Proc of World Wide Web Conference. New York:ACM Press,2019:2125-2136.

[23]Sun Zhichuang,Sun Ruimin,Lu Long,etal. Mind your weight (s):a large-scale study on insufcient machine learning model protection in mobile apps [C]// Proc of the 3Oth USENIX Security Symposium.Berkeley, CA: USENIX Association,2021: 1955-1972.

[24] Deng Zizhuang,Chen Kai,Meng Guozhu,et al. Understanding realworld threats to deep learning models in Android apps[C]//Proc of ACM SIGSAC Conference on Computer and Communications Security.New York:ACM Press,2022:785-799.

[25]Github.Honeynet/DroidBot[EB/OL].[2024-09-29].https:// github.com/hon eynet/droidbot.

[26]Ren Pengcheng,Zuo Chaoshun,Liu Xiaofeng,et al.DeMistify: identifying on-device machine learning models stealing and reuse vulnerabilities in mobile apps[C]//Proc of the 46th IEEE/ACM International Conference on Software Engineering.New York:ACM Press,2024:1-13.

[27]HongSY,Carlini N,KurakinA.Publishing efficient on-device modelsincreasesadversarialvulnerability[C]//ProcofIEEEConference on Secure and Trustworthy Machine Learning. Piscataway, NJ:IEEE Press,2023:271-290.

[28]Wu Hao,Gong Yuhang,Ke Xiaopeng,et al. TIM: enabling largescale white-box testing on in-app deep learning models [J]. IEEE Trans on Information Forensics and Security,2024,19:8188- 8203.

[29]Saudel F, Salwan J.Triton:a dynamic symbolic execution framework [C]//Proc of Information and Communications Technology Security Symposium. 2015:31-54.

[30]Allix K,Bissyandé TF,Klein J,etal.AndroZoo:collecting millions of Android apps for the research community[C]//Proc of the 13th IEEE/ACM Working Conference on Mining Software Repositories.Piscataway,NJ: IEEE Press,2016:468-471.

[31]Zimperium. Zimperium launches world's first mobile security solution powered byartificial inteligence[EB/OL].[2024-O9-29].https://www. zimperium. com/resources/press-releases/press-zimperium-launches-worlds-first-mobile-security-solution-powered-by-artificial-intelligence.

主站蜘蛛池模板: 亚洲二区视频| 狠狠做深爱婷婷久久一区| 久热精品免费| 国内精品久久人妻无码大片高| 国产精品一线天| 男女猛烈无遮挡午夜视频| 波多野结衣中文字幕一区| 精品国产免费观看一区| 狠狠色噜噜狠狠狠狠奇米777 | 国产一区二区三区在线无码| 中文字幕永久在线看| 一区二区在线视频免费观看| 成人小视频网| 国产美女在线观看| 激情国产精品一区| 巨熟乳波霸若妻中文观看免费| 波多野结衣在线一区二区| 久久综合伊人77777| 久久久久亚洲AV成人网站软件| 亚洲国产精品久久久久秋霞影院| 久久国产精品嫖妓| 国产毛片不卡| 欧美日韩91| 午夜丁香婷婷| 免费女人18毛片a级毛片视频| 国产哺乳奶水91在线播放| 婷婷综合在线观看丁香| 久久永久视频| 精品国产成人国产在线| 国产午夜福利在线小视频| 亚洲最猛黑人xxxx黑人猛交 | 韩日免费小视频| 亚洲三级电影在线播放| 亚洲精品日产AⅤ| 99热这里只有精品久久免费| 亚洲天堂首页| 精品99在线观看| 欧美国产在线看| 无码电影在线观看| 成人福利在线视频| 88av在线看| 国产福利小视频在线播放观看| 国产成人亚洲日韩欧美电影| 色悠久久久久久久综合网伊人| 台湾AV国片精品女同性| 国产全黄a一级毛片| 亚洲第一网站男人都懂| 欧美一级专区免费大片| 亚洲女同一区二区| 手机精品福利在线观看| 夜夜爽免费视频| 91麻豆精品视频| 国产男人的天堂| 久久亚洲天堂| 99中文字幕亚洲一区二区| 亚洲成综合人影院在院播放| 国产精品lululu在线观看 | 亚洲免费三区| av尤物免费在线观看| 亚洲日韩精品无码专区97| 亚洲成年人片| 91探花在线观看国产最新| 日本精品视频一区二区| AV老司机AV天堂| 国产成人精品一区二区不卡 | 免费人成视网站在线不卡| 日本91在线| 亚洲Aⅴ无码专区在线观看q| 无码电影在线观看| 欧美在线一二区| 国产成人a在线观看视频| 国产精品第页| 欧美性久久久久| 91欧洲国产日韩在线人成| 欧美69视频在线| 久久精品中文字幕免费| 在线国产资源| 伊人天堂网| 5388国产亚洲欧美在线观看| a在线观看免费| 乱人伦中文视频在线观看免费| 999国内精品视频免费|