標籤:

警惕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使用看看。

推薦閱讀:

MaxCompute 中的Code Generation技術簡介
大數據技術六:Hadoop運行環境搭建
大數據跨界,從這裡開始
為什麼說「大數據」可能被人們過度神化了
攜程圖像智能化建設之路

TAG:大數據 |