App已深入到用戶的生活中,各類App應用程序迅速普及,在促進經(jīng)濟社會發(fā)展、服務民生等方面發(fā)揮了重要作用。隨著市場的快速迭代,技術(shù)的不斷創(chuàng)新,App開發(fā)者為了提升產(chǎn)品研發(fā)效率、降低成本,經(jīng)常嵌入第三方SDK(Software Development Kit ,軟件開發(fā)工具包)以快速實現(xiàn)某些基礎、特定的功能。
通付盾北斗團隊對市面上的SDK做了深度分析與統(tǒng)計,SDK主要類型有以下幾類:框架類、廣告類、推送類、統(tǒng)計類、地圖類、第三方登陸類、社交類、支付類、客服類、測試類、安全風控類、Crash監(jiān)控類、人臉識別類、語音識別類、短信驗證類、基礎功能類等。各類App平均使用第三方SDK的數(shù)量在10個以上。例如,我們檢測了某款App,其用到的第三方SDK多達20多款。具體情況見以下圖1。
圖1 某App使用的第三方SDK情況
不難看出,SDK依附于App已滲入到各個行業(yè)的大量App中,SDK的生命周期取決于App的生命周期。SDK與App的關系可見圖2。
圖2 SDK使用場景示意圖
SDK本身不具備運行能力,必須等待宿主App調(diào)用才能被執(zhí)行,完成特定功能。
第三方SDK無疑給App開發(fā)者帶來了極大便利,但與此同時SDK的安全與合規(guī)問題也逐漸漏出水面,SDK收集個人信息和安全問題也已得到了各方的關注。2019 年以來各監(jiān)管部門均將SDK違法違規(guī)收集個人信息作為重點審查對象之一。涉及SDK安全與合規(guī)的主要標準、規(guī)范見下表1。
《GB/T 35273-2020 信息安全技術(shù)個人信息安全規(guī)范》
《JR/T 0171-2020 個人金融信息保護技術(shù)規(guī)范》
《網(wǎng)絡安全標準實踐指南—移 動互聯(lián)網(wǎng)應用程序(App)收集使用個人信息自評估指南》
《移動應用軟件SDK安全技術(shù)要求和測試方法》
《移動應用SDK安全指南》
《網(wǎng)絡安全標準實踐指南移動互聯(lián)網(wǎng)應用程序(App)中的第三方軟件開發(fā)工具包(SDK) 安全指引》
《常見類型移動互聯(lián)網(wǎng)應用程序必要個人信息范圍規(guī)定》
《信息安全技術(shù) 移動互聯(lián)網(wǎng)應用程序(App)SDK安全指南》
表1涉及SDK安全與合規(guī)的主要標準、規(guī)范
近期RSAC2021落下帷幕,RSAC沙盒大賽冠軍是一家專注于代碼安全的廠商,這說明供應鏈安全開始成為一個全球關注的熱門新興領域,這當然和美國供應鏈安全事件的大規(guī)模爆發(fā)是分不開的,同時從整個安全架構(gòu)層面上來分析,供應鏈確實是目前安全最脆弱一環(huán),從今年的HW數(shù)據(jù)來看,有30%左右的攻擊都是來自供應鏈,而供應鏈安全里最重要的一環(huán)就是源代碼的安全治理。
下文從SDK自動化檢測,以安全性與合規(guī)性兩個層面重點展開描述,簡述相關檢測原理。
SDK安全檢測
被檢測的SDK可以單獨以jar、aar、zip、so等形式存在,也可以集成到具體應用中,在掌握全面的移動安全風險信息前提下,對SDK進行檢測,檢測流程主要分為待檢測包的預處理、特征掃描、數(shù)據(jù)處理三大步驟。
首先,對應用程序安裝包或者SDK包進行反編譯,得到代碼文件;
圖3某SDK反編譯后部分代碼
然后,對反編譯后的代碼文件進行特征掃描,查找相應的符號特征信息,并與國家漏洞信息庫進行完整的特征匹配,記錄漏洞的特征信息、代碼位置及風險信息;
最后,對特征掃描生成的漏洞信息數(shù)據(jù)集整合處理并生成檢測報告,報告中可展示具體的安全風險問題、漏洞位置、修復建議等。
圖4 SDK安全檢測流程
SDK在開發(fā)時聚焦于功能實現(xiàn)而忽視了安全性,導致SDK本身存在安全漏洞。這些漏洞可被惡意攻擊者利用,對嵌入該SDK的大量App及其最終用戶的數(shù)據(jù)及隱私安全造成損害。我們對市場上主流App及SDK做了檢測分析,第三方SDK相關的漏洞安全包括:編碼規(guī)范檢測、發(fā)布規(guī)范檢測、代碼安全檢測、環(huán)境安全審計檢測、組件安全檢測、數(shù)據(jù)安全檢測、安全漏洞檢測7個層級,60多項潛在的安全風險。
圖5 某第三方SDK組件漏洞
App中嵌入的第三方SDK越多,安全漏洞涉及的范圍就會越廣,App開發(fā)者應當謹慎使用第三方SDK。值得一提的是:存在一類SDK利用動態(tài)加載技術(shù)實現(xiàn)遠程控制惡意代碼執(zhí)行,因為惡意代碼在本地不存在,執(zhí)行時才被下載到本地執(zhí)行,逃脫了殺毒類軟件的掃描,隱蔽性非常強,對最終用戶造成了極大傷害。
SDK合規(guī)檢測
一些常見的SDK,如支付類SDK、導航類SDK,本身的功能就與個人信息有密切關系,SDK常見搜集的信息包括手機設備信息(如IMEI、IMSI等設備唯一識別碼)、網(wǎng)絡信息(如IP地址、MAC地址、Wi-Fi熱點等)、手機狀態(tài)信息(如已安裝/運行中的應用信息)、用戶行為信息(如鎖屏、安裝、升級、卸載應用軟件)、用戶個人信息(如電話號碼、地理位置、通話記錄)等,其搜集的信息范圍很廣泛。SDK作為App的一部分,App需要對SDK的行為承擔法律責任,《數(shù)據(jù)安全管理辦法(征求意見稿)》、《個人信息安全規(guī)范》、《移動互聯(lián)網(wǎng)應用程序(App)收集使用個人信息自評估指南》明確指出App應如何處理與SDK的關系。
SDK經(jīng)常在App背后收集用戶個人信息,這一類行為難以被發(fā)現(xiàn),需要依托自動化動態(tài)類的檢測幫助識別,SDK依托于App運行,因此可以對App直接進行檢測,找出SDK運行部分即可。
主要思路:定制化ROM及真機設備,在定制化ROM中加入探針和監(jiān)聽器,將App PUSH到定制設備中運行,通過腳本控制App在定制化ROM自動運行,遍歷App全部功能,定制化ROM中的探針與監(jiān)聽器記錄整個App運行過程中產(chǎn)生的數(shù)據(jù)、權(quán)限申請行為、數(shù)據(jù)采集行為等,依據(jù)權(quán)限檢測標準,主動發(fā)現(xiàn)App及SDK未經(jīng)授權(quán)擅自收集、過度和非必要收集、頻繁索權(quán)和強制收集、私自共享個人信息給第三方等違規(guī)問題。定制化ROM+動態(tài)檢測可準確地找出SDK中存在的敏感權(quán)限調(diào)用及過度收集個人信息行為。
圖6動態(tài)檢測分析流程示意
下面提供了一組具體實現(xiàn):
分析第三方SDK信息。通過逆向工具分析應用內(nèi)smali文件、AndroidManifest.xml等關鍵信息,分析并獲取應用包含的第三方SDK信息,如下圖7
圖7 某應用內(nèi)包含的SDK列表
通過定制化ROM+動態(tài)檢測收集運行時的權(quán)限調(diào)用情況、記錄調(diào)用點、記錄個人信息采集情況及其他運行數(shù)據(jù)。在權(quán)限調(diào)用事件分析基礎上,對檢測過程中權(quán)限調(diào)用事件與SDK進行匹配,生成關聯(lián)SDK的調(diào)用分析數(shù)據(jù),可以檢測到具體權(quán)限調(diào)用時間點、權(quán)限申請位置、權(quán)限申請目的等信息。如下圖8和圖9。
圖8 運行時權(quán)限調(diào)用事件列表
圖9 某SDK在應用運行時權(quán)限調(diào)用情況
從近期的安全事件中以及前期監(jiān)管通報的案例中能夠看到,多起案例均是App集成的SDK搜集個人信息,但沒有在隱私政策提及SDK收集信息的動作,最終導致監(jiān)管通報批評,造成不良輿論,甚至App被直接下架,對業(yè)務造成影響。
通付盾北斗團隊憑借自身在移動安全領域與隱私保護領域研發(fā)服務實力,已將SDK安全與合規(guī)檢測完全云服務化,通付盾云SDK檢測服務依托于先進的動靜雙結(jié)合檢測引擎技術(shù),結(jié)合云真機檢測平臺,自動收集與分析市場上出現(xiàn)的SDK,依據(jù)檢測標準,對各類App及SDK進行全面檢測,提供專業(yè)的檢測報告和修改建議。
團隊介紹
通付盾北斗團隊(負責安全合規(guī)產(chǎn)品)于2013年成立,8年來專注于移動應用全生命周期的安全研究,積累了豐富的移動應用安全實戰(zhàn)經(jīng)驗,不斷保持技術(shù)研發(fā)與創(chuàng)新,致力于為企業(yè)提供移動應用全生命周期安全工程解決方案。自研了符號執(zhí)行、動態(tài)沙箱、大數(shù)據(jù)分析、VMP虛擬機保護、iPA動態(tài)殼保護等多個核心技術(shù)。團隊所研發(fā)產(chǎn)品已服務于上千家各行業(yè)客戶,深入到政府、軍工、能源、金融、運營商、教育、醫(yī)療、傳媒、交通、互聯(lián)網(wǎng)等行業(yè),為數(shù)十億級移動終端提供了移動應用安全保障。其中移動應用安全合規(guī)檢測成功服務國測、軍測、公安和工信部,實現(xiàn)國家級測評機構(gòu)全覆蓋。
“技術(shù)、安全、創(chuàng)新”
(免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。 )