天天看點

探究Safari擴充-Mojave上的惡意插件

在第2部分中,我們将探讨Apple新架構的優缺點以及它對macOS惡意軟體和廣告軟體的意義

在第1部分中,我們研究了Safari擴充帶來的安全隐患,并剖析了一個名為Pitchofcase的廣告軟體擴充樣本的情況。而在這篇文章中,我們将探讨Apple是如何以提升安全為目标來改變擴充程式架構的。我們将基于這些變化重新審視Pitchofcase的行為,并總結對安全意識較強的使用者具有重要意義的所有這一切提升内容。

正如Apple在2018年WWDC上所指出的那樣,“legacy extensions”(“擴充後遺症”) - 指Safari Extensions Gallery内外以.safariextz字尾檔案類型分發的那些擴充插件,

“incredibly powerful, because they had access to all your browsing data, which made them popular, especially for fraud and malware”.

“難以想象的強大,因為它們可以随意通路你的所有浏覽資料,這使得他們很受歡迎,特别是對于欺詐和惡意類軟體”。

于是在2016年,Apple從長遠的眼光來規劃,推出了Safari App Extensions。與使用者必須獨立于父應用程式安裝、更新和删除的舊版Safari擴充形式不同,Safari App Extensions作為appex插件被包含在應用程式包中:

探究Safari擴充-Mojave上的惡意插件

這意味着它們與開發者ID進行了綁定,并且可以通過App Store提供服務;換句話說,現在擴充程式的分發受到了與正常macOS應用程式分發相同的限制。

除此之外,在Mojave系統和Safari 12中,除了直接來自Apple的Safari Extensions Gallery庫的擴充,傳統的.safariextz現在已經被阻止使用。這也隻是暫時的過度時期。 Apple打算完全放棄Gallery,并且直到2018年底才接受綁定了ID的擴充程式的送出。最終,隻有與應用程式捆綁在一起的擴充程式才允許在macOS上的 Safari中進行使用。

當然,這并沒有讓合法的開發者長久意識到除了為其擴充提供包裝外,什麼都不做的空白“shell”應用程式很容易被建立:

探究Safari擴充-Mojave上的惡意插件

我們相信惡意軟體的建立者很快就會跟着效仿。

向前一步說…

從安全角度來看,App Extension模型對使用者來說既有利也有弊。除了擴充與其關聯的應用程式之間的內建變得更緊密之外,另一個優勢就是在Mojave中,Apple增加了開發人員使用subresource integrity或SRI的能力。這意味着開發人員可以防止MITM的攻擊,比如在我們上一篇文章中提到過的攻擊,確定可以依據開發人員在App Extension包中所包含的預定義校驗和來檢查擴充通過http或https下載下傳的任何腳本内容。

探究Safari擴充-Mojave上的惡意插件

往後退兩步說......

雖然這是一個很好的用以幫助盡責的開發人員保護他們使用者的安全補充,但它仍然需要開發人員的采用。它最終也并不能阻止不道德的開發人員在以後去選擇将一個看似無害的擴充轉變為惡意軟體來源。隻有Apple将SRI變成規定,MITM的威脅才能真正被壓制。

但因為或多或少的某種原因,開發在調用外部腳本時會無法保證采用了完整的子源碼,是以也會無法完全保護使用者不受這種沒有惡意意圖的開發人員的影響。通常人們會認為這類不遵循最佳實踐規則的開發人員數量會比較少,進而會令人放松警惕和感覺良好,但曆史資料卻顯示的并不是這樣。在2017年,研究人員發現Safari擴充庫中高達40%的擴充包都存在一個并不是由于Apple API的錯誤而導緻的安全漏洞,而僅僅是由于許多開發人員沒有遵循最佳實踐規則,導緻的一個安全令牌token發生洩露産生的後果。

往後退兩步的情況涉及到惡意軟體程序對衆多已安裝的擴充插件産生作用的能力。正如我們在其它地方已經報道過的那樣,Mojave的一個重大變化是鎖定了程式對使用者資料的通路,其中一個鎖定區域之一是使用者的Safari檔案夾。在早期的macOS版本上,惡意軟體程序是可以通路該檔案夾的,以便于枚舉分析標明使用者的已安裝擴充程式:

探究Safari擴充-Mojave上的惡意插件

這個指令無法在Mojave上運作是一件好事(即如果沒有繞過使用者保護的話)。擷取擴充插件清單是惡意軟體開發人員分析使用者特征和執行有針對性攻擊的一種方式之一。例如,惡意軟體可以:

