亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Cordova應(yīng)用中跨域訪問行為的識(shí)別與風(fēng)險(xiǎn)評(píng)估

        2020-03-11 12:50:52莫芊芊
        關(guān)鍵詞:資源

        莫芊芊 張 源

        (復(fù)旦大學(xué)軟件學(xué)院 上海 201203)

        0 引 言

        混合模式移動(dòng)應(yīng)用(Hybrid App,以下簡(jiǎn)稱為混合移動(dòng)應(yīng)用)憑借著跨平臺(tái)開發(fā)和優(yōu)秀的交互體驗(yàn)吸引了大批開發(fā)人員。與此同時(shí),市面上出現(xiàn)了數(shù)十種混合移動(dòng)開發(fā)框架,這些框架幫助開發(fā)者快速簡(jiǎn)便地創(chuàng)建和部署混合移動(dòng)應(yīng)用。在這些混合移動(dòng)應(yīng)用框架中,Cordova[1]是目前市場(chǎng)上占有率最高的混合移動(dòng)應(yīng)用開發(fā)框架。通過提供一組JavaScript API,Cordova框架可以支持Web代碼訪問移動(dòng)設(shè)備的底層資源。

        本文發(fā)現(xiàn)Cordova應(yīng)用中存在跨域訪問的安全隱患,該問題源于Cordova框架提供的一個(gè)插件InAppBrowser。該插件用于加載和渲染網(wǎng)頁(yè),并且支持開發(fā)者的定制擴(kuò)展。本文發(fā)現(xiàn)該插件提供了一組API,使得Cordova應(yīng)用可以操縱任意已加載的Web資源,例如,應(yīng)用可以調(diào)用executeScript向已加載的網(wǎng)頁(yè)注入任意JavaScript代碼并得到返回值。然而,Cordova框架并未提供相應(yīng)的保護(hù)策略,因此Cordova應(yīng)用可以利用這些API操縱任意的Web資源,即使這些資源不歸應(yīng)用所有。例如,一個(gè)惡意應(yīng)用利用InAppBrowser加載了URL為“www.facebook.com”的網(wǎng)頁(yè),并調(diào)用executeScript方法向網(wǎng)頁(yè)注入惡意代碼,不僅可以竊取Facebook所有用戶的隱私數(shù)據(jù),而且難以被Facebook和用戶所察覺??偠灾?,由Cordova框架提供的具有訪問Web資源能力的API將對(duì)用戶的隱私數(shù)據(jù)帶來嚴(yán)重的安全風(fēng)險(xiǎn)。此外,由于Cordova框架是其他眾多混合應(yīng)用開發(fā)框架的核心組件,包括PhoneGap、Ionic和AppBuilder等,所以影響范圍將進(jìn)一步擴(kuò)大。

        針對(duì)這一問題,本文系統(tǒng)性研究如何大規(guī)模地分析和識(shí)別Cordova應(yīng)用中存在的跨域訪問行為。雖然跨域訪問的安全問題由前人總結(jié)提出,但是尚未有研究工作面向Cordova應(yīng)用展開。而且由于Cordova應(yīng)用和原生移動(dòng)應(yīng)用存在本質(zhì)上的區(qū)別,所以前人提出的跨域訪問行為檢測(cè)方法無法適用于分析大規(guī)模的Cordova應(yīng)用。本文的工作面臨以下三個(gè)挑戰(zhàn):定義Cordova應(yīng)用中的域特征;判斷一個(gè)訪問行為是否是跨域行為;自動(dòng)化地評(píng)估跨域行為的風(fēng)險(xiǎn)性。為了解決這些挑戰(zhàn),本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)自動(dòng)化檢測(cè)工具COCAScanner。該工具可以批量檢測(cè)Cordova應(yīng)用中的跨域訪問行為,并對(duì)這些行為進(jìn)行風(fēng)險(xiǎn)評(píng)估,以減少人工分析的工作量。不僅僅是Cordova應(yīng)用,本文提出的分析方法同樣適用于其他混合移動(dòng)應(yīng)用開發(fā)框架中的跨域訪問行為檢測(cè)。本文使用COCAScanner分析了Google Play中的7 791個(gè)Cordova應(yīng)用,發(fā)現(xiàn)10.5%的Cordova應(yīng)用中存在跨域訪問行為,并且其中13.1%的Cordova應(yīng)用具有高風(fēng)險(xiǎn)。通過人工分析,本文發(fā)現(xiàn)了一個(gè)惡意應(yīng)用和多個(gè)高風(fēng)險(xiǎn)應(yīng)用。在整個(gè)實(shí)驗(yàn)過程中,COCAScanner的跨域行為判斷的準(zhǔn)確率為83%和86.9%,判斷無風(fēng)險(xiǎn)行為的準(zhǔn)確率和召回率分別為91.4%和87%。

        1 背景與相關(guān)工作

        1.1 混合移動(dòng)應(yīng)用中的安全問題

        許多研究者發(fā)現(xiàn)在混合移動(dòng)應(yīng)用中的安全漏洞會(huì)危及所在設(shè)備的私有資源。文獻(xiàn)[3-4]發(fā)現(xiàn)了在混合移動(dòng)應(yīng)用框架中Web端和App端之間的通信渠道存在漏洞,使得在惡意網(wǎng)頁(yè)可以利用通信渠道訪問移動(dòng)設(shè)備的私有資源。他們調(diào)研了大規(guī)模的PhoneGap應(yīng)用,證實(shí)該漏洞存在并有效。文獻(xiàn)[5]提出了一個(gè)框架,使得開發(fā)人員可以限制第三方插件的權(quán)限,阻止惡意插件得到過高的權(quán)限。混合移動(dòng)應(yīng)用中核心組件WebView的安全問題一直是近幾年來的研究熱點(diǎn)。一方面,文獻(xiàn)[6-9]指出開發(fā)者在WebView中增加的Java接口可被惡意網(wǎng)頁(yè)利用來竊取移動(dòng)應(yīng)用的私有文件或進(jìn)行越權(quán)操作。文獻(xiàn)[10]發(fā)現(xiàn)惡意網(wǎng)頁(yè)可以利用HTML5 API通過WebView獲得地理位置等隱私信息。為了減少這類安全隱患,文獻(xiàn)[11-12]提出了細(xì)粒度的訪問控制策略,用于保護(hù)應(yīng)用和設(shè)備的資源。另一方面,文獻(xiàn)[13-14]發(fā)現(xiàn)惡意的移動(dòng)應(yīng)用可以利用WebView向它所加載的Web網(wǎng)頁(yè)注入JavaScript代碼,以此來監(jiān)聽和攔截網(wǎng)頁(yè)跳轉(zhuǎn),甚至竊取網(wǎng)頁(yè)資源。而文獻(xiàn)[15]把前人提出的由移動(dòng)應(yīng)用端攻擊Web網(wǎng)頁(yè)端的安全問題歸類為WebView的跨域訪問問題,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)自動(dòng)化檢測(cè)工具XPMChecker。通過分析80 694個(gè)安卓應(yīng)用,他們發(fā)現(xiàn)接近半數(shù)的Web資源訪問行為是跨域訪問行為,并且找到了數(shù)十個(gè)惡意應(yīng)用跨域攻擊知名網(wǎng)站的資源。

        1.2 Cordova框架及原理

        Cordova框架用于開發(fā)混合移動(dòng)應(yīng)用,目前主流的移動(dòng)應(yīng)用開發(fā)模式可以分為三種:原生移動(dòng)應(yīng)用(Native Apps)、Web移動(dòng)應(yīng)用(Web-Based Apps)和混合移動(dòng)應(yīng)用。原生移動(dòng)應(yīng)用能夠最大程度地利用平臺(tái)的優(yōu)勢(shì)為用戶提供全面的功能,然而它的開發(fā)成本很高,而且App版本更新時(shí)需要重新下載安裝包手動(dòng)更新。而Web移動(dòng)應(yīng)用的本質(zhì)是一個(gè)運(yùn)行在移動(dòng)瀏覽器上的Web應(yīng)用,因此開發(fā)成本較低。然而它無法使用設(shè)備的硬件接口和原生組件,很多功能無法實(shí)現(xiàn)。而混合移動(dòng)應(yīng)用兼?zhèn)淞饲皟深悜?yīng)用的優(yōu)勢(shì),其本質(zhì)和Web移動(dòng)應(yīng)用類似,但是它提供了一套Web語言和原生語言的通信機(jī)制,使得訪問移動(dòng)平臺(tái)的原生組件和設(shè)備資源變得可能。所以它可以為用戶提供更加豐富的功能,同時(shí)又可以大幅度地降低開發(fā)成本。

        如圖1所示,Cordova框架包涵3個(gè)主要模塊:Web App模塊,WebView模塊和插件模塊。Web App是應(yīng)用程序的邏輯代碼所在部分,由HTML、JavaScript和CSS語言編寫。Cordova WebView與移動(dòng)系統(tǒng)提供的原生組件WebView[2]不同,除了具備基礎(chǔ)的渲染網(wǎng)頁(yè)的功能外,還提供一組標(biāo)準(zhǔn)的JavaScript API(圖1中的Native API)讓開發(fā)者使用Cordova插件。Cordova插件為移動(dòng)平臺(tái)的原生組件提供了通信接口,并且綁定了對(duì)應(yīng)組件的API調(diào)用,使得開發(fā)者可以使用JavaScript調(diào)用原生方法。Cordova官方提供了一套移動(dòng)系統(tǒng)核心功能的插件,包括相機(jī)、內(nèi)置瀏覽器等,也允許開發(fā)者擴(kuò)展自定義的插件。

        圖1 Cordova的總體架構(gòu)

        2 Cordova應(yīng)用中的跨域訪問行為

        2.1 跨域行為的安全問題

        移動(dòng)應(yīng)用的跨域訪問行為由文獻(xiàn)[15]首次提出,用于描述移動(dòng)應(yīng)用訪問Web資源的行為。為了清楚地描述這個(gè)行為,本文需要對(duì)一些重要的定義進(jìn)行特別說明:

        定義1移動(dòng)應(yīng)用訪問Web資源的行為叫作訪問行為。

        定義2訪問Web資源的代碼所屬的主體叫作App域。

        定義3被訪問的Web資源所屬的主體叫作Web域。

        定義4當(dāng)App域和Web域不同時(shí)叫作跨域。

        需要特別強(qiáng)調(diào)的是,這里的“域”和瀏覽器中同源策略的“域”不同,同源策略的“域”是指URL的協(xié)議、域名和端口號(hào),這里的“域”是訪問行為涉及到的兩個(gè)平臺(tái)的主體。

        圖2 Cordova應(yīng)用中的跨域訪問行為

        本文用一個(gè)例子來說明跨域訪問問題的安全風(fēng)險(xiǎn)。如圖2所示,一個(gè)Cordova應(yīng)用創(chuàng)建了一個(gè)InAppBrowser[16]對(duì)象,并以此來加載不屬于該應(yīng)用的Web網(wǎng)頁(yè)。InAppBrowser是Cordova官方提供的一個(gè)插件,不僅提供類似于內(nèi)置瀏覽器的功能,而且支持開發(fā)者的定制。在這個(gè)例子中,App域是指Cordova應(yīng)用本身,Web域是指Web網(wǎng)頁(yè)的主體。當(dāng)跨域訪問行為發(fā)生時(shí),攻擊者可以通過定制InAppBrowser向Web網(wǎng)頁(yè)注入惡意代碼并竊取Web資源??缬蛟L問問題發(fā)生在應(yīng)用和Web網(wǎng)頁(yè)的開發(fā)者不同時(shí),應(yīng)用可以將Web網(wǎng)頁(yè)加載到InAppBrowser中,從而完全控制網(wǎng)頁(yè)中的所有資源。不僅是Cordova框架開發(fā)的混合移動(dòng)應(yīng)用都有可能存在跨域訪問問題,集成了Cordova框架的其他框架也受到影響,如PhoneGap、Ionic等。

        2.2 難點(diǎn)與挑戰(zhàn)

        雖然前人提出的XPMChecker[15]工具可以檢測(cè)原生移動(dòng)應(yīng)用中的跨域訪問行為,但是由于混合移動(dòng)應(yīng)用和原生移動(dòng)應(yīng)用存在差異,使得之前的方法已不再適用。本文的工作面臨以下幾個(gè)挑戰(zhàn):

        1) 定義混合移動(dòng)應(yīng)用中的App域。由于在混合移動(dòng)應(yīng)用中,應(yīng)用程序的實(shí)體是Web App。不同于傳統(tǒng)移動(dòng)應(yīng)用擁有豐富的代碼結(jié)構(gòu),比如類名、方法簽名等,Web App的簡(jiǎn)單結(jié)構(gòu)反而無法直接提取有意義的標(biāo)識(shí)特征作為App域。另外,由于混合移動(dòng)應(yīng)用中的Web App大多數(shù)以本地文件存在,所以無法使用遠(yuǎn)程URL與Web資源的URL進(jìn)行直接判斷是否跨域。

        2) 判斷混合移動(dòng)應(yīng)用中的跨域訪問行為。由于跨域訪問行為涉及到兩個(gè)完全不同的平臺(tái),無論是網(wǎng)頁(yè),還是移動(dòng)應(yīng)用,開發(fā)者都可能使用不同的命名規(guī)則來聲明自己的資源。這使得區(qū)分不同的資源主體變得困難,為了解決這個(gè)問題,XPMChecker利用了搜索引擎結(jié)果的相關(guān)性來判斷資源宿主是否屬于同一主體,雖然這個(gè)方法較為通用有效,但是需要依賴第三方的搜索結(jié)果,無法直接根據(jù)原信息判斷。因此,本文需要尋找一個(gè)不依賴其他方信息且直接有效的判斷方法。

        3) 自動(dòng)化地評(píng)估跨域行為的風(fēng)險(xiǎn)性。在現(xiàn)代移動(dòng)應(yīng)用中,跨域行為非常常見。在工具識(shí)別出跨域行為之后,如果所有的結(jié)果都交給人工判斷,不僅工作量繁重而且在缺失上下文的環(huán)境下容易發(fā)生誤判。所以,自動(dòng)化工具需要對(duì)大量的跨域行為作出預(yù)判,排除無風(fēng)險(xiǎn)或風(fēng)險(xiǎn)較低的行為,為最后階段的人為確認(rèn)減輕工作量。

        3 COCAScanner的設(shè)計(jì)與實(shí)現(xiàn)

        3.1 整體架構(gòu)

        根據(jù)上文中的目標(biāo)和挑戰(zhàn),本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)能夠識(shí)別并判斷混合移動(dòng)應(yīng)用中跨域訪問行為的工具COCAScanner。其整體架構(gòu)如圖3所示。主要由4個(gè)關(guān)鍵模塊構(gòu)成:

        (1) 靜態(tài)分析模塊。該模塊的主要功能是從混合移動(dòng)應(yīng)用中提取與Web資源訪問相關(guān)的行為信息。

        (2) 域特征提取模塊。該模塊將提取App端和Web端的域特征。

        (3) 跨域判斷模塊。該模塊將基于域特征判斷輸入的Web資源訪問行為是否屬于跨域訪問行為。

        (4) 風(fēng)險(xiǎn)評(píng)估模塊。該模塊將自動(dòng)化地對(duì)跨域訪問行為進(jìn)行風(fēng)險(xiǎn)評(píng)分。

        圖3 COCAScanner總體架構(gòu)

        3.2 靜態(tài)分析模塊

        本文基于特征文件將Cordova應(yīng)用從所有應(yīng)用中提取出來,并作為工具的輸入。根據(jù)Cordova官方文檔,本文總結(jié)出了4個(gè)可以訪問Web資源的InAppBrowser API,如表1所示。

        表1 能夠訪問Web資源的API

        COCAScanner具體的做法是,首先定位InAppBrowser對(duì)象的初始化,InAppBrowser對(duì)象的初始化聲明了將要加載的URL信息,是分析Web資源訪問行為的起點(diǎn)。如圖4所示。

        圖4 InAppBrowser對(duì)象創(chuàng)建示例

        調(diào)用cordova.InAppBrowser.open方法可以創(chuàng)建一個(gè)InAppBrowser對(duì)象,本文可以提取該方法的第一個(gè)參數(shù)加載到這個(gè)InAppBrowser對(duì)象中的URL。接著本文跟蹤這個(gè)InAppBrowser對(duì)象(圖4中的loginWindow),并記錄該對(duì)象調(diào)用的方法及其參數(shù)。這樣,本文就可以提取該App中所有Web資源訪問行為。例如在圖4中,我們可以知道該App利用InAppBrowser加載了“https://www.facebook.com”的資源,然后對(duì)“l(fā)oadstart”事件進(jìn)行監(jiān)聽以及將“jscode”注入到網(wǎng)頁(yè)中。

        3.3 域特征提取模塊

        3.3.1定義App域特征

        由于混合移動(dòng)應(yīng)用的主體是Web App,所以本文將App的域特征定義為Web App中首頁(yè)的關(guān)鍵詞。在Cordova應(yīng)用中,默認(rèn)情況下MainActivity會(huì)加載asset/www/目錄下的靜態(tài)文件index.html作為該App的入口。本文從index.html文件中提取特征詞作為域特征,其余的文件將加入語料庫(kù)用于后續(xù)分析。

        3.3.2定義Web域特征

        本文將動(dòng)態(tài)訪問URL之后得到的HTML文檔作為域特征的來源,并在該HTML文檔上使用和App端一樣的方法提取出特征詞來作為Web端的域特征。這樣既能夠處理特殊的URL,又可以解決URL命名多樣化的問題,并且當(dāng)Web端和App端的信息源一致時(shí),有利于本文采用相同的方法對(duì)它們進(jìn)行建模和差異化分析,避免使用不同方法而可能引入的偏差。

        3.3.3域特征提取算法

        在上兩個(gè)小節(jié)中,本文已經(jīng)確定了從App端和Web端的HTML文檔中提取關(guān)鍵詞作為各自的域特征。接下來本文將使用文本分析中常用的TF-IDF算法提取關(guān)鍵詞。TF-IDF的核心思想是當(dāng)一個(gè)詞在某一個(gè)文檔中的出現(xiàn)頻率很高,并且在其他文檔中很少出現(xiàn),則這個(gè)詞對(duì)該文檔很重要。

        COCAScanner的具體做法是,首先提取HTML文件中的所有文字信息,然后進(jìn)行分詞、去除停用詞的預(yù)處理。再計(jì)算剩下的每個(gè)詞的詞頻TF,忽略大小寫。語料庫(kù)來源于App的除首頁(yè)之外的其他HTML文件,本文將統(tǒng)計(jì)每個(gè)文件出現(xiàn)的詞語。根據(jù)下式計(jì)算詞語的逆文檔率IDF:

        (1)

        式中:N表示語料庫(kù)中所有文檔的總數(shù),D表示包含某詞語的文檔數(shù)。

        最后,利用式(2)可以得到每個(gè)詞語的權(quán)值。對(duì)于詞語較多的文檔,本文只取權(quán)值靠前的10個(gè)詞語作為域特征。

        tfidfi=tfi×idfi

        (2)

        3.4 跨域判斷模塊

        在得到兩組由關(guān)鍵詞-權(quán)值表示的域特征之后,本文用權(quán)值作為特征值將它們向量化。由此得到兩個(gè)1×N(N≤10)的向量:[A1,A2,A3,…,AN]和[W1,W2,W3,…,WN]。它們分別代表App端和Web端各自的域特征。使用下式可以計(jì)算兩個(gè)向量的夾角θ的余弦值。

        (3)

        已知cosθ的取值范圍為[-1, 1],而且cosθ的值越接近1,則表示兩個(gè)向量越相似。本文首先選定了5組閾值t,分別為0.5、0.6、0.7、0.8、0.9,通過對(duì)比實(shí)驗(yàn)找出最優(yōu)值。實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)當(dāng)閾值t=0.7時(shí),判定結(jié)果的真陽(yáng)率(True Positive Rate)最高。所以本文設(shè)定閾值t= 0.7,當(dāng)cosθ≥0.7表示該行為屬于同域,反之則判斷該行為跨域,將進(jìn)行下一步的風(fēng)險(xiǎn)評(píng)估。

        3.5 風(fēng)險(xiǎn)評(píng)估模塊

        COCAScanner將對(duì)executeScript API進(jìn)行預(yù)評(píng)估,因?yàn)閷?duì)比表1中的其他API,它能訪問更加敏感的資源,而且它的風(fēng)險(xiǎn)程度取決于它注入的JavaScript代碼,這需要本文對(duì)這些注入的代碼進(jìn)一步分析。

        JavaScript能夠訪問修改HTML頁(yè)面的DOM元素以及本地存儲(chǔ)的資源,本文發(fā)現(xiàn)這些行為都是通過調(diào)用瀏覽器提供的API實(shí)現(xiàn)的。為了得到JavaScript代碼調(diào)用瀏覽器API的情況,本文將JavaScript置于可控的執(zhí)行環(huán)境中運(yùn)行,記錄下JavaScript的運(yùn)行結(jié)果和行為特征,并根據(jù)其訪問Web資源的情況作出風(fēng)險(xiǎn)評(píng)分。本文對(duì)開源的JavaScript引擎Rhino進(jìn)行擴(kuò)展,對(duì)document和window對(duì)象進(jìn)行建模和初始化,并監(jiān)聽它們屬性的狀態(tài),腳本運(yùn)行完之后與初始狀態(tài)比較,以此得到注入的JavaScript腳本對(duì)網(wǎng)頁(yè)對(duì)象的操作情況。另外,本文增加了瀏覽器中的常用接口DOM和BOM 的實(shí)現(xiàn),使得調(diào)用這些接口的腳本可以正常運(yùn)行。本文通過對(duì)瀏覽器API的分析,篩選出來一些高風(fēng)險(xiǎn)的API,有g(shù)etElementById、getElementsByClassName、getElementsByName、getElementsByTagName、localStorage.getItem等,這些API可以直接獲取Web網(wǎng)頁(yè)的資源。本文對(duì)這些API進(jìn)行重寫和設(shè)定風(fēng)險(xiǎn)分值,這樣當(dāng)它們被調(diào)用時(shí),會(huì)及時(shí)更新風(fēng)險(xiǎn)總值。最終本文會(huì)根據(jù)風(fēng)險(xiǎn)值和操作網(wǎng)頁(yè)對(duì)象的情況判斷該JavaScript腳本的危險(xiǎn)程度。

        4 實(shí)驗(yàn)與分析

        本文的實(shí)驗(yàn)環(huán)境是一臺(tái)具有64個(gè)CPU內(nèi)核(2 GHz)和188 GB內(nèi)存的CentOS 7.4 64位服務(wù)器。該服務(wù)器運(yùn)行的Java版本是1.8.0_171的64位虛擬機(jī)。

        4.1 數(shù)據(jù)集

        本文在2018年4月到10月之間使用網(wǎng)絡(luò)爬蟲從Google Play上爬取了大量安卓移動(dòng)應(yīng)用,去掉重復(fù)應(yīng)用之后,本文成功下載了175 543個(gè)安卓移動(dòng)應(yīng)用。這些應(yīng)用是隨機(jī)爬取的,不區(qū)分類別和下載量,所以能夠代表Google Play應(yīng)用商場(chǎng)的整體情況。從這些應(yīng)用中,使用上文給出的方法識(shí)別使用Cordova框架開發(fā)的混合移動(dòng)應(yīng)用,最終得到8 804個(gè)Cordova應(yīng)用作為本文實(shí)驗(yàn)的總數(shù)據(jù)集,占應(yīng)用總數(shù)的5.01%。

        4.2 跨域訪問行為的檢測(cè)結(jié)果

        本文在服務(wù)器上啟動(dòng)了9個(gè)進(jìn)程來并行地運(yùn)行分析程序,并為每個(gè)Cordova應(yīng)用的分析時(shí)間設(shè)置上限為30分鐘,一旦超過30分鐘,該進(jìn)程將被殺死,分析程序終止。對(duì)于數(shù)據(jù)庫(kù)中8 804個(gè)應(yīng)用,COCAScanner花費(fèi)了大約52個(gè)小時(shí)完成所有應(yīng)用的分析,每個(gè)應(yīng)用的平均解析時(shí)間為20秒。

        COCAScanner成功分析了7 791個(gè)應(yīng)用,占所有應(yīng)用的88.5%。本文把只調(diào)用了表1中的任意API的操作歸為Web資源訪問行為,如果只加載一個(gè)URL但并沒有后續(xù)的操作,則認(rèn)為并沒有訪問該URL的資源。在成功解析的Cordova應(yīng)用中,COCAScanner發(fā)現(xiàn)有2 479個(gè)App中出現(xiàn)Web資源訪問行為,一共有14 284個(gè)Web資源訪問行為。接著對(duì)這些Web資源訪問行為進(jìn)行跨域判斷,得到4 808個(gè)跨域行為,這些行為分布在819個(gè)App中。對(duì)于所有的跨域行為,COCAScanner將對(duì)所有發(fā)生跨域訪問行為的App進(jìn)行預(yù)評(píng)估,結(jié)果表示有107個(gè)有風(fēng)險(xiǎn)的Cordova應(yīng)用。詳細(xì)的數(shù)據(jù)可見表2,表中括號(hào)內(nèi)的數(shù)字表示行為個(gè)數(shù),括號(hào)外的是App的個(gè)數(shù)。

        表2 實(shí)驗(yàn)總體結(jié)果

        4.3 跨域訪問行為檢測(cè)的效果

        本文在14 284個(gè)Web資源訪問行為中,隨機(jī)選擇了100個(gè)行為進(jìn)行人工判定,結(jié)果標(biāo)記了84個(gè)跨域行為。COCAScanner成功判斷了73個(gè)訪問行為的跨域情況,有11個(gè)錯(cuò)誤判斷的原因主要是由于TF-IDF對(duì)于HTML文檔結(jié)構(gòu)不敏感,導(dǎo)致提取的關(guān)鍵詞無效。

        綜合結(jié)果,本文得到COCAScanner的跨域行為判斷的準(zhǔn)確率和召回率分別為83%和86.9%,由于判斷方法非常依賴于App中的文件,所以如果出現(xiàn)開發(fā)者更多的使用網(wǎng)絡(luò)文件的情況,會(huì)導(dǎo)致App端的域特征提取錯(cuò)誤。而對(duì)于關(guān)鍵詞無效帶來的錯(cuò)誤率,本文可以通過改進(jìn)關(guān)鍵詞提取算法來減少。

        4.4 風(fēng)險(xiǎn)評(píng)估模塊效果

        COCAScanner對(duì)Cordova應(yīng)用中的4 808個(gè)跨域行為進(jìn)行預(yù)評(píng)估。最終得到4 772個(gè)風(fēng)險(xiǎn)評(píng)分,分值最低分是0分,最高分為124分。本文發(fā)現(xiàn)有36個(gè)行為沒有成功評(píng)分,人工分析發(fā)現(xiàn)它們大部分都使用了一些JavaScript第三方庫(kù),例如jQuery,導(dǎo)致一些特殊的符號(hào)沒有辦法被本文的JavaScript執(zhí)行引擎識(shí)別,還有一些代碼出現(xiàn)語法錯(cuò)誤的情況,這可能是開發(fā)者編程錯(cuò)誤造成的。COCAScanner判定4 808個(gè)行為中有4 470個(gè)行為是沒有風(fēng)險(xiǎn)的,分布在712個(gè)App中,另外的401個(gè)行為是有風(fēng)險(xiǎn)的,分布在107個(gè)App中。

        本文隨機(jī)挑選了具有跨域訪問行為的100個(gè)App進(jìn)行人工分析,共計(jì)188個(gè)行為。人工判斷其中的123個(gè)行為無風(fēng)險(xiǎn)。COCAScanner的判定結(jié)果是107個(gè)行為無風(fēng)險(xiǎn),其中有16個(gè)無風(fēng)險(xiǎn)的行為被判斷成了有風(fēng)險(xiǎn)的行為,原因是這些行為雖然調(diào)用了有風(fēng)險(xiǎn)的瀏覽器API,但是為了提供正常功能。

        總而言之,風(fēng)險(xiǎn)評(píng)估模塊判斷風(fēng)險(xiǎn)的準(zhǔn)確率為91.4%,召回率為87%。

        4.5 案例分析

        本文從無風(fēng)險(xiǎn)和有風(fēng)險(xiǎn)的App中各隨機(jī)抽取了50個(gè)App進(jìn)行人工的行為分析,總計(jì)100個(gè)App,幫助本文理解跨域訪問行為的目的。最終,本文將這些跨域訪問行為分為以下三類:

        1) 實(shí)現(xiàn)正常功能的跨域訪問行為。功能行為指為了輔助App的正常運(yùn)行而進(jìn)行跨域訪問的行為。本文發(fā)現(xiàn)App通過跨域訪問來擴(kuò)展功能可能出于以下4種目的:

        (1) 注入代碼更改網(wǎng)頁(yè)布局設(shè)置,使得頁(yè)面對(duì)移動(dòng)設(shè)備更加友好。

        (2) 補(bǔ)充原生WebView不支持的操作,比如彈出消息框。

        (3) 網(wǎng)頁(yè)重定向,跳轉(zhuǎn)到其他頁(yè)面或者后退;例如,本文發(fā)現(xiàn)一些App會(huì)監(jiān)聽第三方賬號(hào)授權(quán)頁(yè)面的結(jié)果,如果發(fā)現(xiàn)授權(quán)失敗,則執(zhí)行一段被注入JavaScript腳本,將頁(yè)面重定向到授權(quán)頁(yè)面,等待用戶重新進(jìn)行授權(quán)操作。

        (4) 向App端傳遞頁(yè)面加載結(jié)果。例如,本文發(fā)現(xiàn)一些App會(huì)監(jiān)聽一些登錄流程的URL,當(dāng)?shù)搅鞒痰淖詈笠徊綍r(shí),會(huì)注入JavaScript腳本獲取和登錄狀態(tài)有關(guān)的頁(yè)面屬性,并根據(jù)具體狀態(tài)進(jìn)行不同操作。

        2) 具有惡意目的的跨域訪問行為。惡意行為指通過跨域訪問行為達(dá)到自己的不良意圖,本文發(fā)現(xiàn)有以下2種惡意目的:

        (1) 竊取Web網(wǎng)頁(yè)的敏感數(shù)據(jù),如用戶名、密碼等。例如一個(gè)名字是Profile Visitors的App,該App的包名為com.profile.visitors,當(dāng)用戶在App上登錄了自己的Facebook賬號(hào)之后,App將為用戶顯示有哪些賬號(hào)在“偷偷關(guān)注”自己。實(shí)際上,該App注入了一段惡意的JavaScript代碼到Facebook賬號(hào)的登錄網(wǎng)頁(yè),這段代碼將從當(dāng)前頁(yè)面提取用戶輸入的email地址和密碼發(fā)送,接著將用戶的email地址和密碼發(fā)送到App的服務(wù)器。

        (2) 注入廣告來推廣自己的產(chǎn)品。例如一個(gè)名字是FinoZen的App,包名是com.ionicframework.helloandroid962651.apk。這是印度金融投資平臺(tái)FinoZen的App,在Google Play上顯示它的安裝量在100 000以上。本文發(fā)現(xiàn)它會(huì)向印度的一家基金公司Reliance Mutual Fund注入一個(gè)JavaScript文件和一個(gè)CSS文件,與App并不屬于同一個(gè)公司。本文發(fā)現(xiàn)注入的內(nèi)容是向用戶展示他們使用了FinoZen之后可以在一周中的哪個(gè)時(shí)間獲得收益。當(dāng)用戶使用Reliance Mutual Fund的服務(wù)在線支付的時(shí)候,會(huì)看到FineZen的廣告。FinoZen利用跨域訪問幫自己打廣告的行為損壞了其他公司的利益,屬于非法獲利的行為。

        3) 意圖不明行為的跨域訪問行為。除了以上兩種行為之外,本文還發(fā)現(xiàn)有些行為意圖不明朗,比如有些跨域行為會(huì)篡改頁(yè)面DOM元素、隱藏或刪除一些元素,本文分析了這些被篡改的網(wǎng)頁(yè)和元素,發(fā)現(xiàn)并不會(huì)對(duì)網(wǎng)頁(yè)的整體功能產(chǎn)生影響。

        綜上所述,本文認(rèn)為在大部分Cordova應(yīng)用中,跨域行為是出于正常的目的,比如為了擴(kuò)展功能、使界面更加友好等,然而本文也發(fā)現(xiàn)了一些高風(fēng)險(xiǎn)的惡意行為,說明了一些惡意開發(fā)者意識(shí)到可以利用Web資源訪問API進(jìn)行非法操作,實(shí)現(xiàn)他們的不良目的,所以混合移動(dòng)應(yīng)用中的跨域行為問題依然值得重視。

        5 結(jié) 語

        為了調(diào)研跨域訪問行為在Cordova應(yīng)用中的影響,本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)自動(dòng)化工具COCAScanner。該工具從HTML文檔中提取關(guān)鍵詞作為域特征,并通過余弦相似算法計(jì)算兩個(gè)端域特征的相似度,以此來辨別跨域訪問行為和正常行為。對(duì)于跨域訪問行為,COCAScanner擴(kuò)展了一般的JavaScript引擎,實(shí)現(xiàn)了風(fēng)險(xiǎn)評(píng)分功能。通過分析Google Play商城中7 791個(gè)Cordova應(yīng)用,本文發(fā)現(xiàn)10.5%的Cordova應(yīng)用中存在跨域訪問行為,并且其中13.1%的Cordova應(yīng)用具有風(fēng)險(xiǎn)。雖然大多數(shù)行為都是出于擴(kuò)展應(yīng)用功能的目的,但是本文也發(fā)現(xiàn)了一個(gè)惡意應(yīng)用和多個(gè)高風(fēng)險(xiǎn)應(yīng)用。證明了跨域訪問問題存在于混合移動(dòng)應(yīng)用中,并影響著用戶的信息安全。

        猜你喜歡
        資源
        讓有限的“資源”更有效
        污水磷資源回收
        基礎(chǔ)教育資源展示
        崛起·一場(chǎng)青銅資源掠奪戰(zhàn)
        一樣的資源,不一樣的收獲
        我給資源分分類
        資源回收
        做好綠色資源保護(hù)和開發(fā)
        資源再生 歡迎訂閱
        資源再生(2017年3期)2017-06-01 12:20:59
        激活村莊內(nèi)部治理資源
        決策(2015年9期)2015-09-10 07:22:44
        亚洲人成人无码www| 亚洲AV秘 无码一区二区在线| 久久精品国产亚洲av蜜臀久久| 亚洲一区二区三区精品| 亚洲乱码日产精品一二三| 亚洲 欧美 国产 日韩 精品| 亚洲AV手机专区久久精品| 亚洲精品一区二区网站| 人人做人人爽人人爱| 久久亚洲中文字幕无码| www.亚洲天堂.com| 丝袜av乱码字幕三级人妻| 熟女人妇 成熟妇女系列视频| 少妇熟女视频一区二区三区| 欧美综合自拍亚洲综合百度| 亚洲精品中文字幕导航| 人与动牲交av免费| 97成人精品| 大岛优香中文av在线字幕| 性人久久久久| 亚洲av无码精品色午夜| 国产精品一区二区三区精品| 亚洲av天堂在线免费观看| 色多多性虎精品无码av| 欧美xxxx黑人又粗又长精品| 免费无码黄网站在线观看| 三级日韩视频在线观看| 香港三级精品三级在线专区| 国模精品二区| 人妻少妇被猛烈进入中文| 亚洲日韩在线中文字幕综合| 亚洲熟妇色xxxxx欧美老妇y| 伊人影院在线观看不卡| av日韩一区二区三区四区| 无码中文字幕日韩专区视频| 亚洲人成网站久久久综合| 国产成人av三级在线观看韩国| 国产免费内射又粗又爽密桃视频| 91伊人久久| 国产精品一品二区三区| 国产av无码国产av毛片|