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

        ?

        Android系統(tǒng)外部SDK安全漏洞檢測(cè)研究*

        2019-08-17 06:48:42
        關(guān)鍵詞:用戶設(shè)備分析

        馬 杰

        (南京審計(jì)大學(xué)實(shí)驗(yàn)中心,江蘇 南京 211815)

        0 引言

        當(dāng)前各種移動(dòng)智能設(shè)備操作系統(tǒng)中Android系統(tǒng)的占有率越來(lái)越高,隨之而來(lái)的就是用戶對(duì)Android平臺(tái)的應(yīng)用程序需求亦呈幾何級(jí)數(shù)增長(zhǎng)。為了提高Android應(yīng)用程序開發(fā)質(zhì)量和效率,許多程序開發(fā)人員會(huì)在一些由軟件公司或商業(yè)公司免費(fèi)提供的軟件開發(fā)工具(Software Development Kit,SDK)基礎(chǔ)上再做二次或者多次開發(fā);而這些SDK多數(shù)封裝了各種專業(yè)領(lǐng)域內(nèi)復(fù)雜的邏輯架構(gòu)、請(qǐng)求響應(yīng)過(guò)程、功能模塊,因此能夠大大縮短開發(fā)時(shí)間、保障程序功能可靠性和提高開發(fā)效率[1]。在Android應(yīng)用程序中,外部SDK優(yōu)勢(shì)突出,首先可以保證程序獲取該平臺(tái)提供方的優(yōu)質(zhì)資源,如開發(fā)基于某平臺(tái)SDK,那么其平臺(tái)旗下某地圖軟件開放數(shù)據(jù)地圖信息、實(shí)時(shí)路況等都可以輕易獲?。黄浯稳绻麑⒛潮憬葜Ц兜耐獠縎DK包含在內(nèi),那么程序就可以執(zhí)行復(fù)雜、安全、高效的在線支付功能。在開發(fā)人員不足的情況下,這些SDK大大縮短了軟件商應(yīng)用程序的開發(fā)周期,并且保證了軟件功能的安全和穩(wěn)定,甚至某些SDK平臺(tái)會(huì)有廣告收益,而這對(duì)于程序開發(fā)人員非常具有吸引力。但是某些SDK架構(gòu)老舊、更新遲緩甚至包含其他目的,開發(fā)人員在不知情情況下推波助瀾,對(duì)用戶數(shù)據(jù)的安全和隱私信息的保護(hù)造成了潛在威脅。例如某軟件公司為銀行開發(fā)的用戶登錄SDK曾被曝光存在安全漏洞,儲(chǔ)戶在不知情的情況下隱私數(shù)據(jù)被遠(yuǎn)程服務(wù)器收集并在用戶設(shè)備留下暗門,造成了上億臺(tái)Android設(shè)備個(gè)人數(shù)據(jù)被泄漏至公開數(shù)據(jù)源、遭受代碼注入攻擊、賬戶劫持等攻擊[2-4]。

        由此可見,外部SDK的可靠性將直接影響Android應(yīng)用程序的安全使用,然而以現(xiàn)有的技術(shù)對(duì)SDK平臺(tái)的全面漏洞檢測(cè)與安全分析則需耗費(fèi)大量的時(shí)間與精力,目前開發(fā)者所能做的僅僅是使用最新版本SDK來(lái)開發(fā),但這依然不能改變現(xiàn)存的大量基于老版本SDK開發(fā)的應(yīng)用程序持續(xù)運(yùn)行;同時(shí)眾多SDK功能、邏輯、架構(gòu)、差異巨大,期望利用一種工具分析所有SDK并不現(xiàn)實(shí),還有部分外部SDK從自身平臺(tái)利益出發(fā),將關(guān)鍵代碼存儲(chǔ)于.so文件內(nèi),給反編譯及分析檢測(cè)帶來(lái)了更大的工作難度。

        本次安全漏洞檢測(cè)分析研究選取了35個(gè)使用較為廣泛并包含網(wǎng)絡(luò)通信功能的外部Android應(yīng)用程序開發(fā)SDK,涵蓋了數(shù)據(jù)、登錄、地圖、信息推送、移動(dòng)支付等多種功能類型。研究過(guò)程采用FlowDroid、Frida及Xposed分析工具結(jié)合靜態(tài)、動(dòng)態(tài)污點(diǎn)分析以及二進(jìn)制插樁應(yīng)用程序分析方法開展分析研究[5]。

        1 相關(guān)工作

        從眾多主流Android應(yīng)用程序功能可以看出:越來(lái)越多的SDK集成了軟件公司內(nèi)嵌的客戶端,如用戶評(píng)論、授權(quán)登錄、一鍵轉(zhuǎn)發(fā)等功能;當(dāng)程序開發(fā)過(guò)程中調(diào)用這些SDK平臺(tái)時(shí),實(shí)際上是將請(qǐng)求信息數(shù)據(jù)發(fā)送至遠(yuǎn)端服務(wù)器獲取服務(wù)。因此,在開展漏洞檢測(cè)之前必須先洞悉此類SDK的運(yùn)行規(guī)則及動(dòng)機(jī)。

        1.1 Android應(yīng)用程序運(yùn)行規(guī)則

        具備網(wǎng)絡(luò)通信功能的外部SDK主要有兩大類:一類是在Android應(yīng)用程序中安裝完成后,自主在終端設(shè)備建立本地服務(wù)器,為SDK平臺(tái)提供方收集諸如軟件列表、IMEI碼、GPS數(shù)據(jù)等設(shè)備軟硬件信息,遠(yuǎn)端服務(wù)器會(huì)發(fā)送請(qǐng)求信息并從本地設(shè)備獲取數(shù)據(jù),包括控制應(yīng)用程序在本地設(shè)備的運(yùn)行狀況。此類SDK通信信道存在被劫持的可能性,惡意攻擊非法獲取本地服務(wù)器數(shù)據(jù)造成隱私泄漏。此類SDK的運(yùn)行規(guī)則如圖1所示。

        圖1 建立本地服務(wù)器的SDK

        另一類SDK的應(yīng)用程序僅僅接收遠(yuǎn)端服務(wù)器推送消息,越來(lái)越多的主流應(yīng)用程序?qū)SL/TLS安全認(rèn)證功能加入到傳輸協(xié)議中,形成新的HTTPS協(xié)議;只要添加正確并完成配置,就可以杜絕數(shù)據(jù)丟包和信息劫持[6]。而普通的HTTP協(xié)議推送信息并沒有經(jīng)過(guò)特殊加密,直接傳輸會(huì)造成信息誤收或者接收不完整,存在著很大的安全風(fēng)險(xiǎn),而實(shí)際情況是使用HTTP協(xié)議的SDK開發(fā)出的Android應(yīng)用程序依然在大量活躍使用[7]。

        1.2 安全問題

        部分Android應(yīng)用程序開發(fā)過(guò)程中過(guò)于強(qiáng)調(diào)程序功能,僅將SDK視為黑盒而忽略了平臺(tái)內(nèi)部的安全漏洞。假如這款SDK存在技術(shù)漏洞或暗門,那會(huì)造成所有調(diào)用此SDK的應(yīng)用程序全部暴露于安全威脅之下,非法攻擊能通過(guò)漏洞或者暗門得到應(yīng)用程序的核心代碼,洞悉程序整體運(yùn)行細(xì)節(jié),注入惡意代碼,造成巨大損失。本研究在一些SDK工具中發(fā)現(xiàn)了部分明顯的漏洞,這也是形成統(tǒng)計(jì)和分析35個(gè)外部SDK的原因。

        1.2.1 建立本地服務(wù)器的SDK

        Moplus是國(guó)內(nèi)知名搜索公司發(fā)布的SDK,在解析設(shè)備應(yīng)用程序的manifest文件時(shí)發(fā)現(xiàn),當(dāng)用戶Android設(shè)備啟動(dòng)調(diào)用該SDK的應(yīng)用程序時(shí),會(huì)觸發(fā)相關(guān)應(yīng)用程序獲取權(quán)限的行為,并在用戶不知情的情況下自主建立本地HTTP服務(wù)器。Moplus內(nèi)置的HTTP服務(wù)器持續(xù)掃描檢測(cè)TCP端口,接收和解析遠(yuǎn)端服務(wù)器和本地設(shè)備以便獲取位置、用戶身份等隱私數(shù)據(jù)信息。非法HTTP請(qǐng)求能替換本地服務(wù)器內(nèi)置的action并執(zhí)行惡意代碼,造成用戶信息被劫持。甚至攻擊者還可能向用戶設(shè)備私自添加聯(lián)系人,掃描設(shè)備文件,搜集并上傳特定數(shù)據(jù),而所有這些操作都可以簡(jiǎn)單地發(fā)送非法HTTP請(qǐng)求來(lái)完成。

        1.2.2 銀行登錄SDK

        圖2是某銀行登錄SDK使用HTTPS協(xié)議與遠(yuǎn)端服務(wù)器通信的代碼,經(jīng)過(guò)測(cè)試發(fā)現(xiàn)該SDK中的驗(yàn)證證書查驗(yàn)函數(shù)返回值為空,也就是說(shuō)無(wú)法驗(yàn)證遠(yuǎn)端服務(wù)器發(fā)來(lái)的證書是否是合法證書,這會(huì)被攻擊者通過(guò)偽造或者替換非法證書實(shí)施攻擊。本次研究在模擬過(guò)程中加了一個(gè)代理服務(wù)器,并用非法證書替換服務(wù)器返回的合法證書,實(shí)現(xiàn)了非法替換攻擊。

        圖2 非法證書替換

        1.2.3 信息推送SDK

        為了獲得廣告收益,部分應(yīng)用程序的開發(fā)基于某廣告公司發(fā)布的SDK,分析該SDK相關(guān)文檔發(fā)現(xiàn)其使用HTTP協(xié)議與遠(yuǎn)端服務(wù)器通信,如圖3所示;若攻擊者使用代理服務(wù)器來(lái)檢測(cè)和分析HTTP通道的數(shù)據(jù)傳輸、響應(yīng)等信息[8],即可輕易獲得用戶Android設(shè)備的IMEI、廣告信息、圖片推送等,并且可以將信息內(nèi)容改寫為惡意威脅病毒網(wǎng)站,當(dāng)用戶點(diǎn)擊推送信息時(shí),訪問預(yù)置的病毒URL,造成用戶信息泄漏,利用信息劫持與替換對(duì)用戶造成更大損失,部分釣魚網(wǎng)站就是采取這種手段誘導(dǎo)用戶點(diǎn)擊廣告鏈接進(jìn)入目標(biāo)URL實(shí)施欺騙[9]。

        圖3 某信息推送SDK的數(shù)據(jù)通信信息

        2 SDK選擇與分析

        為了保證待分析的SDK就是應(yīng)用程序所使用的SDK,以往不少研究多從Android應(yīng)用程序中逆向編譯抽取外部SDK,但這種做法存在一些不確定性:首先,程序開發(fā)過(guò)程中外部SDK是靜態(tài)鏈接到程序字節(jié)碼中的,造成應(yīng)用程序和SDK代碼之間的界限模糊淡化;其次,開發(fā)過(guò)程中使用了類似于ProGuard的字節(jié)碼混淆工具造成標(biāo)識(shí)符重名。通過(guò)標(biāo)識(shí)符重命名將標(biāo)識(shí)符轉(zhuǎn)換成短而且無(wú)意義的字符串,如將報(bào)文名“com.sina”轉(zhuǎn)換為“a.c.”,雖然這是一種無(wú)副作用的字節(jié)碼混淆技術(shù),但卻影響了分析工作的效率和準(zhǔn)確性,最后會(huì)導(dǎo)致對(duì)于隱私和安全違規(guī)的追責(zé)對(duì)象難以確定。例如許多與安全相關(guān)的分析研究了應(yīng)用程序中的隱私與安全問題,提高了人們對(duì)于各種問題領(lǐng)域的認(rèn)識(shí),包括隱私泄漏、權(quán)限使用、動(dòng)態(tài)代碼加載、SSL/TLS(內(nèi)部)安全性、加密API的誤用等。然而這些報(bào)告并不能區(qū)分應(yīng)用程序開發(fā)人員代碼和外部SDK中的代碼,而且分析結(jié)果是基于每個(gè)應(yīng)用程序的,因此很難精準(zhǔn)識(shí)別不正當(dāng)行為到底是由應(yīng)用程序開發(fā)代碼還是外部SDK代碼導(dǎo)致的。為了提高第三方SDK分析的效率,同時(shí)保證準(zhǔn)確識(shí)別應(yīng)用程序安全問題主要責(zé)任方,本研究并未從Android應(yīng)用程序中提取SDK,而是主要通過(guò)以下兩種途徑獲取:一是各個(gè)公司或者廠商公開發(fā)布的SDK及其應(yīng)用軟件(如銀行、高德地圖);二是從知名提供網(wǎng)站www.sdk.cn下載收集部分SDK和應(yīng)用,該網(wǎng)站提供了數(shù)百種廣泛使用的外部SDK供開發(fā)人員選擇使用。

        本次SDK分析研究過(guò)程主要包括3個(gè)步驟:

        (1)研究SDK集成手冊(cè)、Demo應(yīng)用程序、manifest文檔及開發(fā)清單,獲取開發(fā)過(guò)程中組件和權(quán)限被添加到應(yīng)用程序清單的信息。

        (2)實(shí)施靜態(tài)自動(dòng)分析[10]、數(shù)據(jù)包獲取、動(dòng)態(tài)污點(diǎn)分析[11]。靜態(tài)自動(dòng)分析(如圖4所示)中,對(duì)待分析SDK的Demo程序進(jìn)行反編譯并利用Mallodroid開展代碼審計(jì)和SSL/TSL自動(dòng)分析。但是Mallodroid自動(dòng)分析存在一些約束和限制,不能保證敏感數(shù)據(jù)使用SSL/TSL配置正確和安全,無(wú)法檢測(cè)遠(yuǎn)端服務(wù)器上的安全威脅;也不能檢測(cè)到程序設(shè)計(jì)缺陷和排除故障代碼,只能得到相關(guān)問題代碼的基本指標(biāo)。因此有必要在自動(dòng)分析基礎(chǔ)上有選擇地進(jìn)行手動(dòng)分析,驗(yàn)證自動(dòng)分析結(jié)果以確保消除假陽(yáng)性和假陰性[12]。

        圖4 Demo程序靜態(tài)自動(dòng)分析

        動(dòng)態(tài)污點(diǎn)分析(如圖5所示)重點(diǎn)關(guān)注網(wǎng)絡(luò)連接和涉及隱私信息的函數(shù)調(diào)用(如獲取地理位置信息、讀取聯(lián)系人、驗(yàn)證碼等),這將有助于后續(xù)階段動(dòng)態(tài)分析過(guò)程中避免程序運(yùn)行機(jī)制導(dǎo)致的誤報(bào)和漏報(bào),從而推斷所分析的SDK可能存在的安全隱患。

        圖5 動(dòng)態(tài)污點(diǎn)分析

        (3)動(dòng)態(tài)二進(jìn)制插樁法測(cè)試驗(yàn)證安全問題。

        由于SDK開發(fā)方的服務(wù)器端源代碼的隱私性只能結(jié)合靜態(tài)分析和利用動(dòng)態(tài)二進(jìn)制插樁(利用Frida注入代碼)開展黑盒測(cè)試,對(duì)服務(wù)端收集到的參數(shù)進(jìn)行讀取和修改,從而驗(yàn)證該SDK的安全性。具體執(zhí)行過(guò)程如下:利用Android模擬器運(yùn)行Demo程序,在Fiddler中設(shè)置為轉(zhuǎn)發(fā)外部SDK和遠(yuǎn)程服務(wù)器之間的網(wǎng)絡(luò)代理,若SSL/TLS配置錯(cuò)誤,那么入侵者就能在Fiddler中模擬認(rèn)證來(lái)替代真實(shí)認(rèn)證。然后用adb shell查閱Demo程序及其相關(guān)的私有目錄,進(jìn)而獲取lib、數(shù)據(jù)庫(kù)、sharedPreference、緩存等信息,甚至檢索和修改未加密數(shù)據(jù)庫(kù)中的記錄[13]。整個(gè)過(guò)程如圖6所示。

        圖6 利用Frida注入代碼動(dòng)態(tài)修改服務(wù)端參數(shù)

        3 實(shí)驗(yàn)結(jié)果

        本研究系統(tǒng)分析了具有網(wǎng)絡(luò)通信能力的外部SDK,先將其總結(jié)為兩種基本類型:在應(yīng)用程序段建立本地服務(wù)器的SDK和無(wú)本地服務(wù)器的SDK;然后對(duì)收集到的35個(gè)外部SDK開展靜態(tài)分析,從SDK描述文檔和源代碼中提取組件、權(quán)限、網(wǎng)絡(luò)連接等相關(guān)信息,檢測(cè)可能存在的漏洞,再通過(guò)動(dòng)態(tài)測(cè)試進(jìn)行驗(yàn)證。

        經(jīng)過(guò)分析,將在外部SDK中發(fā)現(xiàn)的安全問題歸為本地服務(wù)器漏洞、HTTP協(xié)議開放、敏感權(quán)限、SSL/TLS配置不當(dāng)4種類型,表1描述了所收集的各種類型SDK中存在的具體安全漏洞類型與數(shù)量,為開發(fā)人員和服務(wù)提供商提供了分析外部SDK安全風(fēng)險(xiǎn)的依據(jù)。

        表1 本研究收集的35個(gè)SDK存在的安全問題類型

        3.1 本地服務(wù)器漏洞

        建立本地服務(wù)器的外部SDK可以收集設(shè)備信息、執(zhí)行系統(tǒng)命令進(jìn)而獲得設(shè)備的控制權(quán)。如果本地服務(wù)器執(zhí)行了存在漏洞的訪問控制,攻擊者就會(huì)可以通過(guò)訪問來(lái)檢索敏感數(shù)據(jù)甚至后臺(tái)控制設(shè)備。比如前文提到的Moplus SDK,它是某搜索引擎公司開發(fā)供內(nèi)部使用的SDK,因此采用包含該SDK的應(yīng)用程序來(lái)研究其安全性。通過(guò)對(duì)基于該SDK的某地圖軟件做靜態(tài)自動(dòng)化分析和動(dòng)態(tài)分析,發(fā)現(xiàn)有個(gè)別進(jìn)程在監(jiān)聽TCP 40310端口。當(dāng)用戶Android設(shè)備運(yùn)行包含Moplus SDK的應(yīng)用程序時(shí),此SDK會(huì)在后臺(tái)會(huì)自動(dòng)設(shè)置一個(gè)JAVA開源HTTP服務(wù)器NanoHttpd,用于檢測(cè)通過(guò)socket的消息,并且在程序運(yùn)行過(guò)程中持續(xù)偵測(cè)監(jiān)聽TCP端口40310,接收并解析從遠(yuǎn)程服務(wù)器或客戶端發(fā)送的指令。一旦有新的HTTP請(qǐng)求,本地服務(wù)器將會(huì)接收并解析消息頭和消息體,然后根據(jù)信息內(nèi)容執(zhí)行惡意操作。遠(yuǎn)程服務(wù)器可以發(fā)送請(qǐng)求來(lái)獲取位置信息,搜索框信息,包信息和用戶設(shè)備的其他敏感數(shù)據(jù)。此外,攻擊者可能會(huì)利用sediment命令向用戶的設(shè)備發(fā)送指令,后臺(tái)下載程序,收集特定程序文件,這些惡意操作都可以通過(guò)發(fā)送HTTP請(qǐng)求來(lái)完成。

        雖然新版本的SDK已刪除了這些漏洞,但是許多Android用戶并未及時(shí)更新,設(shè)備運(yùn)行的依然是舊版本程序。

        3.2 開放HTTP

        眾所周知利用HTTP協(xié)議建立網(wǎng)絡(luò)連接存在較大的安全隱患,但事實(shí)上大量SDK依然使用此通道與服務(wù)器通信,也有SDK將諸如IMEI信息等用戶隱私數(shù)據(jù)通過(guò)HTTP協(xié)議以明文或者密文的形式傳送。

        (1)明文傳送:開發(fā)人員采用移動(dòng)廣告商家發(fā)布廣告類SDK可以在一定條件下植入廣告相關(guān)信息以獲取收益。在這部分SDK的靜態(tài)自動(dòng)化分析過(guò)程中發(fā)現(xiàn)其未使用SSL/TLS安全協(xié)議加密,并且還將用戶設(shè)備的IMEI、型號(hào)以及應(yīng)用開發(fā)者的key發(fā)送到服務(wù)器端[14]。惡意攻擊者可以通過(guò)截取該SDK與服務(wù)器端的通信收集用戶信息,也可能替換數(shù)據(jù)攻擊用戶。在動(dòng)態(tài)分析中,該SDK通過(guò)設(shè)置的代理服務(wù)器來(lái)獲取服務(wù)器端的網(wǎng)絡(luò)數(shù)據(jù)包,結(jié)果表明該SDK使用HTTP協(xié)議以明文形式傳輸數(shù)據(jù),相當(dāng)于把用戶敏感信息公開在網(wǎng)絡(luò)上。在本次研究收集的35個(gè)外部SDK有13個(gè)SDK包含此漏洞。

        (2)密文傳送:短信驗(yàn)證SDK是一種可以為應(yīng)用程序提供短信驗(yàn)證的外部SDK,逆向分析該SDK工具包中的.jar文件發(fā)現(xiàn)其通過(guò)本地自定義加密函數(shù)對(duì)發(fā)送的數(shù)據(jù)進(jìn)行了加密,并在核心函數(shù)中調(diào)用了.so文件[15]。然而惡意攻擊者也可以通過(guò)對(duì)該SDK的逆向分析破解數(shù)據(jù)的加密算法和本地密鑰,進(jìn)而實(shí)現(xiàn)對(duì)用戶與服務(wù)器端交互數(shù)據(jù)的解析(如圖7所示),對(duì)用戶造成信息泄漏以及帶來(lái)更大的安全風(fēng)險(xiǎn)。在分析的35個(gè)SDK中,有6個(gè)利用HTTP通道傳輸數(shù)據(jù)的SDK使用的是本地加密密鑰而不是與遠(yuǎn)程服務(wù)器協(xié)商生成密鑰(如HTTPS協(xié)議),將加密算法和加密密鑰記錄在.so文件中,導(dǎo)致程序運(yùn)行的完整性和隱私性受到很大威脅。

        圖7 短信驗(yàn)證SDK所發(fā)送的本地加密信息

        3.3 SSL/TLS配置不當(dāng)

        HTTPS是在HTTP協(xié)議下加入SSL層,必須恰當(dāng)和正確配置才能保證通信信道安全,實(shí)現(xiàn)網(wǎng)絡(luò)連接安全方面的升級(jí)[16]。應(yīng)用程序運(yùn)行時(shí)必須查驗(yàn)主機(jī)名和服務(wù)器是否匹配以判斷主機(jī)名是否有效,同時(shí)檢查證書鏈的有效性。如果主機(jī)名與服務(wù)器的域名匹配則視為主機(jī)名有效;如果證書鏈中的每個(gè)證書都沒有過(guò)期或撤銷,根證書也是由CA在客戶端的密鑰庫(kù)中發(fā)起的,并且這些證書均由CA在鏈中簽名,才能夠判定該證書鏈接為有效證書[17]。

        X509TmstManager接口是Android系統(tǒng)的證書信息管理器,通過(guò)它來(lái)執(zhí)行安全socket檢查。有惡意攻擊者通過(guò)該接口重寫證書驗(yàn)證過(guò)程并清空驗(yàn)證方法例程,允許非法驗(yàn)證通過(guò)。當(dāng)SDK執(zhí)行證書驗(yàn)證時(shí)發(fā)現(xiàn)過(guò)期、吊銷、非法等情況,讓應(yīng)用程序即使發(fā)現(xiàn)非法證書的情況下也不做出任何異常提醒,這類威脅在一些來(lái)路不明的SDK中較為普遍。在分析的35個(gè)外部SDK中發(fā)現(xiàn)有6個(gè)信息推送類SDK存在SSL/TLS配置不當(dāng)?shù)膯栴}。

        3.4 過(guò)多索取敏感權(quán)限

        從應(yīng)用程序開發(fā)者角度很容易理解多數(shù)Android程序運(yùn)行時(shí)會(huì)請(qǐng)求獲取多于運(yùn)行所需的權(quán)限以便備用,程序在調(diào)用SDK時(shí),將數(shù)據(jù)、組件、權(quán)限等信息加入到manifest文件中,而非運(yùn)行程序必需的權(quán)限則被用于獲取用戶設(shè)備信息、個(gè)人隱私等目的[18]。例如某些信息推送SDK請(qǐng)求拍照、攝像、短信讀取等權(quán)限。在對(duì)類似廣告和信息推送類SDK分析之后其實(shí)這些權(quán)限對(duì)于核心功能來(lái)說(shuō)完全不需要。還有些SDK共享主機(jī)應(yīng)用程序manifest文件中的權(quán)限,如果manifest文件聲明,它就可以使用這些權(quán)限,通過(guò)調(diào)用SDK中的主機(jī)代碼查驗(yàn)來(lái)判斷主機(jī)是否獲取了某項(xiàng)權(quán)限(如圖8所示),而這些在基于該SDK開發(fā)的應(yīng)用程序說(shuō)明文檔中卻看不到申請(qǐng)這些權(quán)限的描述。在收集的35個(gè)外部SDK中發(fā)現(xiàn)其中有8個(gè)SDK存在申請(qǐng)過(guò)多權(quán)限的問題引起不必要的安全威脅。

        圖8 Android應(yīng)用程序中的權(quán)限查驗(yàn)

        4 結(jié)束語(yǔ)

        隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展和Android應(yīng)用的指數(shù)級(jí)增長(zhǎng),Android系統(tǒng)和應(yīng)用程序的安全問題需求和呼聲也越來(lái)越高。針對(duì)這些情況,本研究收集了部分基于Android系統(tǒng)中具有通信功能的外部SDK開發(fā)的程序,對(duì)具備網(wǎng)絡(luò)通信能力的SDK的安全風(fēng)險(xiǎn)進(jìn)行了全面分析。在參與分析的35個(gè)SDK中,半數(shù)以上存在前文所述的各種類型的漏洞,同時(shí)還有類似身份驗(yàn)證、開發(fā)中的ID命名失誤等漏洞,導(dǎo)致基于這些SDK開發(fā)的應(yīng)用程序?qū)⒃斐纱罅坑脩舻碾[私和安全問題。根據(jù)上述實(shí)驗(yàn)分析結(jié)果,本文針對(duì)外部SDK的使用提出如下總結(jié)以減少風(fēng)險(xiǎn):

        (1)使用率高的SDK如果存在安全漏洞,帶來(lái)的安全隱患和風(fēng)險(xiǎn)就越大。例如Moplus SDK影響大約上千個(gè)下載次數(shù)達(dá)百萬(wàn)級(jí)的應(yīng)用程序。由于外部SDK是由服務(wù)商各自研發(fā)的,技術(shù)水平參差不齊,開發(fā)目的也不盡相同,因此開發(fā)者應(yīng)該提高警惕在引入外部SDK時(shí)可能存在的安全風(fēng)險(xiǎn)。

        (2)驗(yàn)證證書存在安全問題較為普遍,SSL/TLS漏洞在外部SDK中很常見,SSL/TLS應(yīng)正確配置才能夠確保通信安全。而Root設(shè)備將會(huì)帶來(lái)無(wú)法預(yù)料的安全風(fēng)險(xiǎn),如非必要建議不要Root設(shè)備。

        (3)針對(duì)敏感權(quán)限的不必要索取,開發(fā)人員應(yīng)建立對(duì)應(yīng)的SDK保護(hù)機(jī)制,避免因?yàn)楣蚕韒anifest文件來(lái)直接獲取過(guò)多的和程序功能無(wú)關(guān)的權(quán)限,開發(fā)人員也可以將反射機(jī)制關(guān)鍵代碼置于.so文件中保護(hù)SDK代碼。

        猜你喜歡
        用戶設(shè)備分析
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        隱蔽失效適航要求符合性驗(yàn)證分析
        電力系統(tǒng)不平衡分析
        電子制作(2018年18期)2018-11-14 01:48:24
        基于MPU6050簡(jiǎn)單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢(shì)分析
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        如何獲取一億海外用戶
        91九色国产老熟女视频| 亚洲AV无码一区二区三区天堂网 | 被三个男人绑着躁我好爽视频| 欧美老妇与禽交| 久久亚洲精品成人AV无码网址 | 美女扒开腿露内裤免费看| 18黑白丝水手服自慰喷水网站| 一本色道久久综合狠狠躁 | 国产不卡av一区二区三区 | 精品国产AⅤ一区二区三区4区| av资源吧首页在线观看| 国产青青草在线观看视频| 精品成人av一区二区三区| 精品免费人伦一区二区三区蜜桃| 天堂av中文在线官网| 亚洲夫妻性生活免费视频| 永久免费观看国产裸体美女| 国产在线不卡视频| 极品少妇一区二区三区| 少妇被爽到高潮喷水久久欧美精品| 亚洲va在线∨a天堂va欧美va| 日本嗯啊在线观看| 中文字幕一区二区三区日日骚| 国产xxx69麻豆国语对白| 国产精品久久久久久久成人午夜| 强d乱码中文字幕熟女1000部| 亚洲一区二区三区中文字幕网| 亚洲av无码国产精品色软件下戴| 亚洲熟妇无码久久精品疯| 久久2020精品免费网站| 成人欧美一区二区三区在线 | 国产91成人自拍视频| 欧美国产亚洲日韩在线二区| 人妻精品无码一区二区三区| 国产西西裸体一级黄色大片| 亚洲高清一区二区三区在线播放 | 久久国产精品无码一区二区三区| 久久激情人妻中文字幕 | 色一情一乱一伦| 亚洲精品国产字幕久久vr| 日韩精品极品免费在线视频 |