賀 強,王雙喜,李劍勇,曲長征
(1.山西農業大學 信息學院,山西 晉中 030800; 2.太原市電子研究設計院,太原 030002)
基于Android網絡惡意行為檢測系統的應用研究
賀 強1,2,王雙喜1,李劍勇1,曲長征1
(1.山西農業大學 信息學院,山西 晉中 030800; 2.太原市電子研究設計院,太原 030002)
目前,Android系統是當今網絡用戶最對的應用系統之一,而隨著科學技術的發展,對于Android系統的惡意行為軟件也逐漸增多,給當前的應用用戶的財產以及私人信息安全帶來了很大的威脅,嚴重的遲緩了當前移動通信網絡技術以及相關于應用客戶端的推廣;為此,根據Android系統的特有機構設計出一種基于Binder信息流的自動檢測惡意行為系統,以此來解決對于當前網絡安全對于Android系統用戶帶來的負面影響;根據目前網絡中的應用通信信息,檢測可能存在的泄露用戶信息的應用軟件為目標,建立信息矢量圖以此來分析當前網絡中的惡意行為;通過對軟件進行檢測,研究可實用性和檢測效果,結果顯示其識別率可以達到100%,并且軟件運行只占有內存的7%,結果可以達到當前的Android用戶的使用范圍。
Android;網絡惡意行為;Binder;檢測
隨著近些年網絡技術和通信技術的不斷發展以及結合,移動通信網絡的建立,不斷地推動著當今網絡移動客戶端的發展。而為滿足當今的社會現象,以及當前網絡環境中信息數據量的要求,Android系統成為最為熱門以及系統運算較為先進的代表,逐漸取代以往的JAVA系統成為移動通信端的主要操作系統。并開啟了當今智能手機的新時代。而且在當今的市場應用現狀來說,具有競爭力的兩大系統則為Android系統以及蘋果公司推出的IOS系統。但是由于IOS系統為蘋果公司獨有的移動手機應用系統,只在Iphone系列產品中使用,市場占有率畢竟有限,而Android系統為當今大多移動手機制造商所使用,是當前市場中占有率最高的操作系統而且應用程度也最為普遍。但是由于網絡環境的復雜以及科學技術的不斷進步,網絡安全問題已經不再僅僅是威脅著主機PC端的問題,正在逐漸延伸至智能手機用戶端,為此對于保護Android系統的用戶私人信息安全以及應用軟件的可靠性,急需建立一個完善的惡意行為檢測系統[1]。
而在目前的開發現狀當中,針對Android系統開發的檢測方法以及系統設計已經有多種方案。例如應用Indus針對Android應用的源代碼采用程序切分的方法分析存在的信息泄露問題分析,形成一種靜態分析辦法。但是這種辦法存在著只有在軟件處于休眠狀態下才可以發現是否具有威脅性。而利用TaintDroid工具開發的動態污點分析法可以做到對于敏感對象實施標記并跟蹤監控以及及時發現惡意行為。然而,此系統的操作流程復雜,占中的數據資源極高,實用性上欠佳。
為此本文提出利用Binder信息流設計出對于惡意行為檢測的辦法。在Android系統當中Binder是最為常用的通信方式,按類別上分屬于動態分析法范疇之內,通過收集通信信息做到對于多種方面的安全需求分析。此系統的目的是為了分析由于惡意行為導致的信息泄露現象,通過攔截泄露的信息進行惡意行為分析,以達到檢測的效果。
安卓系統所采用的應用內核是Linux內核,而在這中內核當中進行程序運行過程中,會存在許多種的通信機制。例如命名管道(Named Pipe)、消息隊列(Message Queue)、信號(Signal)、共享內存(Share Memory)以及Socket。然而在Android系統運行終端中出現惡意行為的產生一般性的都是由于后行下載的應用軟件所夾帶的惡意軟件。而這些軟件所使用的通信機制為Binder,為此本文所研究的這些惡意軟件所產生的私人信息泄露問題檢測則采用Binder信息流進行分析研究。Binder是當前Android系統中一種較為新穎的IPC(Inter Process Cimmunication)機制,較為一些原始通信機制相比較來看,此通信機制具備更加簡潔的操作流程和更快的運算速度,并且對于系統整體的內存資源占有率較少,所產生的成本也相對可觀。
Binder作為最近科學技術的產物,在Android系統的應用也越來越深,逐漸成為了當前系統當中獨有的通信C/S結構。在Android系統中包括了客戶端、服務器端以及全局管理和服務器控制端。而Binder作為一種較為特殊的運算字符型設備,適應著Linunx設備所支持的驅動模型。在用戶的使用空間當中包括了以上所提到的3個部分,而Binder的驅動程序則安裝在內核空間之中。在相互關系中服務器控制端輔助Binder進行管理工作,客戶端以及服務器端則是為Binder提供可操作界面以及相應的操作基礎設施構造,實現兩端口之間可以隨時通信的功能。其結構圖如圖1。

