https://newera17031.activehosted.com/index.php?action=social&chash=a60937eba57758ed45b6d3e91e8659f3.2219&nosocial=1
https://newera17031.activehosted.com/index.php?action=social&chash=a60937eba57758ed45b6d3e91e8659f3.2219&nosocial=1

觀點

行動安全大哉問:安全強化版SE Android有沒有比較安全!?

2013 / 01 / 09
余俊賢
行動安全大哉問:安全強化版SE Android有沒有比較安全!?

SE Android 風險控制功能說明隨著行動裝置快速成長,Android 系統逐漸應用於其他裝置中,如跑步運動記錄、生理健康監測、車用電子與智慧家電等,在其安全的要求上逐漸受到重視,尤其是來自於外來的App、Android本身已存在但未被發現的弱點,及中介層應用的弱點等。對於一台有連網能力且存放個人敏感資訊的裝置而言,這些都是可能造成安全隱憂。

根據ComScore在2012年七月的統計,美國有五成以上是 Android 的系統,而Sophos的2013安全威脅報告中揭露,Android平台已經成為新的攻擊對象。Websense 2012 Threat Report中也提到,行動安全是一個越來越嚴重的議題,Websense安全實驗室分析超過20萬Android應用程式,並且發現惡意程式的數量顯著增加,而Android手機上也已經逐漸有botnet的形成,安全已刻不容緩。

Android因為先天的安全機制設計,把關的責任交給用戶自己決定,而其平台上的安全防禦機制卻還不足且涵蓋率偏低,在AV-TEST的報告中顯示,各家防毒軟體的防護能力有限,一般用戶也還沒有替手機、平板安裝防毒軟體的觀念。隨著新型態的行動惡意軟體與駭客攻擊倍增,如竊取行動銀行帳密的Android殭屍網路ZitMO竊取高達36億歐元,用戶應該開始注意在行動裝置上的防護應該比照電腦的等級。

SE Android全系統的安全政策強制

SE Android(Security-Enhanced Android)是美國國安局所贊助推廣的安全強化版Android專案,參考原本在Linux上所發展的SE Linux所移植,強化操作系統對於應用層與核心層的控管,建立隔離跟沙箱機制。SE Android 可預防安全機制被繞過以及App造成資料外洩的風險,保護App與資料的完整性,避免Android系統的弱點被攻擊,不論是已知或未知。

手機安裝竊聽軟體.....

手機安裝竊聽軟體,除了抓小三小王,還可能對企業營業秘密造成損害。

2012.12  高雄警方破獲網路上販售手機竊聽系統,所有對話、簡訊,都會被記錄複製,包含時間、傳給誰、內容,全都同時被備份到指定電腦。被偷灌監聽軟體的手機,外表完全看不出異狀。就有可能帶到企業中,不管是會議或是利用手機進行公司相關的郵件、通話、簡訊等,都會被截錄造成秘密外洩。

 

SE Android的基本概念是即使最高權限(root)被取得,還是要能夠阻止惡意行為或違反規則的行為。Android 安全模式有兩種,一是應用層權限 (application level),即控制應用程式的權限,可限制使用系統的資源,如:安裝App時會詢問用戶是否同意網路通訊或簡訊等權限。

另一模式是核心層的沙箱與隔離模式(Kernel-level sandboxing and isolation),將App間及系統間做隔離。避免應用層權限模式被繞過。此模式透過Linux核心來實作,就是SE Android 的基本做法。採用強化MAC(強制存取控制)而不是一般的DAC (Discretionary Access Control)。DAC僅做到限制系統資源與App之間的隔離,而SE Android則是基於 SE Linux的觀念,做到全系統的安全政策強制,甚至是 root權限也得遵守,同時也避免權限提升或擴張。

↑↑  Android 發展進程圖。Android 作業系統發展至今,提供內嵌與行動裝置的應用,其安全已逐漸受到重視。(圖片來源:Wind River提供)

 

OWASP Top10 Mobile Risks列舉行動裝置應用安全目前常見的十大風險,是目前針對行動安全風險方面重要的參考項目。表1從安全強化的SE Android能夠涵蓋部分的安全風險控制做出對照,例如提供不安全的資料儲存於用戶端時還可以被隔離而不易取得、透過policy 限制或強化輸入與權限運作上的確保。

 

