《概念證明應用程式》即便手機設定成不接受來自Google Play以外的應用程式,竟也可以偷偷安裝應用程式!

新的 Dirty COW攻擊方式 可讓惡意程式碼直接寫入程序

Dirty COW(編號CVE-2016-5195)是在2016年10月首次被公開披露的Linux漏洞。這是個嚴重的提權漏洞,可以讓攻擊者在目標系統上取得root權限。它被Linus Torvalds描述為「古老的漏洞」,在披露後就迅速地被修補。多數Linux發行版本都已經盡快地將修補程式派送給使用者。

Android也同樣受到Dirty COW漏洞影響,雖然SELinux安全策略大大地限制住可攻擊範圍。趨勢科技發現了一種跟現有攻擊不同的新方法來利用Dirty COW漏洞。這個方法可以讓惡意程式碼直接寫入程序,讓攻擊者能夠對受影響設備取得很大的控制。目前所有的Android版本都受到此問題影響。

不給錢就讓手機變磚塊!勒索集團威脅瀏覽色情網站Android手機用戶

概念證明應用程式:即便手機設定成不接受來自Google Play以外的應用程式,也可以偷偷安裝應用程式

下面的影片顯示一個已經更新最新修補程式的Android手機安裝了我們所設計的概念證明應用程式且無須要求授予任何權限。一旦執行,就可以利用Dirty COW漏洞來竊取資訊和變更系統設定(在這展示中會取得手機位置,開啟藍牙和無線熱點)。它也可以偷偷安裝應用程式,即便手機設定成不接受來自Google Play以外的應用程式。

 

為什麼會這樣?當執行一個ELF檔案時,Linux核心會將可執行檔映射到記憶體。當你再次打開相同的ELF可執行檔時會重複使用這份映射。當利用Dirty COW漏洞來修改執行中的ELF可執行檔時,執行中程序的映像也會改變。讓我們想想這代表什麼:Dirty COW可以修改任何可讀的執行中程序。如果程序不可讀,則用cat /proc/{pid}/maps來找出是否有任何載入中的ELF模組可讀。

在Android上也可以應用相同的步驟。Android Runtime(ART)程序可以用相同的方式動態修改。這讓攻擊者可以在Android設備上執行應用程式來修改任何其他可讀程序。所以攻擊者可以注入程式碼並控制任何程序。

 

圖1、改進的Dirty COW攻擊

 

這種攻擊將攻擊能力延伸到不僅僅只是讀寫檔案,而是直接將程式碼寫入記憶體。可以取得root權限而無須重新啟動或造成系統崩潰。

在我們的概念證明影片中,動態修改libbinder.so讓我們的應用程式取得系統root權限。我們使用這能力繞過Android的權限控管來竊取資訊和控制系統功能。

 

解決方式和資訊披露

趨勢科技已經將此問題通報Google。Dirty COW最初是透過2016年11月的Android更新加以修補,但這直到2016年12月的更新才強制此項修補。使用者可以詢問行動設備廠商或電信業者來了解自己的設備何時可以取得更新。

我們現在正在監控使用此類攻擊的威脅。強烈建議使用者只安裝來自Google Play或可信賴第三方應用程式商店的應用程式,並使用行動安全解決方案(如趨勢科技的行動安全防護)來在惡意威脅進入設備或對資料造成危害前加以封鎖。

企業使用者應該要考慮如趨勢科技企業行動安全防護的解決方案。它涵蓋了設備管理、資料防護、應用程式管理、法規遵循管理、設定檔配置及其他功能,讓企業主可以在自帶設備(BYOD)計畫的隱私安全與靈活性、增加生產力之間取得平衡。

 

@原文出處:New Flavor of Dirty COW Attack Discovered, Patched 作者:Veo Zhang(行動威脅分析師)