国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android平臺安全防護(hù)系統(tǒng)的設(shè)計與實現(xiàn)

2015-05-30 10:48:04張楠滕英巖
軟件工程 2015年7期
關(guān)鍵詞:定位病毒用戶

張楠 滕英巖

摘 要:研究基于Android平臺的安全防護(hù)軟件,使用Android SDK和Java Web技術(shù)實現(xiàn)了Android平臺安全防護(hù)系統(tǒng)的各項功能。系統(tǒng)支持手機(jī)防盜找回、騷擾攔截、緩存清理、病毒掃描等功能,實現(xiàn)了對惡意程序和騷擾程序有效地攔截,后臺服務(wù)器使用Servlet編寫部署在百度云平臺,擁有快速的響應(yīng)和穩(wěn)定等特點,給后期的維護(hù)工作帶來的極大的便捷。

關(guān)鍵詞:Android平臺安全防護(hù)系統(tǒng);惡意程序;百度云平臺

中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A

1 引言(Introduction)

近年來,Android平臺安全防護(hù)系統(tǒng)是目前市面上安卓平臺廣泛應(yīng)用的軟件系統(tǒng),然而信息安全領(lǐng)域在移動與嵌入式安全研究開發(fā)上的行動在過去幾年里過于緩慢),以至于移動安全在某種程度上仍然被認(rèn)為是前沿研究,因為移動設(shè)備的消費(fèi)者與用戶最近才開始察覺并理解日常使用移動設(shè)備所面臨的安全威脅。這些威脅也隨之為移動安全研究與安全產(chǎn)品創(chuàng)造了市場前景[1]。本文研究的安全防護(hù)系統(tǒng)采用最新的Android SDK開發(fā),本著精簡高效的原則,對市面上流行的安全軟件的功能進(jìn)行包含和實現(xiàn),由于占用內(nèi)存資源少,本系統(tǒng)兼容安裝Android 2.3.3到目前最新Android 4.2.2的所有智能手機(jī)。

2 關(guān)鍵技術(shù)介紹(The introduction of key

technology)

2.1 Android系統(tǒng)平臺簡介

Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機(jī)。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機(jī)發(fā)布于2008年10月。Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2013年的第四季度,Android平臺手機(jī)的全球市場份額已經(jīng)達(dá)到78.1%。2013年09月24日谷歌開發(fā)的操作系統(tǒng)Android在迎來了5歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到10億臺[2]。

2.2 手機(jī)惡意軟件

手機(jī)惡意軟件,一般是指在用戶不完全知情和認(rèn)可(它包括未經(jīng)用戶許可、強(qiáng)迫引導(dǎo)用戶許可或隱瞞關(guān)鍵信息等)的情況下強(qiáng)行安裝到用戶手機(jī)中,或者一旦安裝就無法正常卸載和刪除,但又具備一定正常功能的軟件程序。

惡意軟件是介于病毒和正常軟件之間的軟件,它與病毒的區(qū)別是:通常還具備一定的正常功能。

相比于正常軟件,判定是否是惡意軟件的兩個標(biāo)準(zhǔn):

(1)是否被安裝到了用戶手機(jī)中。

(2)對于用戶而言,是否具有不可控制性:即用戶不完全知情和認(rèn)可,或者是安裝后無法讓用戶用正常的手段卸載和刪除。

符合以下任意即可定義為惡意軟件:

(1)沒有任何提示,暗地里發(fā)短信、聯(lián)網(wǎng)、扣費(fèi),輕微的發(fā)一次,嚴(yán)重的重復(fù)發(fā)。

(2)雖然有提示,但提示很不顯眼,很容易讓新手用戶摁錯,誤導(dǎo)新手,導(dǎo)致發(fā)送短信、聯(lián)網(wǎng)、扣費(fèi)。

(3)雖然有提示,但提示是虛假的,比如明明是CMNET,卻提示是CMWAP。

(4)沒有提示或者誤導(dǎo)用戶,暗地里收集用戶個人資料的。