圖1 Binder機制的結構圖
2.1 系統的設計分析
在實現惡意行為檢測的基本原理上所利用的是Binder機制當中可以對于應用軟件所獲取的用戶信息傳遞過程中進行攔截,并且對與攔截的到的信息進行全面分析一發現是否存在惡意行為。并且還對當前的應用軟件與應用軟件之間的通信和應用軟件與操作系統之間的通信制成相關的日志文件,對通信過程中的信息進行標注,對可疑的信息傳輸進行跟蹤調查,構建應用通信信息流圖像,實現對于惡意信息的全面檢測辦法[2]。
在系統設立的架構中所采用的是服務器到客戶端的模式,在整個系統的操作過程中分為3個重要的工作部分。為Binder日志收集、Binder日志文件處理以及最后的惡意分析工作。而這些工作部分中日志收集工作處在客戶端部分進行,而剩下兩組任務在服務器端進行完成,并且對于之間的信息傳輸采用Socket進行通信,以協同完成惡意行為檢測。
2.2 日志收集
在Android系統當中各個應用組件通信方式在進行通信過程中都應該經過Binder方式來實現。為此在進行日志收集的過程中所得到的信息來源基本上為應用間的信息流通信息流以及Binder在驅動運行中所攔截道德通信信息流。而為了將系統設計進行更加簡約以及靈活性高和內耗較少,所采用日志的模式,將信息寫入到日志當中,并且將日志文件存放在客戶端當中,可以大大減少對于內存的占用。但是這種模式下需要對用戶空間設置相應的守護進程,保證整個日志文件的安全以及共分析過程中可以方便提取以及不會受到損壞。而這個守護進程隨Android智能手機開啟時便隨之啟動并且隨時與Binder驅動設備進行實時通信,為及時對日志進行處理和分析工作。
2.3 日志處理
在Binder通信日志的儲存形式當中所采用的是二進制的儲存格式,在進行分析和運算的過程中驅動程序無法單獨對其運算和解析,需要將數據導入到數據庫當中進行分析,為此對于收集到的隱私信息的查詢或是通信記錄的調取都從數據庫端進行操作。
然而被寫成的日志文件可視性極差,很難進行直接的分析和解讀,并且不同數據文件的寫入方式不同,對于分析工作有著跟大的阻礙。為此進行相應的分析和解讀過程中需要對當前所收集到的日志文件進行預處理工作,將數據之間的字段符號意義重新規劃并且設定成可以進行解讀的模式。在當前的Android系統應用軟件通信過程中所涉及的字段大致分為3種,通信數據編號ID用于發送Binder;通信類Type以及Type四種通信請求,通信請求并且要求反饋的字段,對于所發送的請求接收并且給予反饋字段,對于發送的請求接收但不給予反饋的字段;在應用軟件發送的進程號from-id以及進程名from-name字段;接收方所對于該進程接收號to-id和進程接收名to-name字段;通信內容大小和內容的date-size和date。在預處理過程中需要將日志當中的復雜字符字段通過預處理重新編寫成上述大致使用的基本字段,便于后期對于日志信息的處理工作。
在進行日志分析和處理過程中建立應用間信息通信流圖可以更加快速的分析出應用信息之間的關聯。建立方法將日志文件導入到數據庫當中,并且對上述處理后的字段進行分析。而為保證識別的準確性以及對于危害用戶私人數據的安全行,因采用的對比方法設置用戶隱私數據樣本,并且通過收集到的通信數據內容與樣本匹配發現所可能存在的涉及到隱私數據外泄的數據源和通信記錄。為找到泄露的通信信息流向,利用發送發的進程為開始出發點,將接收方作為終點,得出整體的數據流向數據。而目前的網絡通信環境復雜,一般性為一點對多點的通信交流方式,為此采用不斷迭代的方式來進行每一個數據流向進行矢量圖構造。最后將所有的數據流向圖匯總形成信息矢量圖。而且要對矢量圖當中存在信息泄露的信息流向線進行標記。矢量圖的構建方式如圖2所示。

