事件快速回顧:Zoom 爲何被禁?

全球疫情的爆發使更多會議轉移到線上,遠程會議服務軟件 Zoom 的用戶數量也隨之大幅增加,但卻因爲被連續曝出存在隱私和安全問題而引起了廣泛關注,根據外媒報道,馬斯克的 SpaceX 公司,以及美國 NASA,都要求禁止他們的員工使用視頻會議應用 Zoom,理由是存在“嚴重的隱私和安全問題”。伴隨 Zoom 的股價暴跌,Zoom 也緊急宣佈未來 90 天將凍結功能更新,並承諾在此期間解決隱私安全問題,同時還發起“漏洞賞金”計劃,爲發現安全漏洞的人提供報酬,並與第三方一起解決問題。

Zoom 事件:APP 如何做好 SDK 合規?

那麼,Zoom 究竟爲何被禁呢?扼要分析一下:

Zoom 被禁的導火索主要有兩個:

第一:Zoom 客戶端本身存在的安全漏洞(Zoom 可能並沒有做到真正的端對端加密)。

據外媒披露,不同版本的 Zoom 可能存在對應的安全問題。例如,對於 Windows 版的 Zoom 客戶端:因容易受到 NUC 路徑注入攻擊而存在安全漏洞,從而導致用戶面臨隱私泄露的風險(用戶的 Windows 登錄憑據將可能被竊取)。而對於 iOS 版:則因內嵌的臉書的 SDK 問題,無論使用 Zoom 的用戶有沒有註冊 Facebook 賬戶,Zoom 內嵌的這個臉書 SDK 都會向 Facebook 傳遞用戶的手機型號、時區、所在城市、運營商以及廣告唯一標識符等信息。

第二:Zoom 隱私政策內容不甚明確,特別是對於第三方 SDK 的描述部分。

雖然 Zoom 的隱私政策有提及“當用戶使用臉書帳號登錄時,將會收集用戶臉書帳號的個人資料”,但是,對於如何使用第三方 SDK 的內容,可能並沒有比較清楚地向用戶進行描述,一些沒有臉書帳號的用戶,也會因爲這個內嵌的 SDK 而接受到相關的推送信息等。據媒體報道,隨後,Zoom 雖然發表了相關聲明,但同時也在 iOS 客戶端移除了臉書的 SDK。

Zoom 事件:APP 如何做好 SDK 合規?

關於第一點,與整體的安全保護方案(開發設計、測試、發佈和運維全生命週期的安全保護)相關,我們暫不討論,而引起我們思考的是第二點,關於 App 中如何做好 SDK 合規的問題。

SDK究竟是什麼?

談所謂的合規之前,我們還是先來扒一扒什麼是 SDK。其實關於 SDK 的介紹市面上挺多的,我們也扼要概括一下。

SDK 即軟件開發工具包(Software Development Kit),是軟件工程師用於爲特定軟件包、軟件框架、硬件平臺、作業系統等創建應用軟件的開發工具集合,開發者無需瞭解 SDK 內部實現細節,只需要調用程序接口,便可以幫助 App 實現登陸分享、支付、廣告、數據統計、地圖、風控插件等一系列功能。

一般而言,SDK 供應商開發出各種類型 SDK 後,會上傳到開發者社區或者其他發佈渠道,企業或個人開發者將這些 SDK 集成到 App 中後會把這些 App 再發布到應用商店,供最終用戶從應用商店下載這些 App 使用。在這個鏈條中,SDK 供應商將自身的數據和能力提供給企業和個人開發者,企業和個人開發者利用這些數據和能力使自己的產品變得更加豐富,更加多元化,同時又降低了自己的開發成本。

雖然說 SDK 是現在各類 App 不可或缺的小夥伴,但是這裏要注意,因爲 SDK 自身就具備獲取相當一部分設備信息和用戶個人信息的能力,所以存在對應的違規收集和使用個人信息的風險。例如,在上述場景下的 SDK 就需要引用方採取適當的安全防護措施,保障所引用 SDK 的安全性。

Zoom 事件:APP 如何做好 SDK 合規?

SDK 的供應路徑

1. SDK 都有哪些類型?

爲了審視 SDK 相關的安全問題,根據使用形態對 SDK 進行分類

引入 SDK: 自身應用中集成引入的第三方 SDK (ZOOM)

外發 SDK:將自身業務服務封裝,發佈出去給第三方廠商調用使用的 SDK

2. SDK 有哪些神通廣大的功能?

SDK 根據功能的不同可以分爲推送、通信、存儲、安全、地圖及位置服務、統計及增長、社交、廣告、語音識別、圖像識別等種類。

例如金融行業的開放銀行領域,銀行業者通過將自己的業務服務和數據服務封裝到一個 SDK 中,實現向第三方合作伙伴提供開放金融能力。

3. SDK 都收集哪些信息?(通過 Android 提供的標準系統加入平臺獲取)

應用信息類:到用戶手機上已經安裝的 App 信息列表和正在運行的應用列表

賬號信息類:用戶賬號信息

網絡相關信息類:用戶移動設備的聯網信息、用戶通信的設備信息、GPS、NFC 信息等

設備信息類:用戶移動設備標識信息、SIM 標識信息等

傳感器信息類:不同型號的移動設備,集成傳感器的數量與種類也有所區別,比如用戶的行蹤可以通過位置傳感器精確追蹤

第三方 SDK 的應用現狀是怎麼樣的?

近日,南都個人信息保護研究中心、中國金融認證中心(CFCA)對 60 款常用 App 以及主流 SDK 進行了測評。發現了目前 SDK 使用過程中的部分問題。

