ADSCOPE解讀SDK隱私安全,了解廣告SDK工作機(jī)制,保護(hù)APP自身安全

SDK,APP開(kāi)發(fā)者應(yīng)該都很了解,開(kāi)發(fā)者們或多或少都接觸或安裝過(guò),而提到SDK安全性這個(gè)問(wèn)題,開(kāi)發(fā)者們的情緒可能都不會(huì)平靜,這其中的利害關(guān)系確實(shí)有點(diǎn)兒復(fù)雜。

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

而另一方面,對(duì)開(kāi)發(fā)者來(lái)說(shuō),也不得不承擔(dān),因嵌入第三方SDK后帶來(lái)的風(fēng)險(xiǎn)、后果。由于SDK開(kāi)發(fā)者開(kāi)發(fā)能力的參差不齊,可能因?yàn)榧夹g(shù)原因或惡意‘留后門(mén)’而存在大量安全漏洞,還有一些SDK會(huì)違規(guī)讀取和儲(chǔ)存用戶(hù)隱私,或執(zhí)行越權(quán)操作等,這些問(wèn)題輕則造成APP卡頓,重則被應(yīng)用市場(chǎng)下架,更嚴(yán)重的情況是漏洞被攻擊,就可能會(huì)給APP及APP用戶(hù)帶來(lái)嚴(yán)重?fù)p失。

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

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

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

ADSCOPE解讀SDK隱私安全,了解廣告SDK工作機(jī)制,保護(hù)APP自身安全

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

ADSCOPE解讀SDK隱私安全,了解廣告SDK工作機(jī)制,保護(hù)APP自身安全

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

2019年,南都個(gè)人信息保護(hù)研究中心委托中國(guó)金融認(rèn)證中心針對(duì)使用率高的 SDK 做了隱私數(shù)據(jù)分析報(bào)告。

報(bào)告顯示,在測(cè)評(píng)的 60 款常用應(yīng)用軟件中,共使用了至少 966 個(gè) SDK,平均每款 App 使用19.3 個(gè)(注:移動(dòng)金融類(lèi)未計(jì)在內(nèi),因?yàn)樵撔袠I(yè)普遍對(duì) App 進(jìn)行加固,難以確切檢測(cè)出使用的 SDK)。其中生活服務(wù)類(lèi) App 平均使用的 SDK 個(gè)數(shù)最多,為 20.2 個(gè),旅游交通類(lèi)最少,平均使用 15.4 個(gè) SDK。由此我們可以看出,SDK之于APP開(kāi)發(fā)者們,在風(fēng)險(xiǎn)可控的情況下,并不排斥。

ADSCOPE解讀SDK隱私安全,了解廣告SDK工作機(jī)制,保護(hù)APP自身安全

《常用第三方 SDK 收集使用個(gè)人信息測(cè)評(píng)報(bào)告》/ 南都個(gè)人信息保護(hù)研究中心中國(guó)金融認(rèn)證中心(CFCA)

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

1.APP與廣告SDK

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

ADSCOPE解讀SDK隱私安全,了解廣告SDK工作機(jī)制,保護(hù)APP自身安全

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

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

2.廣告SDK分類(lèi)及用途

廣告SDK的功能是展示廣告,從定義上來(lái)說(shuō),還分廣義的和狹義的廣告SDK。

廣義的廣告SDK:指為開(kāi)發(fā)者提供廣告相關(guān)功能(接入廣告、廣告監(jiān)測(cè)等)的軟件開(kāi)發(fā)工具包。

狹義的廣告SDK:指幫助App開(kāi)發(fā)者接入廣告,實(shí)現(xiàn)廣告變現(xiàn)的軟件開(kāi)發(fā)工具包。

從用途上分:可以分為網(wǎng)頁(yè)SDK和APP SDK,網(wǎng)頁(yè)SDK用于網(wǎng)頁(yè)(或小程序)的廣告變現(xiàn)。APP SDK用于移動(dòng)應(yīng)用程序內(nèi)的廣告變現(xiàn)。

APP SDK從編寫(xiě)語(yǔ)言上分:又可分為Java SDK、Objective-C SDK。Java SDK適用于Android,Objective-C SDK適用于iOS。

按照不同廣告領(lǐng)域:可分為展示廣告SDK,激勵(lì)廣告SDK、互動(dòng)廣告SDK等。

(1)展示廣告SDK一般用于僅展示廣告素材類(lèi)型的廣告,使用范圍最為普遍。

(2)激勵(lì)廣告SDK一般用于有激勵(lì)場(chǎng)景的APP,像激勵(lì)視頻、積分墻等廣告形式,游戲APP安裝較多。

(3)互動(dòng)廣告SDK,多用于像抽獎(jiǎng)、大轉(zhuǎn)盤(pán)等類(lèi)型的廣告形式,使用范圍廣泛,工具類(lèi)應(yīng)用較多安裝。

根據(jù)SDK商業(yè)性質(zhì)來(lái)看:可以分為單一廣告SDK和聚合廣告SDK。

單一廣告SDK直接用來(lái)進(jìn)行廣告投放,一般開(kāi)發(fā)者多為廣告聯(lián)盟,僅用于需求方的廣告投放。

聚合廣告SDK集成多家廣告聯(lián)盟SDK,可實(shí)現(xiàn)多平臺(tái)的廣告投放,開(kāi)發(fā)者多為廣告技術(shù)公司,主要用于方便APP開(kāi)發(fā)者在進(jìn)行多廣告聯(lián)盟變現(xiàn)時(shí)的運(yùn)營(yíng)優(yōu)化。

3.廣告SDK如何接入

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

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

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

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

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

Step 5更新軟件:將集成過(guò)廣告SDK的APP上架到應(yīng)用市場(chǎng)

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

4.廣告SDK的請(qǐng)求機(jī)制

對(duì)于單一廣告SDK和聚合廣告SDK來(lái)說(shuō),工作機(jī)制基本相同,都是APP啟動(dòng),調(diào)用SDK,觸發(fā)廣告請(qǐng)求,發(fā)送給廣告平臺(tái)服務(wù)器,廣告平臺(tái)服務(wù)器返回廣告,下發(fā)素材,展示廣告,如下圖。

ADSCOPE解讀SDK隱私安全,了解廣告SDK工作機(jī)制,保護(hù)APP自身安全

廣告SDK運(yùn)行機(jī)制

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

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

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

5.廣告SDK的核查

廣告SDK的核查工作概括起來(lái)主要有兩個(gè)方面:一查什么?二怎么查?

一、查什么?

(1)來(lái)源安全性評(píng)估

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

(2)代碼安全性評(píng)估

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

(3)行為安全性評(píng)估

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

二、怎么查?

(1)文檔審核

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

(2)工具抓包

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

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

(3)第三方認(rèn)證

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

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

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

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )