惡意軟體Adrozek潛入各大搜尋瀏覽器,植入惡意廣告並竊取個資憑證
近來一支會竄改瀏覽器的進化版惡意軟體不斷被有心人士散播,此波攻勢從2020年5月開始至8月高峰時期每天約有3萬臺裝置傳出災情。此惡意軟體會在搜尋結果頁面中插入廣告,且影響Microsoft Edge、Google Chrome、Yandex Browser、Mozilla Firefox等多種瀏覽器,由此可見攻擊者打算盡可能地增加受感染網路使用者的數量。
此系列竄改瀏覽器的惡意軟體,微軟將其統稱為Adrozek,若未能及時偵測、防堵,Adrozek將在瀏覽器安裝擴充功能,並針對目標瀏覽器修改特定DLL檔、改變瀏覽器設定,在網頁內植入未經授權的廣告,其多半出現於搜尋結果頁的合法廣告上方,目的是要讓搜尋特定關鍵字的使用者不小心點擊惡意軟體的廣告,進而連結至廣告聯盟網頁,此時攻擊者就能根據導向的網路流量中獲取不法的廣告分潤。
雖然網路犯罪者利用聯盟網頁並非新鮮事,畢竟瀏覽器修改程式是歷史最為悠久的一種資安威脅,然而此種惡意軟體能攻擊多種瀏覽器顯見此類手法不斷變得更為精細複雜,不僅能維持攻勢,還能竊取網站帳密等憑證,使得受感染裝置又增添幾分風險。
要持續進行如此大範圍的攻擊活動,其基礎架構必須便於擴展且能動態調整。微軟追蹤159個不同網域,每個網域平均託管17,300個獨立的URL,每個URL又平均託管了超過15,300個型態各異的多型(polymorphic)Adrozek安裝程式。總體而言,2020年5月到9月間微軟在全球各地發現數十萬起感染Adrozek惡意軟體的紀錄,多半集中於歐洲、南亞及東南亞。隨著攻勢持續推進,Adrozek 的基礎架構仍在不斷擴張。
此惡意軟體攻擊方式包含多個組件、多種型態,且不斷進化的行為模式。若想有效防止其大規模的持續攻勢,需要的並非特定元件,而是先進的行為偵測能力,且要能清楚掌握整個攻擊鏈狀況。 Microsoft Defender防毒軟體 是Windows 10內建的端點保護解決方案,能提供行為導向、機器學習式的保護,防堵此類威脅。在企業用戶方面,則有Microsoft 365 Defender幫助深度掌握惡意行為。本文將分享微軟對此攻擊活動的深度分析,包括惡意軟體的散播架構及行為模式,並提供建議防禦措施。
分散式基礎架構
Adrozek惡意軟體經由偷渡式下載(drive-by download)安裝於裝置上。微軟追蹤2020年5月到9月間的Adrozek活動,發現有159個不同的網域被用於散布數十萬個型態各異的惡意軟體安裝程式,攻擊者大幅仰賴多型手法不斷變化編碼型態,不僅能產生大量安裝程式,也能避開偵測。
多數網域託管了成千上萬的URL網址,部分甚至超過10萬個獨特URL,其中某一網域更託管將近25萬個,由此龐大的基礎架構可見攻擊者對於維持攻勢志在必得。
此基礎架構的局變動非常頻繁,有些網域才剛建立一天,有些則已有些時日,最長可達120天。有趣的是,有些網域還會散布Processor Explorer等無毒檔案,應是攻擊者有意藉此改善其網域及URL信譽,以躲避網路型的防禦措施。
安裝
攻擊者利用不斷擴張的基礎架構,散播數十萬個型態各異的Adrozek安裝程式,每個檔案都經過大幅偽裝,並依下列格式建立獨特檔名:setup__.exe。
安裝程式一經執行,就會在%temp%資料夾中置入隨機檔名的.exe檔,此檔案會運用看似合法音訊軟體的檔名,將核心的惡意程式碼(payload)置入Program Files資料夾中,微軟也觀察到這些檔名十分多樣,包含Audiolava.exe、QuickAudio.exe、converter.exe等。此惡意軟體的安裝方式與一般程式無異,也能透過「設定」>「應用程式和功能」檢視,並以相同名稱登錄為服務。
竄改瀏覽器元件
安裝Adrozek後,便會修改多項瀏覽器設定及元件,使惡意軟體得以在搜尋結果頁面上插入廣告。
擴充功能
此惡意軟體還會改變某些瀏覽器的擴充功能,以Google Chrome而言,Adrozek通常會去竄改預設的擴充功能Chrome Media Router,但我們也曾觀察到其竄改其他擴充功能的情形。
採用Chromium核心的瀏覽器中,每個擴充功能中都有一個獨特的32位ID,以便使用者在裝置或是Chrome Web商店中找到其位置。Adrozek在Microsoft Edge及 Yandex Browser上會利用Radioplayer等合法擴充功能的ID偽裝,但由於已安裝此類外掛的裝置不多,因此Adrozek會用擴充功能的ID創建新資料夾,並在當中儲存惡意元件。Adrozek在Firefox上則會在擴充功能中加入含有全域唯一識別碼(GUID)的資料夾。Adrozek惡意軟體所使用的路徑及擴充功能ID整理如下:
Browser | Extension paths examples |
Microsoft Edge | %localappdata%\Microsoft\Edge\User Data\Default\Extensions\fcppdfelojakeahklfgkjegnpbgndoch |
Google Chrome | %localappdata%\Google\Chrome\User Data\Default\Extensions\pkedcjkdefgpdelpbcmbmeomcjbeemfm (might vary) |
Mozilla Firefox | %appdata%\Roaming\Mozilla\Firefox\Profiles\\Extensions\{14553439-2741-4e9d-b474-784f336f58c9} |
Yandex Browser | %localappdata%\Yandex\YandexBrowser\User Data\Default\Extensions\fcppdfelojakeahklfgkjegnpbgndoch |
瀏覽器 | 擴充路徑範例 |
Microsoft Edge | %localappdata%\Microsoft\Edge\User Data\Default\Extensions\fcppdfelojakeahklfgkjegnpbgndoch |
Google Chrome | %localappdata%\Google\Chrome\User Data\Default\Extensions\pkedcjkdefgpdelpbcmbmeomcjbeemfm (might vary) |
Mozilla Firefox | %appdata%\Roaming\Mozilla\Firefox\Profiles\\Extensions\{14553439-2741-4e9d-b474-784f336f58c9} |
Yandex Browser | %localappdata%\Yandex\YandexBrowser\User Data\Default\Extensions\fcppdfelojakeahklfgkjegnpbgndoch |
儘管在不同瀏覽器中使用了不同的擴充功能,但Adrozek在當中插入的惡意程式碼卻完全相同。某些情況下,Adrozek是藉由在擴充功能的檔案路徑中加入7個JavaScript檔及1個manifest.json檔來竄改預設擴充功能,有時則是創建新資料夾並放入這些惡意元件。
這些惡意程式碼將連結到攻擊者的遠端伺服器網域以獲取另外的程式碼,並將廣告插入搜尋結果,Adrozek還會把所在裝置的資訊送到伺服器上。
瀏覽器DLL文件
Adrozek惡意軟體還會竄改瀏覽器的某些DLL文件,比如它會竄改Microsoft Edge上的MsEdge.dll,以便關閉Secure Preferences檔中用於偵測變更的重要安全控管功能。
不僅Microsoft Edge,其他採用Chromium核心的瀏覽器也都受此攻擊的影響。此類瀏覽器的首頁及預設搜尋引擎等使用者設定及偏好都儲存在Preferences檔中。針對四種目標瀏覽器,Adrozek竄改的相關DLL文件分別為:
Browser | Modified files |
Microsoft Edge | %PROGRAMFILES%\Microsoft\Edge\Application\\msedge.dll %localappdata%\Microsoft\Edge\User Data\Default\Secure Preferences %localappdata%\Microsoft\Edge\User Data\Default\Preferences |
Google Chrome | %PROGRAMFILES%\Google\Chrome\Application\\chrome.dll %localappdata%\Google\Chrome\User Data\Default\Secure Preferences %localappdata%\Google\Chrome\User Data\Default\Preferences |
Yandex Browser | %PROGRAMFILES%\Yandex\YandexBrowser\\browser.dll %localappdata%\Yandex\YandexBrowser\User Data\Default\Secure Preferences %localappdata%\Yandex\YandexBrowser\User Data\Default\Preferences |
Firefox | %PROGRAMFILES%\Mozilla Firefox\omni.ja %appdata%\Mozilla\Firefox\Profiles\\extensions.json %appdata%\Mozilla\Firefox\Profiles\\prefs.js |
瀏覽器安全設定
瀏覽器本身帶有可避免惡意軟體竄改的安全設定,比如Preferences檔中就含有敏感性資料及安全設定。Chromium核心的瀏覽器可藉由簽章以及驗證多項偏好來偵測是否有未經授權修改設定之情形。這些偏好及設置參數皆儲存於檔名為Secure Preferences的JSON檔案中。
Secure Preferences檔之結構類似於Preferences檔,只是前者在檔案的每個項目中都加入了雜湊訊息鑑別碼(hash-based message authentication code,簡稱HMAC)。檔案中還有名為super_mac的金鑰,用於驗證所有HMAC的完整性。瀏覽器啟動時,會藉由計算及和部分JSON節點的HMAC SHA-256比較,來驗證HMAC值以及super_mac金鑰,若發現數值不符,便會將相關偏好恢復成預設值。
過去瀏覽器修改程式的手法,是像瀏覽器一樣計算雜湊值(hash),並根據結果更新Secure Preferences檔,Adrozek則更進一步地利用二位元組的補丁使執行完整性檢查的功能失效,導致瀏覽器變得更容易受挾持或竄改。
關閉完整性檢查後,Adrozek接著竄改安全設定。若瀏覽器為Google Chrome或Microsoft Edge,Adrozek會修改以下Secure Preferences檔中的項目,以增加權限允許使用惡意擴充功能,進而加強自身對Chrome API的控制。
Entry in Secure Preferences file | Value | Result |
browser_action_visible | false | Plugin not visible in the browser toolbar |
extension_can_script_all_urls | true | Allows the extension to script on all URLs without explicit permission |
incognito | true | The extension can run in the incognito mode |
safebrowsing | false | Turns off safe browsing |
Secure Preferences檔中的項目 | 值 | 結果 |
browser_action_visible | false | 外掛不在瀏覽器工具列中顯示 |
extension_can_script_all_urls | true | 允許此擴充功能在所有網址上加入程式碼,而不需要明確權限 |
incognito | true | 此擴充功能可在無痕模式下運行 |
safebrowsing | false | 關閉安全瀏覽 |
從以下截圖中,可看出有那些權限被加入Secure Preferences檔:
至於Mozilla Firefox,Adrozek則會竄改下列安全設定:
Modified file name | Content | Purpose |
prefs.js | user_pref(“app.update.auto”, false); user_pref(“app.update.enabled”, false); user_pref(“app.update.service.enabled”, false) |
Turn off updates |
extensions.json | (appends details about the malicious extension) | Register the extension to the browser |
Omni.ja (XPIDatabase.jsm module) | isNewInstall = false | Load the extension |
遭竄改檔案之檔名 | 內容 | 目的 |
prefs.js | user_pref(“app.update.auto”, false); user_pref(“app.update.enabled”, false); user_pref(“app.update.service.enabled”, false) |
關閉更新 |
extensions.json | (加入有關惡意擴充功能的詳細資訊) | 把擴充功能登錄到瀏覽器 |
Omni.ja (XPIDatabase.jsm module) | isNewInstall = false | 載入擴充功能 |
瀏覽器更新
若瀏覽器更新至最新版本,將可能復原遭竄改之設定及元件,因此Adrozek加入一條原則以關閉更新。
持續攻勢
除了竄改瀏覽器設定及元件外,Adrozek還修改了幾項系統設定,以便進一步控制遭駭裝置。Adrozek將自身的設置參數存入登錄機碼HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\中,其中的tag項以及did項包含了命令列引數(command line argument),用以啟動核心的惡意程式碼。最新出現的Adrozek變體則不使用tag和did,而是採用任意字元。
廣告植入
竄改多個瀏覽器元件及設定後,Adrozek就有能力利用從遠端伺服器下載的惡意程式碼,在受感染瀏覽器的搜尋結果中插入廣告。
Adrozek根據搜尋關鍵字在合法廣告及搜尋結果的上方加入關聯廣告,插入廣告和導向網站的數量有所不同和。儘管我們尚未看到有廣告連結至惡意網站(比如網站上有惡意軟體),但攻擊者隨時有可能改變攻擊方式。目前Adrozek攻擊者的做法和其他竄改瀏覽器的駭客並無不同,都是藉由將流量導向某些網站,獲取廣告的分潤。
憑證竊取
Adrozek在Mozilla Firefox上會更進一步地竊取認證以取得一席之地。Adrozek會多下載一個隨機命名的.exe檔,用於收集裝置資訊以及目前活耀的使用者名稱,並將資訊傳給攻擊者。
接著找出login.json等特定檔案位置,Mozilla Firefox將前述檔案放在%appdata%\Roaming\Mozilla\Firefox \Profiles\\logins.json,當中存放了瀏覽歷史紀錄以及加密過的使用者憑證。
Adrozek會尋找encryptedUsername以及encryptedPassword等特定關鍵字並找出加密資料,再利用位於Firefox library當中的PK11SDR_Decrypt()功能,將資料解密後傳給攻擊者。
多了這個功能,Adrozek便和其他的瀏覽器修改程式有所區隔,也顯示並沒有所謂次要或不緊急的資安威脅。一開始就將各式各樣的威脅防堵於門外才是第一要務。
抵禦複雜的瀏覽器修改程式
從Adrozek可看出即便是看似不緊急、不重大的威脅都日益變得複雜。儘管這種惡意軟體的主要目的是插入廣告,並將流量導向某些網站,但背後的攻擊鏈涉及許多複雜行為,讓攻擊者得以在裝上取得一席之地。其中還加入了認證竊取的行為,更顯示攻擊者有可能利用已經獲得的存取權限,達成更多目的。
除了複雜的攻擊行為之外,此次攻擊還使用了多種型態的惡意軟體,顯示出需要有專門辨識及偵測惡意行為的資安防禦措施。Windows 10當中內建的端點防護方案Microsoft Defender Antivirus就利用行為導向及機器學習式的偵測功能來防堵Adrozek。
終端使用者如在裝置上發現此威脅,建議重新安裝瀏覽器。有鑑於在網路上散布此威脅的基礎架構十分龐大,使用者也應學習如何預防惡意軟體感染,以及了解從不受信任的來源下載及安裝軟體,和點擊可疑網站上的廣告或連結將有何風險,也應善用網址過濾工具,比如Microsoft Edge瀏覽器上的Microsoft Defender SmartScreen。此外,將資安軟體設置為自動下載及安裝更新檔、使用最新版本的作業系統及應用程式、佈署最新版的安全更新,也都有助於加強端點威脅的防禦能力。
企業方面,資安防禦人員應盡量減少此類威脅的攻擊面。應用程式控管,可幫助組織確保僅使用獲授權的應用程式及服務。Microsoft Edge等企業級瀏覽器則提供更多保護功能,比如:條件式存取,以及能夠抵禦瀏覽器威脅的Application Guard。
對於企業來說,深入掌握端點上的惡意行為,及增加來自如雲端App、電子郵件、和身份等其他網域威脅數據關聯的能力是非常重要的。 Microsoft 365 Defender具備跨網域防護能力,並提供豐富的調查工具幫助資安防禦人員因應資安攻擊。瞭解您的組織可如何運用Microsoft Defender 365的自動化跨網域資安及內建AI來阻止攻擊。
Microsoft 365 Defender研究團隊
若欲瞭解原文,請至微軟官方部落格參考。