本發(fā)明涉及一種針對移動應用使用異常權限的檢測和阻斷方法,屬于移動信息安全技術領域。
背景技術:
如今,移動設備在人們的日常生活中扮演著越來越重要的角色,移動設備的安全問題也越發(fā)突出。惡意程序往往通過手機上的漏洞來提升自身權限,從而訪問系統(tǒng)的敏感數據和方法,最終實施惡意行為。
為了限制惡意應用程序的行為,samlley等人提出了運用強制訪問控制策略保護android中系統(tǒng)資源的方法。為了保護android智能手機安全,在深入分析android系統(tǒng)安全機制的基礎上,乜聚虎等人提出了一個基于強制訪問控制的安全加固技術。shebaro等人提出了基于上下文環(huán)境的訪問控制模型,讓應用程序只在特定的環(huán)境下使用敏感數據。楊歡等人設計了基于權限頻繁模式的挖掘算法,用來挖掘應用程序權限之間的關聯(lián)性。通過挖掘權限之間的關聯(lián)性,找出程序申請權限的特點,利用機器學習的方法將應用程序分類,找出惡意程序。為實現android平臺下惡意軟件的高效檢測,李挺等人提出了一種基于dalvik指令的android惡意代碼特征形式化描述和分析方法,能夠在無需反編譯應用程序的基礎上,快速檢測樣本的惡意特征。
上述方法都是基于對應用程序或者系統(tǒng)本身的訪問動作的限制和檢測來達到確保隱私數據安全的目的。除此之外,還有一類方法是通過對系統(tǒng)中的數據流或者指令流的分析和追蹤入手來分析系統(tǒng)安全的。例如,flowdroid通過靜態(tài)分析法構造控制或數據流圖,來分析數據流的走向,并給出隱私數據是否被泄露的結論。經過修改,傳統(tǒng)的靜態(tài)程序檢測技術可以應用到android應用程序的檢測上,并能夠準確地檢測出程序中存在的隱私數據泄露問題。為提高android移動平臺的安全性,白鴿等人提出一種基于dalvik指令的靜態(tài)檢測方法,通過分析應用程序的虛擬機代碼,找出敏感信息的數據流,包括跟蹤敏感信息、函數調用,從而判斷出該應用程序是否有惡意行為。
上述的靜態(tài)的數據流或者指令流的分析方法存在其局限性,它無法實時的確保檢測和分析當前系統(tǒng)的隱私數據走向,只能對某個現階段的系統(tǒng)進行分析來評估其安全性,無法動態(tài)的檢測系統(tǒng)的安全。
技術實現要素:
為了解決上述技術問題,本發(fā)明提供了一種針對移動應用使用異常權限的檢測和阻斷方法。
為了達到上述目的,本發(fā)明所采用的技術方案是:
一種針對移動應用使用異常權限的檢測和阻斷方法,獲取待測應用申請權限中的異常權限,在這些異常權限調用系統(tǒng)框架層提供的方法時,查詢方法對應的安全行為模式表,如果調用過程不滿足安全行為模式表中定義的安全行為模式序列,則阻斷此次調用,如果滿足,則不做任何操作;安全行為模式序列為調用方法的正確過程。
獲取待測應用申請權限中的異常權限的過程為,
采集若干已知的應用作為標準樣本;
分析作為標準樣本的各應用所屬的類別,分析各應用申請的權限,構建類別-權限表;其中類別-權限表中存儲有各種類別應用以及申請的對應權限;
根據歐氏距離判斷待測應用所屬的類別,從類別-權限表中獲取待測應用所屬類別對應的權限,并將這些權限放入標準權限集a中;
獲取待測應用申請的權限,并與標準權限集a中的權限進行比較,如果申請的權限中有若干不屬于標準權限集a,則這些申請權限為異常權限。
采用網絡爬蟲爬取各大應用網站中的應用,作為標準樣本。
根據歐氏距離判斷待測應用所屬類別的過程為,
對于待測應用,首先查詢類別-權限表,對于類別-權限表中的每一條目,可以構建特征向量
分析待測應用權限信息,構建權限向量
構建安全行為模式表的過程為,
將系統(tǒng)框架層提供的所有方法和權限進行匹配對應,構建權限-方法表;權限-方法表中存儲有各種權限以及調用的對應方法;
對每一個方法調用構建安全行為模式表,每一個方法的調用對應一個或若干個的安全行為模式序列。
利用tlck時序邏輯描述語言的時序表達能力,以應用的方法調用和相關的系統(tǒng)事件為變量,對特定的系統(tǒng)資源訪問定義安全行為模式。
本發(fā)明所達到的有益效果:本發(fā)明提供了一種較為全面和完整的針對惡意軟件獲取和使用異常權限時的檢測和阻斷方法,對移動應用的權限申請以及運行過程中的權限使用情況進行分析,對應用的危險調用行為進行及時的阻斷,從而防止由于權限使用不當而造成的敏感信息泄露問題。
附圖說明
圖1為本發(fā)明的流程圖。
圖2為系統(tǒng)的調用說明。
具體實施方式
下面結合附圖對本發(fā)明作進一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術方案,而不能以此來限制本發(fā)明的保護范圍。
如圖1所示,一種針對移動應用使用異常權限的檢測和阻斷方法,具體為:獲取待測應用申請權限中的異常權限,在這些異常權限調用系統(tǒng)(安卓系統(tǒng))框架層提供的方法時,查詢方法對應的安全行為模式表,如果調用過程不滿足安全行為模式表中定義的安全行為模式序列,則阻斷此次調用,如果滿足,則不做任何操作。安全行為模式序列為調用方法的正確過程,例如撥打電話,安全行為模式序列應該是“輸入號碼/選取聯(lián)系人號碼”->“點擊撥打”,而惡意過程則是直接在后臺進行撥打惡意電話。
獲取待測應用申請權限中的異常權限的過程為:
s11,采集若干已知的應用作為標準樣本;采用網絡爬蟲爬取各大應用網站中的應用,作為標準樣本。
s12,分析作為標準樣本的各應用所屬的類別,分析各應用申請的權限,構建類別-權限表;其中類別-權限表中存儲有各種類別應用以及申請的對應權限。
s13,根據歐氏距離判斷待測應用所屬的類別,從類別-權限表中獲取待測應用所屬類別對應的權限,并將這些權限放入標準權限集a中。
根據歐氏距離判斷待測應用所屬類別的過程為:
對于待測應用,首先查詢類別-權限表,對于類別-權限表中的每一條目,可以構建特征向量
s14,獲取待測應用申請的權限,并與標準權限集a中的權限進行比較,如果申請的權限中有若干不屬于標準權限集a,則這些申請權限為異常權限。
構建安全行為模式表的過程為:
s21,將系統(tǒng)框架層提供的所有方法和權限進行匹配對應,構建權限-方法表;權限-方法表中存儲有各種權限以及調用的對應方法。
s22,對每一個方法調用構建安全行為模式表,每一個方法的調用對應一個或若干個的安全行為模式序列。
利用tlck時序邏輯描述語言的時序表達能力,以應用的方法調用和相關的系統(tǒng)事件為變量,對特定的系統(tǒng)資源訪問定義安全行為模式。
上述的阻斷過程在原生系統(tǒng)的內核層進行,通過對調用方法的行為進行監(jiān)視,在驗證權限的基礎上,添加對程序行為模式的分析,一旦不滿足安全行為模式序列,阻斷其方法調用并剝奪其獲得的權限,提醒用戶重新授權。與大部分安全軟件在應用層面檢測和阻斷惡意軟件行為的方式不同,如圖2所示,系統(tǒng)中的每個線程都會維護一個interpretedstack,調用方法信息會事先被壓入interpretedstack,然后由dalvik進行解釋執(zhí)行,執(zhí)行完再從interpretedstack彈出,因此,方法在interpretedstack中的位置關系表示了方法間的調用關系,并且方法的調用信息,如參數等,也可以通過解析interpretedstack中的信息獲取,因此通過監(jiān)視interpretedstack的壓棧操作,即可獲得應用的方法調用信息,我們在其調用這些方法的時候添加上述的監(jiān)視代碼,即可完成動態(tài)監(jiān)控和阻斷。
本發(fā)明提供了一種較為全面和完整的針對惡意軟件獲取和使用異常權限時的檢測和阻斷方法,對移動應用的權限申請以及運行過程中的權限使用情況進行分析,對應用的危險調用行為進行及時的阻斷,從而防止由于權限使用不當而造成的敏感信息泄露問題。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明技術原理的前提下,還可以做出若干改進和變形,這些改進和變形也應視為本發(fā)明的保護范圍。