“search for users with shopping management extensions and password managers to narrow down their attack surface to only those users whose credit card information has a higher likelihood to be stolen. Another possibility would be to identify the presence of a major antivirus vendor extension to personalize an exploit kit or to decide whether the malicious payload should be delivered or not to a certain user. “

“首先搜尋安裝有購物助手和密碼管理器擴充插件的目标使用者,然後将他們的攻擊範圍縮小到隻有那些信用卡資訊被盜可能性更高的使用者。另一種可能是識别目前絕大多數防病毒供應商擴充存在的個性化漏洞開發工具包或決定惡意負載是否應該向該特定使用者傳送。 

不幸的是,App Extensions 的遷移破壞了阻止通路Safari檔案夾擴充資料的努力。結果事實上是現在的擴充應用程式包中的.appex插件使得惡意軟體可以使用pluginkit元件枚舉已安裝的擴充:

探究Safari擴充-Mojave上的惡意插件

重新審視Pitchofcase

如果回憶一下第1部分,我們知道如果不解除安裝應用主程式就無法删除Pitchofcase,而現在基于對Safari App Extension模型的了解,我們可以逐漸開始了解為什麼會産生這樣的結果了。

盡管實際上Pitchofcase安裝程式确實包含額外遺留的.safariextz版本,但它是需要删除應用主程式才能解除安裝它這一方式的“新”版本。這對于目前使用新架構設計的所有擴充都是如此運作的,而且一旦Apple完全停止Safari擴充庫後,它将是解除安裝擴充的唯一方法,也許就在2019年的某個時間。

Pitchofcase既不來自Safari Extensions Gallery,也不是來自App Store,但仍然如開發商Genieo所設計的在Mojave 10.14系統上“按部就班工作”。

探究Safari擴充-Mojave上的惡意插件

使用Safari 12版本的“顯示所有曆史記錄”視圖,我們可以輕松确定Genieo軟體重定向的站點:

探究Safari擴充-Mojave上的惡意插件

盡管Extensions的封裝體系結構已發生變化,但其實作細節大緻相同。 現在“script.js”檔案被放在了.appex包的Resources檔案夾中:

探究Safari擴充-Mojave上的惡意插件

在Mojave上,也能夠像在早期版本的macOS上一樣,發揮它的影響 - 以開發人員身份來看就好像是一種诙諧的雙關語所說的- “URL Hell”:

探究Safari擴充-Mojave上的惡意插件

控制擴充

我們可以看到,新架構和Mojave的新安全協定實際上并沒有能阻止安裝不必要和惡意的擴充。至少目前還沒有。

但是,可以公正地說,Mojave采取了一些重要的步驟來控制擴充。我們還沒有找到一種讓應用程式自動啟用它們的擴充的方法,是以即便存在這麼一個任何帶有appex插件的應用程式都會被要求注冊插件架構的令人擔憂事實,但我們通過pluginkit在Mojave上啟用它們應用程式的實驗還好是讓人放心的失敗結果。

更重要的是,雖然之前我們已經在非正式的場合見識過,使用者被欺騙來運作了惡意解除安裝器而不是僅僅将父程式移入廢紙簍這樣的行為是非常真真切切的風險。但這也許僅僅是一個時間過度問題,使用者會逐漸習慣于這個新的工作流和變得不再那麼容易被特定的伎倆所欺騙和傷害。我們也期望看到對macOS應用程式越來越嚴格的終極認證檢查要求,包括對任何捆綁插件的檢查。總之,我們樂意看到對即使僅僅是shell擴充的應用程式也有更嚴格的限制,以及強制執行SRI的嚴格政策。

雖然使用者被欺騙運作惡意解除安裝程式而不是僅僅将父應用程式發送到垃圾箱的風險是一個非常真實的,我們已經看到在野外發生,但使用者應該隻是一個時間問題習慣于這個新的工作流程,不太可能成為特定機動的受害者。我們還期望随着即将要求所有macOS應用程式最終進行公證,公證檢查還将包括對任何捆綁插件的檢查。最重要的是,我們希望看到對僅僅是擴充外殼的應用程式有更嚴格的限制,以及更嚴格的執行SRI的政策。

糟糕的擴充是否将成為過去?當然還沒有,但我們可以看到,Apple正走在為實作這一明确目标的前進道路上。

本文翻譯自:​​https://www.sentinelone.com/blog/inside-safari-extensions-malicious-plugins-remain-mojave/​​

如有不妥之處,請多多指教!

最近正好在了解這篇文章中提到的malware,是以就冒昧的獻醜翻譯了下!

--------------------- 

作者:我在地球村--做個有意思的人 

繼續閱讀