?

Android平臺下的病毒原理分析及其防御技術研究

2013-07-13 06:42劉彬彬李永忠
電子設計工程 2013年4期
關鍵詞:監聽應用程序短信

劉彬彬,李永忠,舒 俊

(江蘇科技大學 江蘇 鎮江 212003)

Android平臺下的病毒原理分析及其防御技術研究

劉彬彬,李永忠,舒 俊

(江蘇科技大學 江蘇 鎮江 212003)

Android是現在最受歡迎的移動平臺操作系統之一。它最大的特點就是源代碼開源,因此吸引了很多行業領先企業,包括通信運營商、設備制造商、芯片制造商等各類企業,同時也吸引了大量用戶。根據市場研究公司IDC發布的數據,截止2012年第二季度,Android的市場份額高達68.1%。為了使Android用戶不受病毒的危害,本文分析了Android平臺下的病毒攻擊原理,提出了一個基于Android的安全防御系統的解決方案,并進行了實現和測試,可以查殺病毒,自動監控設備。測試結果表明,系統能夠有效監測到病毒的入侵并及時采取措施。

Android;病毒原理;入侵檢測;主動防御

Android是一個開源的移動平臺操作系統,占據了大部分市場份額。

Android的火爆引起了一些不法分子的注意,利用惡意軟件(即Android病毒)非法獲取用戶隱私、間接扣取用戶話費獲取經濟利益等。隨著Android的快速發展,針對Android的惡意軟件也越來越多。根據網秦發布的2012年上半年全球手機安全報告,2012上半年新增手機惡意軟件17676款,而這其中的78%就是針對Android平臺的,這個數字在2011年年底還是38%。僅在2012年6月,單月查殺到Android惡意軟件5582款,直接感染用戶數百萬,造成用戶大量的直接或間接經濟損失、隱私泄露等危害。

Android惡意軟件的危害越來越嚴重,本文通過對Android惡意軟件原理的研究與分析,結合Android系統自身特點,提出并實現了一個安全防御解決方案。

1 Android體系結構

Android的架構主要由應用層(Applications)、應用框架層(Application Framework)、Android 系統庫和運行時(Libraries、Android Runtime)、Linux 內 核 (Linux Kernel) 構 成 , 如 圖 1所示。

圖1 Android系統架構圖Fig.1 System architecture of Android

應用層主要包括系統自帶的和用戶安裝的應用程序,應用框架層為應用程序提供API,Android系統庫為應用框架層提供C/C++庫,Android運行時提供JAVA核心庫和Dalvik虛擬機,Linux內核是Android的核心,提供底層服務。

2 Android病毒原理

通過分析網秦的2012年上半年全球手機安全報告,可以看出,雖然Android平臺下病毒的形式多樣,但主要攻擊方式如下:

1)惡意扣費:這類病毒在用戶不知情的情況下,向SP訂購付費業務,扣除用戶的話費。

2)竊取隱私:這類惡意軟件主要是竊聽用戶通話 ,竊取用戶位置信息、通訊錄等資料,并在后臺上傳到服務器,從中獲取有利信息或者轉賣出去,進而獲利。

3)消耗資費:這類病毒主要在后臺自動聯網,不斷下載廣告主推廣的應用或其他惡意軟件,從而獲取非法利益。這樣直接導致用戶的網絡流量和設備電量消耗過大。

通過分析病毒源代碼,可以發現病毒主要是利用短信、電話、網絡等功能,加上一些其他的輔助功能,達到非法目的。

2.1 獲取訪問權限

Android用權限管理機制來確定應用程序是否有相應的訪問權限。應用程序在安裝時要請求所需的權限,只有用戶同意授權才能安裝。

病毒程序為了能使用短信、電話、網絡程序,會在Android Manifset.xml文件中請求相關權限。請求撥打電話的權限為:

android.permission.CALL_PHONE請求發送短信的權限為:

android.permission.SEND_SMS請求接收短信的權限為:

android.permission.RECEIVE_SMS請求聯網的權限為:

android.permission.INTERNET

2.2 盜發短信

在后臺偷偷向SP發送訂購付費業務短信,這是病毒最常用的手段,病毒獲得發送短信的權限后,利用SmsManager類,在用戶不知道的情況下,向SP發送訂購付費業務短信:

