了解廣告SDK工作機制,保護APP自身安全

0 評論 11221 瀏覽 37 收藏 15 分鐘

編輯導讀:很多人對SDK又愛又恨,一方面能夠幫助開發(fā)者簡化開發(fā)步驟,提高開發(fā)效率,節(jié)約開發(fā)成本;但是另一方面也要嵌入第三方SDK后帶來的風險和后果。想要避免風險,首先就要了解它。本文作者對廣告SDK工作機制進行解析,希望對你有幫助。

SDK,APP開發(fā)者應該都很了解,開發(fā)者們或多或少都接觸或安裝過,而提到SDK安全性這個問題,開發(fā)者們的情緒可能都不會平靜,這其中的利害關(guān)系確實有點兒復雜。

一方面,SDK方便開發(fā)者產(chǎn)品設(shè)計,幫助開發(fā)者簡化開發(fā)步驟,提高開發(fā)效率,節(jié)約開發(fā)成本,像框架類、廣告類、推送類、統(tǒng)計類、地圖類、社交類、支付類、客服類、測試類等等,這些不同類型的SDK極大地方便了開發(fā)者。

而另一方面,對開發(fā)者來說,也不得不承擔,因嵌入第三方SDK后帶來的風險、后果,由于SDK開發(fā)者開發(fā)能力的參差不齊,可能因為技術(shù)原因或惡意‘留后門’而存在大量安全漏洞,還有一些SDK會違規(guī)讀取和儲存用戶隱私,或執(zhí)行越權(quán)操作等,這些問題輕則造成APP卡頓,重則被應用市場下架,更嚴重的情況是漏洞被攻擊,就可能會給APP及APP用戶帶來嚴重損失。

早在2020年7月,延遲四個月舉行的3.15晚會中,央視曝光了50多款App中內(nèi)嵌SDK插件竊取用戶隱私的問題,這些App通過內(nèi)置SDK插件,在用戶不知情的情況下,讀取、上傳用戶電話號碼、通訊錄、短信記錄、應用列表等信息,并竊取聯(lián)系人、交易驗證碼等數(shù)據(jù),嚴重侵犯用戶隱私權(quán)益、財產(chǎn)安全。讓SDK安全性問題浮出水面,一時間,SDK成為“眾矢之的”,令社會普遍認為,SDK是造成個人隱私數(shù)據(jù)泄露的“元兇”。上月,一則“滴滴出行”APP因嚴重違法違規(guī)收集使用個人信息被應用市場下架的消息,讓個人信息安全問題重回熱點,像滴滴這樣的Hero APP都被下架了,更是令眾多APP經(jīng)營者風聲鶴唳。

事實真的如此嗎?SDK真的是“洪水猛獸”嗎?讓我們來看一組數(shù)據(jù)。

根據(jù)觀研天下發(fā)布的《2019年中國移動APP行業(yè)分析報告》調(diào)查數(shù)據(jù)顯示,截止2018年第四季度,全球APP平均安裝SDK數(shù)量達18.2個/APP,100-500萬下載量的APP的SDK平均安裝數(shù)量最多,達27.7個。

2016-2018年全球APP平均安裝SDK數(shù)量

2018年12月不同下載量級別APP的SDK數(shù)

2019年,南都個人信息保護研究中心委托中國金融認證中心針對使用率高的 SDK 做了隱私數(shù)據(jù)分析報告,報告顯示,在測評的 60 款常用應用軟件中,共使用了至少 966 個 SDK,平均每款 App 使用 19.3 個(注:移動金融類未計在內(nèi),因為該行業(yè)普遍對 App 進行加固,難以確切檢測出使用的 SDK)。

其中生活服務(wù)類 App 平均使用的 SDK 個數(shù)最多,為 20.2 個,旅游交通類最少,平均使用 15.4 個 SDK。由此我們可以看出,SDK之于APP開發(fā)者們,在風險可控的情況下,并不排斥。

圖 | 各行業(yè) APP 使用 SDK 數(shù)量

數(shù)據(jù)來源:《常用第三方 SDK 收集使用個人信息測評報告》/ 南都個人信息保護研究中心中國金融認證中心(CFCA)

廣告SDK是絕大多數(shù)App開發(fā)者在考慮商業(yè)化變現(xiàn)時,經(jīng)常要用到的。下面我們就對廣告SDK的功能分類,集成規(guī)范,工作原理來詳細解讀,以便APP開發(fā)者對廣告SDK有更深入的了解。

一、APP與廣告SDK

