關於Zoom被禁事件引發的
APP如何做好SDK合規的思考
文/王捷 曾晨
全球疫情的爆發使更多會議轉移到線上,遠程會議服務軟體Zoom的用戶數量也隨之大幅增加,但卻因為被連續曝出存在隱私和安全問題而引起了廣泛關注,根據外媒報導,馬斯克的SpaceX公司,以及美國NASA,都要求禁止他們的員工使用視頻會議應用Zoom,理由是存在「嚴重的隱私和安全問題」。伴隨Zoom的股價暴跌,Zoom也緊急宣布未來90天將凍結功能更新,並承諾在此期間解決隱私安全問題,同時還發起「漏洞賞金」計劃,為發現安全漏洞的人提供報酬,並與第三方一起解決問題。
那麼,Zoom究竟為何被禁呢?扼要分析一下:
Zoom被禁的導火索主要有兩個:
第一:Zoom客戶端本身存在的安全漏洞(Zoom可能並沒有做到真正的端對端加密)。
據外媒披露,不同版本的Zoom可能存在對應的安全問題。例如,對於Windows版的Zoom客戶端:因容易受到NUC路徑注入攻擊而存在安全漏洞,從而導致用戶面臨隱私洩露的風險(用戶的Windows 登錄憑據將可能被竊取)。而對於iOS版:則因內嵌的臉書的SDK問題,無論使用Zoom的用戶有沒有註冊Facebook帳戶,Zoom內嵌的這個臉書SDK都會向Facebook傳遞用戶的手機型號、時區、所在城市、運營商以及廣告唯一標識符等信息。
第二:Zoom隱私政策內容不甚明確,特別是對於第三方SDK的描述部分。
雖然Zoom的隱私政策有提及「當用戶使用臉書帳號登錄時,將會收集用戶臉書帳號的個人資料」,但是,對於如何使用第三方SDK的內容,可能並沒有比較清楚地向用戶進行描述,一些沒有臉書帳號的用戶,也會因為這個內嵌的SDK而接受到相關的推送信息等。據媒體報導,隨後,Zoom雖然發表了相關聲明,但同時也在IOS客戶端移除了臉書的SDK。
關於第一點,與整體的安全保護方案(開發設計、測試、發布和運維全生命周期的安全保護)相關,我們暫不討論,而引起我們思考的是第二點,關於App中如何做好SDK合規的問題。
談所謂的合規之前,我們還是先來扒一扒啥是SDK。其實關於SDK的介紹市面上挺多的。我們也扼要概括一下。
SDK即軟體開發工具包(Software Development Kit),是軟體工程師用於為特定軟體包、軟體框架、硬體平臺、作業系統等創建應用軟體的開發工具集合,開發者無需了解SDK內部實現細節,只需要調用程序接口,便可以幫助App實現登陸分享、支付、廣告、數據統計、地圖、風控插件等一系列功能。
一般而言,SDK供應商開發出各種類型SDK後,會上傳到開發者社區或者其他發布渠道,企業或個人開發者將這些SDK集成到App中後會把這些App再發布到應用商店,供最終用戶從應用商店下載這些App使用。在這個鏈條中,SDK供應商將自身的數據和能力提供給企業和個人開發者,企業和個人開發者利用這些數據和能力使自己的產品變得更加豐富,更加多元化,同時又降低了自己的開發成本。
雖然說SDK是現在各類APP不可或缺的小夥伴,但是這裡要注意啦,因為SDK自身就具備獲取相當一部分設備信息和用戶個人信息的能力,所以存在對應的違規收集和使用個人信息的風險。例如,在上述場景下的SDK就需要引用方採取適當的安全防護措施,保障所引用SDK的安全性。
圖1 SDK的供應路徑
1. SDK都有哪些類型?
為了審視SDK相關的安全問題,根據使用形態對SDK進行分類
引入SDK: 自身應用中集成引入的第三方SDK(ZOOM)
外發SDK:將自身業務服務封裝,發布出去給第三方廠商調用使用的SDK
2. SDK有哪些神通廣大的功能?
SDK根據功能的不同可以分為推送、通信、存儲、安全、地圖及位置服務、統計及增長、社交、廣告、語音識別、圖像識別等種類。
例如金融行業的開放銀行領域,銀行業者通過將自己的業務服務和數據服務封裝到一個SDK中,實現向第三方合作夥伴提供開放金融能力。
3. SDK都收集哪些信息?(通過Android提供的標準系統加入平臺獲取)
應用信息類:到用戶手機上已經安裝的APP信息列表和正在運行的應用列表
帳號信息類:用戶帳號信息
網絡相關信息類:用戶行動裝置的聯網信息、用戶通信的設備信息、GPS、NFC信息等
設備信息類:用戶行動裝置標識信息、SIM標識信息等
傳感器信息類:不同型號的行動裝置,集成傳感器的數量與種類也有所區別,比如用戶的行蹤可以通過位置傳感器精確追蹤
近日,南都個人信息保護研究中心、中國金融認證中心(CFCA)對60款常用App以及主流SDK進行了測評。發現了目前SDK使用過程中的部分問題。
問題包括:
圖2 App中使用第三方SDK的數量分布圖
(數據來源:南都智庫《2019個人信息安全年度報告》)
1. 隱瞞收集個人信息的情況
前面提到過,第三方SDK和APP一樣,也是具有收集用戶個人信息的能力的,但究竟這個小玩意(SDK)究竟收集了哪些個人信息,從用戶的層面來看其實是很難有感覺的,甚至APP的運營者或開發者也未必全都知道(細思極恐~)。一旦這個第三方SDK在沒有經過用戶同意的情況下,就收集了各類與用戶密切相關的敏感信息,例如銀行帳號,生物特徵信息等,並傳輸到其他伺服器甚至境外,將會引發極大的個人數據隱私風險。
2. 程序自身存在安全漏洞
目前,已經發現的SDK安全漏洞包括HTTP誤用,SSL/TLS不正確配置、敏感權限濫用、通過日誌造成信息洩露等。如果一個APP嵌入的第三方SDK越多,它的安全漏洞可能就越明顯,影響範圍也就越大了。
3. 惡意SDK導致軟體供應鏈汙染
比如說,「引入SDK」的主要安全風險來自SDK自身的惡意行為。由於Android作業系統帶有熱更新機制,這使得一部分惡意SDK在客戶集成階段會表現為一個非常正常的應用,而一旦應用發布後到了運行階段,攻擊者就會通過熱更新機制,更新惡意代碼,執行盜取用戶數據、採集敏感信息等惡意行為。這種發布後作惡的行為在很大程度上繞過了發布前的靜態檢測,具有非常大的迷惑性,也使得其作惡行為更加難以被發現。
而「外發SDK」的風險則主要存在於在發布後的運行階段,極容易遭遇剝離、破解、注入、調試和滲透測試等運行時攻擊行為。
合規總思路:
合規分析流程圖:
1. 第三方SDK是否有收集個人信息行為?
2. 第三方SDK收集個人信息的行為是通過其所依附的App主動獲取的,還是該第三方SDK自行收集的?
此時,該APP需要在隱私政策向用戶告知第三方SDK的名稱、收集個人信息的目的、方式和範圍等;
3. 第三方SDK自行收集個人信息時,如果宿主APP關閉相應收集權限,該第三方SDK是否還能繼續收集個人信息?
圖3 第三方SDK合規分析流程圖
1. 對於間接收集類SDK
一些常見的情況是,第三方SDK只是作為受宿主APP委託處理數據的數據處理者時,由於用戶難以感知這些SDK對個人信息的收集情況,且第三方SDK也不會用自己的名義收集個人信息,這時,APP運營者/開發者就特別需要注意,把如何向第三方SDK分享個人信息的情況告知用戶,並獲得用戶的有效同意了,例如通過彈窗告知、增加連結等不同方式。同時,根據最新出的網絡安全標準實踐指南 —移動網際網路應用程式(App)個人信息安 全防範指引(徵求意見稿)的規定,也要求了需要對嵌入的收集用戶個人信息的第三方 SDK 進行披露,告知第三方 SDK 類型,及收集使用的個人信息的目的、方式和範圍。特別在涉及敏感信息時,還需要告知接收方的身份和數據安全能力,並徵得明示同意,當用戶撤回同意後,還需要幫助用戶刪除在第三方SDK的相關數據。
2. 對於直接收集類SDK
當這些嵌入到APP中的第三方SDK直接收集個人信息,並用自己的名義向用戶提供服務時,由於第三方SDK露出對應品牌,用戶其實對於這類的SDK是有明顯的感知的,此時的第三方SDK較大程度成為個人信息控制者,在收集用戶個人信息時候,需要向用戶告知並獲得用戶的同意。
這裡也要特別注意的是,當第三方SDK也可能與APP開發者進行信息共享的時候,建議採取三重授權原則,即用戶授權+平臺授權+用戶授權,以便解決合法授權的問題。
3. 對風險等級進行評估
建議APP運營者/開發者對第三方SDK進行安全評估和風險等級評估,包括對代碼進行審計和對漏洞進行檢測,進而評估該SDK來源的可靠性、代碼的安全質量以及對應的潛在安全風險。比如說,可以對SDK所收集的個人信息的欄位等具體應用場景進行安全評估,遵循最小化權限使用原則等。舉一些例子如下:
(1)採集用戶行動裝置上已經安裝的應用信息、安裝列表。通過採集手機APP安裝的應用程式列表,從而了解用戶的生活習慣、愛好等,實際上侵犯了用戶的隱私。(2)採集行動裝置正在運行或最近運行的程序任務信息。通過採集用戶手機設備的應用情況,包括啟動次數、時長等信息進行記錄分析,同樣數據侵犯用戶隱私。
風險級別:高
帳戶信息也同樣具備敏感性,尤其是當帳戶信息與設備信息進行關聯,必然導致客戶的帳戶安全受到不同程度的影響,甚至導致用戶的利益損失。
風險等級:極高
但現實中,確實也存在比較難地通過技術檢測逐一去合適SDK的合規性和安全性,此時,仍然建議可以通過與SDK供應商籤訂合同或承諾保證函等方式,約定SDK供應商的權利和義務。
總體來說,從數據合規及安全的角度,客戶的個人信息並非不能收集,而是要遵循合法、正當、必要的原則,在獲取用戶信息前徵得用戶同意。另外在獲取用戶個人信息後,應當按照相應的標準進行存儲和管理,避免用戶因此遭到信息的洩露。一旦APP接入的SDK存在問題,則第一責任主體為APP運營主體。例如,通過製作、發布、吸引 App 嵌入含有惡意代碼的第三方 SDK,那麼用戶首先可追究APP運用的責任,APP運營者和SDK提供者對用戶損失承擔連帶賠償責任。當然,也有連帶責任的例外,當第三方SDK與用戶單獨授權獲取用戶信息,在用戶與SDK提供者之前因客戶信息授權、使用的責任由用戶與SDK使用者之前自行處理。
對於SDK的監管,比較可能成為接下來的監管熱點,從目前公開的一些資料來看,在監管上的對策建議概括總結如下:
1. 制定SDK安全評估標準
目前尚無明確的SDK安全評估標準規範可以評估和識別SDK廠商是否符合安全標準,這就勢必導致部分不合規的SDK廠商由此鑽漏洞,「私攜」客戶信息、或留「後門」等。監管部門應儘快制定安全評估標準,引導APP運用者識別不良SDK廠商,避免用戶信息洩露或造成用戶風險損失。
2. 引入第三方SDK獨立監管體制
目前監管部門把重點放在App上,想通過App對SDK進行管理和監督。但實際頭部SDK比App更強勢,很多APP運營者無技術能力和監控手段對SDK進行監督和管理。因此由監管部門直接管理或許更有利於行業的健康發展。特別需要注意的是,SDK獨立監管並不意味著APP運營者無責任,同樣應當對接入的SDK進行評估和管理,當因APP運營者疏忽或者故意引入不當SDK造成客戶損失的情況下,仍應按照《民法》等相關法律承擔相應的賠償責任。
1. 安全內參:關注App嵌入第三方SDK收集使用個人信息的安全隱患【聲明】本文內容可能會因法律法規修改而變更,司法實踐中依個案實際情況來處理。本文僅代表作者目前所持的理論觀點,不代表作者供職機構或其他相關機構的意見。本文僅為交流之用,所有內容不構成對任何個案的意見、建議或觀點。作者和發布平臺明示不對任何根據本文任何內容的作為或不作為所導致的後果承擔責任。王捷,浙江墾丁律師事務所,海外業務負責人,資深出海法律顧問(廣州),曾任職阿里巴巴大文娛集團,深耕海內外多條業務線,八年多的科技型公司實務經驗與中外律所從業背景,能更準確理解客戶核心需求,快速響應並提供基礎到戰略的有效支持,並為各類出海網際網路企業拓展印度、東南亞、中東、非洲、歐美等新興及重要市場提供有效的合規解決方案與落地支持。編輯 方巧娟
主編 劉洋
網絡法律師、網際網路公司法務、司法界人士、
市場監管等實務界人士、網際網路創業者
在這裡見證網絡法生長、同步網絡法最新案例和知識
商務合作、轉載、投稿:
添加微信tocity2017
郵件49910374@qq.com
掃二維碼進群聊
謝謝點擊一下「在看」↓