By: 23pds@慢霧安全團隊

背景

2024 年6 月3 日,推特用戶@CryptoNakamao 發文講述其因下載惡意的Chrome 擴展Aggr 導致100 萬美金被盜的經過,引起廣大加密社區用戶對擴展風險的關注和自己加密資產安全性的擔憂。在5 月31 日,慢霧安全團隊發布了披著羊皮的狼|虛假Chrome 擴展盜竊分析一文,對惡意的Aggr 擴展的作惡方式輸出了詳細分析。鑑於廣大用戶缺乏瀏覽器擴充功能的背景知識,慢霧首席資訊安全長23pds 在本文透過六問六答,講解擴充的基礎知識和潛在風險,提供應對擴展風險的建議,希望能幫助個人用戶和交易平台提高保護帳戶和資產安全的能力。

Web3安全解惑:為什麼小小的Chrome外掛可以造成百萬美元損失?

 (https://x.com/im23pds/status/1797528115897626708)

答疑

1. 什麼是Chrome 擴充?

Chrome 擴充功能(Chrome Extension) 是為Google瀏覽器(Google Chrome) 設計的插件,能夠擴充瀏覽器的功能和行為。它們可以自訂使用者的瀏覽體驗,添加新的功能或內容,或與網站互動。 Chrome 擴充功能通常由HTML、CSS、JavaScript 以及其他網頁技術建構而成。

Chrome 擴充功能的結構通常包括以下幾個部分:

  • manifest.json:擴展的配置文件,定義了擴展的基本資訊(如名稱、版本、權限等)。

  • 背景腳本(Background Scripts):執行在瀏覽器後台,處理事件和長期任務。

  • 內容腳本(Content Scripts):運作在網頁情境中,能夠直接與網頁互動。

  • 使用者介面(UI):如瀏覽器工具列按鈕、彈出視窗、選項頁等。

2. Chrome 擴充功能有什麼作用?

  • 廣告攔截:擴充可以攔截和封鎖網頁上的廣告,進而提高網頁載入速度和使用者體驗。例如,AdBlock 和uBlock Origin。

  • 隱私和安全:一些擴充功能可以增強用戶的隱私和安全性,如防止追蹤、加密通訊、管理密碼等。例如,Privacy Badger 和LastPass。

  • 生產力工具:擴展可以幫助使用者提高生產力,如管理任務、記筆記、時間追蹤等。例如,Todoist 和Evernote Web Clipper。

  • 開發者工具:為網頁開發者提供調試和開發工具,如查看網頁結構、調試程式碼、分析網路請求等。例如,React Developer Tools 和Postman。

  • 社群媒體和通訊:擴充功能可以整合社群媒體和通訊工具,方便使用者在瀏覽網頁時處理社群媒體通知、訊息等。例如,Grammarly 和Facebook Messenger。

  • 網頁客製化:使用者可透過擴充自訂網頁的外觀和行為,如變更主題、重新排列頁面元素、新增額外功能等。例如,Stylish 和Tampermonkey。

  • 自動化任務:擴充功能可以幫助使用者自動化重複性任務,例如自動填寫表單、批次下載檔案等。例如,iMacros 和DownThemAll。

  • 語言翻譯:有些擴充功能可以即時翻譯網頁內容,幫助使用者理解不同語言的網頁,如Google 翻譯。

  • 加密貨幣輔助:擴充功能可以幫助用戶在加密貨幣交易時更加方便,如MetaMask 等。

Chrome 擴充功能的靈活性和多樣性使得它們幾乎可以應用於任何瀏覽場景,幫助使用者更有效率地完成各種任務。

3. Chrome 擴充功能安裝後有哪些權限?

Chrome 擴充功能在安裝後可能會要求一系列權限,以便執行特定的功能。這些權限在擴充的manifest.json 檔案中聲明,並在安裝時提示使用者進行確認。常見的權限包括:

  • <all_urls>:允許擴充功能存取所有網站的內容。這是一個廣泛的權限,允許擴展讀取和修改所有網站的資料。

  • tabs:允許擴充存取瀏覽器的標籤訊息,包括取得目前開啟的標籤、建立和關閉標籤等。

  • activeTab:允許擴充功能暫時存取目前啟動的標籤,通常用於在使用者點擊擴充按鈕時執行特定操作。

  • storage:允許擴充使用Chrome 的儲存API 來儲存和檢索資料。這可以用於保存擴展的設定、用戶資料等。

  • cookies:允許擴充功能存取和修改瀏覽器中的cookies。

  • webRequest 和webRequestBlocking:允許擴充攔截和修改網路請求。這些權限通常用於廣告攔截和隱私保護擴展。

  • bookmarks:允許擴充功能存取和修改瀏覽器的書籤。

  • history:允許擴充存取和修改瀏覽器的歷史記錄。

  • notifications:允許擴充顯示桌面通知。

  • contextMenus:允許擴充功能在瀏覽器的上下文功能表(右鍵選單)中新增自訂選單項目。

  • geolocation:允許擴充功能存取使用者的地理位置資訊。

  • clipboardRead 和clipboardWrite:允許擴充讀取和寫入剪貼簿內容。

  • downloads:允許擴充功能管理下載,包括啟動、暫停和取消下載。

  • management:允許擴充功能管理瀏覽器的其他擴充功能和應用程式。

  • background:允許擴充功能在背景運行長時間任務。

  • notifications:允許擴充顯示系統通知。

  • webNavigation:允許擴充功能監控和修改瀏覽器的導航行為。

這些權限使得Chrome 擴充功能能夠執行許多強大且多樣的功能,但也意味著它們有可能存取使用者的敏感數據,如cookies 、認證資訊等。

4. 為什麼惡意的Chrome 擴充功能可以竊取使用者權限?

惡意的Chrome 擴充功能可以利用所要求的權限來竊取使用者的權限和認證訊息,因為這些擴充功能可以直接存取和操作使用者的瀏覽器環境和資料。具體原因和方式如下:

  • 廣泛的權限存取:惡意擴充功能通常會要求大量的權限,例如存取所有網站(<all_urls>)、讀取和修改瀏覽器標籤(tabs)、存取瀏覽器的儲存(storage) 等。這些權限使得惡意擴充功能能夠廣泛地存取使用者的瀏覽活動和資料。

  • 操作網路請求:惡意擴充功能可以使用webRequest 和webRequestBlocking 權限來攔截和修改網路請求,從而竊取使用者的認證資訊和敏感資料。例如,它們可以在使用者登入網站時攔截表單數據,取得使用者名稱和密碼。

  • 讀取和寫入頁面內容:透過content scripts,惡意擴充可以嵌入程式碼到網頁中,讀取和修改頁面內容。這意味著它們可以竊取用戶在網頁上輸入的任何數據,如表單資訊、搜尋查詢等。

  • 存取瀏覽器儲存:惡意擴充功能可以使用storage 權限存取和儲存使用者的本機數據,包括可能包含敏感資訊的瀏覽器儲存(如LocalStorage 和IndexedDB)。

  • 操作剪貼簿:透過clipboardRead 和clipboardWrite 權限,惡意擴充功能可以讀取和寫入使用者的剪貼簿內容,從而竊取或篡改使用者複製貼上的資訊。

  • 偽裝成合法網站:惡意擴充功能可以透過修改瀏覽器的內容或重新導向使用者造訪的網頁,偽裝成合法網站,誘導使用者輸入敏感資訊。

  • 長期後台運行:具有background 權限的惡意擴充功能可以在背景持續運行,即使使用者沒有主動使用它們。這使得它們可以長時間監控使用者的活動,收集大量資料。

  • 操作下載:使用downloads 權限,惡意擴充功能可以下載和執行惡意文件,進一步危及使用者的系統安全。

5. 為什麼這次惡意擴充的受害者會被竊取權限和資金受損?

因為這次惡意的Aggr 擴充功能剛好獲得了上面我們聊到的背景信息,以下是這個惡意插件manifes.json 文件permissions 內容片段:

  • cookies

  • tabs

  • <all_urls>

  • storage

6.惡意Chrome 擴充功能盜取用戶的cookies 後,能做哪些操作?

  • 存取帳戶:惡意擴充功能可以使用盜取的cookies 模擬使用者登入交易平台帳戶,從而存取使用者的帳戶資訊,包括餘額、交易歷史記錄等。

  • 進行交易:盜取的cookies 可能允許惡意擴充在未經用戶同意的情況下進行交易,購買或出售加密貨幣,甚至將資產轉移到其他帳戶。

  • 提取資金:如果cookies 包含會話資訊和認證令牌,惡意擴展可能繞過二次驗證(2FA),直接發起資金提取,將用戶的加密貨幣轉移到攻擊者控制的錢包中。

  • 存取敏感資訊:惡​​意擴充功能可以存取和收集用戶在交易平台帳戶中的敏感信息,如身份驗證文件、地址等,可能用於進一步的身份盜竊或詐騙活動。

  • 修改帳戶設定:惡意擴充功能可以更改用戶的帳戶設置,如綁定的電子郵件地址、手機號碼等,進一步控制帳戶和竊取更多資訊。

  • 冒充使用者進行社會工程攻擊:利用使用者帳號進行社會工程攻擊,如向使用者的聯絡人發送詐騙訊息,誘導他們進行不安全的操作或提供更多敏感資訊。

因應措施

看到這,廣大用戶可能會想,那怎麼辦,直接斷網不玩了?用單獨的電腦做操作?不用網頁登陸平台?網路上出現了很多一棍子打死的說法,但其實我們可以學習如何合理防範這類風險:

個人使用者的因應措施:

  • 增強個人安全意識:第一個防範建議是增強個人安全意識,始終保持懷疑的態度。

  • 僅安裝可信任來源的擴展:從Chrome 線上應用程式商店或其他可信任來源安裝擴展,並閱讀使用者評價和權限請求,盡量不授予擴展不必要的存取權限。

  • 使用安全的瀏覽器環境:避免安裝不明來源的擴展,並定期審查和刪除不必要的擴展,安裝不同的瀏覽器,隔離插件瀏覽器和交易資金瀏覽器。

  • 定期檢查帳戶活動:定期檢查帳戶登入活動和交易記錄,發現可疑行為立即採取措施。

  • 記得登出登入:使用完網頁操作平台後要記得登出。很多人為了方便,登入平台完成操作後,不點擊退出登錄,這個習慣有安全風險。

  • 使用硬體錢包:對於大額資產,請使用硬體錢包進行存儲,以提高安全性。

  • 瀏覽器設定和安全工具:使用安全的瀏覽器設定和擴充(如廣告攔截器、隱私保護工具)減少惡意擴充的風險。

  • 使用安全軟體:安裝和使用安全軟體來偵測和防止惡意擴充和其他惡意軟體作惡。

最後是給平台的風控建議,透過這些措施,交易平台可以降低惡意Chrome 擴充功能對用戶的安全風險:

  • 強制使用二次驗證(2FA):

- 全域啟用2FA:要求所有使用者在登入和進行重要操作(如交易、下單、提取資金)時啟用二次驗證(2FA),確保即使使用者的cookies 被盜,攻擊者也無法輕易存取帳號。

- 多種驗證方式:支援多種二次驗證方式,如簡訊、電子郵件、Google Authenticator 和硬體令牌等。

  • 會話管理和安全性:

- 裝置管理:提供使用者檢視和管理已登入裝置的功能,讓使用者可以隨時登出不明裝置的會話。

- 會話逾時:實施會話逾時策略,對長時間未活動的會話進行自動註銷,減少會話被盜用的風險。

- IP 位址和地理位置監控:偵測並提醒使用者來自異常IP 位址或地理位置的登入嘗試,並在必要時封鎖這些登入。

  • 強化帳戶安全設定:

- 安全通知:即時向使用者發送有關帳號登入、密碼變更、資金提取等重要操作的通知,可以透過郵件或簡訊提醒使用者異常活動。

- 帳戶凍結功能:提供緊急情況下使用者可以快速凍結帳戶的選項,控制受損範圍。

  • 加強監控和風控系統:

- 異常行為偵測:使用機器學習和大數據分析監控使用者行為,識別異常交易模式和帳戶活動,及時進行風控幹預。

- 風控警告:對頻繁更改帳號資訊、頻繁嘗試登入失敗等可疑行為進行預警和限制。

  • 為使用者提供安全教育和工具:

- 安全教育:透過官方社交帳號、電子郵件、平台內通知等管道向使用者普及安全知識,提示使用者註意瀏覽器擴充功能的風險和如何保護帳號。

- 安全工具:提供官方的瀏覽器外掛程式或擴展,幫助使用者增強帳戶安全,偵測並提醒使用者可能存在的安全威脅。

結語

坦白說,從技術的角度來看,很多時候把上文提到的風控措施都做了,可能不是最好的方式。安全和業務需要平衡,安全太重,使用者體驗會不好,例如下單時需要二次認證,很多用戶為了下單快,索性關掉! 結果是方便了自己也方便了駭客,因為一旦cookies 被盜,不能提幣,駭客就可以玩對敲,造成用戶資產受損。所以針對不同的平台和用戶,採取風控的方式也不相同。至於安全與業務的平衡點在哪,不同的平台有不同的考量,希望平台在考慮使用者體驗的同時,也能保護好使用者帳戶與資產的安全。