SmsManager.getDefault ().sendTextMessage (tel,null,message, null, null);

其中tel為短信發送地址,message為短信訂購內容。

通常在向SP發送訂購業務后,SP會回復一個確認短信給用戶,讓用戶再次確認是否訂購該業務。這時,病毒屏蔽SP發來的確認短信,不讓用戶看到,再次偷偷發送確認短信給SP,然后刪除相關短信。這樣,就成功訂購了業務,扣除了用戶的話費,而這一過程,用戶毫不知情。

病毒屏蔽短信是利用了Android的四大組件之一BroadcastReceiver,Android收到短信時,會發出一個有序廣播,病毒獲得接收短信的權限后,聲明一個BroadcastReceiver并把優先級設的很高:

BroadcastReceiver receiver;

IntentFilter filter=new IntentFilter();filter.setPriority(priority);

registerReceiver(receiver, filter);

病毒優先收到SP發來的短信后,判斷是否是特定SP的號碼,如果是,首先終止廣播的傳播,其他程序就不會收到短信了:

abortBroadcast();

然后再次偷偷向SP發送確認短信,最后刪除SP發來的消息和發件箱中偷偷發出的短信。

2.3 盜打電話

對于Android手機,通過撥打電話扣費的病毒較少,因為撥號無法做到像偷發短信一樣那么好的隱蔽性,不過最近也出現了一些病毒,入侵用戶的手機后,自動撥打指定的號碼,這種號碼通常會收取很高的SP費用。

病毒獲得撥打電話的權限后 ,只需要調用一次Intent,即可實現撥打指定電話的功能:

Intent intent=new Intent (Intent.ACTION_CALL, Uri.parse(“tel:”+phone_number));

startActivity(intent);

2.4 網絡傳輸

病毒一般從兩個方面利用網絡。第一,在后臺聯網,上傳用戶的隱私信息;第二,在后臺下載其他應用程序或者病毒程序。這兩者都將消耗用戶大量的網絡流量,同時也消耗了很多電量。

無論是上傳還是下載,都是使用HTTP,借助于JAVA的輸入輸出流實現。上傳代碼類似于:

UploadFile(File file, String up_url);

其中file是上傳的文件,up_url是上傳服務器地址。下載代碼類似于:

DownFile(String url, String path, int thread_num);

其中,url為所下載文件的源地址,path是文件下載后的保存路徑,thread_num是下載的線程數。

3 Android平臺的安全防御原理

目前,Android平臺的安全防御技術主要從以下幾個方面研究:文件監控及訪問控制[1-3]、應用程序訪問權限[4-6]、防火墻[7]、入侵檢 測[8-11]。

這些研究基本都是從系統和內核層加強Android的安全,可是對于絕大多數用戶來說,系統是廠商決定的,自己無法改變。本文根據Android平臺的病毒原理,研究和實現了一個在應用層保護系統和用戶數據的安全系統。

3.1 監聽短信

通過監聽短信的發送和接收,在后臺運行一個Service監測安裝的應用程序是否有病毒。

監聽收發短信,分別需要請求以下權限:

android.permission.RECEIVE_SMS

android.permission.READ_SMS

在Service中創建一個BroadcastReceiver,用于接收收發短信的廣播,為了防止廣播被病毒優先接到而終止,可以把這個BroadcastReceiver的優先級設為最大整數。

有短信到達時,BroadcastReceiver會收到帶有“android.provider.Telephony.SMS_RECEIVED”消息的廣播,通過接受這個廣播監聽短信的接收。

由于發送短信時沒有廣播,不能用Broadcast Receiver監聽短信的發送,但是可以利用ContentObserver監聽短信發件箱的狀態,從而實現對發送短信的監聽。

3.2 監聽電話

在后臺運行Service監聽外撥電話,監測是否有病毒程序非法撥打電話。

利用BroadcastReceiver在Service中監聽電話狀態需要的權限:

android.permission.READ_PHONE_STATE

android.permission.MODIFY_PHONE_STATE

android.permission.PROCESS_OUTGOING_CALLS

有電話撥出時,會收到帶有“android.intent.action.NEW_OUTGOING_CALL”消息的廣播,可以監測是否是病毒行為。

