關閉選單
惡意 NuGet 套件會釋放破壞性的「定時炸彈」

近年來,軟體供應鏈攻擊日益猖獗,程式碼安全公司 Socket 揭露 NuGet 上出現惡意行為。這些惡意套件潛伏於開發者專案中,猶如長期定時的數位炸彈,目標是對關鍵的資料庫系統和工業控制環境造成破壞。開發者 shanhai666 在 NuGet 上發布了 12 個套件,經確認其中有九個夾帶惡意程式碼,包括針對 .NET 應用程式三大主要資料庫供應商(SQL Server、PostgreSQL、SQLite)的 SqlUnicorn.CoreSqlDbRepositorySqlLiteRepository 等。其中最危險的是 Sharp7Extend,它偽裝成用於西門子 S7 PLC 通訊的合法 Sharp7 函式庫擴展。透過附加「Extend」,成功欺騙尋求增強功能的開發者。儘管這些套件已被移除,但在下架前下載總數已逼近 9,500 次,意味著大量專案和組織可能已受波及。

NuGet 是一個開源的套件管理器和軟體分發系統,使開發人員能夠下載並包含可直接運行的 .NET 程式庫到他們的專案中。NuGet 上的幾個惡意軟體套件計劃在 2027 年和 2028 年啟動破壞性有效載荷,目標是資料庫實現和西門子 S7 工業控制設備。嵌入的惡意程式碼使用機率觸發,因此它是否會啟動取決於受感染裝置上的一組參數。程式碼安全公司 Socket 的研究人員在 NuGet 上發現了九個惡意軟體包,全部以開發者名稱 shanhai666發布,這些軟體包除了包含有害程式碼外,還具有合法的功能。Socket 研究人員表示,這些軟體包包含大部分(99%)合法程式碼,營造出一種虛假的安全感和信任感,但其中包含一個 20 行的惡意有效載荷。「該惡意軟體利用 C# 擴展方法,以透明的方式將惡意邏輯注入到每個資料庫和 PLC 操作中,」Socket在本週的報告中解釋道。每次應用程式執行資料庫查詢或PLC操作時,擴充方法都會執行。此外,也會驗證受感染系統上的當前日期是否與硬編碼的觸發日期一致,該觸發日期範圍為2027年8月8日至2028年11月29日。雖然這些擴展的確切目標和來源尚不清楚,但建議可能受到影響的組織立即對其資產進行審計,檢查是否存在這九個軟體包,如果存在任何此類軟體包,則假定其已被入侵。對於執行 Sharp7Extend 的工業環境,審核 PLC 寫入操作的完整性,檢查安全系統日誌中是否有遺漏的命令或啟動失敗,並對關鍵操作實施寫入驗證。

惡意程式碼的「時間炸彈」機制具備多層次的攻擊能力。對於一般的資料庫用戶端,若日期(2027年8月8日至2028年11月29日)符合,有 20% 機率會呼叫 Process.GetCurrentProcess().Kill(),導致主機行程立即終止。對於冒充 Sharp7Sharp7Extend 套件,在 2028 年 6 月 6 日前,它同樣會在 20% 情況下立刻終止 PLC 通訊,使操作立即停止。Sharp7Extend 的第二個破壞機制更為險惡。它利用讀取一個不存在的配置值導致初始化失敗,並設定 30 到 90 分鐘的有效載荷執行延遲。延遲後,通過過濾器的 PLC 寫入操作有高達 80% 機率會遭到破壞。這會導致執行器無法接收指令、設定點無法更新、安全系統無法啟動等嚴重後果。「透過 BeginTran() 實現的立即隨機程序終止,與透過 ResFliter 實現的延遲寫入破壞相結合,形成了一種隨著時間演變的複雜多層次攻擊。」Socket 研究人員總結道。此事件強烈提醒所有依賴開源套件的開發者和工業企業,必須提高警惕,定期審核軟體供應鏈中的潛在威脅,並對已部署的資產進行全面的安全審計。


資料來源:https://www.bleepingcomputer.com/news/security/malicious-nuget-packages-drop-disruptive-time-bombs/
 
程式碼安全公司Socket發現NuGet套件管理器上的九個惡意套件,這些套件偽裝成合法程式庫,並在2027年至2028年期間設有概率性觸發的「時間炸彈」,旨在破壞資料庫及西門子S7工業控制系統。