隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,手機(jī)App的功能復(fù)雜程度和版本更新速度不斷提升。基于對(duì)手機(jī)App及其接入的第三方SDK(軟件開發(fā)工具包)的分析和研究,近日,安天移動(dòng)安全從SDK給應(yīng)用開發(fā)者和App用戶可能帶來的安全風(fēng)險(xiǎn)和權(quán)益問題的角度,對(duì)SDK行為安全性現(xiàn)狀作出專項(xiàng)報(bào)告解讀。
(圖源網(wǎng)絡(luò))
焦點(diǎn)1:第三方SDK使用情況如何?
報(bào)告顯示,應(yīng)用開發(fā)者為了提高應(yīng)用的迭代速度、降低開發(fā)成本以及提供更加豐富的業(yè)務(wù)功能,除了自主開發(fā)App的相關(guān)功能代碼,還會(huì)接入由第三方開發(fā)的功能代碼模塊,從而快速接入和實(shí)現(xiàn)某類業(yè)務(wù)功能。
(圖源網(wǎng)絡(luò))
目前,常見的第三方開發(fā)的功能代碼模塊類型有廣告SDK、支付SDK、消息推送SDK、用戶行為統(tǒng)計(jì)SDK等。
應(yīng)用開發(fā)者往往和第三方SDK開發(fā)者簽訂某種開發(fā)接入的協(xié)議約定,獲取到接入的SDK開發(fā)工具包,通過接入demo(樣稿)示例和開發(fā)文檔,以調(diào)用通過相關(guān)API(應(yīng)用程序接口)的方式獲取SDK提供的功能和服務(wù)。
實(shí)際應(yīng)用中,SDK的使用場(chǎng)景會(huì)更為多樣化。除了SDK提供者提供開發(fā)工具包供應(yīng)用開發(fā)者接入的形式外,還包括SDK提供者提供URL(統(tǒng)一資源定位系統(tǒng))請(qǐng)求API、非Java(計(jì)算機(jī)編程語(yǔ)言)實(shí)現(xiàn)的SDK代碼模塊,以及可供應(yīng)用開發(fā)者內(nèi)嵌至其URL請(qǐng)求API中的外鏈地址或腳本等形式。
焦點(diǎn)2:國(guó)內(nèi)主流SDK提供者有哪些?
從國(guó)內(nèi)主流的SDK提供者來看,主要可以劃分為3種類型——
綜合性的SDK提供者:
旗下會(huì)開發(fā)多款SDK產(chǎn)品,用于向應(yīng)用開發(fā)者提供多樣性的SDK功能。例如,極光、個(gè)推、友盟等SDK提供者。
特定品類SDK提供者:
SDK主要針對(duì)特定品類應(yīng)用提供其所必須的某種功能,旗下SDK產(chǎn)品的類型較為單一。例如,數(shù)盟、數(shù)美主要提供安全風(fēng)控類的SDK。
手機(jī)終端廠商:
手機(jī)終端廠商會(huì)基于系統(tǒng)功能特性為應(yīng)用開發(fā)者提供更為便利的SDK功能服務(wù),既降低應(yīng)用在特定手機(jī)終端系統(tǒng)上功能開發(fā)的成本,也能夠有效利用系統(tǒng)提供的多樣化功能服務(wù),為應(yīng)用實(shí)現(xiàn)更多功能。
焦點(diǎn)3:手機(jī)App接入SDK需注意哪些問題?
集成第三方SDK的優(yōu)勢(shì)顯而易見:首先,應(yīng)用程序可以獲得專業(yè)公司在各個(gè)領(lǐng)域提供的高質(zhì)量資源;
其次,如果應(yīng)用程序?qū)㈩愃芇ayPal(在線支付服務(wù)商)的第三方SDK包含在內(nèi),它就可以執(zhí)行像付款這樣復(fù)雜的功能。尤其是對(duì)于小型的開發(fā)團(tuán)隊(duì),這些SDK有助于提高應(yīng)用的開發(fā)效率。
另外,廣告平臺(tái)這種第三方SDK,還可以幫助應(yīng)用程序的開發(fā)者獲得收益。
在這個(gè)過程中,應(yīng)用開發(fā)者(通常以中小開發(fā)者為主)往往難以全面評(píng)估接入SDK的安全性,以及SDK的全部運(yùn)行行為。如果第三方SDK存在某些惡意或風(fēng)險(xiǎn)的代碼、行為,則會(huì)被引入到App中,給應(yīng)用開發(fā)者和App用戶帶來不可估量的安全風(fēng)險(xiǎn)和權(quán)益問題。
多項(xiàng)研究也證實(shí),一些第三方SDK存在隱私泄露問題。除了侵犯用戶隱私以外,有些第三方SDK還會(huì)采取不安全的實(shí)現(xiàn)方式,增加其宿主應(yīng)用程序的攻擊面,從而對(duì)用戶安全造成威脅。甚至是一些信譽(yù)較好軟件公司的SDK,也被發(fā)現(xiàn)存在嚴(yán)重的安全漏洞。
這些漏洞帶來的攻擊包括:將敏感數(shù)據(jù)泄露到公開可讀的數(shù)據(jù)源,代碼注入攻擊、賬戶劫持,將受害者設(shè)備連接到攻擊者控制的Dropbox(一款免費(fèi)網(wǎng)絡(luò)文件同步工具)賬戶等。
有業(yè)內(nèi)人士表示,當(dāng)應(yīng)用程序開發(fā)人員將第三方SDK加入到應(yīng)用程序中時(shí),會(huì)將某些權(quán)限、組件、數(shù)據(jù)等信息添加到manifest(一種軟件,可以運(yùn)行任何應(yīng)用程序的代碼)文件中。而第三方SDK可以與主機(jī)應(yīng)用程序共享manifest文件中的權(quán)限。
換言之,即使SDK在開發(fā)文檔中沒有聲明需要某些權(quán)限,如果manifest文件作了聲明,那么SDK也可以使用這些權(quán)限……
監(jiān)制:張寧 策劃:李政葳 制作:姚坤森