3.3 監聽網絡

監聽網絡連接所需權限:

android.permission.INTERNET

設備聯網時,會發出帶有”android.net.conn.CONNECTIVITY_CHANGE”的廣播,通過運行在后臺的Service,接收廣播,檢測是否有病毒聯網。

3.4 監聽應用程序的安裝

通過監聽應用程序的安裝,病毒程序安裝的時候就可以監測出來,從而在初始階段就可以杜絕病毒。

所需權限:

android.permission.RECEIVE_BOOT_COMPLETED

程序安裝時,會發出帶有“android.intent.action.PACKAGE_ADDED”的廣播,在后臺接收廣播,監測是否有病毒安裝。

4 Android安全防御系統的實現

該系統主要根據病毒特征,進行病毒掃描,查殺病毒程序,同時監聽短信、電話、網絡、程序安裝等敏感行為,實時監測系統的安全狀態。

系統主要由4個模塊構成:殺毒引擎、主動防御、更新病毒庫和日志模塊,如圖2所示。

圖2 Android安全防御系統結構圖Fig.2 Schematic diagram of the Android security system

4.1 殺毒引擎

殺毒引擎根據程序和文件的一些特征值判斷是否病毒。

每一個Android應用程序的包名和簽名都是一一對應的,對于Android設備上已安裝的應用程序,可以提取包名和簽名作為特征值,利用PackageInfo類可以得到:

package_name=PackageInfo.packageName;

signature=PackageInfo.signatures;

對于APK安裝包,還可以計算MD5值作為特征值:md5_str=MD5.GetMd5(file_path);其中file_path為APK文件路徑。

4.2 主動防御

主動防御是一個后臺Service服務,實時監控Android的設備狀態,有病毒入侵時,可以及時監測出來,提醒用戶處理病毒。

在Service中創建一個BroadcastReceiver的子類DefendReceiver,優先級設為最大整型數,設置監聽短信、電話、網絡等信息:

registerReceiver(receiver, filter);

創建一個ContentObserver的子類SmsObserver,監聽短信發件箱的信息:

getContentResolver ().registerContentObserver (Uri.parse(“content://sms/”), true, observer);

4.3 升級病毒庫

本系統用tomcat部署服務器,為Android客戶端提供病毒庫升級服務。

利用Android提供的HTTP和JAVA的輸入輸出流,從服務器上下載最新病毒庫,在本地保存。

4.4日 志

日志模塊用于記錄發現病毒的日志,包括病毒名稱、路徑、發現時間和處理結果。

利用SQLite在本地創建一個數據庫,發現病毒時,將病毒信息存入數據庫:

insertToLog(log_db, time, appname, apppath, result);

殺毒引擎和主動防御發現病毒后的處理流程如圖3所示。

圖3 病毒處理流程圖Fig.3 Flow chart of the virus processing

Android安全防御系統的實現如圖4所示。

5 測 試

系統中使用了Android 2.3.3以上版本的API,所以只能運行在Android 2.3.3以上的設備上。本文分別在Android模擬器和摩托MB525上測試本系統。

圖4 Android安全防御系統實現圖Fig.4 Implementation diagram of Android security system

5.1 功能測試

測試項:1)掃描殺毒(包括快速掃描和全盤掃描);2)主動防御;3)更新病毒庫;4)查看日志。

測試時,對每項功能都進行了驗證,測試結果如表1。

表1 測試結果Tab.1 Test result

5.2 壓力測試

用Android自帶的工具monkey可以進行壓力測試。在PC上執行以下命令即可對程序進行1 000次測試:

adb shell monkey-p com.securitysuite.v1-v 1000

測試結果如圖5所示。

圖5 測試結果Fig.5 Test result

測試共耗時88 670 ms,在1 000次測試中,只有2個按鍵操作丟失,其他事件的丟失數均為0,表明系統具有較強的穩定性。

6 結 論

根據測試結果,系統在應用層能夠有效查殺已安裝的病毒程序和病毒文件,并能實時監控,同時,抗壓能力較強,能夠穩定運行,有效保護了Android用戶的隱私和資金安全。

[1]乜聚虎,周學海,余艷瑋,等.Android安全加固技術[J].計算機系統應用, 2011,20(10):74-77.