問題包括:

1. App 使用 SDK 數量較多。每款 App 攜帶的 SDK 平均不少於 10 款。其中消息推送類 SDK 最多,綜合類和輔助開發類其次。

2. SDK 獲取的客戶的部分個人信息並未在《隱私權政策》中明確告知並說明使用目的。影響了用戶的知情權。

3. 收集了超出必要範圍的客戶信息。

Zoom 事件:APP 如何做好 SDK 合規?

App 中使用第三方 SDK 的數量分佈圖數據來源:南都智庫《2019 個人信息安全年度報告》

第三方 SDK 主要存在哪些安全隱患?

1. 隱瞞收集個人信息的情況

前面提到過,第三方 SDK 和 App 一樣,也是具有收集用戶個人信息的能力的,但究竟這個小玩意(SDK)究竟收集了哪些個人信息,從用戶的層面來看其實是很難有感覺的,甚至 App 的運營者或開發者也未必全都知道。一旦這個第三方 SDK 在沒有經過用戶同意的情況下,就收集了各類與用戶密切相關的敏感信息,例如銀行賬號,生物特徵信息等,並傳輸到其他服務器甚至境外,將會引發極大的個人數據隱私風險。

2. 程序自身存在安全漏洞

目前,已經發現的 SDK 安全漏洞包括 HTTP 誤用,SSL/TLS 不正確配置、敏感權限濫用、通過日誌造成信息泄露等。如果一個 App 嵌入的第三方 SDK 越多,它的安全漏洞可能就越明顯,影響範圍也就越大了。

3. 惡意 SDK 導致軟件供應鏈污染

比如說,“引入 SDK”的主要安全風險來自 SDK 自身的惡意行爲。由於 Android 操作系統帶有熱更新機制,這使得一部分惡意 SDK 在客戶集成階段會表現爲一個非常正常的應用,而一旦應用發佈後到了運行階段,攻擊者就會通過熱更新機制,更新惡意代碼,執行盜取用戶數據、採集敏感信息等惡意行爲。這種發佈後作惡的行爲在很大程度上繞過了發佈前的靜態檢測,具有非常大的迷惑性,也使得其作惡行爲更加難以被發現。

而“外發 SDK”的風險則主要存在於在發佈後的運行階段,極容易遭遇剝離、破解、注入、調試和滲透測試等運行時攻擊行爲。

對於 App 開發者使用

SDK 的合規思路扼要分析

合規總思路:

首先分析嵌入的是哪種類型的 SDK

根據不同 SDK 的具體特性,區分第三方 SDK 的角色

根據 SDK 角色的不同,進一步分析第三方 SDK 需要承擔的責任

合規分析流程圖:

1. 第三方 SDK 是否有收集個人信息行爲?

如有,則需進一步分析該第三方 SDK 是自動收集的,還是通過其所依附的宿主 App 收集的。

如否,屬於功能性 SDK。

2. 第三方 SDK 收集個人信息的行爲是通過其所依附的 App 主動獲取的,還是該第三方 SDK 自行收集的?

如果是通過 App 主動獲取的,並將收集到的個人信息共享給第三方 SDK,屬於間接收集類 SDK。

此時,該 App 需要在隱私政策向用戶告知第三方 SDK 的名稱、收集個人信息的目的、方式和範圍等;

如果是該第三方 SDK 自行收集的,則需要進一步分析該第三方 SDK 是否與宿主 App 爲共同控制者。

3. 第三方 SDK 自行收集個人信息時,如果宿主 App 關閉相應收集權限,該第三方 SDK 是否還能繼續收集個人信息?

如是,屬於直接收集類 SDK。

如否,則具體要看第三方 SDK 與宿主 App 的具體協議約定,判斷是否爲共同控制者。

Zoom 事件:APP 如何做好 SDK 合規?

第三方 SDK 合規分析流程圖

對於 App 開發者使用

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)採集移動設備正在運行或最近運行的程序任務信息。

通過採集用戶手機設備的應用情況,包括啓動次數、時長等信息進行記錄分析,同樣數據侵犯用戶隱私。

風險級別:高

(3)採集用戶移動設備賬戶信息。

賬戶信息也同樣具備敏感性,尤其是當賬戶信息與設備信息進行關聯,必然導致客戶的賬戶安全受到不同程度的影響,甚至導致用戶的利益損失。

風險等級:極高

但現實中,確實也存在比較難地通過技術檢測逐一去核實 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 收集使用個人信息的安全隱患

2. 《SDK 安全與合規白皮書》

【聲明】本文內容可能會因法律法規修改而變更,司法實踐中依個案實際情況來處理。本文僅代表作者目前所持的理論觀點,不代表作者供職機構或其他相關機構的意見。本文僅爲交流之用,所有內容不構成對任何個案的意見、建議或觀點。作者和發佈平臺明示不對任何根據本文任何內容的作爲或不作爲所導致的後果承擔責任。

推薦閱讀

又一家兩條腿走路的出海大廠

Zoom 霸榜 釘釘、飛書出海還有機會嗎?

華爲和小米 2019 年財報:一個向左 一個向右

開發者如何實現應用內廣告變現收益最大化?

海外投放怎麼選?AppsFlyer 廣告平臺綜合表現報告第 10 版新鮮出爐!

商務合作

Cassie | 微信:18506490569

媒體諮詢

Ares | 微信:18606066421

開發者對接

唐遲 | 微信:15605086341

Zoom 事件:APP 如何做好 SDK 合規?

長按圖片掃碼

加入白鯨社羣

來源鏈接:mp.weixin.qq.com