根據(jù)2020年11月全國信息安全標準化技術(shù)委員會《網(wǎng)絡(luò)安全標準實踐指南-移動互聯(lián)網(wǎng)應用程序(App)使用軟件開發(fā)工具包(SDK)安全指引》中對SDK的分類,常見SDK類型分為16類(見下圖),其中,對廣告SDK的功能描述是提供廣告展示功能,通過使用廣告SDK,App提供者可以在App中展示廣告商投放的廣告,進而根據(jù)用戶的點擊賺取收益。

廣告SDK在眾多SDK類型中,是比較特殊的一類,其他SDK主要是方便APP自身運營需要,而廣告SDK它的功能目的是直接的商業(yè)化變現(xiàn)。因此,具備一定規(guī)模流量的想快速獲得收益的APP開發(fā)者都會考慮接入廣告SDK。

資料來源:《網(wǎng)絡(luò)安全標準實踐指南—移動互聯(lián)網(wǎng)應用程序(App)使用軟件開發(fā)工具包(SDK)安全指引》

二、廣告SDK分類及用途

廣告SDK的功能是展示廣告,從定義上來說,還分廣義的和狹義的廣告SDK,廣義的廣告SDK是指為開發(fā)者提供廣告相關(guān)功能(接入廣告、廣告監(jiān)測等)的軟件開發(fā)工具包;狹義的廣告SDK就是指幫助App開發(fā)者接入廣告,實現(xiàn)廣告變現(xiàn)的軟件開發(fā)工具包。

從用途上分,可以分為網(wǎng)頁SDK和APP SDK,網(wǎng)頁SDK用于網(wǎng)頁(或小程序)的廣告變現(xiàn),APP SDK用于移動應用程序內(nèi)的廣告變現(xiàn),APP SDK從編寫語言上分,一般分為Java SDK、Objective-C SDK,Java SDK適用于Android,Objective-C SDK適用于iOS。

按照不同廣告領(lǐng)域,可分為展示廣告SDK,激勵廣告SDK、互動廣告SDK等,展示廣告SDK一般用于僅展示廣告素材類型的廣告,使用范圍最為普遍,激勵廣告SDK一般用于有激勵場景的APP,像激勵視頻、積分墻等廣告形式,游戲APP安裝較多,互動廣告SDK,多用于像抽獎、大轉(zhuǎn)盤等類型的廣告形式,使用范圍廣泛,工具類應用較多安裝。

根據(jù)sdk商業(yè)性質(zhì)來看,可以分為單一廣告SDK和聚合廣告SDK,單一廣告SDK直接用來進行廣告投放,一般開發(fā)者多為廣告聯(lián)盟,僅用于需求方的廣告投放,聚合廣告SDK集成多家廣告聯(lián)盟SDK,可實現(xiàn)多平臺的廣告投放,開發(fā)者多為廣告技術(shù)公司,主要用于方便APP開發(fā)者在進行多廣告聯(lián)盟變現(xiàn)時的運營優(yōu)化。

三、廣告SDK如何接入

一般廣告SDK的開發(fā)者都會有對接文檔給到APP開發(fā)者,APP開發(fā)者根據(jù)文檔步驟自助對接,有問題的話再以郵件或工單提交等形式聯(lián)系廣告SDK開發(fā)者,有的廣告SDK開發(fā)者會安排專人跟蹤對接服務(wù),相對來說處理問題會比較及時??偟膩碚f,不管哪種服務(wù)方式,集成過程都基本遵循這樣一個步驟。

Step 1 加入文件:根據(jù)文檔內(nèi)容,將廣告SDK嵌入指定項目目錄中。

Step 2 創(chuàng)建關(guān)聯(lián):建立關(guān)聯(lián)關(guān)系,向廣告SDK添加引用,添加配置、權(quán)限等。

Step 3 代碼寫入:應用初始化及廣告位開發(fā),調(diào)用廣告SDK提供的廣告位模板。

Step 4 測試聯(lián)調(diào) :測試廣告流程,是否正常觸發(fā)廣告請求、返回廣告,廣告素材下發(fā)、渲染、展示是否正常,是否流暢,廣告數(shù)據(jù)統(tǒng)計是否正常等內(nèi)容。

Step 5 更新軟件:?將集成過廣告SDK的APP上架到應用市場

完成以上步驟,廣告位基本能夠請求到廣告,實現(xiàn)廣告變現(xiàn)。

四、廣告SDK的請求機制

