移動應用的安全性檢測方法及移動終端的制作方法
【專利摘要】本發明提供了一種用于檢測移動終端上的移動應用的安全性的方法以及相應的移動終端。該方法包括:監控移動應用針對遠程網絡訪問的會話;抓取與該會話有關的網絡數據報文;從抓取的網絡數據報文中恢復出原始網絡數據報文;檢測原始網絡數據報文中是否包含新的應用安裝包;如果原始網絡數據報文中包含新的應用安裝包,則對新的應用安裝包進行安全性掃描檢測。
【專利說明】移動應用的安全性檢測方法及移動終端
【技術領域】
[0001]本發明涉及移動終端安全領域,更具體地涉及ー種用于檢測移動終端上的移動應用的安全性的方法,以及實現該方法的移動終端。
【背景技術】
[0002]在當今的移動通信領域中,移動終端已在世界范圍內被廣泛應用。移動終端的示例包括(但不限干):移動電話、個人數字助理(PDA)、手持計算機、膝上型計算機、平板電腦
坐寸o
[0003]隨著移動終端的迅速普及,伴隨而來的安全性問題日益突出,尤其是可在移動終端上運行的各種各樣的移動應用所帯來的安全性問題。當前,針對未知移動應用的安全性檢測技術主要使用傳統的靜態檢測技術(例如,特征碼匹配技術和靜態掃描技木)來進行安全性檢測。特征碼匹配技術主要在事先積累的大量樣本(即,移動應用)的基礎上通過提取特征串的方式建立豐富的特征碼庫,然后在此基礎上通過安全策略設定和打分機制對未知移動應用進行解析和特征匹配,以判斷該未知移動應用是否為惡意應用。靜態掃描技術通常對未知移動應用采取反向過程或源代碼掃描方式,從代碼的角度對未知移動應用進行安全性掃描,以發現現有代碼或邏輯中可能存在的安全性問題,并將此作為未知移動應用是否安全的依據。
[0004]傳統的基于特征碼的掃描和檢測技術在面對新出現且具備隱秘特性的惡意移動應用吋,已經面臨無法進行實時和有效的檢測所帶來的挑戰。現有的惡意移動應用在面對特征碼匹配技術和靜態掃描技術等現有的靜態檢測技術時,可以通過混淆或隱藏等手段來逃避這些現有的靜態檢測技術,并且只在運行狀態時,在遠程控制命令觸發條件下,才會產生惡意應用下載的情況,并帶來相關的遠程惡意行為。所以,需要解決這種未知移動應用只有和遠程惡意源相互配合才會產生的安全威脅。
【發明內容】
[0005]因此,本發明針對這種未知移動應用只有和遠程惡意源相互配合才會產生的安全威脅,提出一種面向移動應用的遠程惡意行為的分析方法,用于彌補傳統的靜態檢測方法在面對此類安全威脅檢測時的不足,提高對未知移動應用的惡意遠程行為的安全性檢測的準確性。
[0006]具體地,根據本發明的第一方案,提供了一種用于檢測移動終端上的移動應用的安全性的方法。該方法包括以下步驟:監控移動應用針對遠程網絡訪問的會話;抓取與該會話有關的網絡數據報文;從抓取的網絡數據報文中恢復出原始網絡數據報文;檢測原始網絡數據報文中是否包含新的應用安裝包;如果原始網絡數據報文中包含新的應用安裝包,則對新的應用安裝包進行安全性掃描檢測。
[0007]在一些實施例中,監控移動應用針對遠程網絡訪問的會話的步驟包括:監控移動應用針對遠程網絡訪問的會話的請求和響應。[0008]在一些實施例中,在抓取與該會話有關的網絡數據報文之后,所述方法還包括:存儲所抓取的網絡數據報文。
[0009]在一些實施例中,對新的應用安裝包進行安全性掃描檢測的步驟包括:調用病毒或惡意應用掃描接ロ對新的應用安裝包進行安全性掃描檢測。
[0010]在一些實施例中,所述新的應用安裝包是Android PacKage (APK)安裝包。
[0011 ] 在一些實施例中,所述方法是在系統內核中實現的。
[0012]根據本發明的第二方案,提供了一種移動終端,用于檢測該移動終端上的移動應用的安全性。該移動終端包括:監控單元,用于監控移動應用針對遠程網絡訪問的會話;抓取単元,用于抓取與該會話有關的網絡數據報文;恢復單元,用于從抓取的網絡數據報文中恢復出原始網絡數據報文;檢測單元,用于檢測原始網絡數據報文中是否包含新的應用安裝包;安全性掃描檢測單元,用于在原始網絡數據報文中包含新的應用安裝包的情況下,對新的應用安裝包進行安全性掃描檢測。
[0013]在一些實施例中,所述監控単元用于:監控移動應用針對遠程網絡訪問的會話的請求和響應。
[0014]在一些實施例中,該移動終端還包括:存儲單元,用于存儲抓取単元所抓取的網絡數據報文。
[0015]在一些實施例中,安全性掃描檢測單元用于:調用病毒或惡意應用掃描接ロ對新的應用安裝包進行安全性掃描檢測。
[0016]在一些實施例中,所述新的應用安裝包是APK安裝包。
[0017]本發明提供的方法和移動終端為用戶提供了動態監測移動應用的遠程控制行為的手段。通過本發明的方法,可以對未知移動應用是否存在惡意遠程行為進行安全性檢測和分析,從而提高了移動終端的安全性。
【專利附圖】
【附圖說明】
[0018]通過下面結合【專利附圖】
【附圖說明】本發明的優選實施例,將使本發明的上述及其它目的、特征和優點更加清楚,其中:
[0019]圖1是示出了根據本發明的一些實施例的移動終端100中的示例網絡協議棧的框圖。
[0020]圖2是示出了根據本發明的一些實施例的安全檢測機制的示意框圖。
[0021]圖3是示出了根據本發明的一些實施例的檢測策略配置的一個示意結構。
[0022]圖4是示出了根據本發明的一些實施例的惡意應用檢測模塊的處理流程。
[0023]圖5是示出了根據本發明的一些實施例的檢測移動應用的安全性的方法500的流程圖。
[0024]圖6是示出了根據本發明的一些實施例的移動終端600的框圖。
[0025]在本發明的所有附圖中,相同或相似的結構均以相同或相似的附圖標記來標識。
【具體實施方式】
[0026]下面參照附圖對本發明的優選實施例進行詳細說明,在描述過程中省略了對于本發明來說是不必要的細節和功能,以防止對本發明的理解造成混淆。以下,以本發明應用于無線移動通信系統的場景為例,對本發明進行了詳細描述。但本發明并不局限于此,本發明也可以應用于固定通信系統、有線通信系統,或者應用于無線移動通信系統、固定通信系統、有線通信系統等的任意混合結構。就移動通信系統而言,本發明并不局限于所涉及的各個移動通信終端的具體通信協議,可以包括(但不限于)2G、3G、4G、5G網絡,WCDMA,CDMA2000、TD-SCDMA系統等,不同的移動終端可以采用相同的通信協議,也可以采用不同的通信協議。本發明并不局限于移動終端的具體操作系統,可以包括(但不限干)iOS、Windows Mobile、Symbian、安卓(Android)等,不同的移動終端可以采用相同的操作系統,也可以采用不同的操作系統。
[0027]首先,參考圖1來說明根據本發明的一些示例實施例的移動終端100中的示例網絡協議棧的框圖。如圖1所示,移動終端100中具有用于處理數據報文的網絡協議棧110。在開放式系統互聯(Open System Interconnection,下文中簡稱為0SI) 7層參考模型下,該協議棧110也相應地包括7個協議層,S卩:物理層111、數據鏈路層112、網絡層113、傳輸層114、會話層115、表示層116和應用層117。
[0028]在本實施例中,假設移動終端100是基于安卓平臺開發的,而安卓平臺是類Linux系統,其通常可被分為內核空間(kernel space)和用戶空間(user space)。數據鏈路層
112、網絡層113、傳輸層114、會話層115等層的操作主要是在內核空間中實現的,用戶通過系統調用(system calls)來調用內核空間中的函數接ロ,進而處理這些層的事務,而表示層116和應用層117的操作基本上是在用戶空間中由用戶自己實現的,用戶需要自行編寫處理函數來處理這兩個層中的事務。當然,在其他實施例中,可以采用針對處理操作的其它內核空間/用戶空間分布方式,本發明不限于上述分布方式。例如,會話層115的相關處理可以由用戶在用戶空間通過調用安卓系統的底層系統調用來自行實現。在本發明中,我們主要關注的是內核空間以及應用層117。
[0029]網絡層113對應于OSI參考模型中的第3層(層3),其介于傳輸層114和數據鏈路層112之間。基于數據鏈路層112提供的在兩個相鄰端點之間傳輸數據幀的功能,網絡層113進ー步管理網絡中的數據通信,將數據設法從源節點經過若干個中間節點傳送到目標節點,從而向傳輸層114提供最基本的端到端的數據傳輸服務。
[0030]傳輸層114對應于OSI參考模型中相對重要和關鍵的ー層,其是唯一負責總體數據傳輸和數據控制的ー層。傳輸層114提供用于端到端的交換數據的機制。傳輸層114為會話層115、表示層116和應用層117等上三層提供可靠的傳輸服務,向網絡層113提供可靠的目標節點信息。由于世界上各種通信網絡在性能上存在著很大差異(例如,電話交換網、分組交換網、公用數據交換網、局域網等通信網絡都可互連,但它們提供的呑吐量、傳輸速率、數據延遲、通信費用等各不相同),因此對于會話層115等高層來說,要求具有性能穩定的接ロ。傳輸層114就承擔了這一功能。它采用分流/合流、復用/解復用等技術來調節上述通信網絡的差異,使會話層115感受不到這種差別。此外,傳輸層114還要具備差錯恢復、流量控制等功能,以向會話層115屏蔽通信網絡在這些方面的細節與差異。傳輸層114面對的數據對象不是網絡地址和主機地址,而是和會話層115的界面端ロ。
[0031]應用層117對應于OSI參考模型的第7層。應用層117直接和應用程序的本地進程交互并提供常見的網絡應用服務。應用層117也向表示層116發出請求。應用層117是OSI參考模型的最高層,其是直接為應用進程提供服務的。其作用是在實現多個系統應用進程相互通信的同時,完成一系列業務處理所需的服務。
[0032]本發明的主要思路在于,通過在內核(例如圖1所示的數據鏈路層112、網絡層
113、傳輸層114或會話層115)和應用層(例如圖1所示的應用層117)執行安全檢測來實現針對移動應用的遠程控制行為的動態行為分析。具體地,首先采集指定未知移動應用的運行生命周期內的網絡行為相關數據,然后采用在內核中實現惡意應用檢測模塊和在應用層中實現檢測分析管理相結合的安全檢測機制,來對未知移動應用是否存在惡意遠程行為進行安全性檢測和分析。
[0033]下面將主要以圖2為例來說明本發明的總的發明構思。圖2是示出了根據本發明的一些實施例的安全檢測機制200的示意框圖。
[0034]如圖2所示,根據本發明的安全檢測機制200由檢測分析管理模塊210和惡意應用檢測模塊220這兩部分組成。
[0035]檢測分析管理模塊210是在應用層采取移動應用的方式實現的,主要包括以下功倉泛:
[0036]1、對惡意應用檢測ホ吳塊應用檢測策略配直;
[0037]2、監控惡意應用檢測模塊的運行狀態;
[0038]3、管理未知移動應用的遠程行為的檢測分析結果,例如,這可以使用JAVA語言設計來實現;
[0039]4、模塊及應用狀態監控:實現檢測功能的實時運行狀態監控和異常狀態告警設置;
[0040]5、檢測結果管理,對未知移動應用已檢測行為的分析結果進行管理,包括檢測報告產生、檢測結果導出和檢測結果歸檔整理,例如配置管理產生的配置結果可以通過明文方式存儲在SQLite數據庫中。
[0041]圖3示出了根據本發明的一些實施例的檢測策略配置的一個示意結構。
[0042]如圖3所示,檢測策略配置規定了在時間范圍“2013/08/01:00:00-2013/08/02:23:59” 內,在協議范圍“HTTP/HTTPS/FTP/SMTP/SNMP” 內,啟動針對待檢樣本“20130808001,apk”(即,未知移動應用)的惡意應用檢測。此外,圖3所示的檢測策略配置還指定了數據存儲位置。
[0043]惡意應用檢測模塊是在內核中通過系統模塊的方式實現的。
[0044]圖4是示出了根據本發明的一些實施例的惡意應用檢測模塊的處理流程。
[0045]首先,在移動終端100的操作系統啟動后,初始化設置功能410通過系統啟動鏡像加載惡意應用檢測模塊,然后從SQLite數據庫的指定表中讀取惡意應用檢測的所有相關配置信息,并將這些信息動態存儲在內存中,從而完成惡意應用檢測模塊的初始化過程。
[0046]接下來,惡意應用檢測模塊啟用監聽功能420。例如,監聽功能420可以通過代理方式運行。監聽功能420可以對未知移動應用的遠程網絡訪問中的會話的請求和響應進行監控。監聽功能420可以抓取與其相關的所有網絡數據報文,并將所抓取的網絡數據報文通過ー個會話ー個文件的方式以明文存儲在移動終端100的指定存儲位置(例如,如圖3所示的數據存儲位置)。已經記錄成功的數據報文可以放行通過。
[0047]當新的會話文件產生并完成記錄過程后,惡意應用檢測模塊啟動會話文件分析功能430。會話文件分析功能430可以對會話文件中的原始網絡數據報文內容進行恢復操作。[0048]在內容恢復操作完成后,惡意應用檢測模塊啟用安全分析功能440。安全分析功能440檢測恢復內容中是否包含有新的APK安裝包。如果不存在,則安全分析功能440將檢測基本信息記錄到SQLite數據庫的檢測結果數據表中,隨后結束本次檢測工作。如果存在,則安全分析功能440將調用病毒或惡意應用掃描接ロ 450 (由安全掃描引擎提供)對該APK文件進行安全性掃描檢測,并將安全檢測結果(安全或惡意)、原始報文對應的會話文件信息、通過網絡遠程下載的APK信息、調用掃描引擎等信息記錄到SQLite數據庫中對應的檢測結果數據表。
[0049]圖5是示出了根據本發明的一些實施例的檢測移動應用的安全性的方法500的流程圖,該方法500是在系統內核中實現的。如圖5所示,方法500可以包括步驟S510、S520、S530、S540、S550和S560,其中步驟S530是可選的。根據本發明,方法500的一些步驟可以單獨執行或組合執行,以及可以并行執行或順序執行,并不局限于圖5所示的具體操作順序。在一些實施例中,方法500可以由圖6所不的移動終端600來執行。在另ー些實施例中,方法500可以由圖1所示的移動終端100或圖2所示的惡意應用檢測模塊220來執行。
[0050]圖6是示出了根據本發明的一些實施例的移動終端600的方框圖,該移動終端600可以檢測其上的移動應用的安全性。如圖6所示,移動終端600可以包括監控單元610、抓取單元620、恢復單元630、檢測單元640和安全性掃描檢測單元650。
[0051]監控單元610用于監控移動應用針對遠程網絡訪問的會話。監控單元610可以是移動終端600的中央處理單元(CPU)、數字信號處理器(DSP)、微處理器、微控制器等等,其可以與移動終端600的收發信機之類的通信接ロ等等相配合,以監控移動應用針對遠程網絡訪問的會話。根據本發明的一些實施例,監控單元610可以監控移動應用針對遠程網絡訪問的會話的請求和響應。
[0052]抓取単元620用于抓取與該會話有關的網絡數據報文。抓取単元620可以是移動終端600的中央處理單元(CPU)、數字信號處理器(DSP)、微處理器、微控制器等等,其可以與移動終端600的存儲設備(例如、硬盤、軟盤、光盤、磁帶等)等相配合,以抓取與該會話有關的網絡數據報文。
[0053]恢復單元630用于從抓取的網絡數據報文中恢復出原始網絡數據報文。恢復單元630可以是移動終端600的中央處理單元(CPU)、數字信號處理器(DSP)、微處理器、微控制器等等,其可以與移動終端600的存儲設備(例如、硬盤、軟盤、光盤、磁帶等)等相配合,以從抓取的網絡數據報文中恢復出原始網絡數據報文。
[0054]檢測單元640用于檢測原始網絡數據報文中是否包含新的應用安裝包。檢測單元640可以是移動終端600的中央處理單元(CPU)、數字信號處理器(DSP)、微處理器、微控制器等等,其可以與移動終端600的存儲設備(例如、硬盤、軟盤、光盤、磁帶等)等相配合,以檢測原始網絡數據報文中是否包含新的應用安裝包。例如,該新的應用安裝包可以是APK安裝包。
[0055]安全性掃描檢測單元650用于在原始網絡數據報文中包含新的應用安裝包的情況下,對新的應用安裝包進行安全性掃描檢測。安全性掃描檢測單元650可以是移動終端600的中央處理單元(CPU)、數字信號處理器(DSP)、微處理器、微控制器等等,其可以與移動終端600的存儲設備(例如、硬盤、軟盤、光盤、磁帶等)等相配合,以在原始網絡數據報文中包含新的應用安裝包的情況下,對新的應用安裝包進行安全性掃描檢測。根據本發明的一些實施例,安全性掃描檢測單元650可以調用病毒或惡意應用掃描接ロ(例如殺毒軟件等)對新的應用安裝包進行安全性掃描檢測。根據本發明的一些實施例,安全性掃描檢測單元650還可以將安全檢測結果(安全或惡意)、原始報文對應的會話文件信息、通過網絡遠程下載的APK信息、調用掃描引擎等信息記錄到SQLite數據庫中對應的檢測結果數據表中。
[0056]如果原始網絡數據報文中不包含新的應用安裝包,安全性掃描檢測單元650可以將檢測基本信息記錄到SQLite數據庫檢測結果數據表中,隨后結束本次安全代理檢測エ作。
[0057]移動終端600還可以包括存儲單元660,用于存儲抓取単元620所抓取的網絡數據報文。例如,存儲單元660可以將抓取到的網絡數據報文存儲在如圖3所示的數據存儲位置處。數據存儲位置可以通過圖2所示的檢測分析管理模塊來設置。此外,存儲單元660可以利用一個會話一個文件的方式結合明文存儲的方式來存儲抓取到的網絡數據報文。
[0058]應注意,移動終端600中的兩個或多個不同単元可以在邏輯上或物理上組合在一起。例如,監控單元610、抓取単元620和存儲單元660可以組合成ー個單元,例如監控單元610、抓取単元620和存儲單元660可以由圖2所示的監聽功能來統ー實現。
[0059]以下將結合圖1?6,對根據本發明實施例的檢測移動應用的安全性的方法500和移動終端600進行詳細的描述。應當注意,本發明實施例的方法500和移動終端600可以在圖1所示的移動終端100中實現,但本發明并不局限于此。
[0060]在步驟S510,移動終端600的監控單元610監控移動應用針對遠程網絡訪問的會話。根據本發明的一些實施例,監控單元610可以監控移動應用針對遠程網絡訪問的會話的請求和響應。
[0061]在步驟S520,移動終端600的抓取單元620抓取與該會話有關的網絡數據報文。
[0062]在步驟S530,移動終端600的存儲單元660存儲所抓取的網絡數據報文。例如,存儲單元660可以將抓取到的網絡數據報文存儲在如圖3所示的數據存儲位置處。數據存儲位置可以通過圖2所示的檢測分析管理模塊來設置。此外,存儲單元660可以利用ー個會話ー個文件的方式結合明文存儲的方式來存儲抓取到的網絡數據報文。
[0063]在步驟S540,移動終端600的恢復單元630從抓取的網絡數據報文中恢復出原始網絡數據報文。
[0064]在步驟S550,移動終端600的檢測單元640檢測原始網絡數據報文中是否包含新的應用安裝包(例如,新的APK安裝包)。如果否,則方法500回到步驟S510,由移動終端600的監控單元610繼續監控移動應用針對遠程網絡訪問的會話。在這種情況下,例如,還可以將檢測基本信息記錄到SQLite數據庫的檢測結果數據表中,隨后結束本次安全代理檢測工作。
[0065]在步驟S560(即,步驟S550的判斷結果為‘是’),即,在原始網絡數據報文中包含新的安裝包的情況下,移動終端600的安全性掃描檢測單元650對新的應用安裝包進行安全性掃描檢測。根據本發明的一些實施例,安全性掃描檢測單元650可以調用病毒或惡意應用掃描接ロ(例如殺毒軟件等)對新的應用安裝包進行安全性掃描檢測。根據本發明的一些實施例,安全性掃描檢測單元650還可以將安全檢測結果(安全或惡意)、原始報文對應的會話文件信息、通過網絡遠程下載的APK信息、調用掃描引擎等信息記錄到SQLite數據庫中對應的檢測結果數據表。
[0066] 至此已經結合優選實施例對本發明進行了描述。應該理解,本領域技術人員在不脫離本發明的精神和范圍的情況下,可以進行各種其它的改變、替換和添加。因此,本發明的范圍不局限于上述特定實施例,而應由所附權利要求所限定。
【權利要求】
1.一種用于檢測移動終端上的移動應用的安全性的方法,包括以下步驟: 監控移動應用針對遠程網絡訪問的會話; 抓取與該會話有關的網絡數據報文; 從抓取的網絡數據報文中恢復出原始網絡數據報文; 檢測原始網絡數據報文中是否包含新的應用安裝包; 如果原始網絡數據報文中包含新的應用安裝包,則對新的應用安裝包進行安全性掃描檢測。
2.根據權利要求1所述的方法,其中,監控移動應用針對遠程網絡訪問的會話的步驟包括: 監控移動應用針對遠程網絡訪問的會話的請求和響應。
3.根據權利要求1所述的方法,其中,在抓取與該會話有關的網絡數據報文之后,所述方法還包括: 存儲所抓取的網絡數據報文。
4.根據權利要求1至3中任一項所述的方法,其中,對新的應用安裝包進行安全性掃描檢測的步驟包括: 調用病毒或惡意應用掃描接ロ對新的應用安裝包進行安全性掃描檢測。
5.根據權利要求1至4中任一項所述的方法,其中,所述新的應用安裝包是AndroidPacKage (APK)安裝包。
6.根據權利要求1至5中任一項所述的方法,其中,所述方法是在系統內核中實現的。
7.一種移動終端,用于檢測所述移動終端上的移動應用的安全性,所述移動終端包括: 監控單元,用于監控移動應用針對遠程網絡訪問的會話; 抓取単元,用于抓取與該會話有關的網絡數據報文; 恢復單元,用于從抓取的網絡數據報文中恢復出原始網絡數據報文; 檢測單元,用于檢測原始網絡數據報文中是否包含新的應用安裝包; 安全性掃描檢測單元,用于在原始網絡數據報文中包含新的應用安裝包的情況下,對新的應用安裝包進行安全性掃描檢測。
8.根據權利要求7所述的移動終端,其中,所述監控単元用于: 監控移動應用針對遠程網絡訪問的會話的請求和響應。
9.根據權利要求7所述的移動終端,還包括: 存儲單元,用于存儲抓取単元所抓取的網絡數據報文。
10.根據權利要求7至9中任一項所述的移動終端,其中,安全性掃描檢測單元用于: 調用病毒或惡意應用掃描接ロ對新的應用安裝包進行安全性掃描檢測。
11.根據權利要求7至10中任一項所述的移動終端,其中,所述新的應用安裝包是Android PacKage (APK)安裝包。
【文檔編號】H04W12/12GK103442360SQ201310407150
【公開日】2013年12月11日 申請日期:2013年9月9日 優先權日:2013年9月9日
【發明者】陳繼 申請人:北京網秦天下科技有限公司