圖2 信息矢量圖構建
圖中各字母都代表著是一個應用。而a-b-c應用時間進行通信過程中存在了匹配到的隱私數據信息。在矢量圖當中可以顯示出應用之間進行通信連接的路徑。此圖為舉例圖,在圖中可以看出應用b與a、c、d、e4個應用都有著信息流通的情況,為此根據這些流通路徑進行分析可以發現在這些應用當中是否存在著對用戶信息造成泄露的現象以及是否存在惡意行為。
2.4 惡意行為分析
對與應用軟件之間的信息流通不都代表著存在著信息泄露和具備惡意行為的現象。在進行惡意行為定責的過程中需要因實際情況具體分析。在整個分析的過程中需要假定在系統中運行的所有應用軟件均為可靠的,并且這些軟件不會受到不信任的第三方軟件的干擾和控制。所以通過對于矢量圖的方法運用以下代碼運算[3]:
void Traverse(GraphG)
{//按照遍歷圖G廣度優先,分析是否具備惡意行為
for(v=0;v(G.vexnum,++v)
//Malicious
Malicious[v]=FALSE;
//Visited
Visited[v]=FALSE;
InitQueue(Q)
for(v=0;v(G.vexnum,++v)
if(!visited[v])
{EnQueue(Q,v);
While(!QueueEmpty(Q))
{DeQueu(Q,u);
for(w=FirstAdjVex(Q,u);w(=0;
w=NextAdj Vex(Q,uw))
//如果此過程仍然無法確定u是否具備惡意行為繼續進行分析。
if(!Visited[u],&&!Malicious[u])
{//如果檢測到在u和w之間存在著標記的隱私數據傳輸行為,進行惡意分析
//對(u,w)這條矢量圖邊線進行惡意分析
BinderAnalysis (u,w);
//根據分析結果顯示是否存在有惡意行為。
通過對以上的算法進行計算,可以通過對矢量圖的信息流向線路計算結果可以看出檢測的應用與應用之間的通信是否存在有用戶私人信息的傳遞過程,對此過程在進行重點的算法分析后,可以看出其是否存在著惡意行為的現象。通過函數BinderAnalysis(u,w)的表示可以將結果展示出來并做到檢測的目的保證用戶的個人隱私數據的安全。
本文所設計研究的對于安卓系統的惡意行為檢測采用的是Binder采集信息,并且利用信息建立相應的矢量圖,反映出應用軟件之間的信息流向,通過這些流向和路徑的分析得出是否存在惡意行為。通過改變Binder的底層代碼以適應當前的安裝系統版本,而且當前的安卓系統本更根性非常快,加之許多手機制造商均根據安卓系統為原型設計出符合自身特點的操作系統,需要根據不同的手機品牌的操作系統設定相應的代碼才可以達到更有效的惡意行為檢測。
在Binder的通信信息收集過程當中內核層中的驅動以及用戶層所應用的守護進程分別保護一個結構體數組,每個數組中含有的數都為32個,并且這兩個結構都代表著一個Binder的通信信息,變量則為字段。在通信過程中Binder系統每次攔截的一個應用的信息流就將這個信息數據賦值成這個數組的結構體當中。當數組當中的32個個體都被重新賦值之后系統的驅動將會告知守護進程。守護進程將會利用Ioctl協議訪問Binder驅動系統,并且驅動系統將會對這些數組進行復制并且發送到守護進程當中的數組集當中。守護進程將會把這些復制過來的新數組形成日志的形式編寫進數據庫當中。當這些日志的數量被累積到一定的程度時,系統將會自動將這些日志文件上傳到服務器當中,并且利用服務器的數據庫對此進行分析識別工作。在Binder通信日志的儲存過程中采用二進制的儲存方式并且利用Ultraedit軟件進行日志的開發。其日志的顯示圖如圖3。

圖3 日志顯示圖
從圖中可見其代碼不宜進行解讀為此需要進行上文所提到的預處理工作。將每一個字段重新解讀并且組成為可以進行分析的上文所提到的字段形式中,并且將預處理之后的字段數據導入到Binderlog的數據表當中以供后期處理[4]。
而日志的處理工作大致位于服務器當中的數據庫中來進行的。繪制的矢量圖基于Struts+Spring+H ibernate架構,采用的繪制軟件為script,并且圖形庫選擇為Raphael。并且在矢量圖的分析中得出存在的用戶個人隱私信息的信息傳遞鏈條,將這些信息重新設定一個Phonestate的表格。通過對于新表格當中的發送發、接收方、節點和應用之間的信息流向進行研究,構建出單獨的存在問題的矢量圖。圖4為信息矢量圖的應用軟件和構建結構過程圖。

圖4 信息矢量圖展示
在惡意分析過程中的實現則是應用了現今的安卓語言來進行。將分析后的數據函數輸入到矢量圖當中,分析當前的信息數據是否存在惡意行為,并且根據信息流向找出流出軟件應用和接收方。例如,某一方在進行訪問某特定數據的時并沒有訪問的權限,但是該應用在進行傳遞信息的過程中存在了其某特定數據,則定義此應用軟件產生了惡意行為,并歸為惡意軟件[5]。
實際檢測樣本為選擇了一款裝有最新安卓系統的智能手機,并且應用其在網上下載200款網絡應用APP,而且為保證對于系統檢測的可能性保真,實驗中所應用的到的檢測對象分為IMEI、Wifi MAC、藍牙、安卓版本號、操作系統序列號、短信信息這六種類別,分別應用設計出的系統對其進行惡意行為檢測[6-7]。并且將惡意應用軟件的數量結果進行統計智能表1。

表1 惡意應用軟件的數量結果
從表1中可以看出,該系統的檢測結果顯示,當前網絡應用環境當中IMEI以及WIFI MAC的惡意軟件應用數量最多。而系統性能分析中得出系統在進行運算這些軟件是否存在惡意軟件的進程所耗費時間為6秒左右,對于系統的運算能力有著杰出的表現,結果顯示此系統對于當前的安卓系統當中的應用軟件檢測能力非常高,并且占有內存和耗時較少,運行程度較為流暢,有很高的應用性。
在當前的網絡環境中,網絡安全成為最為重要的研究方向,而目前移動手機客戶端的接入網絡以及Android系統應用的智能手機開發,將智能手機網絡時代的推向了高潮。為此防止網絡中的惡意軟件侵入,造成用戶個人隱私數據泄露和財產安全等原因考慮,本文設計利用Android系統當中的Binder信息流模式構建出檢測系統,對于用戶中的應用軟件信息流向進行檢測以分析是否存在惡意行為,保證用戶在使用過程中的安全性和當前網絡復雜環境中的保靠。通過檢測可以得出,此系統對于網絡應用的檢測成果較高,并且耗時時間段,運算所占用的Android系統內從較少,有很高的可行性和安全性。在眾多的網絡安全設計當中提出一種設計構想和參考基礎。
[1] 賈同彬,蔡 陽,王躍武,等.一種面向普通用戶的Android APP安全性動態分析方法研究[J].信息網絡安全,2015,10(9):1-5.
[2] 楊 歡,張玉清,胡予濮,等,基于多類特征的Android應用惡意行為檢測系統[J].計算機學報,2014,37(1):1-13.
[3] 李桂芝,韓 臻,周啟惠,等.基于Binder信息流的Android惡意行為檢測系統[J].網絡信息安全,2016,3(2):54-59.
[4] 王汝言,蔣子泉,劉喬壽.Android下Binder進程間通信機制的分析與研究[J].計算機技術與發展,2012,22(9):107-110.
[5] 鄧平凡.深入理解Android[M].北京:機械工業出版社,2011.
[6] 馬晉楊, 徐 蕾. 基于Android系統的手機惡意軟件檢測模型[J]. 計算機測量與控制, 2016, 24(1):156-158.
[7] 林 鑫. 基于沙盒的Android惡意軟件檢測技術研究[J]. 電子設計工程, 2016, 24(12):48-50.
Application Research of Malicious Behavior Detection System Based on Android Network
He Qiang1,2,Wang Shuangxi1,Li Jianyong1,Qu Changzheng1
(1.College of Information,Shanxi Agricutural University, Jinzhong 030800,China;2.Taiyuan Electronic Research and Design Institute,Taiyuan 030002,China)
The Android system is one of the most of the application system of the network users, and with the development of science and technology, the software for malicious behavior Android system has gradually increased, brought great threat to the application of the user's current property and personal information security, severe delay on the current mobile communication network technology and extension on application client. According to the specific mechanism of Android system to design a Binder based on the information flow of the automatic detection system of malicious behavior, in order to solve the negative impact of the current network security system for Android users. According to the application communication information in the current network, the application software of the possible leakage user information is detected, and the information vector is built to analyze the malicious behavior in the current network. Through testing the software of practicability and detect, the results showed that the recognition rate can reach 100%, software occupies only 7% memory. Results can reach the current Android user usage.
Android; network malicious behavior; Binder; detection
2016-12-28;
2017-02-06。
山西省教育科學“十二五”規劃2015年度規劃課題(GH-15010);2016年山西省高等學校教學改革創新項目(J2016146)。
賀 強(1982-),男,山西太原人,高級工程師,主要從事軟件工程方向的研究。
1671-4598(2017)07-0012-04
10.16526/j.cnki.11-4762/tp.2017.07.003
TP309
A