Safari擴展

  • 2019 年 10 月 8 日
  • 筆記

前言

本系列文章分兩部分,介紹macOS瀏覽器擴展背後的技術,以及惡意插件如何竊取密碼、銀行細節和其他敏感用戶數據。

瀏覽器擴展是用戶能夠對安全系統進行最容易的第三方修改之一,但也可能是最危險的修改之一。許多用戶把擴展看成是小小的「applet」,它們在上網時提供一些簡單但有用的額外功能——阻止廣告內容、允許標記、填寫表單字段等等——而沒有意識到這些擴展被賦予了多麼巨大的力量。

在這兩篇文章的第一篇中,我們將研究Safari瀏覽器擴展到包括macOS 10.13的安全含義,並研究廣告軟件活動中使用的特定瀏覽器擴展的情況。在第二部分中,我們將介紹如何在macOS 10.14Mojave中更改Safari擴展的安全性,以解決其中的一些問題。

安全漏洞

雖然這裡的重點自然會放在提高對壞行為者如何通過瀏覽器擴展利用用戶的意識上,但是讓我們首先指出即使使用來自聲譽良好且意圖良好的開發人員的擴展,也會涉及的安全隱患。

DuckDuckGo今年早些時候主動向用戶提供瀏覽器擴展以阻止廣告和其他跟蹤內容,這是一個很好的起點。從可信的開發人員那裡這是個好主意,但是擴展有一個致命的問題:安裝它的用戶授予的擴展特權遠遠超出了它的需要,而這本身就是一個安全問題:

該擴展聲稱在用戶數據「搜索和瀏覽網頁」時保護用戶數據,這似乎受到了一些破壞,因為諸如密碼之類的敏感數據可能暴露給擴展本身。

不幸的是,這種特權被授予不需要它們的擴展並不罕見。正如Apple的開發者文檔所邀請的那樣,擴展可以做一些事情,比如將產品評級和評論注入網站,將廣告注入網頁,下載和注入腳本以及修改網頁內容。它們可以在沒有用戶明確許可的情況下發送通知,並且可以在後台不可見地運行。

這個能力列表聽起來像是惡意軟件開發人員的夢寐以求的利用工具,尤其如此,因為在Safari擴展中存在幾個安全漏洞,這些漏洞可能是惡意開發人員故意利用的,或者是不經意間被惡意開發人員打開的。

擴展不需要包括它們直接在自己的包中使用的腳本;它們可以通過http遠程源碼它們。如果開發人員不使用安全https協議,則會打開中間人攻擊的可能性,從而插入惡意腳本來代替預期的腳本。

它還意味着,壞參與者可以開發惡意擴展,在安裝該擴展之後,只需更改通過http(或http s)請求調用的腳本的內容,就可以改變其擴展的行為。

擴展還應該尊重私有瀏覽,但似乎這要由開發人員來實現。蘋果文檔只建議:

當處於私有瀏覽模式時,您的擴展不應該存儲關於用戶操作的任何信息。

可以通過查詢選項卡對象的私有屬性(例如,safari.application.activeBrowser..activeTab..)來檢查特定選項卡是否處於私有瀏覽模式。

這是一個相當多的行為目錄,足以吸引任何黑帽,難怪像Genieo和Spigot這樣的「壞」擴展已經成為廣告軟件開發者的主要工具之一。正如我們將在下一節中看到的,擴展甚至可以防止用戶在沒有首先刪除相關應用程序的情況下卸載它,並且為誘騙用戶進一步危害他們自己的系統提供了成熟的機會。

皮包案的有趣案例

我們最近觀察到一個名為「Pitchofcase」的Safari廣告軟件擴展,它展示了一些有趣的行為。

乍看之下,Pitchofcase就像任何其他的廣告軟件擴展一樣:當啟用Pitchofcase時,它會重定向用戶在登錄pitchofcase.com之前通過幾個付費點擊地址進行搜索。

http://searchv.oliverto.com/?b598a1d361f67b08aeee82e41686cd1a=FVNQWlVbFAAeXFNRWAFUV1dXV1gBUl9TUFBKQFwLUQFWWwAADAADXF9QUQxQVgNYVAUKU1VXWwFRDFRbB0EE&spt=ext&q=tagSearchQuery

