SDK,APP開發(fā)者應(yīng)該都很了解,開發(fā)者們或多或少都接觸或安裝過,而提到SDK安全性這個問題,開發(fā)者們的情緒可能都不會平靜,這其中的利害關(guān)系確實有點兒復(fù)雜。
一方面,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卡頓,重則被應(yīng)用市場下架,更嚴重的情況是漏洞被攻擊,就可能會給APP及APP用戶帶來嚴重損失。
早在2020年7月,延遲四個月舉行的3.15晚會中,央視曝光了50多款A(yù)pp中內(nèi)嵌SDK插件竊取用戶隱私的問題,這些App通過內(nèi)置SDK插件,在用戶不知情的情況下,讀取、上傳用戶電話號碼、通訊錄、短信記錄、應(yīng)用列表等信息,并竊取聯(lián)系人、交易驗證碼等數(shù)據(jù),嚴重侵犯用戶隱私權(quán)益、財產(chǎn)安全……一時間,SDK成為“眾矢之的”,令社會普遍認為,SDK是造成個人隱私數(shù)據(jù)泄露的“元兇”。上月,一則“滴滴出行”APP因嚴重違法違規(guī)收集使用個人信息被應(yīng)用市場下架的消息,讓個人信息安全問題重回熱點,像滴滴這樣的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 款常用應(yīng)用軟件中,共使用了至少 966 個 SDK,平均每款 App 使用19.3 個(注:移動金融類未計在內(nèi),因為該行業(yè)普遍對 App 進行加固,難以確切檢測出使用的 SDK)。其中生活服務(wù)類 App 平均使用的 SDK 個數(shù)最多,為 20.2 個,旅游交通類最少,平均使用 15.4 個 SDK。由此我們可以看出,SDK之于APP開發(fā)者們,在風險可控的情況下,并不排斥。
《常用第三方 SDK 收集使用個人信息測評報告》/ 南都個人信息保護研究中心中國金融認證中心(CFCA)
廣告SDK是絕大多數(shù)App開發(fā)者在考慮商業(yè)化變現(xiàn)時,經(jīng)常要用到的。下面我們就對廣告SDK的功能分類,集成規(guī)范,工作原理來詳細解讀,以便APP開發(fā)者對廣告SDK有更深入的了解。
1.APP與廣告SDK
根據(jù)2020年11月全國信息安全標準化技術(shù)委員會《網(wǎng)絡(luò)安全標準實踐指南-移動互聯(lián)網(wǎng)應(yīng)用程序(App)使用軟件開發(fā)工具包(SDK)安全指引》中對SDK的分類,常見SDK類型分為16類(見下圖),其中,對廣告SDK的功能描述是提供廣告展示功能,通過使用廣告SDK,App提供者可以在App中展示廣告商投放的廣告,進而根據(jù)用戶的點擊賺取收益。
資料來源:《網(wǎng)絡(luò)安全標準實踐指南—移動互聯(lián)網(wǎng)應(yīng)用程序(App)使用軟件開發(fā)工具包(SDK)安全指引》
廣告SDK在眾多SDK類型中,是比較特殊的一類,其他SDK主要是方便APP自身運營需要,而廣告SDK它的功能目的是直接的商業(yè)化變現(xiàn)。因此,具備一定規(guī)模流量地想快速獲得收益的APP開發(fā)者都會考慮接入廣告SDK。
2.廣告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用于移動應(yīng)用程序內(nèi)的廣告變現(xiàn)。
APP SDK從編寫語言上分:又可分為Java SDK、Objective-C SDK。Java SDK適用于Android,Objective-C SDK適用于iOS。
按照不同廣告領(lǐng)域:可分為展示廣告SDK,激勵廣告SDK、互動廣告SDK等。
(1)展示廣告SDK一般用于僅展示廣告素材類型的廣告,使用范圍最為普遍。
(2)激勵廣告SDK一般用于有激勵場景的APP,像激勵視頻、積分墻等廣告形式,游戲APP安裝較多。
(3)互動廣告SDK,多用于像抽獎、大轉(zhuǎn)盤等類型的廣告形式,使用范圍廣泛,工具類應(yīng)用較多安裝。
根據(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)化。
3.廣告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代碼寫入:應(yīng)用初始化及廣告位開發(fā),調(diào)用廣告SDK提供的廣告位模板。
Step 4測試聯(lián)調(diào):測試廣告流程,是否正常觸發(fā)廣告請求、返回廣告,廣告素材下發(fā)、渲染、展示是否正常,是否流暢,廣告數(shù)據(jù)統(tǒng)計是否正常等內(nèi)容。
Step 5更新軟件:將集成過廣告SDK的APP上架到應(yīng)用市場
完成以上步驟,廣告位基本能夠請求到廣告,實現(xiàn)廣告變現(xiàn)。
4.廣告SDK的請求機制
對于單一廣告SDK和聚合廣告SDK來說,工作機制基本相同,都是APP啟動,調(diào)用SDK,觸發(fā)廣告請求,發(fā)送給廣告平臺服務(wù)器,廣告平臺服務(wù)器返回廣告,下發(fā)素材,展示廣告,如下圖。
廣告SDK運行機制
區(qū)別在于,在發(fā)送廣告請求上,聚合廣告SDK會多一步轉(zhuǎn)發(fā)請求的動作,將廣告請求轉(zhuǎn)發(fā)多家廣告聯(lián)盟平臺。
廣告SDK的工作流程已經(jīng)很清晰,但對APP開發(fā)者來說,這些可能都不是難點,最大的顧慮還是在SDK的安全性上。主要問題,一是,SDK安全漏洞。二是,是否預(yù)留“后門”。三是,數(shù)據(jù)是否濫用。最后,問題還是落在這三點上,要避免這些問題,最好的方法是對廣告SDK源碼進行核查。
事實上,現(xiàn)在的做法也是這樣的。一般開發(fā)者對接廣告SDK的時候都會對SDK進行審查,但對于不是很了解廣告行業(yè)或者技術(shù)能力不足的開發(fā)者,在SDK審查上,既有顧慮又可能無從下手,這里AdScope在SDK核查方面給出一些方法,以便于開發(fā)者操作。
5.廣告SDK的核查
廣告SDK的核查工作概括起來主要有兩個方面:一查什么?二怎么查?
一、查什么?
(1)來源安全性評估
SDK提供者的基本信息,溝通反饋渠道,隱私政策鏈接地址,提供者安全能力,SDK基本功能,SDK版本號等。
(2)代碼安全性評估
是否存在已知的惡意代碼,是否存在已知的安全漏洞,是否申請敏感權(quán)限,是否嵌入其他SDK。
(3)行為安全性評估
調(diào)用的敏感權(quán)限、目的和頻率,收集的個人信息類型、目的和頻率,個人信息回傳服務(wù)器域名、IP地址、所在地域,是否存在熱更新行為及熱更新是否可主動關(guān)閉,傳輸數(shù)據(jù)是否加密,是否存在單獨收集用戶個人信息的界面,是否存在后臺自動啟動和關(guān)聯(lián)啟動后收集個人信息的行為等。
二、怎么查?
(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)造的價值不應(yīng)被忽視,而只談影響,SDK需要的是監(jiān)管和合規(guī),而不是取締。欣喜的是,政府及監(jiān)管部門正在出臺多項法律法規(guī)積極治理,相信不久的將來,SDK將迎來一個凈化過的市場環(huán)境,App開發(fā)者與SDK開發(fā)者終將以建立互信的商業(yè)合作關(guān)系。
(免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )