sdk都有什麼文件夾(但你的秘密它可知道)
2023-07-27 11:08:35 3
不做網絡透明人
在手機App的世界裡,法規條文裡所謂的「第三方應用或服務」是個看得見摸不著的存在。但事實上,不管是你每天收到的新聞推送,還是促銷活動廣告,甚至簡訊驗證碼,都有可能出自第三方之手。
這些集成在App裡的第三方工具包被稱為SDK(Software Development Kit,軟體開發工具包)。它們可以幫助App高效率、低成本地實現地圖、支付、統計、社交、廣告等一系列功能,同時本身也具備獲取相當一部分設備信息和用戶個人信息的能力。
不過,由第三方SDK引入的安全問題也是顯而易見的。比如因開發者的安全能力水平參差不齊,可能導致SDK的安全漏洞;還有開發者會故意預留「後門」,以便收集用戶信息或執行越權操作。
2015年10月,一款名為「有米」的第三方廣告SDK被發現收集了用戶的個人身份信息,包括Apple ID郵件地址、設備識別碼,以及安裝在手機上的App列表信息。最後,使用有米SDK的256款App被蘋果應用商店下架。
2017年8月,同樣是第三方廣告SDK的「個信」被發現內置後門,在未經用戶允許的情況下收集用戶隱私數據,獲取用戶設備中全部已經安裝App列表。嵌入該SDK的500多款App的總下載量超過1億次,最終全部被Google Play下架。
為了摸清SDK獲取用戶個人信息的合規現狀,近日,南都個人信息保護研究中心、中國金融認證中心(CFCA)對60款常用App以及主流SDK進行了測評,並聯合發布《常用第三方SDK收集使用個人信息測評報告》(下稱《報告》)。
《報告》顯示,訊飛、TalkingData等SDK要收集的個人信息未在其嵌入App的隱私政策或彈窗中被提及,TalkingData、友盟SDK可能隱瞞了其要收集的個人信息,攜程、百度地圖等SDK則會將向自己的伺服器回傳未經加密的用戶個人信息甚至個人敏感信息。
平均每款App使用19.3個SDK
SDK可清楚了解用戶喜好
《報告》選取了社交交友、休閒娛樂、生活服務、購物導購、旅遊交通、移動金融六大行業的60款常用App,通過逆向分析、抓包、函數掛鈎等技術手段,分析這些App使用的SDK收集用戶個人信息的情況。
去除普遍對App加固而無法確切檢測的移動金融行業App,平均每款App使用的SDK數量為19.3個;按照App集成的SDK類別劃分,消息推送類SDK最多,綜合類和輔助開發類其次。
值得注意的是,其中微信SDK、騰訊Open SDK、小米推送SDK、華為SDK、支付寶SDK、Facebook SDK和愛彼迎SDK均被超過半數的App嵌入,而這些SDK都來自頭部網際網路公司。
從SDK被普遍使用的情況來看,App對SDK有較強的依賴性,SDK安全儼然已經成為整個移動網際網路生態中極其關鍵的一環,它們收集哪些信息、如何使用和保護這些信息也就十分重要。
《報告》顯示,在檢測時間內,60款App使用的966個SDK中,有150個獲取了IMEI、IMSI等手機設備信息,在所有類別中最為頻繁;有35個以上SDK獲取了各類網絡信息,如IP位址、MAC地址、Wi-Fi熱點信息等。
據南都記者了解,這些信息通常被用於統計分析和定向推送的目的。此外,還有10個SDK獲取了用戶行為信息,比如鎖屏、安裝/升級/卸載App。
高級產品研發專家馬巍源曾撰文揭露過SDK收集用戶信息的亂象,並將這些信息按照危險程度分為極高、高、中、低四個級別。其中獲取本地已安裝的App信息屬於危險級別「極高」的隱私信息。
文章指出,通過收集這類信息,SDK可以清楚了解用戶的喜好——「例如一個設備用戶安裝了某類同性交友App,那就意味著這種極其隱私的信息將被洩露」。
中國銀行、宜人財富使用的SDK
獲取錄音、定位未告知用戶
《報告》還發現,用戶的電話號碼、地理位置、手機視頻和相冊等個人信息也被一些SDK獲取,有的是為了實現相應功能,但有的是未經用戶允許獲取的。
國家標準《信息安全技術 個人信息安全規範》修訂草案要求,當個人信息控制者在其產品或服務中接入具備收集個人信息功能的第三方產品或服務時,應通過合同等形式明確雙方的安全責任及應實施的個人信息安全措施,並要求第三方向個人信息主體徵得收集個人信息的授權同意。
也就是說,SDK收集個人信息也需要經過用戶授權同意。由於SDK不直接與用戶交互,使用它的App有義務代為向用戶告知。然而,不少App並沒有做到——用戶的隱私很可能在不知情的情況下被SDK收集了。
中國銀行手機銀行App的訊飛SDK可以「對環境或通話錄音」,中國銀行手機銀行App卻沒有提供任何隱私政策,更不用提能夠告知並獲取同意;宜人財富App和宜人貸借款App使用的TalkingData SDK獲取了用戶的地理位置,但均未在隱私政策裡告知用戶。
此外,《報告》還根據《網絡安全實踐指南—移動網際網路應用基本業務功能必要信息規範》,列出了113個SDK超出規範界定收集的「非必要信息」,即App基本業務功能之外的個人信息(獲取此類信息並不違規,但需要主動獲取用戶的同意)。
雖然國內對於第三方SDK獲取非必要信息尚沒有法律法規條文的規定,但依照「知情同意」的原則,《報告》認為,即使這些信息並不是App本身需要,而是SDK需要收集的,App也應在收集上述個人信息時彈窗,獲取用戶同意,以保障用戶知情同意的權利。
TalkingData、友盟SDK
或隱瞞收集用戶個人信息
SDK實現功能需要申請對應的系統權限,但它收集的個人信息是否僅限於權限涉及的範圍之內呢?
《報告》對15個較為主流的SDK進行深度分析發現,SDK需要申請的系統權限從5項到14項不等,極光數據分析SDK、百度地圖SDK申請得最多。
在官方文檔裡提供了相關信息的10個SDK中,三成能夠通過代碼收集超出其聲明權限範圍的個人信息,可能存在隱瞞收集用戶個人信息的情況。
比如TalkingData SDK僅聲明會獲取地理位置信息,但它的代碼還包括讀取第三方平臺帳戶信息、已綁定的NFC支付卡信息等內容;友盟SDK有獲取地理位置信息的代碼,但並未聲明。
《報告》指出,還有少數SDK會向自己的伺服器回傳未經加密的用戶個人信息甚至個人敏感信息。值得注意的是,這裡的未經加密可能存在兩種情況,一種是未對通信渠道加密(如http),另一種是未對傳輸內容加密(如使用https但未對數據本身加密)。
比如Ping SDK、TalkingData SDK、攜程SDK、百度地圖SDK會向伺服器傳輸未經加密的地理位置信息。這些個人信息在App開發者、單個或多個第三方之間流動,增加了個人信息洩露、濫用的風險。
南都記者梳理發現,近年來出臺的不少個人信息保護、數據安全相關法規和標準已經明確了管理SDK的必要性。
《數據安全管理辦法(徵求意見稿)》第三十條規定,網絡運營者對接入其平臺的第三方應用,應明確數據安全要求和責任,督促監督第三方應用運營者加強數據安全管理。
《信息安全技術 個人信息安全規範》修訂草案則要求,涉及SDK等第三方嵌入或接入的自動化工具的個人信息控制者,宜開展技術檢測確保第三方的個人信息收集、使用行為符合約定要求;宜對其收集個人信息的行為進行審計,發現超出約定行為的及時切斷接入。
採寫:南都記者 蔣琳
,