NIE Ju-hu,ZHOU Xue-hai,YU Yan-wei,etal.Android security reinforcement technology[J].Computer Systems&Applications,2011,20(10):74-77.

[2]溫敏,艾麗蓉,王志國.Android智能手機系統中文件實時監控的研究與實現[J].科學技術與工程,2009,9(7):1716-1719,1724.

WEN Min,AI Li-rong,WANG Zhi-guo.Analysis and implementation of file real-time monitoring based on the Android smart phone system[J].Science Technology and Engineering,2009,9(7):1716-1719,1724.

[3]王志國,侯銀濤,石榮剛.Android智能手機系統的文件實時監控技術[J].計算機安全,2009(12):42-44.

WANG Zhi-guo,HOU Yin-tao,SHI Rong-gang.The file realtime monitoring technology based on the Android smart phone system[J].Computer Security,2009(12):42-44.

[4]Nauman M,Khan S,Zhang X.Apex:extending android permission model and enforcement with user-defined runtime constraints[C].2010:328-332.

[5]吳俊昌,駱培杰,程紹銀,等.基于權限分類的Android應用程序的靜態分析 [C]//第四屆信息安全漏洞分析與風險評估大會,北京,2011:61-71.

[6]沈才樑,唐科萍,俞立峰,等.Android權限提升漏洞攻擊的檢測[J].電信科學,2012(5):115-119.

SHI Cai-liang,TANG Ke-ping,YU LI-feng,et al.Android privilege escalation vulnerability attacks detection[J].Tele communications Science,2012(5):115-119.

[7]王力生,葉希哲.一種基于Android的防火墻的研究與實現[J].計算機安全,2009(10):36-38.

WANG Li-sheng,YE Xi-zhe.Study and realization of a fire wall based on Android[J].Computer Security,2009(10):36-38.

[8]Shabtai U, Kanonov,Elovici Y,et al.Andromaly:a behavioral malware detection framework for android devices[J].Journal of Intelligent Information Systems,2012:1-30.

[9]Shabtai U,Kanonov Y,Elovici.Detection,Alert and Response to Malicious Behavior in Mobile Devices:Knowledge-Based Approach[C].2009:357-358.

[10]Habtai U,Kanonov Y,Elovici.Intrusion detection for mobile devicesusingtheknowledge-based,temporalabstractionmethod[J].Journal of Systems and Software,2010,83(8):1524-1537.

[11]Shabtai Y,Fledel Y,Elovici,et al.Using the KBTA method for inferring computer and network security alerts from timestamped, raw system metrics[J].Journal in Computer Virology,2010,6(3):239.

Study and analysis of virus defense technology with Android platform

LIU Bin-bin, LI Yong-zhong, SHU Jun
(Jiangsu University of Science and Technology, Zhenjiang 212003, China)

Android is now one of the most popular mobile platform.The greatest characteristic is the source code is open,thus attracted a lot of enterprises which are the leaders in this industry.These enterprises include telecom carries,original equipment manufacturer, chip makers and so on.At the same time, a large number of users are attracted too.According to the data released by IDC, a market-research firm, Android’s market share reaches as high as 68.1%by the second quarter of 2012.In order to make the Android users do not suffer the harm of virus,the principle of virus with Android platform is analyzed,and a solution of virus defense system based-on Android is proposed in this paper.And the solution has been implemented and tested.The system can monitor the device automatically and run a virus scan.The results of the test show that the system can detect the intrusion of viruses and take measures timely.

Android; principle of virus; intrusion detection; active defens

TP311.52

A

1674-6236(2013)04-0040-04

2012-10-18稿件編號201210118

劉彬彬(1986—),女,湖北隨州人,碩士。研究方向:通信技術及其應用工程。

猜你喜歡
監聽應用程序短信
英國風真無線監聽耳機新貴 Cambridge Audio(劍橋)Melomania Touch
千元監聽風格Hi-Fi箱新選擇 Summer audio A-401
刪除Win10中自帶的應用程序
道歉短信
谷歌禁止加密貨幣應用程序
代發短信
網絡監聽的防范措施
應召反潛時無人機監聽航路的規劃
三星電子將開設應用程序下載商店
“八一”節日短信之一
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合