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