供應鏈威脅的新形態:惡意NuGet軟體包
在全球數位轉型浪潮中,軟體供應鏈已成為網路攻擊者的新目標,而針對開發者生態系統的威脅正以前所未有的隱蔽性與破壞力浮現。近期,專注於軟體供應鏈安全的Socket威脅研究團隊揭露了一項極為狡猾的攻擊活動:一系列看似無害的NuGet軟體包,實則內嵌了延遲載入的有效載荷(Logic Bomb),其目標不僅包括主流資料庫應用程式,更將矛頭指向了工業控制系統(ICS)中至關重要的可程式邏輯控制器(PLC),對全球關鍵基礎設施構成長期的、潛在的系統性風險。這些惡意軟體包的設計極為精密,利用了「特洛伊木馬」策略,透過提供實際功能來建立可信度,從而躲避安全檢查與開發者的警覺。
潛伏的邏輯炸彈與長期定時破壞機制
Socket威脅研究團隊於2025年11月5日向NuGet報告,他們的研究發現了九個惡意NuGet軟體包,這些軟體包會部署延遲載入的有效載荷,導致應用程式崩潰併入侵工業控制系統(ICS)。NuGet確認已展開調查並採取了移除措施,但截至發稿時,這些軟體包仍然存在於註冊表中。 Socket 的安全工程師兼研究員 Kush Pandya 表示:「這些軟體包於 2023 年至 2024 年間以 NuGet 別名 shanhai666 發布,在 2027 年和 2028 年的特定觸發日期之後,每次數據庫查詢都有 20% 的概率終止宿主應用程序。Pandya 發現駭客總共發布了 12 個軟體包,其中約 9 個包含惡意程式碼,其餘 3 個是合法的實現,旨在證明其可信度。這些惡意軟體策略性地針對所有 .NET 應用程式中使用的三大主流資料庫供應商,例如 SQL Server、PostgreSQL 和 SQLite,此外還透過 Sharp7Extend 軟體包攻擊了 ICS。
針對工業控制系統的雙重Sabotage攻擊
在所有被揭露的惡意軟體包中,Sharp7Extend被視為對工業環境最具威脅性的一個。該軟體包透過對合法且廣泛使用的Sharp7函式庫進行域名搶注(Typosquatting),隱藏其惡意意圖。其最危險之處在於其所採用的雙重破壞機制,這兩種機制在經過 30 至 90 分鐘的隨機寬限期後,便會同時啟動:
隨機程序終止(Random Process Termination): 在每次資料庫查詢或PLC操作時,有高達20%的機率觸發宿主應用程式隨機崩潰。這種間歇性的、看似無規律的崩潰,極易被誤判為暫時性的硬體或配置問題,而非惡意攻擊。
靜默寫入失敗(Silent Write Failures): 該機制針對PLC的寫入操作,在約80%的嘗試中,惡意程式會讓寫入操作靜默失敗,但卻向應用程式返回成功的結果。這導致PLC接收到錯誤或不完整的指令,引發安全關鍵系統(Safety-Critical Systems)中的資料完整性被破壞、致動器(Actuator)不響應,甚至導致生產過程產生難以察覺的偏差,直到累積成嚴重的實體損害。
技術細節:隱蔽的程式碼注入與信任建立
這些惡意軟體包的關鍵技術在於利用C#的擴展方法(Extension Methods)來實現程式碼注入。例如,在針對資料庫的攻擊中,駭客劫持了.Exec()等常見的資料庫操作擴展方法;而在針對PLC的攻擊中,則劫持了.BeginTran()等方法。這種手法使得惡意程式碼能夠隱藏在看似執行正常邏輯的代碼流中,從而逃避傳統的靜態代碼分析。攻擊者還特意改變了發布者的元數據並偽造簽名,以進一步干擾自動化偵測系統的啟發式分析。這些措施使得惡意軟體包得以在NuGet註冊表中潛伏兩年之久,累積近萬次的下載量,成為一個等待引爆的定時炸彈。
強化防禦:企業應對與供應鏈韌性建立
面對供應鏈攻擊的複雜化與潛伏期延長的趨勢,特別是針對ICS環境的威脅,企業必須採取前瞻性的、以韌性為導向的防禦策略。 在工業環境中,對所有PLC寫入作業進行資料完整性審核至關重要,同時也需審查安全系統日誌,以發現漏發的指令或啟動失敗的情況。各組織應建立PLC通訊成功率的基線監控機制,並實施寫入驗證機制,以偵測約佔80%的靜默寫入失敗率。 防禦措施包括加強依賴項管理,驗證發布者身分(不僅限於 NuGet 別名),在合併前和安裝時掃描依賴項變更,以及監控依賴項中基於時間的邏輯或機率性執行模式。此外,還必須警惕工業控制庫的網域搶注 (typosquats)(註),並預測可能涉及輪換包名 (rotated package names)(註)、更深層的觸發邏輯混淆 (deeper obfuscation of trigger logic)(註) 或替代啟動機制 (alternative activation mechanisms) (註)的再次嘗試。 最終,工業營運(OT)與資訊科技(IT)團隊必須共同推動供應鏈安全意識的提升,將所有外部依賴項視為潛在威脅源,從而將合規性導向的防禦轉變為以問責制和系統韌性為核心的縱深防禦體系,確保關鍵基礎設施在未來的惡意攻擊中能夠持續運作。
註:網域搶注 (Typosquatting):指的是惡意攻擊者建立名稱非常相似(通常是拼字錯誤或刻意變形)的套件或程式庫,讓使用者誤以為是合法的。
輪換包名 (rotated package names):是一種 名稱變形技巧,攻擊者會稍微改動合法套件的名字,讓它看起來仍然相似,但實際上是不同的套件。
觸發邏輯混淆 (deeper obfuscation of trigger logic):「觸發邏輯混淆」指的是攻擊者把惡意程式的「何時、如何啟動」的條件與流程,刻意改寫或包裝得難以理解與偵測。目的不是只藏程式碼本身,而是讓安全工具和分析者難以判斷在什麼情境下會觸發惡意行為。
替代啟動機制 (alternative activation mechanisms):攻擊者可能不只依靠單一的觸發方式,而是設計其他「替代」的啟動途徑,讓惡意程式更難被偵測或阻止。 資料來源:https://industrialcyber.co/control-device-security/socket-researchers-uncover-nuget-packages-that-silently-sabotage-industrial-plcs-safety-critical-systems/
Socket研究人員揭露了九個惡意NuGet軟體包,這些「邏輯炸彈」透過偽裝和延遲載入,專門針對.NET應用程式和工業PLC進行破壞,並設定了2027年和2028年的觸發日期。