譚鶴毅
(南充職業(yè)技術(shù)學(xué)院 四川 南充 637000)
Android系統(tǒng)在2016年之前就已經(jīng)占據(jù)了大約2/3的移動終端市場[1]。目前,Android系統(tǒng)已經(jīng)成為迄今為止最常見的操作系統(tǒng),被用于全球23億多個終端平臺,其中包含計算機(jī)、平板以及手機(jī)等平臺。有報告顯示,Android系統(tǒng)已占據(jù)60.4%的市場總份額,其增長趨勢仍在不斷上升。然而,由于Android系統(tǒng)是一個開放平臺,很容易受到各式各樣的惡意應(yīng)用程序的攻擊。越來越多的惡意攻擊威脅到Android系統(tǒng)的安全,據(jù)不完全統(tǒng)計,Android惡意應(yīng)用程序樣本總數(shù)已達(dá)到約1 874.3萬,越來越多使用Android系統(tǒng)的用戶信息正在被泄露。Android惡意應(yīng)用所產(chǎn)生的不良后果影響系統(tǒng)運轉(zhuǎn)安全性,因此如何快速且準(zhǔn)確地檢測出惡意應(yīng)用,成為現(xiàn)階段Android系統(tǒng)以及應(yīng)用平臺研究的重點內(nèi)容。隨著信息技術(shù)快速發(fā)展和進(jìn)步,越來越多的技術(shù)人員將改進(jìn)粒子群算法應(yīng)用在Android惡意應(yīng)用檢測中。
現(xiàn)階段,Android應(yīng)用想要開展性能測試一般通過UI檢查設(shè)備和儀器,同時利用可視化角度直接獲得UI結(jié)構(gòu)布局方案設(shè)計以及各種軟件屬性信息和數(shù)據(jù),根據(jù)所得到的應(yīng)用屬性和信息結(jié)合性能測試工具所提供基礎(chǔ)方式,確保Android應(yīng)用可以進(jìn)行用戶操作和模擬測試,觸發(fā)應(yīng)用程序的正常運轉(zhuǎn)。在應(yīng)用程度運行環(huán)節(jié)上還需要利用檢測設(shè)備和系統(tǒng)監(jiān)測平臺運行每一個環(huán)境輸出數(shù)據(jù),根據(jù)其運行結(jié)果調(diào)整測試參數(shù),有效發(fā)現(xiàn)Android惡意應(yīng)用路徑。
粒子群算法,最開始是基于鳥類的進(jìn)食規(guī)則,通過模仿鳥群之間在尋找食物時的信息交流方式,而后人們將這種方法抽象為一種算法。換言之,粒子群優(yōu)化算法是在解決某一問題時對隨機(jī)解進(jìn)行迭代優(yōu)化,用適配度分析解的好壞,然后按照當(dāng)前個體極值以及全局極值找到全局最優(yōu)。粒子群算法實現(xiàn)起來很簡單,收斂速度也比較快。但傳統(tǒng)的粒子群算法更適用于在解決一維問題,因速度矢量以及位置矢量都是一維的,單個粒子的速度以及位置上的方程在更新時會相對簡單,很容易找到里面的最優(yōu)解。具體的粒子群算法流程見圖1。
然而,該算法若想在Android惡意應(yīng)用檢測方面進(jìn)行運算需對其進(jìn)行優(yōu)化改進(jìn)。改進(jìn)粒子群算法在實施過程中主要包含多個核心流程和步驟,分別對應(yīng)不同類型的Android惡意應(yīng)用檢測,而在實際檢測環(huán)節(jié)上,性能測試以及粒子群優(yōu)化計算方式則是改進(jìn)粒子群算法的核心操作流程和步驟,能夠通過不斷協(xié)調(diào)和控制信息獲取速度、測試Android應(yīng)用模塊達(dá)到測試效果[2]。
系統(tǒng)的控制信息獲取技術(shù)在實際操作環(huán)節(jié)上主要將依靠人工匹配的控制信息與Android惡意應(yīng)用檢測過程自動化處理,以此不斷增加改進(jìn)粒子群算法自動化率,同時充分利用View server系統(tǒng)獲得系統(tǒng)控制層次樹,確保控件層次數(shù)據(jù)能夠直接用于后續(xù)應(yīng)用測試。而在改進(jìn)粒子群算法實際實施過程中,所產(chǎn)生控制屬性信息主要由控件類型與控件標(biāo)識信息共同提取,并且所提取到的信息和數(shù)據(jù)應(yīng)用在匹配模塊化測試環(huán)節(jié)上,致使原始基礎(chǔ)測試方式所構(gòu)成的數(shù)據(jù)測試能夠由案例測試模式轉(zhuǎn)化為模塊化方法,讓改進(jìn)粒子群算法應(yīng)用于Android惡意應(yīng)用時,所生成樹測試案例更加簡單和完整。
在改進(jìn)粒子群算法檢測環(huán)節(jié)上,針對Android惡意應(yīng)用檢測自動化率較低等問題,該技術(shù)方式明確提出獲得控件層次樹應(yīng)作為核心檢測流程,所以Android惡意應(yīng)用檢測應(yīng)根據(jù)Hierarchy Viewer檢測技術(shù)特點,將手動操作的控件層次樹以及控制信息轉(zhuǎn)化為自動化的獲取技術(shù)手段,同時以所得到了檢測信息結(jié)構(gòu)建設(shè)出全新的層次樹,最終通過空間層次樹內(nèi)部結(jié)構(gòu)中關(guān)鍵字的模糊匹配,讓改進(jìn)粒子群算法可以自動生成測試案例。Android惡意應(yīng)用層次樹見圖2。
在改進(jìn)粒子群算法測試環(huán)節(jié)上,獲得控件層次樹則是構(gòu)建Android惡意應(yīng)用測試的基礎(chǔ)因素,因此通過自動化技術(shù)手段獲得控件層次樹中的測試參數(shù),只有根據(jù)節(jié)點信息特點過濾與整理,才能有效構(gòu)建出具有自動化性能的測試案例,充分結(jié)合關(guān)鍵字模糊匹配技術(shù)方式,在Android惡意應(yīng)用檢測環(huán)節(jié)上使用初級的用例,經(jīng)過應(yīng)用平臺測試案例之后,利用改進(jìn)粒子群算法針對平臺信息數(shù)據(jù)進(jìn)行優(yōu)化,最終生成測試用例。
當(dāng)下,Android應(yīng)用平臺中的改進(jìn)粒子群算法測試模式十分常見,由于此種計算方式能夠?qū)y試模塊化處理,有利于增強(qiáng)Android惡意應(yīng)用檢測的自動化率。從本質(zhì)上來看,改進(jìn)粒子群算法的核心流程則是自動化腳本的參數(shù)編寫,但是此種環(huán)節(jié)同樣也最耗費人力和物力。在此環(huán)節(jié)上,該計算模式一部分工作能夠?qū)崿F(xiàn)自動化操作,加上自動化腳本所觸發(fā)的相同類型計算流程十分類似,所以移動設(shè)備自身所具有的操作局限性和約束性導(dǎo)致Android應(yīng)用平臺在開發(fā)和后續(xù)操作時不能過于復(fù)雜化,所以一旦平臺設(shè)計不合理,極易造成Android惡意應(yīng)用侵入手機(jī)軟件[3]。比如:由于移動終端設(shè)備在軟件操作環(huán)節(jié)上,主要通過手指點擊、滑動或者壓力感知等動作完成軟件APP的應(yīng)用和操作,所以想要防止Android惡意應(yīng)用的產(chǎn)生,則應(yīng)犧牲一定系統(tǒng)代碼完成系統(tǒng)內(nèi)部對惡意軟件的自動化檢測和數(shù)據(jù)模塊化控制,從APP使用事件中含有的共性特點抽象處理,設(shè)計出基礎(chǔ)的安全防控操作。
粒子群算法是1995年提出的一種元啟發(fā)優(yōu)化算法,并于1997年優(yōu)化為二進(jìn)制版本。將整個特征空間當(dāng)作解空間,解空間為不同特征組合,并將解空間當(dāng)作是不同位置的粒子,將特征組合中各特征分量狀態(tài)與粒子中各位置的取值相對應(yīng),確保單個特征分量狀態(tài)只對應(yīng)一種特征組合,所有粒子分析僅可取兩種狀態(tài)分量,丟棄和選擇,并將特征的選擇過程,從實數(shù)空間推廣至二值空間(binary particle swarm optimization,BPSO)。BPSO算法中,Android應(yīng)用樣本對應(yīng)的粒子,用優(yōu)化二進(jìn)制方式,提高整個算法運作效率。二進(jìn)制編碼組成中,采用1與0的方式表示每個特征分量。其中二進(jìn)制公式運算速率問題用公式(1)表示;所有相關(guān)二進(jìn)制可用公式(2)表示;公式(2)到公式(1)之間,粒子速度的相關(guān)特征去1或者0的概率進(jìn)行轉(zhuǎn)換,0表示未被選中,1表示被選中。式中慣性權(quán)值用ω表示,加速因子(正常數(shù))使用c1和c2表示,rand()為[0,1]的隨機(jī)數(shù),在xid位置取1概率的數(shù)用表示,粒子可以通過公式(3)實現(xiàn)位置改變,并通過定義參數(shù)vmam對公式(3)范圍進(jìn)行限制,確保xid位置的概率可以限定在0或者1。
在原有的Android相關(guān)安全防護(hù)系統(tǒng)中,裝備上各應(yīng)用運行狀態(tài)下,相應(yīng)監(jiān)測權(quán)限閾值。當(dāng)檢測到應(yīng)用權(quán)限超過設(shè)定的權(quán)限閾值時,表明系統(tǒng)中含有惡意應(yīng)用,此時將惡意應(yīng)用標(biāo)記為“1”,當(dāng)應(yīng)用程序的權(quán)限,在設(shè)定的權(quán)限之內(nèi)時,則標(biāo)記為“0”,利用此種方式,動態(tài)化對Android應(yīng)用進(jìn)行分析,各Android相關(guān)應(yīng)用的監(jiān)測標(biāo)記,形成一系列離散信息,將獲取的離散信息傳送至安全監(jiān)測系統(tǒng),安全監(jiān)測系統(tǒng)同采集到的相關(guān)應(yīng)用信息,完成惡意應(yīng)用評判。由于應(yīng)用程序較為復(fù)雜,涉及的后臺程序信息較為復(fù)雜,需要對應(yīng)用程序編碼監(jiān)測方式進(jìn)行重新定義。應(yīng)用中按照與權(quán)限相關(guān)的原則進(jìn)行分析與選擇,以系統(tǒng)中安全防護(hù)系統(tǒng)相關(guān)權(quán)限代碼標(biāo)準(zhǔn)為正方向,當(dāng)應(yīng)用軟件相關(guān)權(quán)限代碼同Android要求相符合時,標(biāo)記為“1”,反之標(biāo)記為“0”[4]。
對Android應(yīng)用構(gòu)建相應(yīng)評價函數(shù),以便于可以及時查到惡意應(yīng)用。在評價函數(shù)構(gòu)建上,公式見(4)。式中Ij表示J應(yīng)用程序中對應(yīng)的相關(guān)權(quán)限信息,I*(SE)表示安全系統(tǒng)應(yīng)用程序權(quán)限代碼期望函數(shù),可以反映應(yīng)用程序權(quán)限相關(guān)信息,Nz表示應(yīng)用程序存在惡意編碼的總數(shù)量,表示有效避免安全防護(hù)系統(tǒng)誤判的增加一項,通常ω為常量,取值為0.50。
當(dāng)多個系統(tǒng)同時運行時,整個Android系統(tǒng)中,多個應(yīng)用使得系統(tǒng)運行更為復(fù)雜,采用1與-1兩種狀態(tài)去分析相應(yīng)應(yīng)用是否為惡意應(yīng)用,難度比較大,存在無法判斷的情況。故在原有1與-1的形式基礎(chǔ)上,增加0判定,形成1、0、-1 3種形態(tài)判斷,便于綜合分析應(yīng)用具體情況,公式見(5)。
S·(Se)表示應(yīng)用系統(tǒng)的具體代碼,對所有運用應(yīng)用的權(quán)限相關(guān)代碼進(jìn)行檢測,當(dāng)存在惡意時,標(biāo)記為“1”,應(yīng)用可以檢測當(dāng)1時,對反饋編碼區(qū)域進(jìn)行“或邏輯”運算;g·(Se)表示其應(yīng)用運行控制相關(guān)代碼信息為-1,所有應(yīng)用運行區(qū)域可以檢測到安全隱患信息-1,進(jìn)行“或邏輯”運算。
種群在進(jìn)行不斷迭代的過程中,某一個粒子出現(xiàn)“局部最優(yōu)”的情況,周圍粒子會逐漸向其靠近,導(dǎo)致粒子群的多樣性特征喪失,出現(xiàn)“早熟”現(xiàn)象[5]。因此需要結(jié)合二進(jìn)制粒子的多樣性特征,進(jìn)行二進(jìn)制變化率改進(jìn),所用的改進(jìn)處理公式見(6),式中群迭代至第6代的變化率用g表示種,k代時的適應(yīng)度值迭代次數(shù)用f(k)表示。
假定ω的值會隨著g的變化而自適應(yīng)取值,其公式為(7),式中,當(dāng)g<0.05時,算法的適應(yīng)度值存在最優(yōu)解,種群處于開發(fā)階段,使得ω值可以促進(jìn)種群最優(yōu)解的確定;當(dāng)g≥0.05時,種群的最有適應(yīng)度變化較大,并種群暫未發(fā)現(xiàn)出現(xiàn)巨龍的方向,此時通過ω值約束可以確保算法可以實現(xiàn)快速收斂。
基于Android系統(tǒng)和應(yīng)用程序檢測,對應(yīng)用程序權(quán)限等情況進(jìn)行分析,便于鎖定存在惡意的應(yīng)用。通過對權(quán)限相關(guān)信息組成的“1”或者“0”的離散信息,對BPSO算法進(jìn)行改進(jìn),在虛擬空間中將問題轉(zhuǎn)變?yōu)槎嗑S離散空間中的粒子群,之后進(jìn)行優(yōu)化選擇[6]。并采用迭代尋找的方式,確保通過持續(xù)性迭代,利用評價函數(shù),對應(yīng)用的粒子所在空間進(jìn)行判斷,再對新一代粒子所處空間位置實現(xiàn)更新,滿足粒子群評價標(biāo)準(zhǔn)后結(jié)束,此時可以尋找到存在惡意的應(yīng)用程序,并確定其存儲的空間位置等。
綜上所述,本次研究主要以粒子群算法作為出發(fā)點,并以此作為基礎(chǔ)條件觀測出不同類型的映射函數(shù)所產(chǎn)生變化速度和趨勢,提出了改進(jìn)粒子群算法,同時經(jīng)過實踐操作能夠進(jìn)一步證實,使用改進(jìn)粒子群算法可以高效且準(zhǔn)確地檢測出Android 惡意應(yīng)用。