(5)不經(jīng)用戶同意,捆綁了快捷鍵、書簽等可恢復(fù)性內(nèi)容。

(6)安裝很容易,刪除不簡單。

2.3 MD5算法簡介

MD5算法為計算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。MD5的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被“壓縮”成一種保密的格式(就是把一個任意長度的字節(jié)串變換成一定長的十六進(jìn)制數(shù)字串)。MD5就可以為任何文件(不管其大小、格式、數(shù)量)產(chǎn)生一個同樣獨(dú)一無二的MD5“數(shù)字指紋”,如果任何人對文件做了任何改動,其MD5值也就是對應(yīng)的“數(shù)字指紋”都會發(fā)生變化。加密流程如圖1所示[3]。

圖1 MD5加密算法流程圖

Fig.1 Process of MD5 encryption algorithm

2.4 Android安全權(quán)限機(jī)制

Android本身是一個權(quán)限分立的操作系統(tǒng)。在這類操作系統(tǒng)中,每個應(yīng)用都以唯一的一個系統(tǒng)識別身份運(yùn)行(Linux用戶ID與群組ID)。系統(tǒng)的各部分也分別使用各自獨(dú)立的識別方式。Linux就是這樣將應(yīng)用與應(yīng)用,應(yīng)用與系統(tǒng)隔離開。

系統(tǒng)更多的安全功能通過權(quán)限機(jī)制提供。權(quán)限可以限制某個特定進(jìn)程的特定操作,也可以限制每個URI權(quán)限對特定數(shù)據(jù)段的訪問。

Android安全架構(gòu)的核心設(shè)計思想是,在默認(rèn)設(shè)置下,所有應(yīng)用都沒有權(quán)限對其他應(yīng)用、系統(tǒng)或用戶進(jìn)行較大影響的操作。這其中包括讀寫用戶隱私數(shù)據(jù)(聯(lián)系人或電子郵件),讀寫其他應(yīng)用文件,訪問網(wǎng)絡(luò)或阻止設(shè)備待機(jī)等。

