駭客入侵Toptal GitHub並發布10萬筆資料
在近期一系列軟體供應鏈攻擊事件中,最新的一例是未知威脅行為者成功入侵了人才平台Toptal的GitHub組織帳戶,並利用此權限向npm註冊中心發布了10個惡意套件。這些惡意套件內含旨在竊取GitHub驗證憑證和破壞受害者系統的程式碼。據 Socket上週發布的報告指出,除了發布惡意套件外,Toptal組織相關的73個儲存庫也被公開。
惡意套件詳情與攻擊手法
受影響的 npm 套件列表包括:
- @toptal/picasso-tailwind
- @toptal/picasso-charts
- @toptal/picasso-shared
- @toptal/picasso-provider
- @toptal/picasso-select
- @toptal/picasso-quote
- @toptal/picasso-forms
- @xene/core
- @toptal/picasso-utils
- @toptal/picasso-typograph
所有這些Node.js函式庫的package.json檔案中都嵌入了相同的惡意酬載。在它們被從儲存庫中移除之前,總下載量約為5,000次。惡意程式碼被發現專門針對 preinstall和postinstall腳本,用於將GitHub驗證憑證外洩到webhook[.]site端點,然後在Windows和Linux系統上靜默移除所有目錄和文件,而無需任何用戶互動(指令分別為 rm /s /q 或 sudo rm -rf --no-preserve-root /)。
目前尚不清楚此次入侵是如何發生的,但可能性包括憑證洩露或擁Toptal GitHub組織存取權限的內部人員惡意行為。目前,這些套件已恢復到其最新的安全版本。
其他相關供應鏈攻擊事件
此次事件與近期其他針對開源生態系統的供應鏈攻擊同時發生:
- npm和PyPI儲存庫監控軟體攻擊:另一起供應鏈攻擊鎖定npm和Python Package Index (PyPI)儲存庫,部署了監控軟體,能夠感染開發者機器,進行鍵盤記錄、螢幕和網路攝影機圖像擷取、系統資訊收集以及憑證竊取。這些惡意套件被發現利用不可見的iframes和瀏覽器事件監聽器進行鍵盤記錄,透過 pyautogui和pag等函式庫進行程式化螢幕截圖,並使用pygame.camera模組進行網路攝影機存取。收集到的數據透過Slack webhooks、Gmail SMTP、AWS Lambda端點和Burp Collaborator子域名傳輸給攻擊者。
- 受影響的npm套件:dpsdatahub (5,869次下載)、nodejs-backpack (830次下載)、m0m0x01d (37,847次下載)。
- 受影響的PyPI套件:vfunctions (12,033次下載)。
- Amazon Q VS Code擴充功能遭入侵:亞馬遜針對Visual Studio Code (VS Code)的Amazon Q擴充功能也遭到入侵,被植入一個「缺陷」提示,旨在清除用戶的家目錄並刪除所有AWS資源。這些由駭客使用化名「lkmanka58」提交的惡意提交,最終作為版本1.84.0的一部分發布到擴充功能市場。駭客聲稱他們向GitHub儲存庫提交了拉取請求,儘管包含惡意指令,但仍被接受並合併到原始碼中。亞馬遜已移除惡意版本並發布了 1.85.0 版。
這些事件再次凸顯了惡意行為者濫用開源生態系統的信任,將惡意軟體和間諜軟體植入開發者工作流程的持續趨勢,對下游用戶構成嚴重風險。
對開發者與企業的啟示
- 此類攻擊事件對開發者和企業敲響了警鐘,提醒我們在依賴開源軟體和開發工具時必須保持高度警惕。審核和驗證:在將任何開源套件或擴充功能整合到專案中之前,應對其進行嚴格的審核和驗證,檢查其來源、程式碼完整性及潛在風險。
- 最小權限原則:開發環境應遵循最小權限原則,限制開發工具和帳戶的權限,以降低攻擊者一旦入侵所能造成的損害。
- 憑證安全:嚴格管理API金鑰、認證憑證等敏感資訊,避免將其硬編碼到程式碼中或儲存在不安全的位置。
- 持續監控:對程式碼儲存庫、開發工具和部署管道進行持續監控,及時發現異常活動或未經授權的修改。
- 安全意識培訓:對開發者進行軟體供應鏈攻擊、網路釣魚和社交工程等安全威脅的培訓,提高其安全意識。
- 版本控制與簽名:鼓勵開源專案維護者實施更嚴格的版本控制、程式碼審核和數位簽名機制,以確保套件的真實性和完整性。
軟體供應鏈攻擊的複雜性不斷增加,要求整個開發生態系統共同努力,加強防禦,以保護開發者和最終用戶免受不斷演變的網路威脅。
資料來源:https://thehackernews.com/2025/07/hackers-breach-toptal-github-publish-10.html