對于單一廣告SDK和聚合廣告SDK來說,工作機制基本相同,都是APP啟動,調(diào)用SDK,觸發(fā)廣告請求,發(fā)送給廣告平臺服務(wù)器,廣告平臺服務(wù)器返回廣告,下發(fā)素材,展示廣告,只在發(fā)送廣告請求上,聚合廣告SDK會多一步轉(zhuǎn)發(fā)動作,將廣告請求轉(zhuǎn)發(fā)多家廣告聯(lián)盟平臺,如下圖:

廣告SDK運行機制

區(qū)別在于,在發(fā)送廣告請求上,聚合廣告SDK會多一步轉(zhuǎn)發(fā)請求的動作,將廣告請求轉(zhuǎn)發(fā)多家廣告聯(lián)盟平臺。

廣告SDK的工作流程已經(jīng)很清晰,但對APP開發(fā)者來說,這些可能都不是難點,最大的顧慮還是在SDK的安全性上。主要問題,一是,SDK安全漏洞。二是,是否預留“后門”。三是,數(shù)據(jù)是否濫用。最后,問題還是落在這三點上,要避免這些問題,最好的方法是對廣告SDK源碼進行核查。

事實上,現(xiàn)在的做法也是這樣的。一般開發(fā)者對接廣告SDK的時候都會對SDK進行審查,但對于不是很了解廣告行業(yè)或者技術(shù)能力不足的開發(fā)者,在SDK審查上,既有顧慮又可能無從下手,這里AdScope在SDK核查方面給出一些方法,以便于開發(fā)者操作。

五、廣告SDK的核查

廣告SDK的核查工作概括起來主要有兩個方面:一查什么?二怎么查?

1. 查什么?

1)來源安全性評估

SDK提供者的基本信息,溝通反饋渠道,隱私政策鏈接地址,提供者安全能力,SDK基本功能,SDK版本號等。

2)代碼安全性評估

是否存在已知的惡意代碼,是否存在已知的安全漏洞,是否申請敏感權(quán)限,是否嵌入其他SDK。

3)行為安全性評估

調(diào)用的敏感權(quán)限、目的和頻率,收集的個人信息類型、目的和頻率,個人信息回傳服務(wù)器域名、IP地址、所在地域,是否存在熱更新行為及熱更新是否可主動關(guān)閉,傳輸數(shù)據(jù)是否加密,是否存在單獨收集用戶個人信息的界面,是否存在后臺自動啟動和關(guān)聯(lián)啟動后收集個人信息的行為等。

2. 怎么查?

1)文檔審核

在接入SDK前,對廣告SDK開發(fā)者提供的文檔進行核查,根據(jù)前面提到的幾項主要內(nèi)容,對照文檔查看是否都符合要求,還有雙方未達成一致或有爭議的內(nèi)容。

2)工具抓包

接入SDK后,在進行測試過程中,使用工具對廣告SDK網(wǎng)絡(luò)工作流進行抓包操作。通過抓包主要驗證安全性評估內(nèi)容,并查看是否有在文檔和商務(wù)談判中未涉及到的隱秘及可疑行為。

市面上的抓包工具很多,這里主要介紹適合移動端開發(fā)者使用的抓包工具,Charles,F(xiàn)iddler,Replica(移動端APP),這三款都不錯,這里比較推薦Charles,它支持Windows,Mac,Linux,安裝使用簡單,功能強大。

3)第三方認證

通過具有安全審核資質(zhì)的第三方公司來對廣告SDK進行審核工作,出具第三方評估報告,一般也是在接入后的測試環(huán)節(jié)進行。第三方認證機構(gòu)也很多,比如360安全專家、網(wǎng)易易盾、騰訊安全等,但很多第三方的機構(gòu)都是付費的。

作為一種對接方式,廣告SDK在APP商業(yè)化變現(xiàn)的過程中扮演重要的角色,在移動廣告事業(yè)的發(fā)展中也起著非常關(guān)鍵的作用。正是由于SDK在移動廣告行業(yè)中的廣泛使用,才創(chuàng)造了移動互聯(lián)網(wǎng)廣告市場的萬億規(guī)模,為社會帶來巨大的經(jīng)濟價值。

SDK創(chuàng)造的價值不應被忽視,而只談影響,SDK需要的是監(jiān)管和合規(guī),而不是取締。欣喜的是,政府及監(jiān)管部門正在出臺多項法律法規(guī)積極治理,相信不久的將來,SDK將迎來一個凈化過的市場環(huán)境,App開發(fā)者與SDK開發(fā)者終將以建立互信的商業(yè)合作關(guān)系。

 

本文由 @ADSCOPE 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!