Strandhogg漏洞:Android系統上的維京海盜

零日情報局發表於2019-12-04

大家好,我是零日情報局。

本文首發於公眾號 零日情報局,微信ID:lingriqingbaoju


當銀行卡餘額神秘消失,懵不。


這次跟大家說說新型Android應用漏洞,不僅能讓銀行卡餘額消失,還會偷拍監聽的那種。


昨天下午,挪威一家安全公司披露了一個Android應用漏洞,並用描述維京海盜突襲戰術的單詞StrandHogg對其命名。值得慶幸的是,谷歌已採取措施解決該漏洞,並暫停了受影響的應用程式。


至於銀行卡餘額神秘消失事件,就發生在捷克共和國的多家銀行。不法攻擊者利用StrandHogg漏洞,使用BankBot銀行木馬等惡意軟體,悄無聲息地盜走多家銀行使用者的卡內餘額,引發東歐金融機構安全服務商的多方求助。



StrandHogg:維京海盜式Android應用漏洞


StrandHogg是一個存在於Android多工系統中的應用漏洞。該漏洞利用則是基於一個名為“taskAffinity”的Android控制元件設定,允許包括惡意應用在內的任意程式,隨意採用多工處理系統中的任何身份。


從零日核實的情況來看,StrandHogg漏洞確實存在於Android的多工系統中,一旦已安裝惡意程式利用,就能讓惡意程式順利偽裝合法應用,獲得更高的許可權,竊取資訊或進行任意惡意操作。


Strandhogg漏洞:Android系統上的維京海盜


簡單來說,就是中招後,當我們點開一個正常應用程式的圖示時,利用Strandhogg漏洞的惡意應用可以攔截劫持這個任務,並向使用者顯示一個虛假的應用介面。


這時,不明真相的你,會毫無防範的在一個虛假的介面,安心地輸入賬號、密碼,以及進行任意操作。殊不知,那些涉及你隱私的敏感資訊,輸入後都會第一時間傳送給攻擊者,攻擊者利用這些敏感資訊,能做的是事情就多了。


也許登入銀行賬戶,竊取錢財反倒是傷害相對較小的攻擊。



利用StrandHogg能做哪些事?


訪問攝像頭和麥克風,獲取裝置的位置,讀取SMS,捕獲登入憑據(包括透過SMS的2FA程式碼),訪問私人照片和影片,訪問聯絡人……這些看似基本但關係手機安全閉環的功能,只要成功利用Strandhogg漏洞,惡意應用都可以請求上述許可權。


Strandhogg漏洞:Android系統上的維京海盜


簡言之,Strandhogg漏洞讓我們的手機不再對惡意應用設防,且這種不設防,我們無從得知何時開啟。零日驗證該漏洞時,就成功將惡意程式偽裝成一合法應用,獲得了測試目標的定位,當然,僅用於測試,大家不要隨意嘗試。


Strandhogg漏洞:Android系統上的維京海盜


略讓人恐慌的是,包括最新Android10在內的所有Android版本,都存Strandhogg漏洞。隨後,零日逐一驗證後發現,GooglePlay商店內可用的前500個Android應用程式,確如挪威安全公司說的那樣,都可透過StrandHogg攻擊劫持所有應用程式的程式以執行惡意操作。



維京海盜StrandHogg的獨特之處


1、無需root上演複雜攻擊:StrandHogg漏洞之所以獨特,主要是因為它最大限度地利用了Android多工系統弱點,無需root既可允許惡意程式偽裝成裝置上的任意程式,幫助駭客實施複雜且高危的攻擊。


2、無法檢測Stranghodd漏洞利用:有攻就有防,但很不幸的是,截至目前,針對Stranghodd漏洞利用的阻止方式,甚至是相對可靠的檢測方法,都還沒有出現。普通使用者只能透過一些不鮮明的異常發現問題,比如已登入的應用要求登入、單擊使用者介面按鈕連結時不起作用,或者後退按鈕無法正常工作。


