




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于權限的gvaldrous協議的設計與實現
0現有的權限授予機制大量的應用程序推動了移動和平面計算機等嵌入式設備的發展。在眾多移動平臺中,由Google設計的Android操作系統以其出眾的開放性受到廣大用戶和手機制造商的青睞。隨著應用程序及開發者數量的迅速上升,Android平臺的安全隱患也受到了極大關注。頻頻發生的個人信息泄露和惡意扣費事件使得Android平臺現有的訪問控制策略受到了諸多質疑和詬病。Android采用了一種基于權限的訪問控制策略判斷應用程序某一行為是否是惡意行為往往依賴該行為發生的上下文。例如,對于一款游戲軟件而言,讀取用戶通訊錄并通過網絡連接發送出去可以被認為是惡意行為;而對于通訊錄同步軟件而言,這卻是個正常的行為。因此,權限授予過程需要用戶參與。然而現有的權限授予機制強制要求用戶在安裝時做出授權決定,而此時用戶可能無法得知應用程序會如何使用該權限,難以做出正確判斷。例如,瘋狂的小鳥(AngryBirds,一款流行的游戲應用程序)需要“發送短信”的權限以支持通過短信購買高級道具的行為,而用戶在不知曉應用程序將在何時何地使用“發送短信”的權限前,幾乎不可能做出正確判斷。因此,如何在保障安全性和可用性的基礎上為Android設計一種權限授予機制就顯得十分重要。從安全性角度出發,這種權限授予機制需要保證用戶可以在應用程序使用可疑權限前做出授權決定;從可用性角度出發,系統所需的用戶參與頻率要盡可能低。現有的權限授予方法在解決上述問題上存在明顯的缺點:(1)Android及其擴展框架本文設計并實現了GrantDroid:一種支持Android權限即時授予的方法。它覆蓋了Android平臺上所有的權限使用點,并攔截所有應用程序對這些權限的使用。對于任意一次權限使用請求,GrantDroid基于一套惡意應用程序權限使用特征判斷對該應用程序授權是否存在安全隱患。如果對用戶存在潛在的安全威脅,則告知用戶此次權限使用請求的相關信息和安全隱患,以幫助用戶即時做出是否授權的決定;對于其他不會造成安全隱患的權限使用請求,系統自動完成授權。GrantDroid確保應用程序使用自動授予的權限時不會引發安全問題。為了減少不必要的用戶參與以提高系統的可用性,本文推導出惡意應用程序所必備的權限使用特征,只有當應用程序對權限的使用符合其中至少一項特征時,才需用戶進行確認,否則會被自動授權。為了驗證惡意程序權限使用特征的有效性和完整性,我們對150個真實惡意應用進行了功能性測試。測試結果表明沒有一款惡意應用程序能夠自動獲得完成其惡意行為所必須的所有權限。此外,我們從Android官方應用市場1背景和相關工作1.1)所授權權限的執行Android是一款基于Linux內核的移動平臺操作系統。它定義了100多個權限來保護系統內部的敏感資源Android為每個應用程序維護一個已授權權限集合,當應用程序使用“Android權限”時,如訪問GPS、訪問通訊錄、發送短信等,Android檢測相應的權限是否在該應用的已授權權限集合中,如果不在則拒絕此次權限使用。應用程序請求使用“內核權限”時,如寫文件、使用攝像頭、創建網絡連接等,由Linux內核執行權限檢查。“內核權限”對應的資源由Linux內核管理并只允許應用程序通過系統調用的方式訪問,所以應用程序可以使用JavaAPI、AndroidAPI,甚至可以編寫本地代碼直接觸發系統調用完成訪問。Android只能依賴底層的Linux系統控制應用程序對它們的訪問。Android利用Linux用戶組機制完成對“內核權限”的保護,約定何種權限對應何種用戶組,因而形成了一個內核權限-用戶組-內核資源的映射關系。如果用戶在安裝時授予應用程序某“內核權限”,Android則將該應用程序對應的uid與該權限所對應的用戶組綁定,這樣在應用程序啟動時就具備了使用該權限的能力。1.2限模型的完善和對權限授予方式的改進現階段對Android訪問控制模型的研究主要包括對Android權限模型的完善和對權限授予方式的改進兩個方面。Ongtang等人認為現有Android權限模型只能對Android的系統資源進行保護,不能很好地保護應用程序資源,因而對權限模型進行了擴展Kirin2目標和威脅模型2.1支持系統及應用程序為了解決Android當前的權限授予機制存在的隱患,我們需要一種“即時”的權限授予機制,即用戶對應用程序的授權應發生在應用程序使用權限的時刻。由于應用程序對權限的使用十分普遍,頻繁的用戶顯式授權將大大降低系統的可用性和有效性,因此需要減少不必要的用戶交互。此外,Android官方應用市場就已擁有近百萬數量的應用程序,對現有應用進行大規模修改或改變現有編程模型對Android平臺而言都不切實際。因此提出的解決方案必須能夠兼容現有的Android應用程序。綜上所述,我們要基于Android平臺設計并實現一種新的權限授予方法,需具備以下四個特點:(1)兼容現有應用,(2)即時,(3)低干擾(極少量的用戶交互),(4)使應用遵循最小特權原則2.2android惡意程序為了更清晰地描述本方案的目標,我們提出了以下威脅模型:針對本方法的攻擊者是一個第三方應用程序,而Linux內核及Android平臺本身值得信任且不會被攻陷。發起攻擊的應用程序可以利用Android編程模型執行任意邏輯。對于本方法而言的一次成功攻擊被定義為:一個第三方應用程序在未經用戶顯式授權的情況下成功完成了惡意行為。該威脅模型并不涉及用戶誤將某惡意權限使用請求當作正常權限使用請求的問題,例如當一個惡意短信扣費軟件申請使用發送短信的權限時,用戶誤以為這是該軟件的正常邏輯。Android的惡意應用在代碼層面上與普通應用并無區別。一些現有的Android惡意程序檢測工具3格林威治的設計和實現3.1)直接授予應用為了實現上述目標,我們基于Android設計并實現了一種低干擾的權限即時授予方法GrantDroid。GrantDroid為用戶提供了對存在安全隱患的權限使用進行即時授權的能力,在應用程序使用可疑權限前請求用戶確認。此外,用戶在安裝時可將部分權限直接授予應用,也可在使用過程中通過設置界面動態調整各個應用的權限。例如,在安裝QQ等即時通訊類應用程序時,可以在安裝時直接授予其訪問互聯網的權限,而對于其他尚不清楚其用途的權限可以等到該權限真正被使用前再做出決定。權限的即時授予需要攔截應用程序對所有權限的使用請求。例如,應用程序開發人員使用權限發送一個HTTP請求時,既可以通過Android平臺API如HttpClient類,也可以通過JavaSocket或ServerSocket類,甚至可以通過JNI直接調用socket相關的系統調用。GrantDroid必須能夠攔截所有對權限的使用并確保應用程序無法繞過GrantDroid直接使用權限。應用程序對權限的頻繁使用會使得GrantDroid需要用戶頻繁做出顯式授權,這會給用戶造成巨大負擔繼而降低系統的可用性。我們采用安全需求工程3.2)應用程序安裝,使用攔截模塊如圖1所示,GrantDroid的架構擴展了Android基礎架構,主要由三個模塊組成:(1)應用程序安裝模塊,用于提供安裝時部分權限授予的功能;(2)權限使用攔截模塊,用于攔截應用程序對所有權限的使用;(3)決策模塊,用于決定系統如何處理這些權限使用請求:放行、拒絕和要求用戶顯式授權。1(安裝應用程序的模塊)應用程序安裝模塊為用戶提供在安裝應用時將部分權限直接授予應用的功能。與此前已有的部分權限授予方法2不同種類權限的攔截權限使用攔截模塊旨在攔截應用程序對所有權限的使用請求。GrantDroid在權限使用前會將權限使用請求重定向到一個權限使用監視器。為了能夠完全覆蓋所有可能的權限使用方式,GrantDroid在不同種類的權限被使用時采取不同的攔截方式。對于Android權限,Android會在權限被使用時檢查應用程序是否具備相應權限。只需在權限檢查點處將權限請求重定向到權限使用監視器,即能完全覆蓋所有對Android權限的使用請求。然而內核權限由Linux的用戶組機制保護,位于Android框架的控制范圍之外,因此對這些權限使用請求的攔截和重定向就必須在內核層實現。GrantDroid設計并實現了一個系統調用攔截器負責對所有與內核權限相關的系統調用進行攔截并重定向到權限使用監視器,從而攔截所有對內核權限的使用請求。3資源訪問請求的獲取決策模塊決定了GrantDroid將如何處理每一個被攔截的權限使用請求。在GrantDroid中,每個應用程序所申請的任一權限都有三個可能的狀態:(1)已授權(對該權限的使用將被直接放行),(2)已阻止(對該權限的使用將被直接拒絕),(3)待定(對該權限的使用將請求用戶的確認)。一個權限管理器負責處理所有的狀態轉換并持久化存儲權限狀態信息以保證設備重啟后信息不會丟失。為了減少不必要的用戶參與,當應用程序對權限的使用不會帶來安全隱患時,決策模塊將該權限直接設置為已授權狀態。而一次權限的使用是否會帶來安全隱患則由一個決策器進行判斷,該決策器將權限使用請求與惡意程序權限使用特征進行比對,符合特征的權限使用請求將被認為可能會帶來安全隱患。上述三個主要模塊構成了GrantDroid的基本架構,圖1展示了GrantDroid如何處理資源訪問請求。在系統運行過程中,當一個應用程序試圖使用某權限對敏感資源進行訪問時(第1步),該權限使用請求會被攔截并重定向到權限使用監視器(第2步),權限使用監視器求助決策模塊決定如何處理這次請求(第3步)。權限管理器根據權限使用監視器提供的權限信息和應用信息查詢相應的權限狀態(第4步),并將狀態發送至決策器(第5步)。如果相應的權限狀態是已授權或已阻止,則決策器將直接通知權限使用監視器同意或拒絕本次請求。如果相應的權限狀態是待定,則決策器需要查詢惡意應用程序權限使用特征集合,以確定本次請求是否符合某項特征。如果不符合任何一項特征,則通知權限使用監視器放行,并更新權限狀態信息。否則將通知權限使用監視器對本次訪問請求用戶確認(第7步)。權限使用監視器向用戶彈出交互窗口以提供本次權限使用請求的詳細信息以及可能存在的安全隱患,并給予用戶四種即時授權選項:授權一次、永久授權、阻止一次和永久阻止。如果用戶選擇授權一次或永久授權,權限使用監視器則允許應用使用該權限;如果用戶選擇了永久授權或永久阻止,權限使用監視器還將通知權限管理器更新權限狀態信息(第8步)。3.3狀態轉換的限制在原版Android中,用戶同意安裝一個應用程序,就意味著該應用程序永久獲得了它申請的所有權限。一個程序所申請的權限只有一種狀態即已授權。而GrantDroid作為一種即時授權方法,允許用戶在安裝應用時授予其部分權限,在應用程序使用權限時即時授權,在使用系統過程中動態調整各應用程序所具有的權限。因此在GrantDroid中一個程序所申請的權限有多種狀態。GrantDroid中應用程序的權限有三種基本狀態:已授權、已阻止和待定。這三種狀態之間的狀態轉換受到如下限制:(1)當且僅當應用程序至少嘗試使用一次某權限時,該權限才能從已阻止或待定態轉為已授權態;(2)處于已授權態的權限將在一段時間后自動轉換為待定態。第一個限制用于防止用戶將某些不必要的權限誤認為必要而授予應用,導致違反最小特權原則。如果應用從未試圖使用過某權限,GrantDroid將阻止用戶在運行時對應用授予該權限。第二個限制用于防止用戶將不常用的權限誤認為常用。如果應用一段時間內未使用某權限,GrantDroid會將其回收。為了實現這兩個限制,需對已有的三種基本狀態進行擴展。我們結合應用程序是否嘗試使用過該權限,擴展出6個狀態,狀態之間的相互轉換如圖2所示。處于“已阻止/未使用”狀態及“待定/未使用”狀態的權限不能通過動態調整轉換為“已授權”狀態。當權限處于“已授權/已使用”狀態時才能被應用程序直接使用。而當應用程序嘗試使用處于“未使用”狀態的權限時,權限會立即自動轉變為相應的“已使用”狀態。處于“已授權/已使用”及“已授權/未使用”狀態的權限在長時間未被應用程序使用后,會自動轉變為“待定/未使用”狀態。例如,當用戶未在安裝時授予新浪微博訪問攝像頭的權限時,權限進入“待定/未使用”狀態,當應用請求使用攝像頭時,權限立即進入“待定/已使用”狀態。如果決策模塊認為該使用請求無害,則直接自動完成授權,權限也相應進入“已授權/已使用”狀態。否則權限使用監視器會要求用戶即時做出決定。此外,用戶在系統使用過程中可以通過GrantDroid的配置界面動態地對任意應用的各個權限狀態做出符合限制的調整。3.4android平臺機制如何攔截應用程序對內核權限的使用是GrantDroid需要解決的一大技術難點。內核權限的檢查不在Android框架控制范圍之內,它們被Linux內核所保護并僅能通過系統調用的方式使用。如圖3所示,GrantDroid設計了一個系統調用攔截器,可以將所有第三方應用程序對相關系統調用的訪問進行攔截并重定向至權限使用監視器。由于對內核的修改會對包括系統進程在內的所有進程產生影響,所以GrantDroid只修改了bioniclibc(bioniclibc是Google為Android特制的BSD標準C庫的衍生版本)中的系統調用包裝函數,并通過修改LD_LIBRARY_PATH強制第三方應用程序使用這一版本的函數庫,而其他系統進程將使用原版函數庫,從而避免對內核的修改。當第三方應用程序通過各種方式訪問系統調用包裝函數時,訪問會被重定向至權限使用監視器。權限使用監視器將與權限管理器和決策器決定如何處理本次請求,并將決策結果告知系統調用包裝函數。由于系統調用攔截器位于內核之外,第三方應用程序依然可以通過軟中斷的方式繞過攔截器使用內核權限。通過修改Android運行時環境,GrantDroid會在第三方應用程序加載本地代碼庫時對類庫進行掃描,以確保其中不包含軟中斷指令SWI,從而保證了攔截器的可靠性。我們對應用市場的大量應用程序所帶的本地代碼庫進行了掃描,并未發現任何一款應用直接使用了軟中斷指令,因此GrantDroid對于系統調用攔截器的實現并不會對現有應用造成影響。表1列出了Android平臺上的所有內核權限。例如,對于一個申請了互聯網訪問權限的應用程序被用戶同意安裝后,Android為該應用程序分配一個唯一的uid,并將該uid與inet用戶組綁定。當系統每次啟動該應用時,將會指定進程的uid和所在的用戶組,這樣應用程序就可以順利創建socket并訪問網絡。由于GrantDroid已經確保了第三方應用程序無法繞過系統調用攔截器而直接訪問內核資源,因此可以將應用程序對應的uid加入相應的用戶組。例如,某應用程序申請了INTERNET和CAMERA權限,則無論用戶是否同意授予,都將在創建應用程序進程時,添加inet和camera到該進程所在的用戶組中,而具體的訪問控制將由系統調用攔截器重定向至決策器進行管理。3.5用戶資源的預處理生成一個完整正確的惡意應用權限使用特征集合可以提高系統易用性、減少不必要的用戶交互并保證系統安全性。我們采用安全需求工程的方法來推導惡意應用程序所必備的權限使用特征。首先,通過分析Android平臺的特征識別出用戶在Android設備中所擁有的資源,如手機短信、位置信息、通訊錄和攝像頭拍攝的影像等。在識別出所有的用戶資源后,還需進一步分析每一種資源是如何被第三方應用程序濫用,進而影響系統的私密性、完整性和可用性,從而確定出針對每一種資源存在的安全威脅。例如,“一個惡意應用可以讀取手機短信并將其通過互聯網發送出去”,隨后推導出制造安全威脅必須具備的權限特征:“一個惡意應用程序同時具備READ_SMS和INTERNET的權限時可以造成安全威脅”。安全需求工程的推導過程需要一定程度的人工參與,可能會造成特征集合的不完整。為了驗證推導出的特征集合的完整性,我們驗證了MalwareGenomeProject由于良性應用可能具備與惡意應用完全相同的行為,如一個手機備份軟件可能會讀取手機短信并通過互聯網同步到服務器。因此,生成的特征集合不能作為區分惡意應用和良性應用的標準。該特征集合只能確保不符合特征的應用皆為良性應用,而不能保證符合特征的都是惡意應用,但這有效減少了用戶不必要的顯式授權。4實驗與性能的評估4.1控制惡意應用我們采用了由文獻[11]提供的150個真實惡意應用程序進行功能性測試,驗證惡意應用程序在GrantDroid上能否獲得完成其惡意行為所必備的所有權限,以評估GrantDroid的有效性。實驗使用MonkeyRunner自動化隨機UI測試并不能覆蓋程序的所有執行路徑。為了判斷自動化測試是否促使惡意應用做出惡意行為,我們人工標記出這些應用程序為了做出惡意行為所必須使用的權限,并在實驗過程中監視應用程序對這些權限的使用。如果應用程序請求使用了所有標記的權限,就認為自動化測試已完全覆蓋該應用。對于測試無法完全覆蓋的應用程序需要進行人工測試。實驗中有121個惡意應用的測試時完全覆蓋。實驗結果表明GrantDroid在防止第三方應用的惡意行為上十分有效。所有惡意應用樣本都無法自動獲得完成其惡意行為所必須的權限。其中147個應用需要顯式的用戶授權,而剩余3個應用程序則是命令與控制型惡意應用。命令與控制型惡意應用需要從服務器端接受命令,根據不同的命令執行不同的惡意行為,因此在測試過程中難以觸發其惡意行為。通過人工分析這三個應用接收到服務器端命令后的行為,最終確認其在GrantDroid上無法在未經用戶顯式授權的情況下完成惡意行為。4.2即時授權頻率GrantDroid發現存在安全隱患的權限使用請求時會要求用戶即時授權。為了評估用戶參與顯式授權對系統可用性的影響,我們測試了使用過程中用戶顯式授權的頻率。由于GrantDroid兼容現有Android應用,我們從Android官方市場下載了1378個應用程序,并在決策模塊中記錄需要用戶即時授權的次數。實驗針對每個應用,通過MonkeyRunner在該應用范圍內觸發1萬次用戶操作。對于即時授權請求,系統自動代表用戶做出決定:隨機選擇授權一次或阻止一次中的任意一種,而不是永久授予或永久阻止。從而統計出最壞情況下產生的即時授權頻率。測試結果表明GrantDroid需要的用戶顯式授權頻率非常低,對系統可用性的影響極小。分屬13個類別的1378個應用共需要1842次即時授權,平均每個應用僅需1.33次。平均每7500余次用戶操作才需要一次用戶顯式授權。而從另一個角度看,平均每290次權限使用才需要1次即時授權。這說明惡意程序權限使用特征集合幫助系統減少了99%以上的即時授權需求。4.3不同權限使用差異GrantDroid引入的性能開銷主要來自權限使用攔截模塊和決策模塊。在GrantDroid中,對于不同類型的權限使用請求,決策模塊的處理邏輯完全相同,而攔截模塊的處理方式則不同。對內核權限的使用,會被系統調用攔截器攔截并重定向到處于另一個進程的權限使用監視器,這會比對Android權限的使用帶來更多的性能開銷。測試通過綜合性能開銷和最差情況性能開銷對GrantDroid的性能進行評估。(1)ntdrod的綜合性能測試使用常用的三個性能測試集來評估Gran
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品采購藥庫管理制度
- 藥店中藥入庫管理制度
- 藥店庫房貨位管理制度
- 論述人力資源管理制度
- 設備創建流程管理制度
- 設備安裝進場管理制度
- 設備施工安全管理制度
- 設備點檢編制管理制度
- 設備維修項目管理制度
- 設備需求清單管理制度
- 2024北京朝陽區五年級(下)期末數學試題及答案
- 《商場促銷活動策劃》課件
- 多模態成像技術在醫學中的應用-全面剖析
- 郭秀艷-實驗心理學-練習題及答案
- 員工測試題目及答案
- 汽車點火考試題及答案
- 2024年湖南學考選擇性考試政治真題及答案
- 《用電飯煲蒸米飯》(教案)-2024-2025學年四年級上冊勞動魯科版
- 公司欠款清賬協議書
- 醫院培訓課件:《十八項核心醫療制度解讀》
- 七年級英語下冊 Unit 1 Can you play the guitar教學設計 (新版)人教新目標版
評論
0/150
提交評論