摘要: 近年來隨著手游市場的高度發(fā)展,市面上誕生了很多手游模擬器,它們給使用者提供更好的體驗(yàn),但是手游模擬器本身在軟件安全層面的建設(shè)并不完善。針對現(xiàn)有的主流手游模擬器提出了兩種克隆攻擊的方法,一種是竊取存儲(chǔ)在模擬器本地的用戶憑證的方法,另一種是針對手游模擬器的克隆攻擊方法。同時(shí),針對所提出的攻擊方法,給出基于側(cè)信道方法檢測硬件指紋的防御方案,并進(jìn)行了實(shí)驗(yàn)驗(yàn)證。結(jié)果表明,即使細(xì)微的底層硬件差異也可以在應(yīng)用層檢測到不同的指紋信息,因而此類防御方法可以有效抵擋針對模擬器的克隆攻擊。
關(guān)鍵詞: Android模擬器; 克隆攻擊; 賬號安全; 側(cè)信道
中圖分類號: TP309
文獻(xiàn)標(biāo)志碼: A
文章編號: 1671-6841(2024)05-0020-11
DOI: 10.13705/j.issn.1671-6841.2023046
Cloning Attacks and Defenses Against Mobile Game Emulators
HAN Zhehao1,2, PENG Guojun1,2
(1.Key Laboratory of Aerospace Information Security and Trusted Computing of Ministry of Education,
Wuhan University, Wuhan 430072, China;
2.School of Cyber Science and Engineering, Wuhan University, Wuhan 430072, China)
Abstract: Recent years, with the rapid development of the mobile game market, many mobile game emulators have been released. Compared with traditional mobile devices, the emulators could provide better experience. But the construction of mobile game emulators in terms of software security was not perfect. Two cloning attack methods were proposed for existing mainstream mobile game emulators. One was stealing user′s credentials stored locally in the emulator. The other was cloning attack to mobile game emulators. At the same time, for the proposed attacks, a defense scheme based on the side channel method was given to detect hardware fingerprints and conducts experimental verification. The experimental results showed that even slight differences in the underlying hardware could detect different fingerprint information at the application layer. So this kind of defense method could effectively resist the cloning attack against the emulator.
Key words: Android emulator; clone attack; account security; side channel
0 引言
自移動(dòng)互聯(lián)網(wǎng)飛速發(fā)展以來,移動(dòng)設(shè)備成為人們?nèi)粘I钪薪换サ闹饕K端,以游戲?yàn)榇淼膫鹘y(tǒng)互聯(lián)網(wǎng)應(yīng)用也紛紛將移動(dòng)平臺(tái)作為主要市場,其中Android作為主流手機(jī)操作系統(tǒng),在2020年期間就已經(jīng)占據(jù)了中國88.9%的手機(jī)市場份額[1]。但對很多游戲玩家而言,移動(dòng)設(shè)備屏幕小、發(fā)熱大、續(xù)航差等缺點(diǎn)大大地影響了用戶體驗(yàn),同時(shí)對于需要高配置的游戲而言,普通移動(dòng)設(shè)備往往難以達(dá)到流暢的游戲體驗(yàn)。與此相比,PC設(shè)備不存在這些問題,它們擁有更大的屏幕、更強(qiáng)的處理器、更多的外設(shè)來提升用戶體驗(yàn),因此使用PC上的手游模擬器來操作手機(jī)端的游戲成為一種兩全其美的選擇。
現(xiàn)有PC中的Android模擬器可以分為面向開發(fā)研究人員的模擬器和面向普通用戶的商業(yè)模擬器,前者以Android Studio中的模擬器為代表;后者以“騰訊手游助手”為代表,它們?yōu)橛脩籼峁┝艘粋€(gè)虛擬化的Android環(huán)境來運(yùn)行App。手游模擬器已經(jīng)形成了龐大的用戶市場,僅2020年,中國Android手游模擬器用戶規(guī)模就達(dá)到1.3億[2],手游模擬器的市場規(guī)模呈上升趨勢。
由于模擬器本身運(yùn)行在PC環(huán)境中,所以模擬器也會(huì)面對PC端中存在的各類軟件安全問題,而這些問題又可能影響模擬器內(nèi)運(yùn)行的App,帶來如賬號安全、隱私泄露等風(fēng)險(xiǎn)。由于移動(dòng)設(shè)備具有更高的物理安全性,App在設(shè)計(jì)初始就有自動(dòng)登錄的環(huán)節(jié),避免每次打開App都要再次登錄,從而提升用戶體驗(yàn)。為了實(shí)現(xiàn)這一功能,Android設(shè)備中會(huì)存儲(chǔ)App的登錄憑證,這些憑證一旦被攻擊者竊取就很容易實(shí)施克隆攻擊。與真實(shí)移動(dòng)設(shè)備環(huán)境相比,手游模擬器具有更多的不確定性,也更容易遭到克隆攻擊。針對以上問題,本文系統(tǒng)地研究了針對手游模擬器的克隆攻擊及防御方法,主要貢獻(xiàn)有:
1) 提出了竊取手游模擬器內(nèi)登錄憑證的克隆攻擊方法與針對手游模擬器本身的克隆攻擊方法,其中后者為全新的攻擊維度;
2) 對1)中的克隆攻擊方法進(jìn)行驗(yàn)證,發(fā)現(xiàn)大多數(shù)手游App無法抵擋竊取憑證類的克隆攻擊,且所有的App都不能防御針對模擬器的克隆攻擊;
3) 針對2)中的攻擊方法,提出了詳細(xì)的防御方案,通過側(cè)信道的方法在應(yīng)用層感知模擬器外部的環(huán)境變化,根據(jù)感知結(jié)果采取相應(yīng)的防御策略。同時(shí)也證明了防御方法的可靠性,本文的方法可以抵御各類克隆攻擊,提升App的安全性。
1 相關(guān)工作與預(yù)備知識(shí)
1.1 相關(guān)工作
針對模擬器安全的研究是近年才有的熱門話題,雖然Barham等[3]早在2003年就提出了在PC當(dāng)中構(gòu)建虛擬化環(huán)境的解決方案,但在移動(dòng)端領(lǐng)域,針對操作系統(tǒng)的虛擬化沒有PC端應(yīng)用廣泛,因此Android系統(tǒng)的虛擬化工作發(fā)展較慢。BlueStacks在2010年率先提出了商用的PC端Android模擬器產(chǎn)品,讓用戶可以在PC上運(yùn)行Android App[4]。Andrus等在2011年也提出了Cell,它能使多個(gè)虛擬環(huán)境在同一臺(tái)移動(dòng)物理設(shè)備上運(yùn)行[5]。
隨著手游市場的發(fā)展,手游模擬器用戶規(guī)模快速擴(kuò)大,針對手游模擬器本身的安全研究也逐漸引起重視。Yoon等[6]針對手游模擬器安全問題進(jìn)行了研究,發(fā)現(xiàn)手游模擬器本身會(huì)引入很大的安全風(fēng)險(xiǎn),因而提出了對當(dāng)時(shí)市面上主流的幾款A(yù)ndroid手游模擬器的檢測方法,從客戶端、服務(wù)端、網(wǎng)絡(luò)等多個(gè)角度檢測手游模擬器的存在。Xu等[7]針對Android手游模擬器本身的安全性進(jìn)行了研究,分析了Android模擬器本身引入的安全威脅,并指出模擬器內(nèi)的惡意應(yīng)用會(huì)對其他良性應(yīng)用造成很大的威脅。
在檢測模擬器方面,已有大量的研究和檢測手段。Morpheus[8]大量分析了模擬器環(huán)境與真實(shí)設(shè)備環(huán)境的不同,采用了啟發(fā)式的方法來檢測Android模擬器,生成了超過10 000種檢測模擬器的啟發(fā)式方法。Proteus[9]則直接針對Android模擬器的指令級特征進(jìn)行了研究,分析了在CPU指令層面模擬器與真實(shí)環(huán)境的不同,并提出了以此為根據(jù)的模擬器檢測方法。Alzaylaee等[10]和Guerra-Manzanares等[11]研究表明,許多Android惡意軟件能有效檢測基于Android模擬器打造的分析環(huán)境,并執(zhí)行相應(yīng)的逃避措施。
在移動(dòng)應(yīng)用克隆攻擊方面,2018年騰訊安全玄武實(shí)驗(yàn)室率先披露了“應(yīng)用克隆”移動(dòng)攻擊威脅模型,利用Android系統(tǒng)中WebView控件的漏洞竊取用戶登錄憑證(https:∥www.cnvd.org.cn/webinfo/show/4365),在用戶無感知的情況下用克隆應(yīng)用冒充用戶身份進(jìn)行操作,給用戶的數(shù)據(jù)、財(cái)產(chǎn)等造成巨大威脅。文獻(xiàn)[12-14]的研究也披露了App自動(dòng)登錄環(huán)節(jié)可能存在的風(fēng)險(xiǎn),攻擊者可以利用竊取登錄憑證的方式實(shí)施克隆攻擊。針對這類克隆攻擊,應(yīng)用的開發(fā)者可以通過在每次啟動(dòng)應(yīng)用時(shí)都進(jìn)行設(shè)備一致性檢查和安全環(huán)境檢查來避免攻擊。與已有的克隆攻擊不同,本文提出的竊取憑證類的克隆攻擊針對的是模擬器內(nèi)運(yùn)行的App。此外,本文提出的針對模擬器的克隆攻擊是一種全新維度的攻擊,App無法通過已有的克隆攻擊防御方法進(jìn)行防御,實(shí)驗(yàn)結(jié)果也表明,現(xiàn)有的主流手游模擬器和App都難以避免此類攻擊。
1.2 Android App自動(dòng)登錄的實(shí)現(xiàn)
Android系統(tǒng)基于Linux核心打造,其系統(tǒng)目錄結(jié)構(gòu)也與之相似。系統(tǒng)根目錄包含了“/init”“/bin”“/system”“/data”等文件夾,用戶安裝的App會(huì)保存到“/data”文件夾下,其中“/data/app”文件夾是普通程序的安裝目錄,而“/data/data”文件夾中則存放著每個(gè)App的私有數(shù)據(jù),其他App無權(quán)訪問。
自動(dòng)登錄功能的原理是在本地保存用戶的登錄憑證,避免用戶在打開App時(shí)反復(fù)輸入賬號密碼等內(nèi)容。利用Android中的SharedPreferences類或SQLite可以實(shí)現(xiàn)這個(gè)功能。通過這兩種方法,App可以保存用戶登錄憑證和登錄狀態(tài),每次啟動(dòng)時(shí)直接跳過登錄界面進(jìn)入主界面。
1.3 Simpleperf
Simpleperf是Android NDK軟件包中的一款分析工具,用于執(zhí)行應(yīng)用程序的CPU分析等工作,它是Android系統(tǒng)中Native層的分析工具。現(xiàn)代CPU中通常都會(huì)有一個(gè)性能監(jiān)控單元(PMU),PMU通過硬件計(jì)數(shù)器記錄如CPU周期數(shù)、緩存命中情況等事件信息,同時(shí)通過系統(tǒng)調(diào)用的方法將上述信息提供給App使用。PMU是Simpleperf的技術(shù)基礎(chǔ),因而Simpleperf提供的性能監(jiān)測信息具有很高的可靠性和參考價(jià)值。
2 克隆攻擊的方法
2.1 竊取憑證的克隆攻擊
登錄憑證是確認(rèn)用戶身份的重要依據(jù),通常App啟動(dòng)時(shí)會(huì)將本地憑證發(fā)送給遠(yuǎn)程服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證成功則跳過用戶登錄環(huán)節(jié)。通過竊取憑證的克隆攻擊,攻擊者可以以受害者的身份操作App,獲取受害者敏感信息或是危害其財(cái)產(chǎn)安全。這種攻擊的基本原理就是攻擊者訪問受害者的設(shè)備并克隆其存儲(chǔ)在本地的登錄憑證信息,然后將克隆得到的憑證信息移植到攻擊者自己的模擬器環(huán)境中實(shí)現(xiàn)登錄。
與一般的真實(shí)Android設(shè)備相比,模擬器開啟了adb調(diào)試功能,同時(shí)也具有root權(quán)限,所以攻擊者可以使用簡單的adb pull指令,輕而易舉地從受害者設(shè)備上克隆出任意路徑下的App登錄憑證。由于登錄憑證的數(shù)據(jù)量極小,所以完成克隆的整個(gè)過程在短短數(shù)秒內(nèi)就能實(shí)現(xiàn)并不易被察覺。此外,由于模擬器并非真實(shí)設(shè)備,所以自然也不需要數(shù)據(jù)線等物理介質(zhì)進(jìn)行連接。具體的攻擊流程如圖1所示。
對于手游模擬器而言,實(shí)施憑證竊取攻擊的難度要遠(yuǎn)低于真機(jī)。首先,模擬器中的Android系統(tǒng)已經(jīng)root,直接使用adb pull方法就可以克隆出受害者模擬器中App的登錄憑證;其次,整體攻擊流程可自動(dòng)化的程度高,且完成克隆憑證的速度快,攻擊對目標(biāo)模擬器的影響小,攻擊過程并不會(huì)影響模擬器和其中App的正常運(yùn)行。
完成攻擊流程的另一環(huán)是移植,攻擊者在準(zhǔn)備好的環(huán)境中,利用adb push指令將竊取的用戶憑證移植到對應(yīng)路徑中即可完成。攻擊者只需要在攻擊環(huán)境中預(yù)先下載好對應(yīng)版本的App,然后用竊取的用戶憑證替換原本的用戶憑證即可。在App下一次啟動(dòng)時(shí),App會(huì)將受害者的用戶憑證發(fā)送至遠(yuǎn)程服務(wù)器進(jìn)行身份驗(yàn)證,通過驗(yàn)證后,攻擊者就可以隨意操控受害者的賬戶了。
2.2 針對模擬器的克隆攻擊
現(xiàn)有的手游模擬器大多基于VirtualBox實(shí)現(xiàn),安裝手游模擬器時(shí)就會(huì)自動(dòng)安裝相應(yīng)的虛擬化組件。以雷電模擬器為例,在其程序目錄中,運(yùn)行模擬器的虛擬機(jī)及其配置文件被單獨(dú)存放在vms文件夾中,存儲(chǔ)格式與一般的VirtualBox虛擬機(jī)類似,模擬器中的App存放在.vmdk 格式的磁盤鏡像中。
模擬器的整體克隆攻擊可以分為兩步,第一步是從受害者的PC中克隆目標(biāo)模擬器的虛擬機(jī),第二步是將得到的克隆虛擬機(jī)移植到攻擊者準(zhǔn)備好的環(huán)境中,完成克隆攻擊。與竊取憑證類的克隆攻擊相比,此類克隆攻擊的目標(biāo)是手游模擬器,將目標(biāo)模擬器的全部內(nèi)容進(jìn)行打包竊取。
現(xiàn)有的主流手游模擬器還提供了應(yīng)用多開的功能,在安裝模擬器時(shí)也會(huì)自動(dòng)安裝多開器,但此多開方法與安卓設(shè)備上的應(yīng)用多開不同。安卓設(shè)備上有 OEM 廠商提供的應(yīng)用多開方法,也有第三方的多開軟件如VirtualApp,前者在安卓系統(tǒng)中復(fù)制原有 App 并分配新的 UID,后者在應(yīng)用層創(chuàng)建沙箱,沙箱內(nèi)再次安裝App。手游模擬器的多開方法更為直接,采用了創(chuàng)建新虛擬機(jī)的方法,所以手游模擬器的多開就是虛擬機(jī)的多開,不同的多開環(huán)境間互相隔離,并無聯(lián)系,在 PC 本地以不同的目錄存儲(chǔ)虛擬機(jī)文件,例如第一個(gè)模擬器在“l(fā)eidian0”目錄下,第二個(gè)在“l(fā)eidian1”目錄下,以此類推。本文研究發(fā)現(xiàn),所有支持多開的主流手游模擬器均采用了類似的方法,因而具有相同的文件結(jié)構(gòu),多開器本質(zhì)上是一個(gè)虛擬機(jī)管理程序,可以啟動(dòng)、關(guān)閉任意一個(gè)手游模擬器環(huán)境。在實(shí)施針對模擬器的克隆攻擊時(shí),攻擊者可以對受害者環(huán)境中的一個(gè)或多個(gè)手游模擬器進(jìn)行克隆攻擊,竊取受害者的敏感信息,危害賬戶安全,具體攻擊流程如圖2所示。
由于各大手游模擬器中提供的虛擬環(huán)境都是高度定制的Android系統(tǒng),虛擬機(jī)設(shè)置也大相徑庭,攻擊者的移植只能在同類型的手游模擬器中進(jìn)行。因此,實(shí)施此類克隆攻擊時(shí),攻擊者需要準(zhǔn)備與受害者相同的手游模擬器環(huán)境作為移植載體,但對于已經(jīng)能實(shí)施克隆的攻擊者而言,獲取受害者的模擬器信息并準(zhǔn)備相應(yīng)的同款模擬器環(huán)境并不難實(shí)現(xiàn)。
與竊取憑證的克隆攻擊相比,此類克隆攻擊威脅程度更大,也更難以防范。首先,被克隆的虛擬環(huán)境中保存著全部App的登錄憑證、個(gè)人隱私等信息,一旦攻擊實(shí)施成功,攻擊者將獲得受害者手游模擬器中的全部個(gè)人信息。其次,對于模擬器中的App而言,它們并不能感知所處環(huán)境的變化,因?yàn)樽鳛槿萜鞯哪M器虛擬環(huán)境設(shè)置并未發(fā)生任何變化,改變的只是模擬器所處的外部PC環(huán)境,因而App無法通過簡單的設(shè)備一致性檢查方法來實(shí)現(xiàn)設(shè)備校驗(yàn),也很難發(fā)現(xiàn)外部PC環(huán)境的改變。
3 攻擊實(shí)驗(yàn)結(jié)果與分析
3.1 主流手游模擬器屬性
目前手游模擬器的國內(nèi)市場中騰訊手游助手占據(jù)了主要地位,市場規(guī)模同為前6名的手游模擬器還有網(wǎng)易MuMu、雷電模擬器、夜神模擬器、逍遙模擬器和藍(lán)疊模擬器。而在全球市場中,藍(lán)疊模擬器則占據(jù)了半壁江山[2]。本文對現(xiàn)有的6款主流Android手游模擬器屬性進(jìn)行研究,發(fā)現(xiàn)它們均開啟了adb調(diào)試,且系統(tǒng)已經(jīng)被root,其中藍(lán)疊模擬器的root權(quán)限默認(rèn)關(guān)閉,但可以通過修改cfg文件來開啟root權(quán)限。在實(shí)驗(yàn)過程中,我們也注意到主流手游模擬器除了可以定制模擬器的手機(jī)型號外,也對用戶開放了一些系統(tǒng)敏感信息的定制功能,如IMEI、電話號碼等。定制化的手機(jī)型號能夠讓游戲App針對手機(jī)型號設(shè)置更高的刷新率和畫質(zhì),而對于敏感信息的定制,我們推測這些功能的推出一定程度上可以讓用戶直接使用設(shè)備信息登錄某些App,提升用戶體驗(yàn)。
3.2 竊取憑證的克隆攻擊結(jié)果
本文收集了國內(nèi)各大安卓應(yīng)用市場和模擬器內(nèi)置應(yīng)用市場(豌豆莢、應(yīng)用寶等)中的游戲類App前10名,收集不重復(fù)的游戲App共46個(gè),除去無法在模擬器中運(yùn)行的手游外共獲得42個(gè)樣本,將這42款游戲分別安裝到雷電模擬器中作為被攻擊對象,并提前登錄賬戶,同時(shí)將另一臺(tái)PC設(shè)備上的雷電模擬器作為攻擊者環(huán)境,然后通過第2節(jié)中的方法竊取被攻擊對象的登錄憑證。如圖3所示,在受害者的模擬器內(nèi)登錄了游戲App“我的世界”后對其實(shí)施竊取憑證攻擊,在攻擊者的模擬器中利用竊取的憑證成功繞過了登錄檢查環(huán)節(jié),直接獲得了受害者賬戶的控制權(quán)。
實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),42款游戲App中有38款不能成功抵抗竊取憑證的克隆攻擊,僅有4款游戲App在啟動(dòng)環(huán)節(jié)會(huì)對此類攻擊進(jìn)行防御,無法直接登錄已保存的用戶狀態(tài),需要重新登錄。
3.3 針對模擬器的克隆攻擊結(jié)果
本實(shí)驗(yàn)同樣利用3.2節(jié)中的游戲App數(shù)據(jù)集進(jìn)行測試,與之搭配的還有6款主流的手游模擬器。在受害者和攻擊者環(huán)境中都安裝這6款模擬器,并選擇3.2節(jié)實(shí)驗(yàn)中能抵抗竊取憑證的克隆攻擊的4款游戲App和其他6款不能抵抗克隆攻擊的游戲App共10款進(jìn)行測試。由于很多游戲App可以用社交軟件賬號(如微信、QQ等)作為登錄方式,所以大多數(shù)用戶在模擬器上也會(huì)登錄自己的社交軟件賬號并保存登錄狀態(tài)[2],因此本次實(shí)驗(yàn)也將QQ和微信兩款社交類App作為測試對象。
我們利用前面提到的克隆攻擊方法對實(shí)驗(yàn)對象進(jìn)行針對模擬器的克隆攻擊,在6個(gè)受害者模擬器中提前登錄這12款A(yù)pp并保存登錄狀態(tài),然后對模擬器實(shí)施克隆攻擊。攻擊者與受害者采用兩套不同的硬件設(shè)備。實(shí)驗(yàn)發(fā)現(xiàn)6款手游模擬器均不能抵抗此類克隆攻擊,被攻擊的模擬器中的10款游戲App和2款社交App,在受到攻擊后仍保持著賬戶登錄的狀態(tài),并且如QQ等App可以在攻擊者和受害者設(shè)備上同時(shí)處于登錄狀態(tài),受害者不易通過登錄狀態(tài)察覺是否受到攻擊。實(shí)驗(yàn)說明,此類攻擊方法對于現(xiàn)有游戲App而言具有更大的威脅,現(xiàn)有的游戲App面對此類攻擊都無法有效進(jìn)行防御。盡管攻擊者使用的PC環(huán)境與受害者不同,但被攻擊的App缺乏對外層PC環(huán)境的感知能力,因而不能有效抵抗這類攻擊。
4 防護(hù)方案
4.1 針對竊取憑證攻擊的防護(hù)方案
抵御竊取憑證類的克隆攻擊可以借鑒已有的Android環(huán)境感知手段,因?yàn)榘l(fā)生此類攻擊時(shí),攻擊者的模擬器或者真機(jī)環(huán)境很難與受害者的完全一致,即便是攻擊者使用了與受害者完全相同的模擬器,但模擬器中仍有大量用戶可以自定義的設(shè)置,這些設(shè)置也會(huì)在模擬器系統(tǒng)中留下大量的定制痕跡,因而采用環(huán)境感知的方法進(jìn)行一致性判斷就能較好地防御此類攻擊。Costamagna等[15]對已有的Android模擬器進(jìn)行了大量調(diào)研,發(fā)現(xiàn)了存在許多的模擬器特征(如聯(lián)系人、短信等),這些特征結(jié)合形成的指紋就可以協(xié)助App進(jìn)行環(huán)境一致性檢查,從而達(dá)到防范竊取憑證的克隆攻擊。從第3節(jié)的實(shí)驗(yàn)結(jié)果也可以看出,部分App廠商已經(jīng)實(shí)現(xiàn)了對此類克隆攻擊的防御,因而此類克隆攻擊的防御可以基于一些已有工作進(jìn)行實(shí)現(xiàn)。
4.2 針對克隆模擬器的防護(hù)方案
對于更難檢測的針對模擬器的克隆攻擊,通過直接檢測模擬器特征進(jìn)行防御能力十分有限。但通常攻擊者的物理設(shè)備環(huán)境與受害者很難保證完全一致,因而我們可以通過側(cè)信道的方式來對運(yùn)行App的模擬器的外部硬件數(shù)據(jù)進(jìn)行采集,從而形成物理設(shè)備的側(cè)信道數(shù)據(jù)指紋,利用指紋來鑒別模擬器外部環(huán)境的改變從而實(shí)現(xiàn)防御策略。指紋檢測的模塊可以融入App中,在登錄環(huán)節(jié)實(shí)施采集并保存在服務(wù)端中,從而幫助開發(fā)者在App層面實(shí)現(xiàn)防護(hù)。
這里的指紋信息可以包括但不限于模擬器的CPU性能、內(nèi)存讀寫性能、存儲(chǔ)讀寫性能以及GPU性能等。底層的物理設(shè)備差異會(huì)導(dǎo)致這些性能數(shù)據(jù)的差異,利用這些特征組成的指紋信息可以判斷App是否遭到了克隆攻擊,同時(shí),越多的特征越能提高判別的準(zhǔn)確性。
在選取特征時(shí)主要考慮三個(gè)方面的因素,第一是特征需要具備代表性,同一特征在不同的硬件平臺(tái)上需要表現(xiàn)較大的差異性,例如CPU主頻就可以作為特征之一,因?yàn)樵诓煌布脚_(tái)上CPU主頻往往會(huì)具有一定的差異性;第二是特征需要能在模擬器內(nèi)進(jìn)行采集,考慮采取防御措施的主體是運(yùn)行在模擬器內(nèi)的App,因而所有的特征收集工作都應(yīng)能在模擬器內(nèi)進(jìn)行實(shí)現(xiàn),有些參數(shù)信息雖然極具辨識(shí)度(例如具體的硬件型號等),但無法在模擬器中進(jìn)行獲取,因而也不能作為特征;第三是特征需要具備穩(wěn)定性,穩(wěn)定的特征可以避免頻繁的波動(dòng),減小最終結(jié)果的誤判率。
考慮以上三方面的因素,初步選取了單核性能、多核性能、頁錯(cuò)誤速率、上下文切換速率、CPU遷移速率作為CPU特征,選取讀、寫速度作為內(nèi)存特征,選取順序讀、順序?qū)?、隨機(jī)讀、隨機(jī)寫速度作為存儲(chǔ)特征,選取OpenGL測試結(jié)果作為GPU特征。最終防護(hù)方案的檢測流程如圖4所示。
我們在每次App啟動(dòng)的自動(dòng)登錄環(huán)節(jié)加入指紋檢測的模塊,對所有特征進(jìn)行采集并按一定的權(quán)重進(jìn)行加權(quán)得到新的指紋。如果App是第一次啟動(dòng),那么只進(jìn)行指紋保存。將前后兩次采集的指紋進(jìn)行比較,得到的差異結(jié)果如果小于特定的閾值,那么可以認(rèn)為模擬器所處環(huán)境并未發(fā)生改變,可以更新指紋并進(jìn)入App后續(xù)環(huán)節(jié),反之一旦出現(xiàn)了新指紋與原有指紋差異較大的情況,則不予登錄并清空用戶憑證等相關(guān)信息,從而保障用戶的賬戶安全。
接下來,我們將通過一系列實(shí)驗(yàn)來對各項(xiàng)特征進(jìn)行考察,根據(jù)不同特征的可靠性、穩(wěn)定性和靈敏度賦予相應(yīng)權(quán)重,最終形成一套準(zhǔn)確可靠的指紋,同時(shí)也將根據(jù)具體的實(shí)驗(yàn)結(jié)果,選取用于區(qū)分不同指紋的合理閾值,形成完整的防護(hù)方案。
5 防護(hù)實(shí)驗(yàn)驗(yàn)證
我們設(shè)計(jì)了多個(gè)實(shí)驗(yàn)來驗(yàn)證4.2中防護(hù)方案的有效性。首先,對四大類特征進(jìn)行實(shí)驗(yàn),分別測試每一項(xiàng)具體特征在不同PC環(huán)境中表現(xiàn)的差異,拋棄不合適的特征,選取具有代表性的特征形成指紋;其次,考慮攻擊者的PC也可能采用與受害者完全相同的硬件型號,我們也將測試這些特征在完全相同型號的PC環(huán)境中是否產(chǎn)生較大差異;最后,我們根據(jù)實(shí)驗(yàn)結(jié)果對特征設(shè)置權(quán)重并組成指紋,選取合適的閾值以保證能夠準(zhǔn)確檢測出克隆攻擊導(dǎo)致的模擬器外部環(huán)境變化,同時(shí)不產(chǎn)生誤判。
我們在5臺(tái)PC設(shè)備上的雷電模擬器中展開測試,其中PC1~PC4在硬件方面存在差異,PC4與PC5硬件規(guī)格相同,以此模擬不同的攻擊情景。具體屬性如表1所示。
考慮主板、電源等因素會(huì)導(dǎo)致硬件實(shí)際工作頻率與標(biāo)定頻率存在差異,因此在實(shí)驗(yàn)環(huán)節(jié)中,通過BIOS修改CPU主頻和內(nèi)存頻率進(jìn)行了多次實(shí)驗(yàn),測試硬件所有可能的工作狀態(tài)并統(tǒng)計(jì)結(jié)果。同時(shí),為了使實(shí)驗(yàn)環(huán)境接近真實(shí)的用戶環(huán)境,在實(shí)驗(yàn)過程中也會(huì)考慮模擬器外的PC中運(yùn)行的其他程序?qū)δM器內(nèi)的性能影響。我們進(jìn)行對比實(shí)驗(yàn)來分別觀察模擬器外的程序造成的影響,并找到對于每一項(xiàng)特征合適的權(quán)重。
5.1 CPU特征實(shí)驗(yàn)
對單核性能與多核性能的測試,采用安兔兔(https:∥soft.antutu.com)中的CPU測試模塊對不同PC平臺(tái)中的模擬器進(jìn)行CPU性能測試,測試內(nèi)容分為單核性能與多核性能兩項(xiàng)。我們對每塊CPU進(jìn)行了修改主頻的多次測量,得到了單核與多核的性能測試結(jié)果,如圖5所示。從圖5可以看出,無論是單核還是多核性能測試,每塊CPU都表現(xiàn)出了較大的差異,且頻率越接近CPU的正常工作頻率時(shí)差異越大。同時(shí)也發(fā)現(xiàn)即使PC3的CPU單核性能比PC2更優(yōu)秀,但多核性能卻不如后者,因此可以將單核性能測試結(jié)果和多核性能測試結(jié)果作為兩個(gè)不同的特征。
利用Simpleperf測量CPU其他三項(xiàng)特征:頁錯(cuò)誤、上下文切換、CPU遷移,結(jié)合壓力測試工具StabilityTest。我們使用壓力測試工具使模擬器內(nèi)的CPU使用一直處于滿負(fù)荷狀態(tài),同時(shí)監(jiān)測CPU的變化情況,得到平均每秒發(fā)生的頁錯(cuò)誤、上下文切換、CPU遷移數(shù)量,同時(shí)結(jié)合CPU的不同頻率進(jìn)行了多次實(shí)驗(yàn),得到了如圖6所示的實(shí)驗(yàn)結(jié)果。
實(shí)驗(yàn)表明頁錯(cuò)誤速率與CPU遷移速率表現(xiàn)出了與單核、多核類似的特點(diǎn),不同CPU在不同主頻下均會(huì)有差異明顯的表現(xiàn),且頻率越接近CPU的正常工作頻率時(shí)差異越明顯,所以可以將這兩項(xiàng)指標(biāo)作為特征。而上下文切換速率方面,多臺(tái)PC的CPU表現(xiàn)出了相近的結(jié)果,不適合作為指紋特征。
考慮模擬器外部運(yùn)行的其他程序可能造成的性能影響,我們進(jìn)行了外部PC不同負(fù)載下的對比實(shí)驗(yàn)。我們使用Super PI程序讓CPU的若干個(gè)核心處于滿負(fù)載狀態(tài),得到了如圖7所示的結(jié)果,其中橫坐標(biāo)的值表示PC中滿負(fù)載的CPU線程數(shù)量,縱坐標(biāo)的值代表在該負(fù)載情況下,特征的性能表現(xiàn)占無負(fù)載情況下的百分比。實(shí)驗(yàn)在4臺(tái)不同的PC中進(jìn)行,取其中下降幅度最大的作為實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)滿負(fù)載的線程數(shù)量與模擬器占用線程數(shù)量(模擬器通常為4個(gè))之和小于CPU的總線程數(shù)量時(shí),單核性能的下降幅度較小,均在8%以內(nèi)。而多核測試結(jié)果受外部影響較大,在外部負(fù)載為6時(shí)下降了16.5%,因此單核性能具有更好的穩(wěn)定性。與單核、多核性能不同的是,外部程序的高負(fù)載對頁錯(cuò)誤和CPU遷移速率的影響不大,結(jié)果下降不明顯。
除模擬器外部程序的影響外,CPU特征本身的測量也會(huì)存在一定的波動(dòng)。我們統(tǒng)計(jì)了不同CPU特征的波動(dòng)情況,對每項(xiàng)特征進(jìn)行了10次測量,將所有測量結(jié)果進(jìn)行歸一化,在PC1中測量的CPU特征波動(dòng)情況如圖8所示??梢钥闯龀嗪诵阅芡獾娜?xiàng)特征波動(dòng)都很小,均在5%以內(nèi),多核性能的波動(dòng)可能超過5%但不超過10%。對其他幾臺(tái)PC也進(jìn)行實(shí)驗(yàn),得到了相同的實(shí)驗(yàn)結(jié)果。
考慮PC在實(shí)際使用過程中很少能夠同時(shí)運(yùn)行大量的高CPU占用程序,且根據(jù)已有的玩家硬件調(diào)查報(bào)告數(shù)據(jù)(https:∥store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam?l=schinese)來看,截至2023年6月,Windows平臺(tái)下CPU物理核心數(shù)小于4的用戶僅占8.43%。線程小于4的用戶數(shù)量僅占0.15%,絕大多數(shù)玩家的硬件配置可以保障測試結(jié)果的穩(wěn)定性。綜合上述實(shí)驗(yàn)結(jié)果,我們可以將穩(wěn)定性較好、區(qū)分度較大的單核性能特征的權(quán)重設(shè)為15,與之對應(yīng)的多核設(shè)為10。另一方面雖然頁錯(cuò)誤速率與CPU遷移速率具有不錯(cuò)的穩(wěn)定性,但這兩項(xiàng)特征與單核性能具有一定的相關(guān)性,且靈敏度較低,因此不適合作為大權(quán)重的特征項(xiàng)。綜合比較后我們將頁錯(cuò)誤速率和CPU遷移速率的權(quán)重設(shè)為5。
5.2 內(nèi)存特征實(shí)驗(yàn)
在內(nèi)存特征方面,影響內(nèi)存讀、寫速度的因素有很多,內(nèi)存條的顆粒質(zhì)量、頻率、容量、位寬和時(shí)序等因素都會(huì)影響最終的讀和寫的速度,因而即便是同一廠商的內(nèi)存產(chǎn)品也會(huì)存在性能差異。此外,在實(shí)際環(huán)境中使用的內(nèi)存頻率也與主板等其他硬件相關(guān),因此我們針對每個(gè)內(nèi)存條都進(jìn)行了多次不同頻率的測試。我們采用安兔兔中的內(nèi)存測試模塊對四臺(tái)PC設(shè)備中的模擬器進(jìn)行內(nèi)存讀、寫性能測試,得到了如圖9所示的結(jié)果。其中PC4所用的內(nèi)存頻率最高為3 000MHz,其余為3 200MHz。可以看出,對于同一內(nèi)存其性能測試結(jié)果與頻率呈較為明顯的正相關(guān),而不同內(nèi)存即使在同一頻率下也會(huì)有較為明顯的性能差異,特征具有較大的區(qū)分度。
在特征穩(wěn)定性方面,我們進(jìn)行了多次重復(fù)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明內(nèi)存讀、寫速度的測量波動(dòng)均小于3%,穩(wěn)定性較好。考慮模擬器外部應(yīng)用程序可能產(chǎn)生的影響,我們也對比測試了PC內(nèi)存高負(fù)載的情況,發(fā)現(xiàn)了外部應(yīng)用程序的確會(huì)影響模擬器內(nèi)的內(nèi)存性能測試結(jié)果。當(dāng)PC環(huán)境中除模擬器外的內(nèi)存占用少于20%時(shí),實(shí)驗(yàn)結(jié)果幾乎無變化,當(dāng)內(nèi)存占用達(dá)到70%時(shí),內(nèi)存性能會(huì)產(chǎn)生11%~15%的下降,但差異仍小于圖9中不同內(nèi)存之間的差異??紤]實(shí)際情況中內(nèi)存很少出現(xiàn)接近滿占用的情況,我們可以將內(nèi)存讀、寫性能作為特征,且設(shè)置15的權(quán)重。
5.3 存儲(chǔ)特征實(shí)驗(yàn)
在測試存儲(chǔ)特征方面,我們主要從以下四個(gè)維度進(jìn)行:順序讀、順序?qū)?、隨機(jī)讀、隨機(jī)寫。這四個(gè)維度可以作為模擬器存儲(chǔ)的評測指標(biāo)。由于模擬器存儲(chǔ)的實(shí)際介質(zhì)是PC中的硬盤,因而實(shí)際物理硬盤的性能將直接影響測試的結(jié)果。PC中使用的硬盤大體上可以分為機(jī)械硬盤和固態(tài)硬盤兩類,前者相較于后者容量更大但速度更慢。同時(shí),已使用時(shí)長、硬件存儲(chǔ)介質(zhì)(機(jī)械硬盤的磁盤和固態(tài)硬盤的顆粒)的質(zhì)量都會(huì)影響讀、寫的實(shí)際速度,因此存儲(chǔ)特征會(huì)有較大的區(qū)分度。我們對四臺(tái)PC分別在模擬器內(nèi)進(jìn)行了存儲(chǔ)能力的測試,多次實(shí)驗(yàn)后取每項(xiàng)速度的平均值作為結(jié)果,實(shí)驗(yàn)結(jié)果如表2所示。
從實(shí)驗(yàn)結(jié)果可以看出與存儲(chǔ)相關(guān)的四項(xiàng)特征在不同PC的模擬器中均表現(xiàn)出較大的差異,如隨機(jī)讀速度方面PC3與PC4的速度相差很大。各項(xiàng)數(shù)據(jù)之間并不存在完全的相關(guān)性,如PC1的順序讀速度幾乎是PC3的三倍,而隨機(jī)讀卻不及PC3的一半,實(shí)際環(huán)境中不同硬盤間的性能也的確存在較大差距。這也和實(shí)際環(huán)境中硬盤屬性相關(guān)較大相符。
在穩(wěn)定性方面,經(jīng)過多次重復(fù)測試,發(fā)現(xiàn)四項(xiàng)特征均存在一定的測量波動(dòng),但波動(dòng)幅度均不超過8%。同時(shí),考慮模擬器外部的磁盤占用對性能的影響,我們又測試了在進(jìn)行模擬器外部數(shù)據(jù)讀、寫時(shí)的模擬器內(nèi)存儲(chǔ)性能。我們利用移動(dòng)硬盤等設(shè)備與PC交互進(jìn)行讀、寫,模擬真實(shí)的磁盤高占用情況。當(dāng)磁盤全速讀、寫時(shí),模擬器內(nèi)的存儲(chǔ)性能發(fā)生了較為明顯的下降,在順序讀、寫方面分別下降了14%~26%、8%~12%,而隨機(jī)讀、寫方面的性能下降均小于5%。考慮不同存儲(chǔ)設(shè)備性能本身可能存在多達(dá)數(shù)倍的差異,不宜設(shè)置過大的權(quán)重,綜合考量后,我們將存儲(chǔ)的四項(xiàng)特征權(quán)重設(shè)為5、5、10、10。
5.4 GPU特征實(shí)驗(yàn)
在GPU測試方面,不同PC間的測試結(jié)果同樣展現(xiàn)出了較大的差異,我們利用OpenGL測試程序?qū)λ呐_(tái)PC中的雷電模擬器進(jìn)行GPU測試,如表3所示。從實(shí)驗(yàn)結(jié)果我們可以看出,GPU硬件差異對模擬器的性能有著較大的影響,即便是實(shí)際性能非常接近的Nvidia MX450與AMD RX560,在測試中也表現(xiàn)出了一定的差異。
與CPU不同,GPU產(chǎn)品的性能跨度非常大,即使是市面上同時(shí)在售的GPU產(chǎn)品,也會(huì)存在巨大的性能差異,因此GPU特征具有較高的靈敏度。考慮用戶正常使用模擬器時(shí),模擬器是使用GPU的主要程序,PC中存在的其他后臺(tái)程序?qū)PU的影響可以忽略,結(jié)合不同GPU之間較大的差異情況,我們將GPU測試的權(quán)重設(shè)為20。結(jié)果發(fā)現(xiàn)即使是普通GPU,在運(yùn)行手游模擬器時(shí)仍能表現(xiàn)出高于各類旗艦手機(jī)的性能,這也再次證明了使用手游模擬器的確能給用戶帶來性能提升的體驗(yàn)。
5.5 相同型號的硬件實(shí)驗(yàn)
考慮實(shí)際情況中可能出現(xiàn)攻擊者與受害者PC硬件型號相同的情況,我們對與PC4硬件型號完全相同的PC5再次進(jìn)行了各項(xiàng)實(shí)驗(yàn),平均結(jié)果如圖10所示(將PC4正常工作時(shí)的性能視為100%)。
從結(jié)果中我們可以發(fā)現(xiàn),即使完全相同的硬件型號,也可能因?yàn)橹T如芯片體質(zhì)、使用壽命損耗、散熱情況等多方面復(fù)雜因素而表現(xiàn)出不同的性能,差別較為明顯。因此在我們的防護(hù)方案下,即使攻擊者采用了與受害者完全一致的硬件環(huán)境,我們通過檢測特征變化仍能檢測到環(huán)境變化。
5.6 實(shí)驗(yàn)評估
為了確保各項(xiàng)實(shí)驗(yàn)數(shù)據(jù)的可靠性以及模擬真實(shí)環(huán)境中時(shí)間對硬件設(shè)備的影響,我們在間隔2周后重復(fù)了上述實(shí)驗(yàn),所有的實(shí)驗(yàn)結(jié)果數(shù)據(jù)與原數(shù)據(jù)相差均不超過5%,除存儲(chǔ)特征外其他特征數(shù)據(jù)與原數(shù)據(jù)相差均不超過3%,這表明了在一定時(shí)間內(nèi),我們提出的方法具有很高的可靠性。根據(jù)上述實(shí)驗(yàn)結(jié)果,對每個(gè)特征賦予的權(quán)重如表4所示。
根據(jù)4.2節(jié)中的防御思路,可以通過表4中的權(quán)重計(jì)算數(shù)值化差異s,即
s=∑wi×min(Δi,Δmax),
其中:wi為每一項(xiàng)的權(quán)重;Δi為相對變化量(百分比)并取其絕對值,同時(shí)為了避免在特殊情況下某一項(xiàng)特征過大的變化差異導(dǎo)致防護(hù)方案的誤判,在計(jì)算s時(shí)我們對每一項(xiàng)特征的變化量設(shè)置最大值Δmax為0.5,當(dāng)Δi的絕對值超過Δmax時(shí)取Δmax。根據(jù)實(shí)驗(yàn)結(jié)果,同一臺(tái)PC中的模擬器由于時(shí)間變化而導(dǎo)致的s均小于5,而不同型號硬件的環(huán)境下s最小也超過了20,且即使完全相同硬件型號的PC環(huán)境s也達(dá)到了14以上,因此我們將設(shè)定閾值為10,當(dāng)s小于閾值時(shí)可以認(rèn)為模擬器的外部硬件環(huán)境沒有發(fā)生變化,同時(shí)更新指紋,反之則認(rèn)為外部硬件環(huán)境發(fā)生改變,從而采取相應(yīng)的防御措施(取消用戶自動(dòng)登錄憑證等)。
我們將PC1~PC5分別作為受害者與攻擊者再次進(jìn)行實(shí)驗(yàn),根據(jù)表4中的權(quán)重計(jì)算s,實(shí)驗(yàn)結(jié)果如表5所示,表中行及列相同時(shí)沒有進(jìn)行攻擊,但也進(jìn)行了檢測以表明每次檢測中可能產(chǎn)生的正常浮動(dòng)。
我們更換不同的其他5款手游模擬器再次進(jìn)行實(shí)驗(yàn),也得到了類似的結(jié)果,均未出現(xiàn)誤報(bào)與漏報(bào)的情況。實(shí)驗(yàn)結(jié)果表明,不同PC中的s變化均超過14,大于閾值;同一PC的s變化在一定時(shí)間(2周)內(nèi)均不超過9,小于閾值。其中3.3節(jié)中的攻擊實(shí)驗(yàn)的重復(fù)實(shí)驗(yàn)攻擊前后的s變化達(dá)到了32.6,遠(yuǎn)高于閾值,這些都證明了我們閾值的合理性。
實(shí)驗(yàn)中PC2未受到攻擊時(shí)出現(xiàn)了s達(dá)到8.7,接近閾值的情況,因而在實(shí)際環(huán)境下,我們的防御方案有可能會(huì)出現(xiàn)克隆攻擊誤判的結(jié)果,但從保障用戶賬戶安全的角度出發(fā),減少漏報(bào)更為關(guān)鍵,因?yàn)橐坏┞﹫?bào)攻擊,賬戶就可能面臨不可挽回的巨大損失。綜合來看,我們設(shè)置較小的閾值(10)的確可能會(huì)在某些未發(fā)生攻擊的情況下取消自動(dòng)登錄,降低用戶體驗(yàn),但這樣保守的策略大幅提升了App在面臨克隆攻擊時(shí)的防御能力。在開發(fā)者將我們的防御方案應(yīng)用到App中時(shí),也可以根據(jù)實(shí)際情況再次調(diào)整差異化閾值,以滿足安全性和用戶體驗(yàn)間平衡的需要。此外,對于超過2周未進(jìn)行連續(xù)登錄的情況,可能出現(xiàn)的其他方面的賬號安全隱患也很多,這種情況下即使s小于閾值,讓用戶重新進(jìn)行登錄操作也是一種更加安全的策略。
6 其他可行的防護(hù)方案
在手游模擬器側(cè)進(jìn)行防御也是一種可行的防御方案,模擬器既可以通過采集環(huán)境指紋并在啟動(dòng)時(shí)進(jìn)行設(shè)備一致性判斷來進(jìn)行防御,也可以采用與傳統(tǒng)PC軟件類似的防盜版手段[16-18]來防止自身被克隆盜用。在面對克隆攻擊時(shí),模擬器本身也可能是被攻擊的對象,因而模擬器的開發(fā)人員也理應(yīng)對克隆攻擊進(jìn)行積極防御。
7 總結(jié)與展望
本文提出了兩種克隆攻擊方式,竊取手游模擬器內(nèi)App憑證的克隆攻擊和針對模擬器的克隆攻擊。同時(shí)本文也提出了基于側(cè)信道方法檢測硬件指紋的防御方案。實(shí)驗(yàn)證明,現(xiàn)有App并不能很好地防御克隆攻擊,而本文提出的防御方案有效、可靠,可以在App層面進(jìn)行實(shí)現(xiàn)。未來我們的方案是進(jìn)行更多特征維度的拓展,可以加入更多的特征來提高指紋的精確性,降低誤報(bào)率。
參考文獻(xiàn):
[1] 孫彥博. 中國手機(jī)操作系統(tǒng)行業(yè)研究報(bào)告[R]. 南京: 頭豹研究院, 2021.
SUN Y B. Research report on China′s mobile operating system industry [R]. Nanjing: Toubao Research Institute, 2021.
[2] 廖旭華. 手游模擬器市場綜合分析2020[EB/OL]. (2021-01-21)[2023-01-02]. https:∥www.analysys.cn/article/detail/20020032.
LIAO X H. Comperhensive analysis of bobile game emulator market 2020 [EB/OL]. (2021-01-21)[2023-01-02]. https:∥www.analysys.cn/article/detail/20020032.
[3] BARHAM P, DRAGOVIC B, FRASER K, et al. Xen and the art of virtualization[J]. ACM SIGOPS operating systems review, 2003, 37(5): 164-177.
[4] BARR K, BUNGALE P, DEASY S, et al. The VMware mobile virtualization platform[J]. ACM SIGOPS operating systems review, 2010, 44(4): 124-135.
[5] ANDRUS J, DALL C, VAN′T HOF A, et al. Cells: a virtual mobile smartphone architecture[C]∥Proceedings of the 23rd ACM Symposium on Operating Systems Principles. New York: ACM Press, 2011: 173-187.
[6] YOON J, LEE S J. A Study on android emulator detection for mobile game security[J]. Journal of the Korea institute of information security and cryptology, 2015, 25(5): 1067-1075.
[7] XU F H, SHEN S Y, DIAO W R, et al. Android on PC: on the security of end-user android emulators[C]∥Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. New York: ACM Press, 2021: 1566-1580.
[8] JING Y M, ZHAO Z M, AHN G J, et al. Morpheus: automatically generating heuristics to detect Android emulators[C]∥Proceedings of the 30th Annual Computer Security Applications Conference. New York: ACM Press, 2014: 216-225.
[9] SAHIN O, COSKUN A K, EGELE M. Proteus: detecting android emulators from instruction-level profiles[M]∥Research in Attacks, Intrusions, and Defenses. Cham: Springer International Publishing, 2018: 3-24.
[10]ALZAYLAEE M K, YERIMA S Y, SEZER S. Emulator vs real phone: android malware detection using machine learning[C]∥Proceedings of the 3rd ACM on International Workshop on Security and Privacy Analytics. New York: ACM Press, 2017: 65-72.
[11]GUERRA-MANZANARES A, BAHSI H, NMM S. Differences in android behavior between real device and emulator: a malware detection perspective[C]∥International Conference on Internet of Things: Systems, Management and Security. Piscataway: IEEE Press, 2019: 399-404.
[12]CHO J, KIM D, KIM H. User credential cloning attacks in android applications: exploiting automatic login on android apps and mitigating strategies[J]. IEEE consumer electronics magazine, 2018, 7(3): 48-55.
[13]CHOI J, CHO H, YI J. Personal information leaks with automatic login in mobile social network services[J]. Entropy, 2015, 17(6): 3947-3962.
[14]PARK S, SEO C, YI J H. Cyber threats to mobile messenger apps from identity cloning[J]. Intelligent automation & soft computing, 2016, 22(3): 379-387.
[15]COSTAMAGNA V, ZHENG C, HUANG H Q. Identifying and evading android sandbox through usage-profile based fingerprints[C]∥Proceedings of the First Workshop on Radical and Experiential Security. New York: ACM Press, 2018: 17-23.
[16]曾文獻(xiàn), 和志強(qiáng), 孫立輝. 淺析軟件產(chǎn)品防盜版技術(shù)及實(shí)現(xiàn)[J]. 河北省科學(xué)院學(xué)報(bào), 2004, 21(2): 54-56, 61.
ZENG W X, HE Z Q, SUN L H. Elementary analysis of technology and reality of preventing piratic software[J]. Journal of the Hebei academy of sciences, 2004, 21(2): 54-56, 61.
[17]魯寧. 軟件防拷貝技術(shù)研究與應(yīng)用[J]. 河北工業(yè)科技, 2008, 25(4): 247-249.
LU N. Technology research and application of preventing pirate software[J]. Hebei journal of industrial science and technology, 2008, 25(4): 247-249.
[18]雷尊國. 軟件版權(quán)保護(hù)技術(shù)的研究及應(yīng)用實(shí)踐[D]. 成都: 電子科技大學(xué), 2012.
LEI Z G. Research and implemention of software copyright protection[D]. Chengdu: University of Electronic Science and Technology of China, 2012.