3、擴大UI欺騙風險:UI欺騙,很多人聽說過。甚至早在2015年,賓夕法尼亞州立大學就曾以白皮書的形式,詳細介紹了可用於UI欺騙的理論攻擊。而StrandHogg漏洞的出現,多個程式同時遭劫持等情況,若不加以有效控制,一旦大範圍擴散,都將進一步擴大UI欺騙風險。


並不是所有被發現的漏洞,都會被利用,但攻擊者絕不會放過那些有價值的漏洞。


挪威安全公司就明確指出,目前已發現36個野外利用StrandHogg漏洞的應用程式,雖然這些應用都不能直接透過googlePlay商店下載安裝,但並不能保證使用者下載的應用程式是否曾經感染過,因為這36個應用程式作為第二階段的有效負載,已經安裝在了一些使用者的裝置上。



StrandHogg漏洞利用樣本再現


不同於提權等相對熟悉的漏洞,Strandhogg漏洞的威脅層級其實並不能清晰的界定,因為它的存在更像給惡意程式開了一道門,至於被利用後帶來的是小威脅,還是大震盪,關鍵要看惡意程式本身是威脅層級。


挪威安全公司披露StrandHogg漏洞資訊時,就以第一次監測到利用StrandHogg漏洞的惡意軟體為樣本,復現了惡意軟體利用StrandHogg漏洞的主要策略。


1、惡意程式利用GooglePlay分發


通常情況下,正常程式多數都會入駐Google Play,而利用StrandHogg漏洞的惡意程式,則透過多個惡意下載器安裝,但會選擇在Google Play上進行分發擴散。


Strandhogg漏洞:Android系統上的維京海盜


從程式碼部分可以看到,當惡意應用在一個或多個活動上設定taskAffinity,以匹配任何第三方應用的packageName時,漏洞利用就會發揮作用。然後,透過與清單中的allowTaskReparenting=“true”組合,或透過使用Intent.FLAG_ACTIVITY_NEW_TASK的intent標誌啟動活動,將惡意活動置於目標任務的內部和頂部。


這時,惡意應用就成功劫持了目標,而當使用者再一次點開目標應用時,惡意程式就會偽裝成正常程式,顯示使用介面迷惑使用者。


2、偽裝多個正常程式


同時開N個應用,是現代人的日常,而在StrandHogg漏洞利用威脅下,Android的多工處理系統也給惡意程式開啟方便之門。在同一時間推出兩個(或更多)活動android.app.Activity#startActivities(android.content.Intent []),惡意程式就可以利用StrandHogg漏洞。在後臺同時偽裝成兩款正常應用作惡。


Strandhogg漏洞:Android系統上的維京海盜


同樣,被攻擊使用者除了可能看到裝置輕微閃爍外,根本無從發現惡意程式的攻擊行為。只有我們檢視時,輸入adb shell dumpsys activity activities,才可以看到攻擊活動已經存在,且一直潛伏到下次啟動該應用程式為止。


Strandhogg漏洞:Android系統上的維京海盜


3、AllowTask Reparenting(任務重編)


當偽裝的正常程式再次啟動後,利用StrandHogg漏洞的惡意程式曝出了一個名為allowTaskReparenting的新屬性。它會讓Android作業系統重新評估所有任務和活動,並在啟動相關任務前,先查詢標記有此屬性的活動並將其移動。


這樣,惡意程式就會根據新一次啟動程式的情況,及時更新螢幕上顯示的內容。


Strandhogg漏洞:Android系統上的維京海盜


從樣本來看,StrandHogg漏洞確實給惡意程式廣開大門。



零日反思


Android漏洞是個老生常談的話題,但並不能因此就忽視它的威脅。


在Android作業系統這片開源的大海上,其實不僅有StrandHogg漏洞這樣的維京海盜式戰術,還有各種各樣已知未知的漏洞威脅,雖然經過十多年的發展,在各路技術人員的努力下,讓Android作業系統漏洞威脅趨於穩定,但我們並不能掉以輕心,因為不法分子的攻擊,時刻在發生。



零日情報局作品

微信公眾號:lingriqingbaoju

如需轉載,請後臺留言

歡迎分享朋友圈



參考資料:

Promon《StrandHogg漏洞》

Strandhogg漏洞:Android系統上的維京海盜



相關文章