陳泓汲 張鵬 鄧樣輝 王艷紅
摘要:為了提升Android平臺(tái)安全測(cè)試效率,首先介紹了利用開源技術(shù)自主構(gòu)建Android安全檢測(cè)云平臺(tái)安測(cè)云的必要,論述安測(cè)云層次模型以及系統(tǒng)結(jié)構(gòu),重點(diǎn)闡述為滿足大批量應(yīng)用檢測(cè)的需求而采用IaaS和PaaS方法構(gòu)建平臺(tái),最后給出產(chǎn)品檢測(cè)實(shí)例說明。
關(guān)鍵詞:云平臺(tái)檢測(cè) Android安全檢測(cè) IaaS
1 引言
通過云計(jì)算[1-2]構(gòu)建的軟件平臺(tái),充分利用云計(jì)算硬件資源虛擬化易于拓展、靈活、海量計(jì)算、大存儲(chǔ)能力的優(yōu)勢(shì),能有效解決測(cè)試過程中測(cè)試能力快速升級(jí)、應(yīng)用大量預(yù)處理計(jì)算、大容量存儲(chǔ)等問題,總體減少測(cè)試時(shí)間,降低測(cè)試成本,帶來新的商業(yè)模式,因此基于云計(jì)算的軟件測(cè)試服務(wù)平臺(tái)[5-6]應(yīng)運(yùn)而生。在現(xiàn)有的云計(jì)算軟件測(cè)試平臺(tái)中,已經(jīng)有TestIn、騰訊優(yōu)測(cè)、中國泰爾實(shí)驗(yàn)室智測(cè)云等多個(gè)技術(shù)公司或單位提供的商業(yè)解決方案,這些商業(yè)平臺(tái)主要思路是面向Android應(yīng)用提供兼容性、網(wǎng)絡(luò)友好、弱網(wǎng)、H5、壓力測(cè)試等測(cè)試服務(wù)。
本文研究的項(xiàng)目主要研究面向移動(dòng)互聯(lián)網(wǎng)企業(yè)和普通用戶提供Android云安全測(cè)試服務(wù),該服務(wù)平臺(tái)融合多種Android安全檢測(cè)技術(shù)[7-12]。云安全測(cè)試平臺(tái)構(gòu)建在移動(dòng)智能終端安全測(cè)試能力基礎(chǔ)上,主要是增強(qiáng)Android自身安全防護(hù)能力,防止和抑制安全事件在智能終端上的發(fā)生,最終保護(hù)用戶信息安全。本文研究的安測(cè)云安全產(chǎn)品項(xiàng)目在前期調(diào)研中,考慮到當(dāng)前商業(yè)平臺(tái)的技術(shù)相對(duì)較封閉、商用成本較高、無法深入底層二次開發(fā)以完全符合自身業(yè)務(wù)需求等3個(gè)方面的缺點(diǎn),以及安測(cè)云業(yè)務(wù)后期靈活擴(kuò)展的需求,計(jì)劃采用社區(qū)驅(qū)動(dòng)的成熟開源技術(shù)而不是商業(yè)方案構(gòu)建平臺(tái)。移動(dòng)智能終端安全測(cè)試產(chǎn)品-安測(cè)云主要基于開源云社區(qū)OpenStack項(xiàng)目構(gòu)造Android終端云安全測(cè)試一體化平臺(tái)。本文介紹了安測(cè)云系統(tǒng)模型、結(jié)構(gòu)以及構(gòu)建過程,設(shè)計(jì)和實(shí)現(xiàn)了Android操作系統(tǒng)和應(yīng)用云測(cè)試服務(wù),對(duì)云計(jì)算技術(shù)在信息安全領(lǐng)域的產(chǎn)品應(yīng)用提供思考和實(shí)踐經(jīng)驗(yàn)。
2 安測(cè)云基礎(chǔ)架構(gòu)
2.1 安測(cè)云層次模型
安測(cè)云功能的設(shè)計(jì)參考YD/T 2407-2013《移動(dòng)智能終端安全能力技術(shù)要求》以及YD/T 2408-2013《移動(dòng)智能終端安全能力測(cè)試方法》,層次模型包括IaaS(Infrastructure as a Service,基礎(chǔ)設(shè)施即服務(wù))、PaaS(Platform as a Service,平臺(tái)即服務(wù))和門戶三個(gè)主要組成部分?;贠penStack實(shí)現(xiàn)的IaaS實(shí)現(xiàn)并管理靈活可配置的計(jì)算、存儲(chǔ)以及網(wǎng)絡(luò)虛擬化資源;PaaS層基于IaaS提供的基礎(chǔ)彈性可伸縮資源,主要向上層用戶提供運(yùn)行時(shí)環(huán)境、中間件、分布式計(jì)算、分布式存儲(chǔ)、負(fù)載均衡等基礎(chǔ)服務(wù);門戶主要是通過瀏覽器的方式用戶和管理員可以直接操作的一些產(chǎn)品功能。測(cè)試平臺(tái)層次模型如圖1所示。
主要考慮到移動(dòng)互聯(lián)網(wǎng)快速升級(jí)、Android智能終端種類較多、新安全測(cè)試能力需要不斷升級(jí)等特點(diǎn),安測(cè)云整體的架構(gòu)特點(diǎn)主要包括客戶端功能自動(dòng)升級(jí)、規(guī)避終端差異帶來的測(cè)試工具兼容問題、模塊化易于拓展、安全可靠、性能穩(wěn)定強(qiáng)大、負(fù)載均衡等特點(diǎn)。實(shí)現(xiàn)過程中具體表現(xiàn)為APP層能力快速可達(dá)、自主定制、手機(jī)快速接入、兼容性好;PaaS拓展升級(jí)靈活數(shù)據(jù)、資源安全可控;IaaS層資源虛擬化、彈性可伸縮、全冗余備份。
2.2 安測(cè)云系統(tǒng)結(jié)構(gòu)
“安測(cè)云”是集應(yīng)用軟件測(cè)試,終端操作系統(tǒng)認(rèn)證測(cè)試為一體的云端測(cè)試平臺(tái),平臺(tái)為用戶軟件商和終端廠商提供產(chǎn)品上線前全面的終端安全認(rèn)證服務(wù),主要包括操作系統(tǒng)安全認(rèn)證、預(yù)置應(yīng)用安全認(rèn)證,預(yù)置應(yīng)用安全認(rèn)證包括安全檢測(cè)掃描和動(dòng)態(tài)安全檢測(cè)服務(wù)兩個(gè)業(yè)務(wù)。在安測(cè)云層次模型的基礎(chǔ)上,結(jié)合智能終端信息安全測(cè)試自身的特點(diǎn),設(shè)計(jì)系統(tǒng)結(jié)構(gòu)如圖2所示:
3 安測(cè)云平臺(tái)構(gòu)建
3.1 安測(cè)云IaaS構(gòu)建
IaaS構(gòu)建的主要目標(biāo)是基于開源項(xiàng)目實(shí)現(xiàn)計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源的虛擬化,并且通過安裝Horizon平臺(tái)管理工具完成對(duì)這些虛擬資源的靈活調(diào)配和控制。無論是CloudStack還是OpenStack,對(duì)CPU架構(gòu)、存儲(chǔ)驅(qū)動(dòng)、交換機(jī)端口及其速率等基礎(chǔ)軟硬件設(shè)施都有兼容性、性能等方面的要求。
安測(cè)云面向Android操作系統(tǒng)和應(yīng)用檢測(cè)需求,服務(wù)于個(gè)人、終端廠商、應(yīng)用商店等用戶。其中,操作系統(tǒng)檢測(cè)服務(wù)域?yàn)楸镜匾?。?yīng)用檢測(cè)集成靜態(tài)掃描、靜態(tài)源碼分析、動(dòng)態(tài)行為監(jiān)控等多種類型檢測(cè)引擎,靜態(tài)掃描引擎由本地查殺引擎和主流云查殺廠商的引擎接口構(gòu)成,靜態(tài)源碼分析和動(dòng)態(tài)行為監(jiān)控引擎均為本地引擎。在平衡經(jīng)濟(jì)與性能的條件下,安測(cè)云硬件主體由12臺(tái)x86架構(gòu)的服務(wù)器、1臺(tái)NAS存儲(chǔ)服務(wù)器、2臺(tái)交換機(jī)構(gòu)成,物理上采用分布式部署,各服務(wù)器和NAS存儲(chǔ)之間通過交換機(jī)互聯(lián)。為保持物理上的最大并行計(jì)算能力,盡量降低以太網(wǎng)數(shù)據(jù)傳輸量,虛機(jī)按照應(yīng)用檢測(cè)引擎類別進(jìn)行歸類部署,分布式調(diào)度由單臺(tái)虛擬服務(wù)器管理,NAS服務(wù)器則作為獨(dú)立存儲(chǔ)部署。
在云計(jì)算管理平臺(tái)、虛擬機(jī)和基礎(chǔ)操作系統(tǒng)選型方面,安測(cè)云平臺(tái)結(jié)合移動(dòng)互聯(lián)網(wǎng)靈活快速、智能終端機(jī)型差異化較大并且安全測(cè)試系統(tǒng)較復(fù)雜的特點(diǎn),重點(diǎn)考慮開源項(xiàng)目自身的技術(shù)架構(gòu)、技術(shù)成熟度和穩(wěn)定性、受到商業(yè)公司和開源組織的支持力度、應(yīng)用現(xiàn)狀、發(fā)展趨勢(shì)等綜合因素,采用開源的OpenStack作為云平臺(tái)管理項(xiàng)目,采用Linux平臺(tái)中主流的易于管理的KVM虛擬化軟件以及對(duì)OpenStack平臺(tái)支持最好的Ubuntu操作系統(tǒng)。詳細(xì)配置如表1所示:
(1)OpenStack部署
OpenStack基于基礎(chǔ)軟件陸續(xù)完成硬件模塊的虛擬化,在Ubuntu系統(tǒng)之上安裝MySql、NTP等基礎(chǔ)服務(wù),陸續(xù)安裝和配置核心的控制節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)、網(wǎng)絡(luò)節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn),主要包括身份認(rèn)證服務(wù)Keystone(Identity as a Service)、Glance虛擬機(jī)鏡像服務(wù)(Image as a Service)、Swift對(duì)象存儲(chǔ)服務(wù)(Object as a Service)、可視化儀表盤服務(wù)Horizon(Dashboard as a Service)等。OpenStack大體安裝配置過程如圖3所示:
(2)虛機(jī)服務(wù)器部署
安測(cè)云平臺(tái)采用KVM虛擬化技術(shù),硬件資源虛擬化的意義在于可編程,軟件技術(shù)上可以輕松實(shí)現(xiàn)計(jì)算、存儲(chǔ)節(jié)點(diǎn)的負(fù)載均衡以及靈活動(dòng)態(tài)調(diào)度。在Nova(Computing as a Service)計(jì)算節(jié)點(diǎn)上運(yùn)行的Nova-compute服務(wù)調(diào)用Libvirt API管理KVM虛機(jī)。在配置虛擬服務(wù)器時(shí),通過KVM制作操作系統(tǒng)鏡像文件,然后通過Glance功能函數(shù)上傳到云平臺(tái)中。構(gòu)建控制節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)集群的過程就是根據(jù)需要通過創(chuàng)建授權(quán)、加載鏡像、連接和使用鏡像等步驟靈活地批量實(shí)例化虛擬服務(wù)器。至此,OpenStack和虛機(jī)服務(wù)器部署完畢,安測(cè)云IaaS構(gòu)建完成。
3.2 安測(cè)云PaaS構(gòu)建
PaaS主要目標(biāo)是構(gòu)建Android安全測(cè)試即服務(wù),主要包含公共服務(wù)組件、核心安全能力測(cè)試組件、分布式樣本庫和樣本掃描特征庫等功能。自主定制的公共服務(wù)包含身份認(rèn)證、消息組件、用戶組件、計(jì)費(fèi)組件、報(bào)表組件等商用功能的組件;核心組件包括測(cè)試過程管理、測(cè)試設(shè)備管理、測(cè)試文檔管理、日志審計(jì)以及測(cè)試組件自身的管理;核心安全能力測(cè)試組件主要包括操作系統(tǒng)測(cè)試核心組件、應(yīng)用真機(jī)群調(diào)試庫、多引擎檢測(cè)組件。為了應(yīng)對(duì)大批次的樣本上傳及安全檢測(cè),PaaS層部署結(jié)合云計(jì)算技術(shù)采用分布式存儲(chǔ)大批量保存樣本形成樣本庫,以及分布式虛擬機(jī)集群部署特征庫。
(1)對(duì)IaaS資源的調(diào)用方法
安全測(cè)試管理平臺(tái)主要基于Http+Json的方式調(diào)用OpenStack Restful相關(guān)API來訪問和使用IaaS平臺(tái)資源。安全測(cè)試管理平臺(tái)通過獲得IaaS平臺(tái)的消息和運(yùn)行狀態(tài),滿足本系統(tǒng)云引擎組件測(cè)試大批量應(yīng)用的需要。安全測(cè)試管理平臺(tái)能夠和Nova等組件傳遞消息,根據(jù)APK特征值提取的計(jì)算量的需要分配計(jì)算資源。安全測(cè)試管理平臺(tái)通過調(diào)用Swift組件功能實(shí)現(xiàn)新樣本資源的云端分布式存儲(chǔ)。
(2)業(yè)務(wù)流程
終端制造商、移動(dòng)互聯(lián)網(wǎng)公司、公眾均可以通過瀏覽器將應(yīng)用軟件上傳至應(yīng)用安全掃描引擎,檢測(cè)結(jié)果匯集到云端??焖賿呙枰媸紫雀鶕?jù)應(yīng)用特征試圖匹配特征庫,如果命中,直接反饋結(jié)果給用戶。如果沒有命中,安全掃描云組件會(huì)負(fù)載均衡分配給相對(duì)空閑的服務(wù)器集群,服務(wù)器集群根據(jù)負(fù)載均衡分配到相對(duì)空閑的虛擬機(jī)計(jì)算節(jié)點(diǎn),每個(gè)計(jì)算節(jié)點(diǎn)都有部署靜態(tài)源碼分析、動(dòng)態(tài)安全掃描等安全檢測(cè)工具,新的安全測(cè)試的結(jié)果新增到特征庫,樣本云存儲(chǔ)到樣本庫,同時(shí)向前端用戶反饋安全掃描的結(jié)果??梢灶A(yù)見,隨著樣本庫的增長,應(yīng)用軟件平均檢測(cè)速度將會(huì)快速提高。業(yè)務(wù)流程如圖4所示。
(3)實(shí)現(xiàn)效果
安測(cè)云云管理平臺(tái)如圖5所示,主要包括云資源管理、云服務(wù)管理、統(tǒng)計(jì)分析、系統(tǒng)管理、USB設(shè)備管理服務(wù)器等功能。云資源中心主要包括數(shù)據(jù)中心、集群、主機(jī)等管理功能;云服務(wù)管理主要是虛擬機(jī)關(guān)系、審批、告警、事件等;統(tǒng)計(jì)分析包括項(xiàng)目資源統(tǒng)計(jì)、單位資源統(tǒng)計(jì);系統(tǒng)管理包括單位管理、用戶管理、資源分級(jí)管理、模板中心管理、方案管理、系統(tǒng)日志、報(bào)表管理、全局設(shè)置。針對(duì)移動(dòng)終端測(cè)試的特點(diǎn),定制USB設(shè)備服務(wù)器管理,包括USB設(shè)備服務(wù)器管理,涉及到名稱、IP、是否自動(dòng)分享、S/N、狀態(tài)、虛擬機(jī)等信息。
用戶通過授權(quán)提交批量Android應(yīng)用樣本,安測(cè)云快速反饋掃描結(jié)果,包括狀態(tài)包括安全、檢測(cè)中和惡意行為,惡意行為涵蓋隱私竊取、資費(fèi)消耗、惡意廣告等檢測(cè)數(shù)據(jù),如圖6所示。
4 結(jié)束語
用戶通過本產(chǎn)品陸續(xù)意識(shí)到自身終端或者應(yīng)用在安全方面存在的一些風(fēng)險(xiǎn),并從反饋的測(cè)試信息中得到解決安全問題的提示。由本文的分析可知,安測(cè)云為企業(yè)智能終端檢測(cè)提供了強(qiáng)有力的平臺(tái)支撐,依托靈活強(qiáng)大的云測(cè)試服務(wù)切實(shí)幫助企業(yè)提升產(chǎn)品研發(fā)的進(jìn)度,降低了移動(dòng)惡意應(yīng)用給用戶和產(chǎn)業(yè)帶來的經(jīng)濟(jì)損失,對(duì)于保障消費(fèi)者合法權(quán)益、維護(hù)產(chǎn)業(yè)健康發(fā)展起到了積極的作用。
參考文獻(xiàn):
[1] Chen Kang, Zheng Weimin. Cloud Computing: System Instances and Current Research[J]. Journal of Software, 2009,20(5): 1337-1348.
[2] Aaron Weiss. Computing in the Clouds[J]. Networker, 2007,11(4): 16-25.
[3] L Riungu-Kalliosaari, O Taipale, K Smolander. Testing in the Cloud: Exploring the Practice[J]. IEEE Software, 2012,29(2): 46-51.
[4] Elfriede Dustin, Jeff Rashka, John Paul. Automated Software Testing: Introduction, Management, and Performance[J]. Addison-Wesley Professional, 1999.
[5] Banzai T, Koizumi H, Kanbayashi R, et al. D-Cloud: Design of a Software Testing Environment for Reliable Distributed Systems Using Cloud Computing Technology[A]. 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing ( CCGRID)[C]. IEEE Computer Society, 2010: 631-636.
[6] Hanawa T, Banzai T, Koizumi H, et al. Large-Scale Software Testing Environment Using Cloud Computing Technology for Dependable Parallel and Distributed Systems[A]. 3rd International Conference on Software Testing, Verification and Validation ( ICSTW)[C]. 2010: 428-433.
[7] SCHMIDT A D, SCHMIDT H G, CLAUSEN J. Static analysis of executables for collaborative malware detection on android[A]. IEEE International Congress on Communication (ICC)2009–Communication and Information Systems Security Symposium[C]. 2009.
[8] J Bergeron, M Debbabi, J Desharnais, et al. Static detection of malicious code in executable programs[A]. Proceedings of the Symposium on Requirements Engineering for Information Security[C]. USA: Int.j.of Req.eng, 2001: 20-24.
[9] Sato R, Chiba D, Goto S. Detecting Android malware by analyzing manifest files[A]. Proc. of the Asia-Pacific Advanced Network[C]. 2013: 23-31.
[10] Su MY, Chang WC. Permission-Based malware detection mechanisms for smart phones[A]. Proc. of the 2014 IEEE Intl Conf. on Information Networking (ICOIN 2014)[C]. 2014: 449-452.
[11] Wen WP, Mei R, Ning G, et al. Malware detection technology analysis and applied research of Android platform[J]. Journal on Communications, 2014(8): 78-85.
[12] Su MY, Chang WC. Permission-Based malware detection mechanisms for smart phones[A]. Proc. of the 2014 IEEE Intl Conf. on Information Networking (ICOIN 2014)[C]. 2014: 449-452. ★