Android存取控制系統測試與評估

來源:互聯網
上載者:User

5.1實驗方案

通過以上章節,本文闡述了目前Android平台上的惡意軟體以“隱私竊取”和“惡意計費”類為主,本研究課題存取控制的目標也正是阻止惡意軟體“隱私竊取”和“惡意計費”的行為,因此,本實驗方案選取良性軟體和惡意軟體,分別針對撥打到電話、傳送簡訊、連網、訪問sd卡、訪問通訊錄、查看簡訊行為進行測試和分析。測試案例選取百度通訊錄、360通訊錄、酷狗音樂、DroidDream,實驗環境為Ubuntu10.04和Android4.0模擬器以及相應的goldfish核心。

5.2實驗過程

1. 測試360通訊錄

360通訊錄既可以打電話也可以發簡訊,因此為360通訊錄分配“game”角色,由於“game”角色不能打電話、發簡訊,因此,當開啟360通訊錄時,如果這些功能都不能使用則符合預期結果。測試如下所示:

圖5.1360通訊錄測試1-不能查看簡訊和通訊錄

2. 測試百度通訊錄

百度通訊錄功能和360通訊錄相似,在此,為百度通訊錄分配“contact”角色,那麼如果它能夠打電話和發簡訊,則符合預期效果。測試如下所示:

3. 測試酷狗音樂

酷狗音樂是可以讀取sd卡音樂檔案進行播放,為此,給酷狗音樂分配“mediaplayer”角色,但不把它設定讀寫sd卡角色,那麼如果它不能播放sd卡音樂檔案則符合預期效果。測試如下:

4. 測試DroidDream—Advanced File Manager和Super Ringtone Maker

DroidDream[18]是一款著名的Android平台上的惡意軟體,它的最大特徵之一是後台連網,泄露使用者隱私。Advanced File Manager和SuperRingtone Marker是DroidDream系列的兩款款惡意軟體,前者它用於檔案管理,可以訪問sd卡,後者用於鈴聲製作程式,可以訪問Internet。建立角色“Malware”,並只給該角色一個訪問網路攝影機的許可權,將“Malware”角色指派給AdvancedFile Manager和Super Ringtone
Maker。測試如下:

5.3實驗分析

1. 360通訊錄測試分析

由於為360通訊錄分配了“game”角色,而此角色關聯的smack規則已經禁止擔任“game”角色的App撥打到電話、傳送簡訊、訪問通訊錄等行為,因此無法用360通訊錄查看通訊錄、簡訊等內容。為使用“adb shell”查看/smack/load裡內容:

圖5.8Android模擬器啟動後smack/load中的smack規則

360通訊錄的uid為10034,從可以看出smack規則“10034 1001 -”已經禁止它與radio進程通訊,因此360通訊錄不能傳送簡訊。若使用360通訊錄傳送簡訊,360通訊錄會提示“發送失敗”的資訊,查看Android的logcat會有如下的資訊:

從可以看出,smack標籤是“10034”的360通訊錄進程無法在BinderDriver中與radio通訊,那麼360通訊錄進程就無法實現發簡訊。

當使用者在鍵盤上輸入不是通訊錄裡號碼時,出現撥號結束的畫面,這是因為本課題已經對radio進行存取控制,撥打或發送不是通訊錄中號碼的打電話和發簡訊的行為都被阻止。當撥打到電話時,出現了撥號介面,這是因為儘管“10034 1001 -”被寫入/smack/load檔案,但此時撥號的Activity是運行在1001進程,如果使用smackload工具在/smack/load寫下smack規則“1001 _  -”,那麼撥號介面的讀秒行為終止,電話無法撥打。這是因為本課題在IPC中加了存取控制,而打電話是radio和rild進程在binder中通訊,而rild(radiointerface
layer daemon)進程的安全性標籤是“_”,因此如果有“1001  _  -”這樣的規則,radio和rild無法通訊,那麼撥號過程終止。如果使用者不給“game”撥打到電話的許可權,那麼360仍然無法撥號,這是由於架構層的RBAC機制起了作用,它會在開啟撥號的Activity之前對此Activity按照uid和申請的許可權進行許可權檢查,如果此組件沒有撥打到電話許可權,那麼撥號的Activity不會出現。

