陳衛(wèi)平
摘 要:PGC(Professional Generated Content)需要借助專業(yè)攝像機(jī)或智能手機(jī)等移動(dòng)終端設(shè)備制作媒體內(nèi)容,面臨終端應(yīng)用可被冒用、媒體內(nèi)容被篡改等安全風(fēng)險(xiǎn)。文章提出一種面向融合媒體的PGC移動(dòng)終端安全防護(hù)方法,該方法通過(guò)融合可信度量和阻斷進(jìn)程Hook 技術(shù),保證PGC移動(dòng)終端運(yùn)行環(huán)境的可信,通過(guò)簽名驗(yàn)簽技術(shù)確保PGC APP的接入可信。在真實(shí)設(shè)備的實(shí)驗(yàn)結(jié)果表明,論文提出方法在實(shí)現(xiàn)對(duì)PGC移動(dòng)終端安全防護(hù)的同時(shí),不會(huì)給PGC移動(dòng)終端帶來(lái)太大的性能開(kāi)銷。
關(guān)鍵詞:融合媒體;PGC;移動(dòng)終端;可信計(jì)算;簽名驗(yàn)簽
中圖分類號(hào):TN948 文獻(xiàn)標(biāo)識(shí)碼:B
1 引言
全媒體融合是當(dāng)前廣電行業(yè)的重要發(fā)展趨勢(shì),PGC是全媒體融合中一種主流的內(nèi)容制作方式,具有內(nèi)容由專業(yè)機(jī)構(gòu)提供、可控性強(qiáng)、可多層篩選、更具權(quán)威性等優(yōu)點(diǎn)。目前通過(guò)PGC模式生成的媒體內(nèi)容數(shù)量在迅猛增長(zhǎng)。然而,由于PGC需要借助專業(yè)攝像機(jī)或智能手機(jī)等移動(dòng)終端設(shè)備制作媒體內(nèi)容,而當(dāng)前PGC移動(dòng)終端面臨多種安全風(fēng)險(xiǎn):PGC制播APP自身存在漏洞或缺陷、PGC制播APP運(yùn)行環(huán)境的不安全帶來(lái)的間接風(fēng)險(xiǎn)或傷害、PGC制播APP與后端服務(wù)器間缺乏安全認(rèn)證致使私自或非注冊(cè)登記的PGC制播APP可接入等,這些安全風(fēng)險(xiǎn)易導(dǎo)致PGC制作的媒體內(nèi)容被篡改或破壞,給整個(gè)全媒體融合制播系統(tǒng)帶來(lái)安全隱患,因此,如何對(duì)PGC移動(dòng)終端進(jìn)行安全防護(hù)已成為全媒體融合下制播安全的關(guān)鍵問(wèn)題,具有重要的現(xiàn)實(shí)意義。
為應(yīng)對(duì)上述安全風(fēng)險(xiǎn),對(duì)PGC移動(dòng)終端進(jìn)行安全防護(hù)需要解決兩個(gè)重要問(wèn)題。一是在PGC移動(dòng)終端啟動(dòng)和運(yùn)行媒體內(nèi)容制播APP時(shí),需要確保PGC移動(dòng)終端的當(dāng)前執(zhí)行環(huán)境安全可信。以安卓平臺(tái)上的PGC制播APP啟動(dòng)為例,雖然安卓平臺(tái)是基于Linux內(nèi)核的,Linux自帶的沙箱機(jī)制可保證不同應(yīng)用程序運(yùn)行在各自獨(dú)立的Dalvik虛擬機(jī)實(shí)例中,但是傳統(tǒng)的沙箱機(jī)制無(wú)法阻止惡意應(yīng)用程序通過(guò)挾持操作系統(tǒng)來(lái)監(jiān)控系統(tǒng)的數(shù)據(jù)傳輸[1],一旦操作系統(tǒng)被劫持,PGC制播APP制作的媒體內(nèi)容便容易被篡改和破壞。二是在PGC制播APP完成對(duì)媒體內(nèi)容制作后、向后臺(tái)服務(wù)器上傳媒體內(nèi)容時(shí),需要確保PGC制播APP的接入可信。如果在PGC制播APP接入全媒體融合制播系統(tǒng)后臺(tái)服務(wù)器時(shí)缺少安全認(rèn)證,一旦有惡意應(yīng)用程序仿冒了該APP,盜用其身份就容易對(duì)后臺(tái)服務(wù)器發(fā)起外部惡意攻擊,帶來(lái)重要媒體資料被篡改、正常全媒體內(nèi)容分發(fā)播出被干擾等安全問(wèn)題。
針對(duì)上述問(wèn)題,本文提出一種面向融合媒體的PGC移動(dòng)終端安全防護(hù)方法。該方法借鑒可信計(jì)算思想,通過(guò)融合PGC應(yīng)用環(huán)境可信度量、阻斷進(jìn)程Hook技術(shù)來(lái)保證全媒體融合內(nèi)容制作過(guò)程中PGC移動(dòng)終端運(yùn)行環(huán)境的可信,通過(guò)簽名驗(yàn)簽技術(shù)確保PGC制播APP的接入可信。最后,在真實(shí)移動(dòng)終端設(shè)備上對(duì)提出進(jìn)行了實(shí)驗(yàn)檢驗(yàn),實(shí)驗(yàn)結(jié)果表明,本文提出方法在實(shí)現(xiàn)對(duì)PGC移動(dòng)終端安全防護(hù)的同時(shí),不會(huì)給PGC移動(dòng)終端帶來(lái)太大的性能開(kāi)銷。
2 相關(guān)工作
當(dāng)前的移動(dòng)終端安全工作多側(cè)重在對(duì)移動(dòng)終端上的惡意程序檢測(cè)方面[2],包括靜態(tài)分析和動(dòng)態(tài)檢測(cè)兩類。靜態(tài)分析[3,4]主要通過(guò)逆向工程分析應(yīng)用程序的源碼來(lái)獲取移動(dòng)終端應(yīng)用程序的權(quán)限、簽名信息等。動(dòng)態(tài)檢測(cè)[5,6]主要通過(guò)實(shí)際運(yùn)行應(yīng)用程序,通過(guò)觸發(fā)其惡意行為來(lái)實(shí)現(xiàn)對(duì)惡意程序的檢測(cè)。
另外,在移動(dòng)終端的安全防護(hù)方面,Mingshen等[7]以安卓智能終端為例設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于主機(jī)的入侵防護(hù)系統(tǒng)Patronus,實(shí)驗(yàn)表明Patronus能有效防止侵入行為并且準(zhǔn)確地檢測(cè)惡意軟件,具有非常低的性能開(kāi)銷和功率消耗。Wen-Chieh等[8]利用GUI測(cè)試技術(shù)、大數(shù)據(jù)分析和機(jī)器學(xué)習(xí)技術(shù),提出了一個(gè)動(dòng)態(tài)惡意程序分析框架DroidDolphin,實(shí)驗(yàn)表明該框架的惡意程序檢出率為86%,并且隨著數(shù)據(jù)集的增大,檢測(cè)的準(zhǔn)確率能顯著提高。基于上述檢測(cè)結(jié)果進(jìn)一步進(jìn)行安全防護(hù)能在一定程度上實(shí)現(xiàn)移動(dòng)終端的可信執(zhí)行環(huán)境,但這種被動(dòng)防御模式無(wú)法應(yīng)對(duì)全媒體融合系統(tǒng)面臨的未知安全威脅。
本文借鑒可信計(jì)算的主動(dòng)防御思想[9,10],針對(duì)廣電行業(yè)全媒體融合系統(tǒng)和PGC應(yīng)用的特點(diǎn)[11],研究PGC移動(dòng)終端的安全保護(hù)措施,力圖從構(gòu)建PGC移動(dòng)終端可信執(zhí)行環(huán)境和實(shí)現(xiàn)PGC制播APP可信接入兩個(gè)方面去保證PGC相關(guān)媒體內(nèi)容不被篡改和破壞等安全問(wèn)題。
3 應(yīng)用場(chǎng)景
典型的PGC系統(tǒng)由PGC移動(dòng)終端、PGC PC客戶端、回傳緩存模塊、直播連線模塊等構(gòu)成,主要業(yè)務(wù)流程如圖1所示:(1)素材回傳模式——利用PGC終端采集/錄制節(jié)目素材,通過(guò)互聯(lián)網(wǎng)回傳到PGC服務(wù)端的回傳緩存模塊,經(jīng)過(guò)安全傳輸后進(jìn)入節(jié)目制作流程;(2)直播連線模式——利用PGC終端攝制節(jié)目,并通過(guò)互聯(lián)網(wǎng)實(shí)時(shí)傳輸?shù)絇GC服務(wù)端的直播連線模塊,再通過(guò)IP或SDI等信號(hào)模式傳輸?shù)窖莶ナ疫M(jìn)入直播/錄播流程,或通過(guò)直播流分發(fā)模塊進(jìn)入新媒體發(fā)布流程。
上述業(yè)務(wù)過(guò)程需解決兩個(gè)安全問(wèn)題。一是在移動(dòng)終端啟動(dòng)和運(yùn)行PGC APP時(shí),需要確保終端當(dāng)前執(zhí)行環(huán)境的安全可信。以安卓為例,安卓平臺(tái)上Linux自帶的沙箱機(jī)制無(wú)法阻止惡意應(yīng)用挾持操作系統(tǒng):一旦操作系統(tǒng)被劫持,PGC APP制作的媒體內(nèi)容便容易被篡改破壞;二是在PGC APP向服務(wù)端上傳媒體內(nèi)容時(shí),除傳統(tǒng)對(duì)用戶和設(shè)備的認(rèn)證以外還需確保PGC APP的接入可信,一旦其被惡意應(yīng)用仿冒,就容易對(duì)服務(wù)端發(fā)起攻擊,帶來(lái)重要數(shù)據(jù)被篡改、正常分發(fā)播出被干擾等問(wèn)題。因此,本文從確保PGC終端應(yīng)用環(huán)境可信和PGC APP接入可信兩方面對(duì)PGC移動(dòng)終端進(jìn)行安全防護(hù)。
4 方法設(shè)計(jì)
如圖2所示,本文提出方法主要包含三個(gè)模塊,各模塊核心功能有三種。
4.1可信度量模塊
可信度模塊包括動(dòng)態(tài)度量和靜態(tài)度量。動(dòng)態(tài)度量是對(duì)PGC APP執(zhí)行后的狀態(tài)等進(jìn)行度量,旨在保護(hù)操作系統(tǒng)狀態(tài)、進(jìn)程行為以及自身安全機(jī)制等。靜態(tài)度量是對(duì)PGC終端系統(tǒng)中的可執(zhí)行程序及系統(tǒng)重要腳本與軟件、配置進(jìn)行完整性驗(yàn)證。
4.2 阻斷進(jìn)程Hook模塊
通過(guò)強(qiáng)制PGC APP調(diào)用自定義的本地安全類庫(kù),在其運(yùn)行時(shí)啟動(dòng)定制的保護(hù)程序?qū)Ρ镜匚募斎胼敵隽鬟M(jìn)行加密,避免其他程序通過(guò)進(jìn)程間Hook篡改PGC APP制作的媒體數(shù)據(jù)。
4.3 PGC APP簽名驗(yàn)簽?zāi)K
在PGC用戶和設(shè)備認(rèn)證的基礎(chǔ)上,通過(guò)事先將合法PGC APP的簽名信息存儲(chǔ)在簽名服務(wù)器上,在PGC APP接入安全交換域時(shí),實(shí)時(shí)獲取其簽名并進(jìn)行比對(duì)。拒絕簽名不一致的接入請(qǐng)求,保護(hù)后臺(tái)服務(wù)端的媒體內(nèi)容安全。
5 關(guān)鍵技術(shù)
5.1 PGC移動(dòng)應(yīng)用執(zhí)行環(huán)境可信度量技術(shù)
對(duì)PGC移動(dòng)終端應(yīng)用執(zhí)行環(huán)境的可信度量分為靜態(tài)度量和動(dòng)態(tài)度量。靜態(tài)度量具體流程如圖3所示。
首先,通過(guò)掃描PGC終端中已有文件生成可信策略白名單;其次,在PGC APP啟動(dòng)前,對(duì)其進(jìn)行完整性校驗(yàn),若校驗(yàn)失敗,則拒絕其執(zhí)行PGC APP;另外,對(duì)于PGC APP的安裝,只有使用廣電行業(yè)指定密卡簽名的應(yīng)用才允許安裝,否則拒絕安裝。
動(dòng)態(tài)度量需要可信計(jì)算密碼平臺(tái)的支撐,其核心思想是由TSB啟動(dòng)內(nèi)核線程,通過(guò)使用可信計(jì)算密碼平臺(tái)提供的Hash函數(shù)接口計(jì)算度量對(duì)象(包括系統(tǒng)內(nèi)核、系統(tǒng)調(diào)用表、系統(tǒng)重要數(shù)據(jù)結(jié)構(gòu)等)的完整性校驗(yàn)值,并與基準(zhǔn)值進(jìn)行比較。基準(zhǔn)值為啟動(dòng)階段采集的數(shù)據(jù)。
5.2 阻斷進(jìn)程Hook技術(shù)
PGC移動(dòng)終端的主流平臺(tái)包括IOS和安卓,本文以安卓平臺(tái)為例介紹阻斷進(jìn)程Hook技術(shù)。安卓系統(tǒng)的底層由Linux內(nèi)核實(shí)現(xiàn),上層的應(yīng)用由Java語(yǔ)言編寫(xiě),通過(guò)JNI技術(shù)可以實(shí)現(xiàn)Java和Linux內(nèi)核的相互調(diào)用,其實(shí)質(zhì)是通過(guò)Java虛擬機(jī)(JVM)產(chǎn)生交互,安卓的Linux內(nèi)核系統(tǒng)通過(guò)將各個(gè)進(jìn)程運(yùn)行在獨(dú)立的Dalvik虛擬機(jī)上來(lái)保證應(yīng)用的安全,然而因?yàn)閻阂獬绦蛉钥赏ㄟ^(guò)進(jìn)程Hook來(lái)獲取其他進(jìn)程的消息,這給PGC制播應(yīng)用帶來(lái)安全威脅。
安卓平臺(tái)的進(jìn)程Hook原理如圖4所示,即惡意程序可通過(guò)將SO文件注入到目標(biāo)進(jìn)程,進(jìn)而獲取到JNIEnv對(duì)象,JNIEnv對(duì)象是Java和Linux相互調(diào)用的橋梁,通過(guò)該對(duì)象可以實(shí)現(xiàn)調(diào)用目標(biāo)進(jìn)程中的Java方法,并實(shí)現(xiàn)目標(biāo)函數(shù)的Hook。接著,當(dāng)應(yīng)用程序執(zhí)行時(shí),會(huì)加載libtest_nonPIC.so文件,該文件會(huì)替換原始的printf()函數(shù)的調(diào)用,改為先調(diào)用Hooked_printf()方法,在該方法中執(zhí)行Hook操作。這樣一來(lái),惡意程序就可通過(guò)進(jìn)程Hook獲取到特定APP的數(shù)據(jù)并進(jìn)行篡改。
本文提出的阻斷進(jìn)程Hook技術(shù)以插件方式幫助PGC APP開(kāi)發(fā)者提升它的安全性,插件中包含了安卓?jī)?nèi)核保護(hù)代碼、防止內(nèi)核函數(shù)被Hook調(diào)用。該插件以安卓本地類庫(kù)的方式被添加到工程項(xiàng)目中,當(dāng)PGC APP啟動(dòng)時(shí)會(huì)自動(dòng)載入,這些類庫(kù)文件會(huì)向PGC APP中注入保護(hù)代碼,如圖5所示,通過(guò)注入protect_prinf()方法,使惡意程序Hook假的prinf()函數(shù),繞過(guò)android_log_print()函數(shù)的執(zhí)行,避免惡意程序開(kāi)發(fā)者通過(guò)輸出Logcat信息獲取PGC APP處理的媒體內(nèi)容,并返回正常的printf()函數(shù)調(diào)用,保證媒體數(shù)據(jù)安全。
5.3 PGC APP的簽名校驗(yàn)技術(shù)
當(dāng)合法PGC制播APP上傳應(yīng)用商店前,需要該APP開(kāi)發(fā)者通過(guò)自己的私鑰對(duì)APP進(jìn)行簽名。當(dāng)PGC用戶安裝PGC制播APP時(shí),PGC移動(dòng)終端系統(tǒng)會(huì)驗(yàn)證該APP的簽名密鑰,該密鑰會(huì)作為APP的唯一標(biāo)志。后續(xù)APP進(jìn)行升級(jí)或者覆蓋安裝時(shí),PGC移動(dòng)終端系統(tǒng)會(huì)檢驗(yàn)APP的簽名信息,新版本APP和之前的簽名信息一致,APP才能正常升級(jí)和使用。
如果惡意程序開(kāi)發(fā)者對(duì)合法PGC APP進(jìn)行反編譯解析源碼、嵌入惡意代碼后用自己的密鑰對(duì)APP進(jìn)行打包,然后通過(guò)短信鏈接的方式誘導(dǎo)用戶進(jìn)行安裝,一旦用戶安裝并用其進(jìn)行錄播、制作,媒體內(nèi)容可能會(huì)被篡改、損壞。本方法提出將合法PGC APP的簽名私鑰信息存儲(chǔ)在PGC系統(tǒng)的服務(wù)器端,在PGC APP運(yùn)行過(guò)程中實(shí)時(shí)獲取其簽名信息,并與服務(wù)端存儲(chǔ)的簽名信息進(jìn)行對(duì)比,以判斷該APP是否已被惡意篡改。APP簽名校驗(yàn)的具體流程如圖6所示。
6 實(shí)驗(yàn)評(píng)估
我們?cè)谡鎸?shí)移動(dòng)終端設(shè)備(安卓版本4.4、內(nèi)存2G)上實(shí)驗(yàn)檢驗(yàn)提出方法的效果。
我們對(duì)安卓設(shè)備的內(nèi)核段代碼、系統(tǒng)調(diào)用表、內(nèi)核文件系統(tǒng)等進(jìn)行監(jiān)控。如圖7所示,實(shí)驗(yàn)中向內(nèi)核中動(dòng)態(tài)插入HelloTest.ko測(cè)試模塊,此時(shí)部署在PGC終端的可信度量模塊會(huì)檢測(cè)到相應(yīng)內(nèi)核文件的變化,并提示用戶當(dāng)前的執(zhí)行環(huán)境存在安全風(fēng)險(xiǎn)。另外,利用APK Tool工具對(duì)合法PGC APP進(jìn)行重打包并用其錄制媒體內(nèi)容上傳服務(wù)端,此時(shí)簽名校驗(yàn)?zāi)K會(huì)進(jìn)行簽名信息的比對(duì),如圖8所示,若簽名不一致,系統(tǒng)會(huì)提示用戶該APP存在安全風(fēng)險(xiǎn)。
最后,我們測(cè)試提出方法對(duì)PGC安卓移動(dòng)設(shè)備的資源消耗情況。實(shí)驗(yàn)中阻斷進(jìn)程Hook模塊借助在內(nèi)核中插入Hook模塊實(shí)現(xiàn),度量模塊的進(jìn)程ID為“com.example.testjni”,如圖9所示, CPU的消耗峰值穩(wěn)定在4%,大部分時(shí)間幾乎為0,系統(tǒng)內(nèi)存基本穩(wěn)定在23MB。當(dāng)前主流安卓機(jī)器的內(nèi)存大都為4GB,因此本文提出方法對(duì)于安卓系統(tǒng)的內(nèi)存消耗極低。
7 結(jié)束語(yǔ)
本文提出了一種面向融合媒體的PGC移動(dòng)終端安全防護(hù)方法,該方法通過(guò)融合可信度量、阻斷進(jìn)程Hook和簽名驗(yàn)簽技術(shù)實(shí)現(xiàn)PGC移動(dòng)終端運(yùn)行環(huán)境的可信和PGC APP的可信接入。本文當(dāng)前實(shí)驗(yàn)是在安卓平臺(tái)上完成,實(shí)驗(yàn)結(jié)果表明提出方法在對(duì)PGC移動(dòng)終端安全防護(hù)的同時(shí)不會(huì)給帶來(lái)太大的性能開(kāi)銷。下一步將在IOS等其他移動(dòng)平臺(tái)上進(jìn)行提出方法的實(shí)驗(yàn)測(cè)試,進(jìn)一步優(yōu)化方法設(shè)計(jì)。
基金項(xiàng)目:
國(guó)家新聞出版廣電總局科研項(xiàng)目“電視臺(tái)網(wǎng)絡(luò)化制播信息安全技術(shù)研究”(項(xiàng)目編號(hào):2015-21)。
參考文獻(xiàn)
[1] 白浩,王朝清. Android系統(tǒng)惡意應(yīng)用程序的研究[J].網(wǎng)絡(luò)空間安全,2017 (4-5): 28-31.
[2] 宋麗珠,林柏鋼,倪一濤,等. Android軟件漏洞檢測(cè)方法與技術(shù)研究[J].網(wǎng)絡(luò)空間安全,2016 (9-10): 54-62.
[3] Alazab M, Monsamy V, Batten L, et al. Analysis of Malicious and Benign Android Applications[C]. International Conference on Distributed Computing Systems Workshops. IEEE Computer Society, 2012:608-616.
[4] Feldman S, Stadther D, Wang B. Manilyzer: Automated Android Malware Detection through Manifest Analysis[C]. IEEE, International Conference on Mobile Ad Hoc and Sensor Systems. IEEE, 2015:767-772.
[5] Chan P P K, Song W K. Static detection of Android malware by using permissions and API calls[C]. International Conference on Machine Learning and Cybernetics. IEEE, 2015:82-87.
[6] Quan D, Zhai L, Yang F, et al. Detection of Android Malicious Apps Based on the Sensitive Behaviors[C]. IEEE International Conference on Trust, Security and Privacy in Computing and Communications. IEEE, 2015:877-883.
[7] Sun M, Zheng M, Lui J C S, et al. Design and implementation of an Android host-based intrusion prevention system[C]. Computer Security Applications Conference. 2014:226-235.
[8] Wu W C, Hung S H. DroidDolphin: a dynamic Android malware detection framework using big data and machine learning [C]. Conference on Research in Adaptive and Convergent Systems. ACM, 2014:247-252.
[9] 沈昌祥,張煥國(guó),王懷民,等.可信計(jì)算的研究與發(fā)展[J].中國(guó)科學(xué): F輯 信息科學(xué), 2010, 40(2):139-166.
[10] 沈昌祥,陳興蜀.基于可信計(jì)算構(gòu)建縱深防御的信息安全保障體系[J].四川大學(xué)學(xué)報(bào)(工程科學(xué)版), 2014, 46 (1): 1-7.
[11] 徐妍.移動(dòng)外場(chǎng)融媒體——大型體育賽事前場(chǎng)網(wǎng)絡(luò)制播系統(tǒng)融媒體應(yīng)用[J].現(xiàn)代電視技術(shù), 2017(02):70-75.