欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android權(quán)限機制帶來的一些安全問題介紹

 更新時間:2015年04月07日 11:38:06   投稿:junjie  
這篇文章主要介紹了Android權(quán)限機制帶來的一些安全問題介紹,本文講解了權(quán)限機制的缺陷和不足、樹立權(quán)限意識、越過權(quán)限機制等內(nèi)容,需要的朋友可以參考下

Android引入了權(quán)限機制最初的出發(fā)點是為了通過權(quán)限策略來嚴格控制和處理安全問題,可參見:下面兩篇文章,但關(guān)于這個Android權(quán)限的機制仍然存在一些很小但不容忽略的問題,另外正所謂道高一尺魔高一丈,仍然存在一些可以繞過權(quán)限的方法。本文旨在分析權(quán)限機制的一些缺點和不足,并不能以此文章作為非法應(yīng)用的參考書。
Android Permission權(quán)限機制引子

Android Permission權(quán)限機制的具體使用

權(quán)限機制的缺陷和不足

(1) 應(yīng)用程序可以自由地命名一個新的權(quán)限,無須遵循一定的命名規(guī)則和限制,期盼用戶對不同應(yīng)用程序(包括未曾安裝過的程序)所使用的任意給定的權(quán)限名稱保持警覺是不夠明智的。
這句說的比較費勁,其實就是android對一個新的應(yīng)用程序(Custom Permission App)聲明權(quán)限時,并未規(guī)定權(quán)限的名稱的命名規(guī)則和限制,無規(guī)則不成方圓,這不規(guī)則的名稱多少會引起一些問題的。

(2) 權(quán)限一經(jīng)被授權(quán)給應(yīng)用程序后,在應(yīng)用程序的生命期間,它將不會被移除,即使聲明此權(quán)限的源程序被刪除。
一個聲明權(quán)限的應(yīng)用程序(Custom Permission App)被刪除之后,并沒有一些機制去通知哪些使用該權(quán)限的應(yīng)用(Custom Permission Client),而是在使用該權(quán)限的應(yīng)用(Custom Permission Client)運行到指定位置時需要使用權(quán)限是才報錯。

(3) 一個系統(tǒng)內(nèi)兩個不同的權(quán)限可以聲明相同的名字。

(4)權(quán)限不足時,Log會報,比如:

復(fù)制代碼 代碼如下:

03-01 15:02:31.488: E/AndroidRuntime(565): java.lang.SecurityException: Permission Denial: starting Intent { cmp=com.example.custompermission/.MainActivity } from ProcessRecord{44ffc5e0 565:com.example.customtest/10043} (pid=565, uid=10043) requires custom.permission.STARTACTIVITY
03-01 15:02:31.488: E/AndroidRuntime(565): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

所以別有用心的開發(fā)者會想通過這個途徑去增加一定的權(quán)限(其他App聲明的權(quán)限),然后去call這個聲明權(quán)限的App。

樹立權(quán)限意識

劈開上面的缺陷不談,我們?nèi)匀粦?yīng)該需要重視一款應(yīng)用的權(quán)限,畢竟谷歌在Android權(quán)限方面已經(jīng)做了很大的努力。

(1)用戶初判斷

用戶可以通過下載的軟件來判斷權(quán)限是否過分,比如一款輸入法就不應(yīng)有發(fā)送短信的權(quán)限,一些記單詞的程序就不應(yīng)該有發(fā)送短信,查看聯(lián)系人和短消息的權(quán)限。用戶需要在安裝應(yīng)用程序前,需要有意識的注意每一個app的權(quán)限請求,Android會把一些high risk權(quán)限明顯列出來而忽略一些比較low risk的權(quán)限,所以用戶可以只看這些列出來的權(quán)限,并做到能去甄別它。

(2)第三方軟件/ROM

可以通過第三方軟件來限制權(quán)限,比如App Shield,這是是一個需要付費的Android應(yīng)用,其原理是修改應(yīng)用程序的apk安裝包,刪除其中AndroidManifest.xml文件內(nèi),用于聲明權(quán)限的對應(yīng)”Android.Permission.*”條目,然后再用一個公開的證書對安裝包重新簽名(需要允許”未知源”),這樣一來,應(yīng)用程序就不會向系統(tǒng)申請原先所需的權(quán)限。當(dāng)應(yīng)用運行至相應(yīng)的流程時,系統(tǒng)將直接拒絕,從而達到用戶控制權(quán)限的目的。對于已安裝的應(yīng)用,AppShield也會按照同樣方法制作好apk安裝包,然后讓用戶先卸載原始的應(yīng)用,再安裝調(diào)整過的應(yīng)用。除了該應(yīng)用數(shù)字簽名外,用戶可以隨時通過執(zhí)行同樣的流程,將吊銷的權(quán)限恢復(fù)。當(dāng)然第三方ROM也可以做到,比如MIUI在軟件用到某一個權(quán)限時就會主動攔截并詢問用戶是否授予權(quán)限。

越過權(quán)限機制

可是–目前仍有幾種方式可以越過權(quán)限機制,從而擁有不需申請權(quán)限的方式下使用需要申請權(quán)限的權(quán)限。

(1) root過的設(shè)備靜默安裝

如果你的手機已經(jīng)被root過了,那么某些App就可以靜默安裝在你的手機里。
靜默安裝是指App在安裝時不會有安裝界面提示用戶該App的權(quán)限等,而是直接將其安裝在你的手機中,這樣用戶就會失去了最起碼的通過權(quán)限去鑒別的機會;這其實不算越過權(quán)限機制,但是這些被靜默安裝的程序,不會展示權(quán)限就相當(dāng)于沒有任何權(quán)限了。

(2) 使用相同sharedUserId的應(yīng)用程序

首先簡單介紹下:sharedUserId
默認Android會給每個APK都分配一個單獨的用戶空間,即每個應(yīng)用程序都有個UID,只有帶著此UID,才能存取該UID所涵蓋的有關(guān)資料。
所以如果AP-1與AP-2的UID不同,則在預(yù)設(shè)(Default)情況下,雙方都無法讀取對方的數(shù)據(jù)。這種分而治之的方式,可以減輕黑客軟件的惡意傷害數(shù)據(jù),提升手機的安全性。
但是如果兩個應(yīng)用程序都被簽上了相同的UID即使用sharedUserId關(guān)鍵字。這個例子需要使用兩個程序來配合使用,這兩個程序在AndroidManifest.xml文件中都會聲明一個相同的sharedUserId,比如下面:

再回到AP-1和AP-2上來,假設(shè)AP-1是一個看上去比較正規(guī)的程序,只有read contacts的權(quán)限,由于比較正規(guī)的外表,用戶可能信任并安裝了,后來用戶一段時間后安裝了AP-2,這個AP-2只有連接Internet的權(quán)限,但卻可以輕松的將AP-1存儲到數(shù)據(jù)庫里面的聯(lián)系人信息輕松到上傳到Internet上了。

(3) 破解接受廣播接收器(receiver)的程序

這個是用的比較多的一種方式,同樣需要2個或者多個應(yīng)用程序來配合。比如病毒開發(fā)者會分析到目前市面上比較流行的一些短信應(yīng)用,并通過一定的技術(shù)反編譯代碼、JAVA反射等技術(shù),總之能找到一個能讓正常應(yīng)用發(fā)送短信的receiver,然后通過自己的病毒應(yīng)用去發(fā)送廣播,以達到移花接木之目的。

相關(guān)文章

最新評論