王文,張彩友,王志強(qiáng)
(國(guó)網(wǎng)浙江省電力有限公司信息通信分公司浙江杭州310012)
電力系統(tǒng)的安全性關(guān)系到國(guó)計(jì)民生、社會(huì)穩(wěn)定,電力智能終端已普遍應(yīng)用到日常生活當(dāng)中,為消費(fèi)者提供便利的互動(dòng)服務(wù),然而,由于移動(dòng)網(wǎng)絡(luò)和智能終端本身的開(kāi)放性,電網(wǎng)運(yùn)行狀態(tài)和折本信息很可能被讀取篡改[3]。一旦電網(wǎng)崩潰,不僅會(huì)造成經(jīng)濟(jì)損失,甚至?xí):θ松戆踩吧鐣?huì)穩(wěn)定。因此研究電力智能終端的安全問(wèn)題顯得尤為重要。
Android系統(tǒng)作為當(dāng)前應(yīng)用最廣泛的操作系統(tǒng)之一,被充分應(yīng)用到電力移動(dòng)終端中。目前針對(duì)Android系統(tǒng)的移動(dòng)終端應(yīng)用的安全性方案當(dāng)前主要有兩種[4]:在此稱(chēng)之為“開(kāi)源”和“節(jié)流”?!伴_(kāi)源”指的是出一類(lèi)專(zhuān)門(mén)用于工作用的安全手機(jī),這類(lèi)手機(jī)上只允許打電話、發(fā)短信以及使用工作用的手機(jī)軟件(Application,APP),即從源頭確保手機(jī)應(yīng)用是安全的;“節(jié)流”方法提供一類(lèi)半定制手機(jī),同時(shí)配套提供一個(gè)或者一批網(wǎng)址來(lái)下載和升級(jí)APP應(yīng)用。這兩種方法都能在一定程度上確保用戶(hù)手機(jī)上安裝的應(yīng)用是安全的,但是都存在明顯的問(wèn)題?!伴_(kāi)源”的方法雖然能夠保證用戶(hù)手機(jī)上的APP都是安全的,但同時(shí)也讓用戶(hù)的體驗(yàn)感變得極差,很多用戶(hù)將這類(lèi)手機(jī)拿到手之后,直接就束之高閣,很少甚至基本不使用;“節(jié)流”的方法由于不能杜絕用戶(hù)下載其他應(yīng)用,因此一旦用戶(hù)不小心在工作區(qū)域下載并安裝了其他的第三方應(yīng)用,依舊會(huì)存在安全隱患。
安全域是在同一邏輯區(qū)域內(nèi),安全保護(hù)需求和保護(hù)策略相同或相似要素的集合,區(qū)域間相互信任,相同的安全域有相同的安全策略[5]。具體安全域的劃分應(yīng)根據(jù)不同行業(yè)、不同用戶(hù)和不同需求,結(jié)合行業(yè)的自身特點(diǎn)和實(shí)際來(lái)進(jìn)行。最終的目的是達(dá)到對(duì)業(yè)務(wù)系統(tǒng)的全方位防護(hù),滿足安全保障的實(shí)際需求[6-8]。一個(gè)典型的安全域劃分方案是將系統(tǒng)的IT要素集合分為用戶(hù)域、計(jì)算域、網(wǎng)絡(luò)域、支撐域四類(lèi)基本安全域[6],如圖 1所示。
圖1 安全域基本構(gòu)成
在4個(gè)基本安全域內(nèi),不同IT要素承載的數(shù)據(jù)流、數(shù)據(jù)處理活動(dòng)、分布的位置、提供的功能和服務(wù)都可能存在差異,因此,它們所面臨的安全威脅的種類(lèi)和能力存在差別,其安全需求也會(huì)有所不同。在實(shí)際應(yīng)用中會(huì)根據(jù)業(yè)務(wù)需要和安全需要將基本安全域進(jìn)行更細(xì)致的劃分。
Android手機(jī)屬于用戶(hù)域的組成部分,為了便于實(shí)施安全防護(hù),我們?yōu)锳ndroid手機(jī)進(jìn)一步劃分一個(gè)應(yīng)用工作的區(qū)域,在該區(qū)域內(nèi),所有的應(yīng)用都應(yīng)該是可行的,如何控制在該區(qū)域內(nèi)安裝的應(yīng)用都是可信應(yīng)用,避免不安全的應(yīng)用進(jìn)入安全域是本文研究的重點(diǎn)。
為了避免不安全的應(yīng)用進(jìn)入安全域,造成用戶(hù)隱私泄露,財(cái)產(chǎn)損失等危害。目前,市面上出現(xiàn)了兩種解決方案,一種是專(zhuān)門(mén)出一個(gè)工作用的安全Android手機(jī),手機(jī)上只允許打電話、發(fā)短信和使用工作APP;該方案讓用戶(hù)體驗(yàn)極差,很多用戶(hù)直接將這類(lèi)手機(jī)拿到手之后,就束之高閣,很少使用。第二種是提供一個(gè)半定制手機(jī),提供一個(gè)或者一批網(wǎng)址來(lái)下載和升級(jí)APP應(yīng)用;該方案中,由于不能杜絕用戶(hù)下載其他應(yīng)用,若用戶(hù)不小心在工作區(qū)域下載并安裝了其他第三方應(yīng)用,會(huì)有安全隱患。
圖3是用戶(hù)下載并安裝可信應(yīng)用的流程圖,用戶(hù)可在智能手機(jī)中登入應(yīng)用商店,根據(jù)自身所需要的功能選擇分類(lèi)并下載自己需要的APP。安裝過(guò)程中分類(lèi)證書(shū)會(huì)對(duì)APP進(jìn)行校驗(yàn),校驗(yàn)不通過(guò)則終止安裝,從而避免用戶(hù)安裝不安全的應(yīng)用APP。
圖2 將可信應(yīng)用植入安全應(yīng)用商店服務(wù)端
圖3 下載并安裝應(yīng)用
國(guó)內(nèi)外的學(xué)者們已經(jīng)對(duì)移動(dòng)終端APP的安全檢測(cè)做了大量分析和研究,如S.Gunalakshmii[9]等設(shè)計(jì)的基于支持向量機(jī)(SVM)的行為檢測(cè)系統(tǒng),F(xiàn)abio等[10]設(shè)計(jì)的結(jié)合靜態(tài)分析和動(dòng)態(tài)分析的惡意軟件檢測(cè)技術(shù),文獻(xiàn)[11]采用反編譯工具baksmali和數(shù)據(jù)流分析方法檢測(cè)程序是否存在越權(quán)操作[11],文獻(xiàn)[12]提出了一個(gè)基于進(jìn)程代數(shù)和系統(tǒng)調(diào)用(BDPA)的軟件行為檢測(cè)模型[12]??偟目磥?lái),APP的安全性問(wèn)題主要來(lái)源于幾個(gè)方面:APP本身結(jié)構(gòu)設(shè)計(jì)的缺陷、APP源代碼設(shè)計(jì)漏洞、使用的協(xié)議不安全、SDK缺陷等[13]。針對(duì)APP安全性的測(cè)試主要分為3種策略:
1)APP代碼檢測(cè)
該方法是采用JD-GUI、ApkTool、Dex2jar、Smali2dex等代碼分析工具對(duì)APP代碼進(jìn)行反編譯,生成Java源代碼文件、XML頁(yè)面文件等,然后對(duì)這些文件進(jìn)行靜態(tài)掃描,搜索關(guān)鍵詞找出具有安全隱患的代碼。
2)APP滲透測(cè)試
滲透測(cè)試是模擬黑客對(duì)APP進(jìn)行安全攻擊,這種檢測(cè)方法能夠直觀地反映出APP的薄弱環(huán)節(jié)。
3)APP漏洞掃描
漏洞掃描是借助漏洞掃描器對(duì)APP的安全性進(jìn)行全方位的檢測(cè),漏洞掃描器采用數(shù)據(jù)跟蹤分析、漏洞驗(yàn)證、拒絕服務(wù)攻擊等手段對(duì)APP代碼安全、簽名安全、業(yè)務(wù)邏輯安全、數(shù)據(jù)安全、環(huán)境安全等各個(gè)方面進(jìn)行全方面的檢測(cè)。
為了高效、更好地做好安全性測(cè)試,除了選擇合適的測(cè)試方案之外,還要能充分利用軟件安全測(cè)試工具。常用的安全測(cè)試工具包括:X-Ray工具、Safe.ijiami、Droze工具、Intent Sniffer工具。X-Ray允許用戶(hù)掃描其Android設(shè)備,查看設(shè)備上是否有影響設(shè)備安全的漏洞。目前X-Ray支持對(duì)以下漏洞進(jìn)行檢測(cè) :ASHMEM(CVE-2011-1149)、Exploid(CVE-2009-1185)、Gingerbreak(CVE-2011-1823)、Levitator(CVE-2011-1352)、Mempodroid(CVE-2012-0056) 、Wunderbar(CVE-2009-2692) 、ZergRush(CVE-2011-3874)、Zimperlich(Zygote setuid)。Safe.ijiami是愛(ài)加密公司的產(chǎn)品,它通過(guò)模擬黑客的攻擊行為對(duì)APP的安全性進(jìn)行檢測(cè)。Drozer是一個(gè)由MWR安全團(tuán)隊(duì)維護(hù)開(kāi)源的軟件,該軟件是針對(duì)Android平臺(tái)的安全審計(jì)和攻擊框架。安全人員可以通過(guò)drozer自身提供的一些模塊完成一些基礎(chǔ)的安全測(cè)試功能。Intent Sniffer工具實(shí)現(xiàn)監(jiān)控運(yùn)行時(shí)路由的廣播Intent,能夠針對(duì)那些基于應(yīng)用反射和動(dòng)態(tài)審查安裝程序的Intent來(lái)動(dòng)態(tài)升級(jí)掃描的Action和Category。
身份認(rèn)證是所有安全機(jī)制的基礎(chǔ),服務(wù)器端和客戶(hù)端之間的身份認(rèn)證是基于一種證據(jù),通過(guò)這個(gè)證據(jù)來(lái)證明雙方的身份。根據(jù)證據(jù)形式的不同,相應(yīng)地存在以下幾種身份認(rèn)證技術(shù)[14]:
1)口令認(rèn)證
口令認(rèn)證又分為靜態(tài)口令認(rèn)證和動(dòng)態(tài)口令認(rèn)證。靜態(tài)口令認(rèn)證又可以稱(chēng)為密碼認(rèn)證,口令是用戶(hù)自己設(shè)定的,只要正確輸入口令,就可以通過(guò)身份認(rèn)證,這種認(rèn)證方式簡(jiǎn)單且成本低、速度快,但是很難抵抗窮舉攻擊,安全隱患較大。動(dòng)態(tài)口令是讓用戶(hù)的密碼不斷變化,它采用動(dòng)態(tài)令牌生成動(dòng)態(tài)密碼,只有合法用戶(hù)才持有動(dòng)態(tài)令牌,令牌中的密碼生成芯片會(huì)根據(jù)時(shí)間和使用次數(shù)計(jì)算出當(dāng)前密碼,用戶(hù)只需要輸入當(dāng)前的密碼就可以實(shí)現(xiàn)身份認(rèn)證。這種方式相較于靜態(tài)口令安全性提高了很多,即使黑客截獲了密碼,也不能冒充合法用戶(hù)。
2)智能卡認(rèn)證
智能卡[15]是一種內(nèi)置集成電路芯片,內(nèi)部存儲(chǔ)于用戶(hù)身份信息相關(guān)的數(shù)據(jù)。智能卡是不能復(fù)制的,由專(zhuān)門(mén)的廠家和設(shè)備生產(chǎn),只有合法的用戶(hù)才擁有智能卡。進(jìn)行身份認(rèn)證時(shí),通過(guò)讀卡器讀取卡上的信息來(lái)驗(yàn)證用戶(hù)的身份。智能卡中的信息是靜態(tài)的,很容易被黑客通過(guò)掃描或監(jiān)聽(tīng)技術(shù)截取信息,因此也存在一定的安全隱患。
3)USB Key認(rèn)證
USB Key[16]身份認(rèn)證是由智能卡技術(shù)發(fā)展而來(lái),USB Key是一種USB接口硬件設(shè)備,內(nèi)置智能卡芯片或者單片機(jī)用來(lái)存儲(chǔ)用戶(hù)的秘鑰和數(shù)字證書(shū),采用內(nèi)置的密碼算法對(duì)用戶(hù)身份進(jìn)行認(rèn)證。
APP安裝過(guò)程中可以通過(guò)多種方式對(duì)其進(jìn)行校驗(yàn),這里僅對(duì)其中一種校驗(yàn)方法進(jìn)行介紹,具體校驗(yàn)流程如圖4所示:
圖4 APP安裝校驗(yàn)步驟
1)將證書(shū)進(jìn)行base64編碼,并將編碼后的字符串保存在程序中;
2)將證書(shū)簽名(MD5或SHA1值)進(jìn)行對(duì)稱(chēng)算法加密(如:DES),然后將加密后的結(jié)果和對(duì)稱(chēng)算法密鑰放在一起,再使用證書(shū)的私鑰對(duì)其加密,將加密后的結(jié)果保存在一個(gè)xxx.conf文件中;
3)客戶(hù)端啟動(dòng)時(shí),通過(guò)解碼(1)中的字符串得到證書(shū)的公鑰,然后使用公鑰解碼xxx.conf文件,得到對(duì)稱(chēng)算法的key;然后使用key解碼被加密的簽名字符串;
4)客戶(hù)端通過(guò)運(yùn)行環(huán)境獲取安裝包的證書(shū)簽名,并將其與配置文件中的簽名進(jìn)行比較,如果想等即為合法簽名,否則安裝包已經(jīng)使用了其它非法的證書(shū)進(jìn)行了簽名。
為了評(píng)估本文所提出方案的性能,本文采用按鍵精靈腳本測(cè)試方法,通過(guò)不斷地關(guān)閉啟用移動(dòng)軟件來(lái)對(duì)應(yīng)用正常運(yùn)行的概率進(jìn)行測(cè)試。按鍵精靈是一款模擬鍵盤(pán)動(dòng)作的軟件,通過(guò)導(dǎo)入測(cè)試腳本,可以代替雙手自動(dòng)執(zhí)行一系列鍵盤(pán)動(dòng)作。本文在按鍵精靈中導(dǎo)入測(cè)試腳本并設(shè)置為重復(fù)運(yùn)行,使其能夠自動(dòng)操作,不斷關(guān)閉并啟用移動(dòng)軟件。按鍵精靈作為一款廣泛應(yīng)用的軟件,經(jīng)過(guò)不斷地改革換代,其性能已非常成熟,具有足夠的安全保障,是移動(dòng)APP安全測(cè)試的首選工具。
文中選取了8個(gè)具有代表性的應(yīng)用軟件進(jìn)行測(cè)試,分別是Call+雙卡綁定、Call Log、雙域、安全圖庫(kù)、聯(lián)系人快傳、安全相機(jī)、設(shè)備安保,經(jīng)過(guò)市場(chǎng)統(tǒng)計(jì)這八款應(yīng)用對(duì)于所有的智能手機(jī)用戶(hù)都是必不可少的,并且相較于其他的軟件使用次數(shù)非常頻繁,一旦被黑客置入惡意功能或者非法監(jiān)聽(tīng)篡改數(shù)據(jù),后果將不堪設(shè)想,一方面用戶(hù)的圖庫(kù)信息,重要聯(lián)系人數(shù)據(jù)可能會(huì)泄露甚至丟失;另一方面,攻擊者可以直接對(duì)客戶(hù)端進(jìn)行安全攻擊。
表1是8個(gè)軟件的通過(guò)率測(cè)試結(jié)果,表格中Feature Name是安全應(yīng)用名稱(chēng),TC Count是測(cè)試次數(shù),即關(guān)閉啟用移動(dòng)軟件的次數(shù),Excecuted代表有效測(cè)試次數(shù),Pass代表通過(guò)次數(shù),即應(yīng)用正常運(yùn)行的次數(shù),block表示返回空值,NA是無(wú)效測(cè)試次數(shù),fail是測(cè)試失敗次數(shù),Pass Rate是安全應(yīng)用的通過(guò)率,計(jì)算如下:
表1 應(yīng)用軟件通過(guò)率測(cè)試數(shù)據(jù)
測(cè)試中,通過(guò)設(shè)置按鍵精靈軟件不斷開(kāi)啟并關(guān)閉應(yīng)用軟件,觀察應(yīng)用正常運(yùn)行的次數(shù),每開(kāi)啟閉合一次即代表一次測(cè)試。為了使測(cè)試結(jié)果更具普遍性和可信度,我們總共進(jìn)行了1577次測(cè)試,并重點(diǎn)對(duì)安全相機(jī)和Contacts這兩款重要應(yīng)用進(jìn)行了553和459次測(cè)試。從表格中可以看出,參與測(cè)試的八款應(yīng)用軟件通過(guò)率都在90%以上,平均通過(guò)率達(dá)到93.95%,Call Log、聯(lián)系人快傳、設(shè)備安保三個(gè)應(yīng)用的通過(guò)率甚至達(dá)到100%。應(yīng)用的通過(guò)率普遍較高。可以看出本文提出的安全域可信應(yīng)用方案具能夠很好地減少安全隱患,確保手機(jī)應(yīng)用的安全性,且實(shí)現(xiàn)方法簡(jiǎn)單易行,具有良好的應(yīng)用前景。
文中提出了一種基于Android系統(tǒng)的安全域可信應(yīng)用方法,聯(lián)合了“開(kāi)源”和“節(jié)流”兩種策略,將安全市場(chǎng)APP與應(yīng)用的framework層深度結(jié)合,定義了一個(gè)如同專(zhuān)用手機(jī)一樣安全的系統(tǒng)使用環(huán)境。提高了移動(dòng)應(yīng)用終端的安全性,避免不安全的應(yīng)用進(jìn)入安全域。同時(shí),該方法也可以應(yīng)用到電力移動(dòng)終端中,滿足電力系統(tǒng)的高安全性要求。