表1、OWASP行動安全10大風險與SE Android對照表

OWASP Top 10 Mobile Risks SE Android 風險控制功能說明
M1 - Insecure Data Storage
不安全的資料儲存於用戶端
Partial ,避免被其他App取得。
M2 - Weak Server Side Controls
伺服器端安全控制脆弱
No。
M3 –Insufficient Transport Layer Protection
傳輸層保護不足
No。
M4 –Client Side Injection
用戶端注入變造
Partial ,可由policy限制。
M5 –Poor Authorization and Authentication
身分鑑別與授權機制不嚴謹
Partial ,App層可以受到其強化
對於有前後端之應用系統而言,身分驗證就要靠自己
M6 –Improper Session Handling
連線階段處理不適當
No。
M7 –Security Decisions Via Untrusted Inputs
對不受信任輸入來源的而做出的安全決策
Partial ,可由policy限制。
M8–Side Channel Data Leakage
側通道的資訊洩漏
Partial ,其隔離機制與ploicy限制可協助。
M9–Broken Cryptography
加密方法不嚴謹或失效
Partial ,可由policy限制或強化。
M10 –Sensitive Information Disclosure
敏感資訊洩漏
Partial ,可由policy限制。

資料來源:本文作者整理,2013/1。

 

SE Android 的強制存取控制(MAC),權限規則由管理者定義,且強制每一個App都要遵行,無法讀取其他App所產生的檔案,每一隻App都是視為獨立的個體。而原生Android的DAC則是每個App自己負責的權限管理,較為鬆散。

 

目前還在持續發展的中介軟體層控制(Middleware MAC, MMAC)包含安裝時的權限確認與過濾(Install-time MAC)、基於MAC政策設定值,削減已安裝App的權限、在Android中的意圖動作控制(Intent MAC)。因為許多攻擊發生在中介軟體層,介於作業系統與應用軟體中間的軟體,其目的是為了解決程式設計者必須面對不同的作業系統平台、不同網路協定以及不同的資料庫管理系統。

也正因為如此,合法的Inter-Process Call(IPC)呼叫可以接觸到Kernel,而在上述的Kernel層的SE Android MAC仍無法有效地管制。因此有需要在中介層作控管或透過簽章與package 名稱方式辨識出並設定可允許的權限設定。

在美國國安局的推動贊助之下,SE Android也漸漸成熟,在商業化的應用下還有強化軟體品質(QA)與智財權檢查的配套辦法,工業電腦、醫療設備製造商可善加利用。目前仍持續發展中的 SE Android提供一個較安全的行動裝置平台,企業IT可以考慮採用更高權限或專屬化之行動裝置以避免外界的威脅來源,杜絕Android 行動裝置的安全問題。

因為行動裝置的盛行,企業的網路界線已經消失,近來相當熱門的BYOD問題也是企業亟欲了解與防禦的威脅項目,如果帶入企業中的裝置本身已經是被污染或是中毒,這樣會直接影響企業資訊環境或資料安全,基於BYOD的風險與裝置遺失,以下幾點建議:在使用上必須記得要設定密碼、盡可能採用全機資料加密、權限區隔、不安裝非正式來源的應用App、設定使用認得的wifi (即便名稱相同也要注意)、避免連接企業內部網路或電腦。

SE Android如何阻擋不安全的行為?

以CVE-2011-1823為例子,vold 是Android 的volume daemon,是在最高權限下運作,可以管理跟磁碟有關之掛載與接收 Kernel 端來的netlink 訊息。風險在於未驗證訊息來源及未檢查小於零的整數值,而GingerBreak 就是利用這個做為其取得權限的一種攻擊手法。如果採用在SE Android 下會如何呢? 依據規則是會被拒絕執行,因為來源非允許範圍,標示宣告與追蹤App的權限,阻擋未經過授權的IPC,而攻擊手法就不會成功。

在CVE-2011-1717 Skype App弱點的案例中,其他App可以存取Skype用戶資料,又重要的用戶資料未經加密所以風險更高,透過SE Android強制每一隻App都是獨立的個體,無法讀取其他App所產生的檔案, 就可以有效降低風險。