用 KGDB 來替 Android 除錯的實用技巧

內核(Kernel)除錯功能讓資安研究人員在進行分析時能夠監視和控制設備。在Windows、macOS和Linux等桌面平台上,這很容易進行。但要在Android設備(如Google Nexus 6P)上進行內核除錯則困難得多。在本文中,將介紹一種在Nexus 6P和Google Pixel上進行內核除錯的方法而無須特製的硬體。

Joshua J. Drake和Ryan Smith為此目的打造了一條UART除錯線,效果很好。然而對於不擅長製作硬體的人(像是筆者這樣的軟體工程師)來說,這可能很困難。而替代方案是透過serial-over-usb通道來進行內核(Kernel)除錯 也是可行的。

這個方法可以追溯到2010年,這表示部分介紹已經過時。但我發現的作法可以利用其關鍵要點,然後用在今日的Android設備上。讓研究人員可以使用除錯功能來確認CPU執行的當前狀態,讓分析更加快速。那該如何進行?

Android是用Linux內核打造的,其中包含了內建的內核除錯程式KGDB。KGDB依靠串列埠來連接除錯設備和目標設備。正常情況如下:

圖1、KGDB工作模式

 

目標和除錯設備透過串列線連接。使用者在除錯機上用GDB來附加串列設備檔案(如/dev/ttyS1),指令是target remote /dev/ttyS1。之後,GDB可以通過串列線和目標設備上的KGDB進行溝通。

KGDB核心元件處理實際的除錯工作,像是設置中斷點和取得記憶體內的資料。KGDB I/O元件可以連接KGDB核心元件和低階串列驅動程式以處理除錯資訊傳輸。 繼續閱讀

如何偵測和阻止《躲進口袋的壞東西》:行動裝置勒索病毒?

上一篇的文章:《行動裝置勒索病毒》躲進口袋的壞東西,Android勒索病毒數量增加了140%中,我們探討了惡意軟體如何鎖住設備以及如何說服受害者付錢的恐嚇手法。現在知道了壞人能夠做什麼,接下來要討論的是資安廠商用來阻止它們的偵測和解決技術。我們希望透過與其他研究人員的技術分享來提升業界解決行動勒索病毒的整體知識。

 

偵測和解決

檢視行動勒索病毒 Ransomware (勒索軟體/綁架病毒)的技術特性讓我們得以設計和做出正確的偵測和解決技術。有許多種方法可以處理這問題:我們的想法是這些惡意特性必須得出現在應用程式的程式碼中。我們利用靜態分析加上解決特殊狀況(例如透過映射進行混淆)的一些技巧。

 

圖1、各種找出行動勒索病毒的方法

繼續閱讀

超過9,000個搭任天堂Mario(瑪莉歐)順風車的手機應用程式,約有三分之二都帶有惡意行為

「Super Mario」應用程式: – ANDROIDOS_DOWGIN.AXMD,偽裝成Mario(瑪莉歐)遊戲,,聲稱需要進行更新才能繼續玩,並提示安裝另一個應用程式;冒牌「Super Mario」- ANDROIDOS_DOWGIN.AXMD: 彈出式廣告導引到成人或惡意網站,出現假安全警告,甚至要求管理員權限。

假應用程式搭上任天堂手機遊戲:Super Mario Run順風車

在今年初,我們討論過網路犯罪分子如何利用Pokemon Go的熱門程度來推出自己的惡意應用程式。隨著2016年的即將結束,我們看到相同的故事發生在任天堂手機遊戲上:Super Mario。

►《延伸閱讀》:抓寶可夢竟有假 GPS 定位?! 山寨《Pokémon Go》假應用程式,廣告程式充斥

 

獨佔遊戲Super Mario(超級瑪莉歐)一直是任天堂遊樂器的重要成員,自從80年代中期以來,在各個平台上出過多款遊戲。但是不管手機遊戲市場如何成長,任天堂都沒有在行動平台上推出任何Super Mario的遊戲。這一切在2016年9月出現轉變,任天堂宣佈在iOS和Android上推出Super Mario Run(超級瑪莉歐酷跑)。iOS版本於2016年12月15日推出,Android版本計畫在明年推出。

超過9,000個搭Mario名稱順風車的應用程式,大約有三分之二都帶有惡意行為

在正式推出前,網路犯罪分子已經推出了自己的Mario(瑪莉歐)相關應用程式。自2012年以來,趨勢科技在網路上發現超過9,000個使用Mario名稱的應用程式。大約有三分之二都帶有某些惡意行為,包括未經使用者同意就顯示廣告和下載應用程式。自年初以來,我們已經偵測這些惡意應用程式約9萬次,大部分下載者來自下列國家/地區:

圖1、偽裝成Mario(瑪莉歐)相關的惡意應用程式下載分佈(2016年1月到11月)

 

趨勢科技所發現的惡意應用程式大多數只顯示廣告。但有一些會安裝不需要的應用程式到使用者設備上。我們來看看其中兩個惡意應用程式。

一個應用程式是偵測為ANDROIDOS_DOWNLOADER.CBTJ的「Super Mario」。它透過第三方應用程式商店散布:

冒牌「Super Mario」-ANDROIDOS_DOWNLOADER.CBTJ:聲稱需要進行更新才能繼續玩,並提示使用者安裝另一個應用程式

 

圖2、假的「Super Mario」應用程式

繼續閱讀

假銀行應用程式 SmsSecurity 變種來襲,除了竊取簡訊發送的密碼,還有更強大的隱蔽行動

新的SmsSecurity變種破解手機 濫用輔助功能和TeamViewer

在2016年1月,趨勢科技發現許多假的銀行應用程式「SmsSecurity」,號稱可以讓帳號擁有者用來取得一次性密碼(OTP)以登錄銀行;結果這些惡意應用程式,會竊取透過簡訊發送的密碼,還會接收來自遠端攻擊者的命令,控制使用者的行動設備。

延伸閱讀: 想像一下,你的銀行通知你要安裝更新版本的行動應用程式。下載應用程式後,它要求管理員權限。你所收到的通知內提到確實會出現此要求,所以你按下同意鍵。你試了一下應用程式,它運作正常。你甚至可以順利完成交易。…
當你試著想要解鎖手機時,有人已經清空了你的銀行帳戶:再次檢視Emmental犯罪行動

趨勢科技發現了加入新功能的新的SmsSecurity變種。新的功能包括:防分析能力、自動破解Android,語系偵測和利用TeamViewer進行遠端連線。此外,SmsSecurity現在也巧妙地利用Android輔助功能來進行隱蔽行動而無需透過使用者互動。趨勢科技將這些惡意應用程式偵測為ANDROIDOS_FAKEBANK.OPSA。

 

利用設備標示來防止分析

我們所看到的新變種被設計成不會在模擬器中執行。讓分析這些樣本變得更加困難。如何做到這一點?它會檢查Build.prop檔案,裡面包含了安裝在行動設備上的Android版本屬性。這些變種會檢查Build.prop中的值如PRODUCT、BRAND和DEVICE,來研判自己是在實體設備或模擬器上執行。

圖1、偵測模擬器的程式碼

 

可以看到上面的程式碼檢查可能為模擬器的「generic」設備。如果偵測到就不會執行任何惡意程式碼以躲避動態分析工具。 繼續閱讀

《概念證明應用程式》即便手機設定成不接受來自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(行動威脅分析師)