王文,張彩友,王志強
(國網浙江省電力有限公司信息通信分公司浙江杭州310012)
電力系統的安全性關系到國計民生、社會穩定,電力智能終端已普遍應用到日常生活當中,為消費者提供便利的互動服務,然而,由于移動網絡和智能終端本身的開放性,電網運行狀態和折本信息很可能被讀取篡改[3]。一旦電網崩潰,不僅會造成經濟損失,甚至會危害人身安全及社會穩定。因此研究電力智能終端的安全問題顯得尤為重要。
Android系統作為當前應用最廣泛的操作系統之一,被充分應用到電力移動終端中。目前針對Android系統的移動終端應用的安全性方案當前主要有兩種[4]:在此稱之為“開源”和“節流”。“開源”指的是出一類專門用于工作用的安全手機,這類手機上只允許打電話、發短信以及使用工作用的手機軟件(Application,APP),即從源頭確保手機應用是安全的;“節流”方法提供一類半定制手機,同時配套提供一個或者一批網址來下載和升級APP應用。這兩種方法都能在一定程度上確保用戶手機上安裝的應用是安全的,但是都存在明顯的問題。“開源”的方法雖然能夠保證用戶手機上的APP都是安全的,但同時也讓用戶的體驗感變得極差,很多用戶將這類手機拿到手之后,直接就束之高閣,很少甚至基本不使用;“節流”的方法由于不能杜絕用戶下載其他應用,因此一旦用戶不小心在工作區域下載并安裝了其他的第三方應用,依舊會存在安全隱患。
安全域是在同一邏輯區域內,安全保護需求和保護策略相同或相似要素的集合,區域間相互信任,相同的安全域有相同的安全策略[5]。具體安全域的劃分應根據不同行業、不同用戶和不同需求,結合行業的自身特點和實際來進行。最終的目的是達到對業務系統的全方位防護,滿足安全保障的實際需求[6-8]。一個典型的安全域劃分方案是將系統的IT要素集合分為用戶域、計算域、網絡域、支撐域四類基本安全域[6],如圖 1所示。

圖1 安全域基本構成
在4個基本安全域內,不同IT要素承載的數據流、數據處理活動、分布的位置、提供的功能和服務都可能存在差異,因此,它們所面臨的安全威脅的種類和能力存在差別,其安全需求也會有所不同。在實際應用中會根據業務需要和安全需要將基本安全域進行更細致的劃分。
Android手機屬于用戶域的組成部分,為了便于實施安全防護,我們為Android手機進一步劃分一個應用工作的區域,在該區域內,所有的應用都應該是可行的,如何控制在該區域內安裝的應用都是可信應用,避免不安全的應用進入安全域是本文研究的重點。
為了避免不安全的應用進入安全域,造成用戶隱私泄露,財產損失等危害。目前,市面上出現了兩種解決方案,一種是專門出一個工作用的安全Android手機,手機上只允許打電話、發短信和使用工作APP;該方案讓用戶體驗極差,很多用戶直接將這類手機拿到手之后,就束之高閣,很少使用。第二種是提供一個半定制手機,提供一個或者一批網址來下載和升級APP應用;該方案中,由于不能杜絕用戶下載其他應用,若用戶不小心在工作區域下載并安裝了其他第三方應用,會有安全隱患。
圖3是用戶下載并安裝可信應用的流程圖,用戶可在智能手機中登入應用商店,根據自身所需要的功能選擇分類并下載自己需要的APP。安裝過程中分類證書會對APP進行校驗,校驗不通過則終止安裝,從而避免用戶安裝不安全的應用APP。

圖2 將可信應用植入安全應用商店服務端