安裝應(yīng)用時,在檢查程序簽名提及的權(quán)限,且經(jīng)過用戶確認(rèn)后,軟件包安裝器會給予應(yīng)用權(quán)限。從用戶角度看,一款A(yù)ndroid應(yīng)用通常會要求如下的權(quán)限:撥打電話、發(fā)送短信或彩信、修改/刪除SD卡上的內(nèi)容、讀取聯(lián)系人的信息、讀取日程信的息,寫入日程數(shù)據(jù)、讀取電話狀態(tài)或識別碼、精確的(基于GPS)地理位置、模糊的(基于網(wǎng)絡(luò)獲?。┑乩砦恢?、創(chuàng)建藍(lán)牙連接、對互聯(lián)網(wǎng)的完全訪問、查看網(wǎng)絡(luò)狀態(tài),查看WiFi狀態(tài)、避免手機(jī)待機(jī)、修改系統(tǒng)全局設(shè)置、讀取同步設(shè)定、開機(jī)自啟動、重啟其他應(yīng)用、終止運(yùn)行中的應(yīng)用、設(shè)定偏好應(yīng)用、震動控制、拍攝圖片等。

一款應(yīng)用應(yīng)該根據(jù)自身提供的功能,要求合理的權(quán)限。用戶也可以分析一款應(yīng)用所需權(quán)限,從而簡單判定這款應(yīng)用是否安全。如一款應(yīng)用是不帶廣告的單機(jī)版,也沒有任何附加的內(nèi)容需要下載,那么它要求訪問網(wǎng)絡(luò)的權(quán)限就比較可疑。

3 系統(tǒng)設(shè)計(System design)

3.1 系統(tǒng)結(jié)構(gòu)

Android平臺安全防護(hù)系統(tǒng)采用Android原生SDK進(jìn)行開發(fā),客戶端主要由手機(jī)防盜、通訊衛(wèi)士、軟件管理、進(jìn)程管理、流量統(tǒng)計、病毒掃描、緩存清理、高級工具、設(shè)置中心這幾大模塊構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖2所示。

圖2 系統(tǒng)結(jié)構(gòu)圖

Fig.2 System architecture diagram

程序中各個模塊都有自己獨(dú)立的服務(wù)和廣播接收器為之提供支持,客戶端利用JSON數(shù)據(jù)格式和后臺服務(wù)器之間做數(shù)據(jù)交換,每個功能模塊之間相互獨(dú)立,但是由主頁面切換進(jìn)入。以手機(jī)防盜功能模塊為例,一共有四個頁面對數(shù)據(jù)進(jìn)行記錄,分別是設(shè)置密碼,綁定SIM卡,綁定安全號碼,啟動管理員模式,當(dāng)數(shù)據(jù)記錄完畢后,后臺會有相應(yīng)的服務(wù)和廣播接收器啟動,來記錄安全號碼發(fā)入目標(biāo)手機(jī)的指令,從而可以啟動相關(guān)功能對目標(biāo)手機(jī)執(zhí)行一系列的操作。

3.2 數(shù)據(jù)庫設(shè)計

數(shù)據(jù)庫密碼列采用MD5加密算法存儲密碼,這樣可以避免明文密碼的泄露。數(shù)據(jù)庫設(shè)計表如表1所示。

表1 數(shù)據(jù)庫表設(shè)計

Tab.1 Design of database table

表名 類型 約束 備注

UserID Verchar(30) 唯一 用戶唯一的ID號

UserPass Varchar(30) 非空 用戶密碼

4 系統(tǒng)實現(xiàn)(System implementation)

本文著重對Android平臺安全防護(hù)系統(tǒng)子系統(tǒng)進(jìn)行剖析,闡釋系統(tǒng)的運(yùn)行原理。安全防護(hù)子系統(tǒng)主要包括手機(jī)防盜和病毒掃描模塊兩部分。

4.1 手機(jī)防盜模塊

手機(jī)防盜功能中包含手機(jī)定位、手機(jī)報警、手機(jī)鎖屏和手機(jī)數(shù)據(jù)清理功能。本模塊利用手機(jī)長駐后臺服務(wù)監(jiān)聽短信內(nèi)容,根據(jù)短信執(zhí)行相關(guān)操作[4]。定位功能是程在序中加入了百度地圖定位功能,當(dāng)用戶綁定了SIM卡和安全號碼后,如果手機(jī)丟失,用安全號碼手機(jī)直接編輯短信指令+密碼發(fā)送到丟失手機(jī)上,可以讓手機(jī)執(zhí)行定位操作并回復(fù)短信當(dāng)前手機(jī)所在坐標(biāo)位置。以下是部分定位功能的實現(xiàn)代碼段。

public void initOption() {

LocationClientOption option=new LocationClientOption();

option.setLocationMode(LocationMode.Hight_Accuracy);//設(shè)置定位模式

option.setCoorType("bd09ll");//返回的定位結(jié)果疊加地圖使用bd09ll模式

option.setScanSpan(2000);//設(shè)置發(fā)起定位請求的間隔時間為5000ms

option.setIsNeedAddress(true);//返回的定位結(jié)果包含地址信息

option.setNeedDeviceDirect(true);//返回的定位結(jié)果包含手機(jī)機(jī)頭的方向

option.setOpenGps(true);

locClient.setLocOption(option);

}

public void TraceStart() {

locClient.start();

}

public void TraceStop() {

locClient.stop();

}

鎖屏功能是使用安全手機(jī)發(fā)送鎖屏指令,然后目標(biāo)手機(jī)會自動執(zhí)行鎖屏指令。

手機(jī)報警功能是收到安全號碼發(fā)來的指令后以最大聲音播放報警音樂。

手機(jī)數(shù)據(jù)清理功能是接收到數(shù)據(jù)清理指令后在后臺執(zhí)行數(shù)據(jù)清理功能。觸發(fā)這些功能都是在后臺讓偷盜者無法察覺的情況下完成的。

4.2 病毒掃描模塊

病毒掃描模塊主要利用MD5特征匹配篩選安全程序和病毒程序,進(jìn)入掃描進(jìn)程后程序會在后臺將計算出每個程序的MD5值,然后利用云端同步的病毒特征庫進(jìn)行比對,利用折半查找法加速了程序掃描大樣本數(shù)據(jù)庫的對比算法。當(dāng)病毒程序被掃描出,程序會提示用戶是否清理,如果用戶點擊清理按鈕程序會強(qiáng)制卸載目標(biāo)程序,掃描過程結(jié)束。

病毒掃描過程部分核心代碼段如下:

private void scanVirus() {

pm=getPackageManager();

tv_scan_status.setText("正在初始?xì)⒍疽?.....");

new Thread(){

@Override

public void run() {

Listinfos= pm.getInstalledPackages(0);

pb.setMax(infos.size());

int progress=0;

for(PackageInfo info:infos) {

//info.applicationInfo.dataDir; //數(shù)據(jù)文件保存地址

String apkPath=info.applicationInfo.sourceDir; //APK安裝包路徑

String md5=FileToMD5.GetFileMd5(apkPath);

//準(zhǔn)備保存數(shù)據(jù)傳出讓UI線程更新

ScanInfo scanInfo=new ScanInfo();

scanInfo.Name=info.applicationInfo.loadLabel(pm).toString();

scanInfo.packName=info.packageName;

if(AntivirusTools.isVirus(md5)) {

//發(fā)現(xiàn)病毒

scanInfo.isVirus=true;

}else{

//掃描安全

scanInfo.isVirus=false;

}

//定義消息,把消息發(fā)到UI線程更新界面

Message msg=Message.obtain();

msg.obj=scanInfo;

msg.what=520;

handler.sendMessage(msg);

progress++;

pb.setProgress(progress);

}

Message msg=Message.obtain();

msg.what=0;

handler.sendMessage(msg);

}

}.start();

}

5 關(guān)鍵問題(Core question)

5.1 實現(xiàn)了病毒庫自動更新

程序在運(yùn)行過程中,固定的時間會向服務(wù)器拉取一個XML配置文件,里面是用JSON格式記錄的病毒庫版本和病毒庫下載地址。當(dāng)程序發(fā)現(xiàn)新版本病毒庫發(fā)布后,會自動去更新病毒庫,由于病毒庫只是一個txt格式的文檔,所有占用流量不會太多。當(dāng)程序下載下新版本病毒庫后會自動將數(shù)據(jù)插入已有的病毒庫。從而完成了病毒庫的更新操作。

5.2 手機(jī)防盜模塊實現(xiàn)了手機(jī)自動定位回傳功能

當(dāng)手機(jī)收到安全號碼發(fā)來的指令的時候,手機(jī)會自動啟動定位功能,程序會自動啟動GPS,利用網(wǎng)絡(luò)輔助定位確定手機(jī)當(dāng)前坐標(biāo),并將坐標(biāo)點和手機(jī)所處位置名稱以短信的形式回傳至安全手機(jī),當(dāng)用戶收到定位點后利用百度坐標(biāo)拾取就可以輕松找到手機(jī)位置。這一定位和回傳過程都是在后臺完成的,前臺無任何痕跡,這也是為了保證用戶手機(jī)落入小偷手中定位過程不被小偷發(fā)現(xiàn)。

5.3 手機(jī)防盜模塊實現(xiàn)了手機(jī)數(shù)據(jù)清理功能

當(dāng)手機(jī)收到安全號碼發(fā)來的指令的時候,手機(jī)會開始抹

去手機(jī)當(dāng)前的數(shù)據(jù),這一功能的開發(fā)主要是當(dāng)用戶手機(jī)無法定位的時候最后可以操作的,這也可以最大限度的保護(hù)用戶的隱私不被盜竊。但是由于這一功能需要開啟管理員權(quán)限,同時也讓第三方軟件無法卸載本程序。如果用戶需要卸載只需要關(guān)閉管理員權(quán)限然后就可以正常卸載了。

5.4 安全防護(hù)系統(tǒng)自身安全性

系統(tǒng)自身安全性又是項目的另一個重點。安全性問題主要來自于以下兩方面:

(1)用戶密碼的安全性。如果用戶密碼被泄露,安全手機(jī)用密碼+指令就可以任意操作目標(biāo)手機(jī),所以在密碼的保存上面,程序使用MD5加密算法加密存儲至數(shù)據(jù)庫,用戶可以自己更改程序密碼。這樣安全手機(jī)只有在密碼正確的時候指令才有效。

(2)服務(wù)器端的安全性。為保證服務(wù)器安全穩(wěn)定運(yùn)行,我們將編寫好的Servlet部署在百度云平臺上,在百度提供的高性能的服務(wù)器上避免了服務(wù)器的故障和惡意入侵的問題,百度云平臺之間的項目獨(dú)立運(yùn)行又不會相互影響。云平臺的智能性也大大減少了服務(wù)器端的維護(hù)成本和難度。

6 結(jié)論(Conclusion)

本Android平臺安全防護(hù)系統(tǒng)的開發(fā)解決了目前安全軟件體積龐大弊端,目前360和金山手機(jī)助手安裝完畢就已經(jīng)達(dá)到20MB左右,小內(nèi)存的手機(jī)安裝后會導(dǎo)致手機(jī)假死或者死機(jī)的癥狀。而Android平臺安全防護(hù)系統(tǒng)安裝包只有3.9MB,開啟后運(yùn)行服務(wù)也只有4MB左右,基本對手機(jī)的運(yùn)行不會產(chǎn)生太大的影響。同樣的功能我們的可以占用更少的內(nèi)存解決,這就是我們精簡系統(tǒng)的優(yōu)勢。

然而系統(tǒng)還是有一些善待解決的問題,比如病毒特征庫的更新,比如程序執(zhí)行效率的優(yōu)化。因為安全類軟件最看重的就是病毒特征庫的數(shù)量,個人沒有辦法去獲取大量病毒特征庫特征值,所以本系統(tǒng)還是借鑒了最新版的金山毒霸的特征病毒庫才可以進(jìn)行掃描。

參考文獻(xiàn)(References)

[1] Joshua J.Drake.Android安全攻防權(quán)威指南[M].北京:人民郵電 出版社,2013.

[2] 百度百科.android(Google公司開發(fā)的操作系統(tǒng))[EB/OL]. http://dwz.cn/test_android.

[3] 百度百科.MD5加密[EB/OL].http://baike.baidu.com/view/ 1039631.htm.

[4] 李興華.Android開發(fā)實戰(zhàn)經(jīng)典[M].北京:清華大學(xué)出版社, 2012:562-583.

作者簡介:

張 楠(1992-),男,本科生.研究領(lǐng)域:軟件開發(fā)及數(shù)據(jù)庫.滕英巖(1972-),女,碩士,教授.研究領(lǐng)域:嵌入式軟件及

應(yīng)用.

猜你喜歡
定位病毒用戶
病毒
感冒病毒大作戰(zhàn)
幼兒園(2021年16期)2021-12-06 01:06:36
《導(dǎo)航定位與授時》征稿簡則
病毒,快滾開
Smartrail4.0定位和控制
感冒病毒
找準(zhǔn)定位 砥礪前行
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
凤城市| 南阳市| 马公市| 吴江市| 通辽市| 芮城县| 台北县| 澄迈县| 勃利县| 屯门区| 句容市| 叙永县| 巩留县| 余江县| 安阳县| 礼泉县| 富裕县| 永川市| 家居| 永嘉县| 乐陵市| 崇左市| 新闻| 陇川县| 华容县| 麻城市| 诏安县| 松溪县| 宣汉县| 建宁县| 石家庄市| 盐池县| 天峨县| 依安县| 凌云县| 绍兴市| 麟游县| 峡江县| 腾冲县| 宜都市| 綦江县|