網路安全研究人員披露一被描述為「持續且有針對性」的魚叉式網路釣魚攻擊活動的細節,該攻擊活動已向npm註冊表發布了二十多個軟體包,其目的在竊取憑證。依據Socket:此次攻擊活動涉及使用六個不同的上傳27個npm軟體包,主要目標是美國及其盟國關鍵基礎設施相關機構的銷售和商務人員。研究人員Nicholas Anderson和Kirill Boychenko:這項為期五個月的行動將27個npm 軟體包變成持久託管伺服器,用於運行模仿文字檔共享入口和 Microsoft登錄瀏覽器誘餌程式,目標是製造業、工業自動化、塑料和醫療保健等行業的25家機構,目的是竊取憑證。
軟體包名稱如下:
該攻擊活動的最終目標並非要求用戶安裝軟體包,而是將npm 和軟體包內容傳遞網路(Content Delivery Network, CDN)註1重新用作託管基礎設施,利用它們來提供客戶端HTML和JavaScript誘餌,這些誘餌偽裝成安全的文字檔共享,直接嵌入到釣魚頁面中,之後受害者會被重定向到Microsoft登錄頁面,表單中已預先填寫了電子郵件地址。(如圖1所示)

圖1: 重定向到Microsoft釣魚網頁面示意圖
使用軟體套件CDN有許多優勢,其中最主要的是能夠將合法的派送服務轉變為能夠抵禦下架攻擊的基礎設施。此外,即使程式庫檔案被下架,駭客也能輕鬆切換到其他別名發布者和軟體包名稱。研究發現,這些軟體包在客戶端整合多種檢查機制,以應對分析工作,包括過濾機器人程式、繞過沙箱以及要求用戶進行滑鼠或觸控操作才能將受害者引導至駭客控制的憑證竊取基礎設施。JavaScript 程式碼也經過混淆或高度壓縮,以增加自動化檢查的難度。駭客採用的另一項關鍵反分析控制措施是使用蜜罐(Honeypot)表單欄位,這些欄位對真實使用者隱藏,但很可能被爬蟲程式填滿。這一步構成第二層防禦,阻止攻擊進一步發展。
Socket:這些軟體包中包含的網域名稱與開源釣魚工具包 Evilginx相關中間人攻擊 (Man-in-the-middle attack, AitM) 釣魚基礎設施重疊。這並非npm首次被用於釣魚攻擊。早在2025年10月軟體供應鏈安全公司就曾詳細描述過名為Beamglea攻擊活動,該活動中,身份不明的駭客上傳175個惡意軟體包,用於竊取憑證。最新一波攻擊被評估為與Beamglea不同。此次網路攻擊活動遵循相同的核心策略,但採用不同的傳播機制。這些軟體包並非僅包含簡單的重定向腳本,而是以嵌入式HTML和JavaScript形式,在網頁加載時運行一個獨立的、可在瀏覽器執行的釣魚流程。
此外,這些釣魚郵件包中還寫死(hard-coding)註225個與特定人員相關的電子郵件位址,包含來自奧地利、比利時、加拿大、法國、德國、義大利、葡萄牙、西班牙、瑞典、台灣、土耳其、英國和美國等國家,從事製造業、工業自動化、塑膠和聚合物供應鏈以及醫療保健等行業的客戶經理、銷售人員和業務推展代表等工作。目前尚不清楚駭客是如何取得這些電子郵件地址。但鑑於許多目標公司都會參加諸如Interpack和K-Fair等大型國際貿易展,因此懷疑駭客可能從這些展會上獲取資料,並結合網路偵察手段。
在一些案例中,網路攻擊目標地點與公司總部不同,這與駭客將目標鎖定在區域銷售人員、國家經理和本地商業團隊而非僅僅是公司IT部門的做法相符。為了應對此威脅帶來的風險,必須採取以下措施:嚴格執行依賴項驗證;記錄來自非開發環境異常CDN請求;強制執行防釣魚的多因素身份驗證 (Multi-factor authentication, MFA);以及監控可疑的身份驗證後事件。同時觀察到npm、PyPI、NuGet Gallery和Go模組索引上的破壞性惡意軟體數量持續上升,這些惡意軟體利用延遲執行和遠端控制的終止開關等技術來規避早期檢測,並在運行時使用wget和curl等標準工具獲取可執行程式碼。(如圖2所示)

圖: 網路釣魚攻擊示意圖
研究員Kush Pandya:這些惡意軟體不會加密磁碟或隨意銷毀檔案,而是採取精準的攻擊方式。只會刪除對開發者至關重要的內容:Git程式庫、源始程式目錄、配置檔和CI構建輸出。通常將這種邏輯融入到原本運行正常的程式路徑中,並依賴標準的生命週期鉤子來執行,這意味著惡意軟體可能根本不需要被應用程式明確導入或調用。
註1:內容傳遞網路 (Content Delivery Network):是全球佈署的伺服器群組,透過將網站內容(如圖片、影片、程式碼)快取並儲存在離使用者最近的「邊緣伺服器」,來縮短資料傳輸距離,加速網站載入速度、降低延遲,並提供更穩定、安全可靠的內容分發,改善全球使用者體驗。
註2:寫死(hard-coding):是指在軟體實作上,將輸出或輸入的相關參數(例如:路徑、輸出的形式或格式)直接以常數的方式撰寫在原始碼中,而非在執行期間由外界指定的設定、資源、資料或格式做出適當回應。一般被認定是種反模式或不完美的實作,因為軟體受到輸入資料或輸出格式的改變就必須修改原始碼,對客戶而言,改變原始碼之外的小設定也許還比較容易。白話來說就是指給定一個問題只會給出一種答案,每次給出的答案都是固定的。
本文參考自:https://thehackernews.com/2025/12/27-malicious-npm-packages-used-as.html