鄭吉宏 王魯寧
(杭州電子科技大學(xué),浙江 杭州 310000)
基于安卓權(quán)限管理的病毒防御研究
鄭吉宏 王魯寧
(杭州電子科技大學(xué),浙江 杭州 310000)
如今,安卓操作系統(tǒng)已經(jīng)成為市場占有率第一的移動設(shè)備操作系統(tǒng)。同時,安卓系統(tǒng)上各種惡意軟件,病毒橫行。給用戶的安全造成了很大的威脅。隨著智能手機成為人們?nèi)粘I畹囊徊糠?。安卓系統(tǒng)的安全成為一個非常嚴重的問題。文章從安卓權(quán)限管理的角度談一談如何對安卓病毒進行有效的防御。
安卓;病毒;系統(tǒng);網(wǎng)絡(luò)安全
安卓操作系統(tǒng)是由谷歌公司開發(fā)的開源操作系統(tǒng)。安卓操作系統(tǒng)基于linux內(nèi)核開發(fā),廣泛的應(yīng)用于移動設(shè)備,比如平板電腦和智能手機中。截至2015年第四季,安卓系統(tǒng)在智能手機上的占有率已經(jīng)高達80.7%。成為智能手機操作系統(tǒng)的霸主。
隨著越來越多人選擇使用安卓手機。安卓手機的安全問題也變得越來越重要。由于安卓操作系統(tǒng)開放,自由的生態(tài)環(huán)境,使得任何人可以輕易的獲取并且修改操作系統(tǒng)代碼。這樣的開發(fā)環(huán)境固然能夠吸引更多的開發(fā)者加入安卓的陣營,但是這也引發(fā)了許多安全問題。其中最為突出的莫過于安卓手機上各種病毒以及勒索軟件的傳播。這里就從安卓操作系統(tǒng)自身權(quán)限管理的角度,談一談安卓系統(tǒng)上病毒擴散傳播的條件以及危害。
安卓的基本構(gòu)架很好的體現(xiàn)出linux操作系統(tǒng)所一直所提倡的分層思想。通過將操作系統(tǒng)各個層次隔離開來,減少層與層之間的依賴性。使得操作系統(tǒng)的各個部分開發(fā)可以獨立開來。
圖1 安卓系統(tǒng)結(jié)構(gòu)
安卓操作系統(tǒng)主要由4個層次組成。其中包括linux內(nèi)核,基礎(chǔ)函數(shù)庫,安卓運行時框架,以及最上層的應(yīng)用層。4個層次之間相互隔離,通過公用的api進行相互的調(diào)用。
1.1 安卓內(nèi)核層
安卓內(nèi)核基于linux 內(nèi)核開發(fā)而成。但是為了使安卓能在性能較低的移動設(shè)備上使用,谷歌對linux內(nèi)核做了許多的裁剪。刪除的許多無用的模塊。這使得安卓內(nèi)核更加的輕便。當然,由于是基于linux內(nèi)核開發(fā),所以許多l(xiāng)inux內(nèi)核的安全問題在安卓上同樣存在。
1.2 安卓基礎(chǔ)函數(shù)庫
這一層主要是一些 C/C++運行庫。它們通過安卓運行時框架為APP提供各種基礎(chǔ)服務(wù)器。主要功能包括提供標準C庫,多媒體支持庫,瀏覽器內(nèi)核,ssl連接支持庫等等。它們給開發(fā)者們提供了完善的支持。同樣,java運行所必須的Dalvik虛擬機也屬于這一層。
當然由于各個基礎(chǔ)組件都源自其他公共的開源項目。所以也給安卓系統(tǒng)的安全留下了很多不確定性。
1.3 安卓運行時框架
安卓運行時框架是開發(fā)人員最常接觸的一層。開發(fā)安卓APP所需要各種 API,包括安卓的四大組件都屬于這一層。安卓運行時框架封裝了開發(fā)APP所需要的絕大部分功能。只需要簡單的API調(diào)用。安卓APP就可以通過它來訪問系統(tǒng)底層的資源。
1.4 安卓應(yīng)用層
安卓應(yīng)用層運行的就是常用的APP了。所有安卓應(yīng)用都運行在應(yīng)用層,運行在相對隔離的Dalvik虛擬機中,受到安卓權(quán)限機制的管理。
安卓的權(quán)限管理除了基于linux的權(quán)限管理機制之外,因為安卓的應(yīng)用全部運行與Dalvik虛擬機中。所以安卓系統(tǒng)能夠?qū)?yīng)用的訪問權(quán)限做更加細致的劃分和管理。
2.1 安卓應(yīng)用層的權(quán)限管理
在默認的情況下,運行在Dalvik虛擬機中的安卓應(yīng)用是沒有權(quán)限進行網(wǎng)絡(luò)訪問,修改本地文件,讀取用戶隱私信息等操作的。如果應(yīng)用為了實現(xiàn)自己的功能需要某個權(quán)限,比如應(yīng)用需要讀取用戶的短信信息,則必須要在程序開發(fā)的時候就寫明應(yīng)用需要哪些權(quán)限。在安裝應(yīng)用的時候,安卓的應(yīng)用安裝器會檢查程序簽名中所提及的權(quán)限,并且告知用戶。只有經(jīng)過用戶的確認之后,安卓系統(tǒng)才會給予應(yīng)用相應(yīng)的權(quán)限。如果一個應(yīng)用程序企圖進行一些非授權(quán)的操作。會立即被安卓系統(tǒng)終止運行。
2.2 安卓內(nèi)核的權(quán)限管理
安卓繼承了linux的權(quán)限管理機制,但是與一般linux不同,安卓系統(tǒng)并不提供root權(quán)限用戶給用戶。普通用戶和應(yīng)用程序無法通過正常手段獲取安卓系統(tǒng)的root權(quán)限。因此一般的應(yīng)用很難修改內(nèi)核或者是一樣安卓的核心配置。安卓的root權(quán)限僅限安卓自己的核心組件才能使用,這加大了惡意軟件對操作系統(tǒng)進行破壞和監(jiān)聽的難度。
3.1 對用戶提醒不足
安卓系統(tǒng)雖然默認禁止應(yīng)用擁有高權(quán)限。但是應(yīng)用可以在安裝的時候聲明自己需要什么權(quán)限。而是否給予應(yīng)有權(quán)限的選擇權(quán)是在用戶手里的。由于各種各樣的原因。許多的用戶可能并不會對應(yīng)用安裝是申請的權(quán)限做太多關(guān)注直接同意。這就導(dǎo)致安卓應(yīng)用安裝器對應(yīng)用權(quán)限的管理形同虛設(shè)。很多情況下,及時是一個請求了很多危險權(quán)限的惡意應(yīng)用也會被輕易放行。
3.2 可獲取權(quán)限太多太高
安卓雖然默認情況下權(quán)限較低,但是應(yīng)用程序可以申請到的權(quán)限卻非常高。比如安卓應(yīng)用可以通過接受全局廣播包的方式來攔截用戶短信,或者是通過劫持Activity使得系統(tǒng)無法正常使用。這些都是因為程序可以獲得的權(quán)限權(quán)限過高導(dǎo)致的。
而且只要聲明了權(quán)限,安卓系統(tǒng)的底層文件系統(tǒng)是可以被訪問到的。而且因為所有應(yīng)用的用戶,用戶組,以及權(quán)限是一樣的。所以一個安卓應(yīng)用可以訪問到其他應(yīng)用程序的數(shù)據(jù)。而且安卓上存放數(shù)據(jù)默認的數(shù)據(jù)庫是sqlite,這個輕量級數(shù)據(jù)庫儲存數(shù)據(jù)的方式就是存儲在文件系統(tǒng)當中,而且是明文存儲信息的。這就導(dǎo)致如果應(yīng)用的開發(fā)者沒有安全意識,草率的將用戶的賬戶密碼等敏感信息存儲在 sqlite數(shù)據(jù)庫中的話。這些數(shù)據(jù)很容易就會被惡意應(yīng)用獲取到。
而且安卓操作系統(tǒng)的 server組件,可以很輕易的讓應(yīng)用運行在系統(tǒng)的后臺。這樣使得病毒可以很輕易的常駐在移動設(shè)備上,獲取個人的短信,通話記錄,甚至位置等敏感信息。
3.3 第三方殺毒軟件很難檢查
雖然安卓基于沙箱的機制可以阻止病毒獲得沒有被授權(quán)的訪問。但是這也使得三方殺毒軟件很難對系統(tǒng)進行防護。因為安卓一般情況下無法取得root權(quán)限,而且每個應(yīng)用運行在獨立的沙箱中。由于各個沙箱之間相互隔離的特點。使得殺毒軟件很難能夠?qū)ο到y(tǒng)進行全方位的保護。而且無法對其他應(yīng)用的行為做檢測。由于linux系統(tǒng)內(nèi)核和其上的應(yīng)用層完全隔離的特點,沒有獲得root的情況下殺毒軟件也沒有方法通過hook系統(tǒng)函數(shù),
雖然安卓系統(tǒng)默認不提供root權(quán)限。但是現(xiàn)在卻有各種方法獲取到安卓手機的root權(quán)限。雖然root之后可以給用戶帶來很多的便利,比如可以使用一些底層的功能。對于開發(fā)者來說,root之后的安卓系統(tǒng)可以更方便的進行開發(fā)和調(diào)試。但是root對于安卓系統(tǒng)的安全是不利的。
4.1 root的獲取方式
現(xiàn)在對安裝安卓系統(tǒng)的移動設(shè)備,獲取root權(quán)限的方法主要由有兩種。
4.1.1 使用第三方rom
由于安卓系統(tǒng)是一個開源的操作系統(tǒng),任何人都可以更改其源代碼。所以有許多個人或者是生產(chǎn)移動設(shè)備的公司會更改原生安卓系統(tǒng)的部分功能,以及添加新的功能。當然,也有一些rom提供者會將原本鎖住的root權(quán)限向用戶開放。所以用戶可以選擇這些第三方的rom包來安卓操作系統(tǒng),從而獲取root權(quán)限。
4.1.2 使用各種root軟件
現(xiàn)在互聯(lián)網(wǎng)上還有各種各樣的root軟件。他們獲得系統(tǒng)root的權(quán)限的方法是通過一些本地提權(quán)的漏洞。通過安卓內(nèi)核或者是一些以root運行的組件的漏洞,通過本地提權(quán)的方式獲取系統(tǒng)的root權(quán)限。由于安卓生態(tài)系統(tǒng)的龐大和混亂。所以很多時候,一個致命系統(tǒng)漏洞的更新可能需要很長的時間才能到達用戶的手中。對于很多第三方更改過的安卓系統(tǒng),如果用戶不主動更新??赡苡肋h一個漏洞的更新補丁永遠也不可能到達用戶手中。這就導(dǎo)致對安卓系統(tǒng)上往往存在一個甚至多個可以直接獲取到安卓root權(quán)限的高危漏洞。
4.2 root后手機缺少管控
由于安卓系統(tǒng)默認沒有root,所以刪除了一些對root的保護措施。例如普通的linux系統(tǒng)如果想要切換到root用戶,必須使用root賬戶與密碼?;蛘呤怯蓃oot用戶通過sudo命令給予普通用戶一些root的權(quán)限。但是由于安卓默認不給予用戶root權(quán)限。所以相應(yīng)的對root權(quán)限的保護與管理也都被一處了。這就導(dǎo)致重新獲得的root權(quán)限不能很好的被管理。任何應(yīng)有都可以很輕易的獲得root的權(quán)限。而病毒一旦感染了已經(jīng)root過的手機,就很容易獲得root權(quán)限,從而進入安卓內(nèi)核,更難以發(fā)現(xiàn)和清除。
4.3 本地提權(quán)漏洞引發(fā)的問題
由于一些原因,即使是國內(nèi)的安卓操作系統(tǒng)無法收到來自谷歌官方的更新推送。這就導(dǎo)致許多高危漏洞無法及時的被修補。這就導(dǎo)致國內(nèi)很多移動設(shè)備上運行的安卓系統(tǒng)還是不安全的。而且因為安卓在發(fā)布漏洞補丁一段時間之后,漏洞的詳情和利用方式就會公開。所以對于老版本安卓的 root漏洞的利用方法其實是很容易就能在互聯(lián)網(wǎng)上搜索到的。所以對于惡意軟件或者病毒制作者來說,完全有能力在自己的病毒中內(nèi)置本地提權(quán)漏洞的利用代碼。從而將自己的權(quán)限提升到root。
一旦病毒能夠提權(quán)到root等級,那么安卓系統(tǒng)的所有權(quán)限管理就會全部失效。病毒能夠很輕易的監(jiān)控用戶的通話,短信等信息。甚至能夠讀取一些金融交易軟件的機密數(shù)據(jù)。
雖然安卓的權(quán)限管理存在一些問題,但是只要合理的配置。就可以杜絕大部分的隱患。通過各種權(quán)限的合理設(shè)置,以及一些權(quán)限管理的APP。就能夠防止病毒的入侵。
5.1 安卓應(yīng)用層面的權(quán)限管理
一般的安卓應(yīng)用都是用java編寫,然后運行在Dalvik虛擬機中。剛才提及過,Dalvik虛擬機對程序APP的敏感調(diào)用,比如讀寫磁盤文件,網(wǎng)絡(luò)請求等都會做權(quán)限檢查。所有需要的權(quán)限都需要在安裝的時候賦予。所以在應(yīng)用安裝的時候就需要對應(yīng)用需要的權(quán)限做嚴格的審查。比如收發(fā)短信,撥打電話等權(quán)限就不應(yīng)該輕易的給予。
而且隨著技術(shù)的發(fā)展,現(xiàn)在的安卓操作系統(tǒng)已經(jīng)能夠做到動態(tài)的檢查程序的敏感操作并且告知用戶了。在安卓4.3版本之后,google給安卓增加了動態(tài)權(quán)限管理的功能。以前的安卓系統(tǒng),對于應(yīng)用請求的權(quán)限要不全部同意,要不就不允許安裝。但是在新版的安卓操作系統(tǒng)中,已經(jīng)實現(xiàn)了在應(yīng)用運行過程中試試的檢查程序的權(quán)限使用情況。并且能夠根據(jù)預(yù)先設(shè)定好的設(shè)置來覺得是放行,還是禁止應(yīng)用的權(quán)限請求。或者是提示用戶是否允許。
這就大大緩解了安卓應(yīng)用安裝時候的對高危權(quán)限的提醒不足的問題。而且可以讓用戶選擇給予應(yīng)用哪些權(quán)限。這在一定程度上緩解的安卓市場上一些惡意廣告應(yīng)用的推廣和傳播。
5.2 非root用戶阻止病毒的危害
由于一些原因,原生的安卓系統(tǒng)沒有辦法得到及時的更新推送。不過好在安卓開放的政策。國內(nèi)的手機廠商們都紛紛推出了自己的修改的安卓rom。這些系統(tǒng)在美化原生系統(tǒng)界面的同時,也承擔起了對系統(tǒng)及時更新,修復(fù)漏洞的工作。用戶可以選擇可靠的第三方公司發(fā)布的安卓系統(tǒng)??梢栽谝欢ǔ潭壬献柚挂驗橄到y(tǒng)更新不及時而導(dǎo)致的安全問題。
5.3 對已root系統(tǒng)的root權(quán)限管理
由于很多原因,許多的用戶最終選擇的解開google對安卓系統(tǒng)root權(quán)限的鎖定。正如前文所述,已經(jīng)root的安卓系統(tǒng)有很多的安全隱患。所以對root權(quán)限需要進行更加嚴格的管理。
目前普遍的做法是直接對安卓的內(nèi)核進行修改,在內(nèi)核層面上阻止任何應(yīng)用程序?qū)ο到y(tǒng)關(guān)鍵目錄,即系統(tǒng)根目錄下的system目錄進行修改。由于這個操作是在內(nèi)核層面上完成的,在系統(tǒng)自舉啟動之后,system的可寫權(quán)限就被鎖死。
由于system被鎖死,只有在安裝安卓系統(tǒng)的時候就付帶的一些應(yīng)用才可能存在與system中,而且不能被修改。大多數(shù)提供root權(quán)限的rom的提供商都會在system目錄中安裝一些管理root權(quán)限的工具。系統(tǒng)的root權(quán)限都通過這些工具才能夠取得,再加上linux內(nèi)核對root權(quán)限的管理方案。通過這樣的方法,讓只有被用戶認可的應(yīng)用程序才能夠獲得系統(tǒng)的root權(quán)限。保證系統(tǒng)的安全性。
安卓開源的操作系統(tǒng),開放的生態(tài)環(huán)境使得越來越多的移動設(shè)備廠商使用了安卓系統(tǒng)。當然開放的環(huán)境也導(dǎo)致了更多的安全問題。安卓權(quán)限管理上有很多的不足之處,給予了普通應(yīng)用程序過多權(quán)限是一把雙刃劍。為了管理好這些敏感的權(quán)限。需要各種第三方安全軟件的協(xié)助和設(shè)置。但是只要控制得當,就能夠杜絕各種病毒,惡意軟件的侵害。
[1] 郭霖.第一行代碼—Android[M].北京:人民郵電出版社, 2014.
[2] 豐生強.Android軟件安全與逆向分析[M].北京:人民郵電出版社,2013.
[3] 李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2013.
Virus defense research based on Android rights management
Today, Android operating system has become the market share of the first mobile device operating system. At the same time, a variety of malicious software and virus are rampant on Android system. They are a big threat to the safety of the user. As smart phones becoming a part of daily life, the security of Android systems has become a very serious problem. This article from the perspective of Android rights management to talk about how to effectively defend the Android virus. It is divided into parts: the basic framework of the Android system, the general application of the authority management, the authority management negligence, the root hazard, through the authority management to the virus defense, rights management advantages and disadvantages of the six parts of the discussion. It will briefly explain the Android system architecture and authority management rules, as well as the resulting problems, and finally put forward some solutions and methods, designed to further enhance the safety of Android systems.
Android; virus; system; network security
TP309
A
1008-1151(2016)09-0020-03
2016-08-10
鄭吉宏,男,杭州電子科技大學(xué)學(xué)生,研究方向為計算機病毒分析與防御;王魯寧,男,杭州電子科技大學(xué)學(xué)生,研究方向為網(wǎng)絡(luò)編程。