擴展在後台隱形地運行,沒有工具欄按鈕或任何其他與之交互的手段。

在上面的圖像中,注意權限的擴展。值得指出的是,在不提升特權的情況下獲得這些權限,並且只需要用戶從每個擴展都出現的同一用戶警報中單擊「信任」,而不管其權限如何:

假設警報包含概括結果的信息性文本,但不幸的是,通過Safari,macOS允許這種級別的特權而不需要密碼驗證。

當我們試圖卸載它時,PtChoFox開始變得有趣起來。單擊「卸載」按鈕不會像預期的那樣刪除擴展,而是引發以下警報:

這是不尋常的,但不是聞所未聞的。一些信譽良好的應用程序以同樣的方式對用戶進行特定的擴展(例如,Parallels Desktop,它堅持在Safari中安裝'Internet Explorer'Open)。用戶可以毫無問題地禁用擴展,但是刪除它需要刪除父應用程序。

點擊'Show in Finder'可以顯示應用程序的位置,還有一個卸載程序:

此時,關注安全性的用戶可能對查看Pitchofcase.app、Safari擴展和VirusTotal上的卸載程序如何收費感興趣。應用程序是「乾淨」的,但卸載程序會發出警報鈴聲:

由於我們的主要主題是Safari擴展,因此我們不會深入研究卸載程序要做什麼,除了說明對代碼的檢查顯示它顯然對安裝持久性代理更感興趣:

並過濾用戶的瀏覽器歷史:

而不是做卸載的工作。

但是,使用卸載程序作為感染代理是一個聰明的技巧,它與不能在不刪除應用程序的情況下刪除擴展相吻合。正如我們將看到的,擴展本身是相對無害的,並且看起來只是讓用戶運行卸載程序的一個詭計。

在狩獵區延伸

Safari擴展本身對VT提出了一些警告,但是這些都是無關緊要的,因為它的「乾淨」應用程序正在安裝擴展。讓我們看看擴展的內部並檢查它的行為。

Safari擴展只是壓縮文件,因此為了查看其中的文件,我們需要做的第一件事情是找出它在文件命令中使用了哪種壓縮:

在這種情況下,它是XAR格式。知道我們現在可以重命名文件並解壓縮它:

Gualal.HTML文件是我們的第一站。在Safari Extension架構中,該文件是可選的,但是當包含該文件時,它是加載一次性資源(如注入腳本使用的邏輯或數據)的地方。

在這種情況下,我們可以清楚地看到目的:

在我們下一站中,Info.plist清楚地表明,擴展也希望看到安全頁面:

雖然這可能與此有關,但是關於擴展的內容,最值得注意的是缺少通常打包到這些瀏覽器插件中的任何常見資產。這裡沒有專用的JS跟蹤器腳本或幫助函數,也不試圖通過eval方法執行惡意代碼。與大多數擴展(合法和非法的)相比,Pitchofcase不典型地簡潔。

這又讓我們回到為了卸載擴展而刪除應用程序的需求,以及卸載器的報警功能。Pitchofcase顯然是一個經過深思熟慮的技巧:安裝一個稍微煩人但基本上無用的擴展,然後誘騙用戶運行惡意卸載程序以便刪除它。

安全卸貨

對於在Safari中單擊「卸載」按鈕後嚴格遵循對話框警告文本的用戶來說,這裡有個好消息。確實,刪除擴展的唯一方法是刪除相關的應用程序,但是刪除並不意味着卸載。

用戶應該忽略所提供的Uninstaller.app,簡單地將Pitchofcase.app和所有其他組件(包括卸載器)直接移動到垃圾箱。這樣做之後,擴展也被刪除。

開發人員,不同尋常地,聰明地,指望着抓住那些遵循經常重複的建議的用戶,他們總是在使用開發人員的卸載程序來刪除應用程序。在處理來自可信的開發人員的複雜安裝時,這通常是一個好的實踐。在PotfFox的情況下,這是一個狡猾的道奇企圖竊取您的數據。

下一個…

在第2部分中,我們將繼續探討在10.14Mojave中macOS擴展是如何變化的,以及用戶在將它們添加到Safari瀏覽器的最新版本時需要了解如何保持安全。

原文鏈接:https://www.sentinelone.com/blog/inside-safari-extensions-malware-golden-key-user-data/