圖3 下載并安裝應用
國內外的學者們已經對移動終端APP的安全檢測做了大量分析和研究,如S.Gunalakshmii[9]等設計的基于支持向量機(SVM)的行為檢測系統,Fabio等[10]設計的結合靜態分析和動態分析的惡意軟件檢測技術,文獻[11]采用反編譯工具baksmali和數據流分析方法檢測程序是否存在越權操作[11],文獻[12]提出了一個基于進程代數和系統調用(BDPA)的軟件行為檢測模型[12]。總的看來,APP的安全性問題主要來源于幾個方面:APP本身結構設計的缺陷、APP源代碼設計漏洞、使用的協議不安全、SDK缺陷等[13]。針對APP安全性的測試主要分為3種策略:
1)APP代碼檢測
該方法是采用JD-GUI、ApkTool、Dex2jar、Smali2dex等代碼分析工具對APP代碼進行反編譯,生成Java源代碼文件、XML頁面文件等,然后對這些文件進行靜態掃描,搜索關鍵詞找出具有安全隱患的代碼。
2)APP滲透測試
滲透測試是模擬黑客對APP進行安全攻擊,這種檢測方法能夠直觀地反映出APP的薄弱環節。
3)APP漏洞掃描
漏洞掃描是借助漏洞掃描器對APP的安全性進行全方位的檢測,漏洞掃描器采用數據跟蹤分析、漏洞驗證、拒絕服務攻擊等手段對APP代碼安全、簽名安全、業務邏輯安全、數據安全、環境安全等各個方面進行全方面的檢測。
為了高效、更好地做好安全性測試,除了選擇合適的測試方案之外,還要能充分利用軟件安全測試工具。常用的安全測試工具包括:X-Ray工具、Safe.ijiami、Droze工具、Intent Sniffer工具。X-Ray允許用戶掃描其Android設備,查看設備上是否有影響設備安全的漏洞。目前X-Ray支持對以下漏洞進行檢測 :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是愛加密公司的產品,它通過模擬黑客的攻擊行為對APP的安全性進行檢測。Drozer是一個由MWR安全團隊維護開源的軟件,該軟件是針對Android平臺的安全審計和攻擊框架。安全人員可以通過drozer自身提供的一些模塊完成一些基礎的安全測試功能。Intent Sniffer工具實現監控運行時路由的廣播Intent,能夠針對那些基于應用反射和動態審查安裝程序的Intent來動態升級掃描的Action和Category。
身份認證是所有安全機制的基礎,服務器端和客戶端之間的身份認證是基于一種證據,通過這個證據來證明雙方的身份。根據證據形式的不同,相應地存在以下幾種身份認證技術[14]:
1)口令認證
口令認證又分為靜態口令認證和動態口令認證。靜態口令認證又可以稱為密碼認證,口令是用戶自己設定的,只要正確輸入口令,就可以通過身份認證,這種認證方式簡單且成本低、速度快,但是很難抵抗窮舉攻擊,安全隱患較大。動態口令是讓用戶的密碼不斷變化,它采用動態令牌生成動態密碼,只有合法用戶才持有動態令牌,令牌中的密碼生成芯片會根據時間和使用次數計算出當前密碼,用戶只需要輸入當前的密碼就可以實現身份認證。這種方式相較于靜態口令安全性提高了很多,即使黑客截獲了密碼,也不能冒充合法用戶。
2)智能卡認證
智能卡[15]是一種內置集成電路芯片,內部存儲于用戶身份信息相關的數據。智能卡是不能復制的,由專門的廠家和設備生產,只有合法的用戶才擁有智能卡。進行身份認證時,通過讀卡器讀取卡上的信息來驗證用戶的身份。智能卡中的信息是靜態的,很容易被黑客通過掃描或監聽技術截取信息,因此也存在一定的安全隱患。
3)USB Key認證
USB Key[16]身份認證是由智能卡技術發展而來,USB Key是一種USB接口硬件設備,內置智能卡芯片或者單片機用來存儲用戶的秘鑰和數字證書,采用內置的密碼算法對用戶身份進行認證。
APP安裝過程中可以通過多種方式對其進行校驗,這里僅對其中一種校驗方法進行介紹,具體校驗流程如圖4所示:

圖4 APP安裝校驗步驟
1)將證書進行base64編碼,并將編碼后的字符串保存在程序中;
2)將證書簽名(MD5或SHA1值)進行對稱算法加密(如:DES),然后將加密后的結果和對稱算法密鑰放在一起,再使用證書的私鑰對其加密,將加密后的結果保存在一個xxx.conf文件中;
3)客戶端啟動時,通過解碼(1)中的字符串得到證書的公鑰,然后使用公鑰解碼xxx.conf文件,得到對稱算法的key;然后使用key解碼被加密的簽名字符串;
4)客戶端通過運行環境獲取安裝包的證書簽名,并將其與配置文件中的簽名進行比較,如果想等即為合法簽名,否則安裝包已經使用了其它非法的證書進行了簽名。
為了評估本文所提出方案的性能,本文采用按鍵精靈腳本測試方法,通過不斷地關閉啟用移動軟件來對應用正常運行的概率進行測試。按鍵精靈是一款模擬鍵盤動作的軟件,通過導入測試腳本,可以代替雙手自動執行一系列鍵盤動作。本文在按鍵精靈中導入測試腳本并設置為重復運行,使其能夠自動操作,不斷關閉并啟用移動軟件。按鍵精靈作為一款廣泛應用的軟件,經過不斷地改革換代,其性能已非常成熟,具有足夠的安全保障,是移動APP安全測試的首選工具。
文中選取了8個具有代表性的應用軟件進行測試,分別是Call+雙卡綁定、Call Log、雙域、安全圖庫、聯系人快傳、安全相機、設備安保,經過市場統計這八款應用對于所有的智能手機用戶都是必不可少的,并且相較于其他的軟件使用次數非常頻繁,一旦被黑客置入惡意功能或者非法監聽篡改數據,后果將不堪設想,一方面用戶的圖庫信息,重要聯系人數據可能會泄露甚至丟失;另一方面,攻擊者可以直接對客戶端進行安全攻擊。
表1是8個軟件的通過率測試結果,表格中Feature Name是安全應用名稱,TC Count是測試次數,即關閉啟用移動軟件的次數,Excecuted代表有效測試次數,Pass代表通過次數,即應用正常運行的次數,block表示返回空值,NA是無效測試次數,fail是測試失敗次數,Pass Rate是安全應用的通過率,計算如下:


表1 應用軟件通過率測試數據
測試中,通過設置按鍵精靈軟件不斷開啟并關閉應用軟件,觀察應用正常運行的次數,每開啟閉合一次即代表一次測試。為了使測試結果更具普遍性和可信度,我們總共進行了1577次測試,并重點對安全相機和Contacts這兩款重要應用進行了553和459次測試。從表格中可以看出,參與測試的八款應用軟件通過率都在90%以上,平均通過率達到93.95%,Call Log、聯系人快傳、設備安保三個應用的通過率甚至達到100%。應用的通過率普遍較高。可以看出本文提出的安全域可信應用方案具能夠很好地減少安全隱患,確保手機應用的安全性,且實現方法簡單易行,具有良好的應用前景。
文中提出了一種基于Android系統的安全域可信應用方法,聯合了“開源”和“節流”兩種策略,將安全市場APP與應用的framework層深度結合,定義了一個如同專用手機一樣安全的系統使用環境。提高了移動應用終端的安全性,避免不安全的應用進入安全域。同時,該方法也可以應用到電力移動終端中,滿足電力系統的高安全性要求。