警惕SDK代碼的應用:揭秘SDK采集5大隱私數據的方式
作者:【友盟+】高級產品研發專家 馬巍源
27日周五,本人寫了一篇“被Google Play下架刷爆朋友圈:聊聊SDK采集數據的秘密”,和互聯網圈里的開發者朋友一同針對SDK采集用戶隱私數據行為進行了探討,文章中也列舉出了5條目前一些第三方數據公司在未經用戶允許的情況下利用SDK采集的用戶隱私數據指標,同時也強調了這些隱私數據被采集后將對用戶本身有何影響及相關危險性,有想了解的朋友可以添加“友盟數據運營舍”微信公眾賬號查看。
在完成第一篇文章后,有些開發者反映還是想看到些更技術層面的SDK分享,所以今天拋出SDK第二篇分享——技術篇,從代碼層面出發,為眾多開發者梳理下SDK采集數據的代碼都有哪些,不同數據指標的代碼有什么區別,這些數據指標涉及用戶信息隱私的程度如何,幫助開發者規避SDK中存在的“地雷“。希望看完以下內容可以給互聯網開發者一些實質性的幫助,同時也希望引起行業內對利用SDK采集用戶隱私數據的反思。
接下來介紹的SDK代碼是以Android平臺為主列舉的,其中包括五大類開發者可以采集到信息:“設備信息”、“應用信息”、“傳感器信息”、“賬號信息”、“網絡相關信息”。如果一旦開發者需要采集這些數據,必須給出數據披露,否則可能會被應用商店做下架處理
一、應用信息類(信息隱私程度:隱私)
獲取到用戶手機上已經安裝的APP信息列表和正在運行的應用列表。這類數據屬于嚴重涉及用戶隱私的數據,不建議開發者在應用中做這樣的操作。
二、賬號信息類(信息隱私程度:隱私)
獲取用戶賬號信息。此類數據也屬于嚴重涉及用戶隱私的數據,不建議開發者在應用中做這樣的操作。
三、網絡相關信息類(信息隱私程度:隱私)
獲取用戶移動設備的聯網信息、用戶通信的設備信息、GPS、NFC信息等。開發者可以利用這些信息準確定位用戶地理位置,但這些信息都屬于用戶非常敏感及隱私的,如果您的服務不是專門提供位置服務,請不要在APP中獲取這類信息,避免違反隱私政策。
四、設備信息類(信息隱私程度:較高)
獲取用戶移動設備標識信息、SIM標識信息等。但像手機號碼這樣的用戶隱私數據是一定不能采集的,否則會觸及各應用商店審核的紅線。
五、傳感器信息類(信息隱私程度:隱私)
現在的智能移動設備內部集成了大量的傳感器,用以完成智能化工作。不同型號的移動設備,集成傳感器的數量與種類也有所區別,比如用戶的行蹤可以通過位置傳感器精確追蹤,但這類數據也屬于用戶隱私數據。
以上五大類數據指標是可以通過Android提供的標準系統接口獲取,但如果使用,必須第一時間告知用戶要采集用戶哪些數據,并告知用戶這些數據用途是什么,在用戶同意的情況下才可使用。不過對于其中涉及用戶隱私程度較嚴重的幾類數據,例如:安裝的軟件列表信息、運行的安裝列表信息、GPS信息、NFC信息等,幾大應用商店都禁止使用,一旦被發現肯定會做下架處理。
跨越Android系統接口作弊的采集方式
面對目前應用商店嚴格的規則,個別第三方SDK也會通過別的方式采集用戶隱私數據,例如:執行shell獲取移動設備上已經安裝的應用信息,這種采集方式是跨越Android系統接口的方式,通過執行linux命令的方式獲取。這種跨過Android系統接口采集戶隱私數據的行為可以說屬于作弊、鉆漏洞行為,我本人堅決抵制這種行為。這種作弊的相關代碼也分享給開發者,開發者可根據代碼中的信息判斷SDK是否通過跨越Android系統接口的方式采集隱私數據。
隱私數據的用途及風險
以上代碼基本可以囊括目前市場上SDK采集數據涉及用戶隱私的類別,下面再就本文中各類數據采集后的用途,以及每個數據存在的隱私風險為大家做個評估。
1、應用信息類(風險程度:高)
SDK采集數據指標:安裝的軟件列表、運行的安裝列表。
用途與風險:通過采集這類信息可以清楚了解用戶設備中各類APP應用的信息,若數據量龐大,即可推算出每款APP應用的市場占有率情況、各類競品APP的情況。同時也可以用于分析用戶喜好、興趣特征、行為習慣等。完全泄露用戶隱私數據,侵犯用戶隱私。
隱私保護建議: 提前做數據披露,需要獲得用戶許可。
2、賬號信息類(風險程度:高)
SDK采集數據指標:獲取用戶賬號。
用途與風險:通過采集這類信息可以獲取用戶賬戶列表,將移動設備信息與用戶賬號關聯,對設備進行唯一標示。這種數據的采集會給用戶帶來極高的風險,若用戶賬號被泄露、克隆,用戶的利益和生命財產可能受到威脅。
隱私保護建議: 提前做數據披露,需要獲得用戶許可。
3、網絡相關信息類(風險程度:高)
SDK采集數據指標:Wifi信息、GPS信息、藍牙信息、NFC適配器信息。
用途與風險:通過采集GPS信息可以獲取用戶位置信息,進行用戶地域行為分析;采集Wifi、藍牙、NFC信息可獲取網絡連接狀態及配對設備信息、用戶支付信息、用戶登錄驗證信息等。這些信息的采集完全侵犯了用戶隱私,支付、登錄驗證等信息將泄露更多用戶身份,使用戶赤裸裸的“公布于眾”,毫無安全可言。
隱私保護建議: 提前做數據披露,需要獲得用戶許可。
4、設備信息類(風險程度:較高)
SDK采集數據指標:電話類型、網絡類型、注冊國家、硬件廠商。
用途與風險:通過采集這類信息可以獲取用戶機型信息、運營商信息、地域分部信息等,一般用于進行機型適配、用戶地域分析、網絡模式分析等。這類數據的采集對于用戶隱私安全的侵害影響不大,多數用于行業趨勢分析。
隱私保護建議: 提前做數據披露,需要獲得用戶許可。
5、傳感器信息類(信息隱私程度:隱私)
SDK采集數據指標:加速度傳感器、環境光傳感器、距離傳感器、磁力計傳感器、平衡傳感器、震動傳感器。
用途與風險:通過采集這類信息可以獲取用戶移動設備上傳感器配置信息,了解用戶移動設備可支持哪些功能,適合運行哪種類型APP。也有一些安全類APP可通過觸發傳感器判斷此移動設備是否是真機。此類數據的采集對于用戶隱私安全的侵害影響不大。
隱私保護建議: 提前做數據披露,需要獲得用戶許可。
SDK隱私政策、協議
開發者除了對SDK代碼要有詳細的了解外,還要對隱私政策有所重視和規范,以保護所有使用服務用戶的個人隱私權。以安卓為例,目前市場上對于隱私政策的規范都包含:適用范圍、信息使用、信息披露、信息存儲和交換、Cookie的使用、信息安全這幾大方面。
隱私政策舉例(模板)
隱私政策舉例(模板)
其中信息的使用與信息披露尤為重要,如Google Play都要求凡涉及個人信息及敏感信息的,必須提供隱私權政策,以及任何形式的應用內披露聲明,以及完整說明您的應用會收集、如何使用、分享和處理用戶數據。但一般來說,應用市場對于在用戶不知情的情況下采集獲取用戶的“賬戶信息”、“傳感器信息”、“藍牙信息”、“NFC信息”、應用安裝信息“等是嚴格禁止的。一旦發現APP中有這樣的行為存在,APP下架處理是必然的結果。所以開發者要充分重視對用戶的告知義務,包括將第三方SDK的數據采集信息,也應列入APP的用戶隱私政策條款中。
最后,回答一個網友問的問題:【友盟+】算是有良心的那種么。【友盟+】從創建公司至今都是以維護用戶與開發者權益及隱私安全為己任,【友盟+】SDK中絕不涉及在隱私協議范圍外私自采集用戶隱私數據行為,大家可以下載【友盟+】SDK使用看看。(本文已授權發布簡書,轉載請注明出處)