2. 百度通訊錄測試分析

百度通訊錄的uid為10037,通訊錄進程的uid為10000,因為/smack/load有規則“10037 10000   rwxa”,所以在百度通訊錄中使用者可以看到通訊錄。由於181不是通訊錄裡的號碼,所以用百度通訊錄向這個號碼傳送簡訊會失敗,號碼666是通訊錄裡的號碼,所以用百度通訊錄向這個號碼傳送簡訊會成功。

3. 酷狗音樂測試分析

由於sd卡裡檔案都被打上了“sdcard”安全性標籤,而酷狗音樂沒有被分配讀寫sd卡角色,因此,酷狗音樂無法開啟sd卡裡的音樂。

4. DroidDream測試分析

由於“Malware”角色只有一個訪問網路攝影機的許可權,因此擔任“Malware”角色的App除了能夠使用網路攝影機,不能使用其它許可權。從測試結果可以看出:使用File Manager查看sd卡裡檔案長度都是0B,這說明了File Manager不能訪問sd卡。同樣,Super Ringtone Maker軟體有一個功能是搜尋互連網,而這個功能也不能用了,架構層的RBAC已經把相應的許可權拒絕了,以下為“adb logcat”裡內容:

系統評估

1. 功能評估

通過以上實驗驗證,本系統不僅能夠通過定製角色限制許可權,而且使用smack規則對核心的進程實施了強制存取控制,因此本系統能夠保護使用者隱私資料和阻止“惡意計費”等行為,下表將國外典型的Android安全強化技術成果與本系統進行了功能對比:

 

 

表5.1 國外典型技術成果與本系統功能對比

 

安全性原則可定製

限制許可權

核心加固

上下文支援

阻止提權攻擊

CRePE

Apex

SEAndroid

本系統

CRePE和Apex的安全機制共同特點是基於Android許可權檢查機制,因此,它們的安全機制都可以被惡意軟體利用Android系統漏洞或者使用Linux系統調用而直接繞過,本課題不僅在Android許可權基礎上實現了RBAC,而且使用了Smack模組實現了對Linux進程的控制,因此,本系統比CRePE和Apex具備更高的安全性。SEAndroid是一個“重量級”的Android安全增強系統,它要求智能手機配置較高,不太適合普通Android手機使用者,而本系統採用的輕量級存取控制模組Smack作為Android核心存取控制機制,由於Smack對Android系統效能損耗很小,因此,本系統比SEAndroid在效能上有優勢,雖然本系統有著以上優點,但本系統也有一些缺陷:

第一,本系統的一部分存取控制是基於Zygote模組,但Zygote不會重複“fork”相同uid的進程,因此,當使用者在定製安全性原則時,本系統的強制存取控制未必及時生效,比如當某個App被啟動後,它的進程一直會存在,而不會被Zygote重複“fork”,因此這個App的smack規則不會被更新,只有讓模擬器重啟,Zygote進程重新裝載smack安全性原則;

第二,本系統沒有考慮到上下文環境,使用者在制定安全性原則時,會出現“要麼容許,要麼拒絕”這種情況,因此,本系統下一步工作就是將上下文考慮進來;

第三,本系統的存取控制對特權進程失效。由於Smack安全模組不能阻止Linux超級使用者或進程一切行為,因此,當Android手機被“root”後,本系統的存取控制將失效;

第四,本系統沒有考慮審計。審計是保障電腦系統安全的重要手段,Smack核心本身就提供了審計功能,如果本系統在此基礎上設計入侵檢測模組,那麼Android系統的安全性將進一步增強。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.