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