Chiến dịch tấn công GlassWorm sử dụng GitHub Tokens bị đánh cắp để Force-Push Malware vào các kho lưu trữ Python

Chiến dịch phần mềm độc hại GlassWorm đang được sử dụng để thúc đẩy một cuộc tấn công đang diễn ra, lợi dụng các GitHub tokens bị đánh cắp để lây nhiễm malware vào hàng trăm kho lưu trữ Python. StepSecurity cho biết: "Cuộc tấn công nhắm vào các dự án Python — bao gồm các ứng dụng Django, mã nghiên cứu ML, các bảng điều khiển Streamlit và các gói PyPI — bằng cách thêm mã bị che giấu vào các tệp như setup.py, main.py và app.py." Bất kỳ ai chạy pip install từ một repo bị xâm nhập hoặc sao chép và thực thi mã đó sẽ kích hoạt malware.
Ảnh minh họa: GlassWorm tấn công GitHub Python repos

Chiến dịch malware GlassWorm đang được sử dụng để thúc đẩy một cuộc tấn công đang diễn ra, lợi dụng các GitHub tokens bị đánh cắp để đưa malware vào hàng trăm kho lưu trữ Python.

"Cuộc tấn công nhắm vào các dự án Python — bao gồm các ứng dụng Django, mã nghiên cứu ML, các bảng điều khiển Streamlit và các gói PyPI — bằng cách thêm mã bị che giấu vào các tệp như setup.py, main.py và app.py," StepSecurity cho biết. "Bất kỳ ai chạy pip install từ một repo bị xâm nhập hoặc sao chép và thực thi mã đó sẽ kích hoạt malware."

Theo công ty bảo mật chuỗi cung ứng phần mềm, những lần lây nhiễm sớm nhất đã xuất hiện từ ngày 8 tháng 3 năm 2026. Sau khi giành quyền truy cập vào các tài khoản nhà phát triển, những kẻ tấn công đã rebasing các commits hợp pháp mới nhất trên nhánh mặc định của các kho lưu trữ mục tiêu bằng mã độc hại, sau đó force-push các thay đổi, đồng thời giữ nguyên thông điệp commit, tác giả và ngày tác giả ban đầu.

ForceMemo: Một nhánh mới của GlassWorm

Nhánh mới này của chiến dịch GlassWorm đã được đặt tên mã là ForceMemo. Cuộc tấn công diễn ra theo bốn bước sau:

  • Thỏa hiệp hệ thống của nhà phát triển bằng malware GlassWorm thông qua các tiện ích mở rộng VS Code và Cursor độc hại. Malware này chứa một thành phần chuyên dụng để đánh cắp các secrets, chẳng hạn như GitHub tokens.
  • Sử dụng các thông tin đăng nhập bị đánh cắp để force-push các thay đổi độc hại vào mọi kho lưu trữ được quản lý bởi tài khoản GitHub bị xâm nhập bằng cách rebasing malware bị che giấu vào các tệp Python có tên "setup.py", "main.py" hoặc "app.py".
  • Payload được mã hóa Base64, được thêm vào cuối tệp Python, có các kiểm tra giống GlassWorm để xác định xem hệ thống có thiết lập locale là tiếng Nga hay không. Nếu có, nó sẽ bỏ qua việc thực thi. Trong tất cả các trường hợp khác, malware truy vấn trường transaction memo liên quan đến một Solana wallet ("BjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC") trước đây đã được liên kết với GlassWorm để trích xuất URL của payload.
  • Tải xuống các payload bổ sung từ máy chủ, bao gồm JavaScript được mã hóa được thiết kế để đánh cắp cryptocurrency và dữ liệu.
Sơ đồ minh họa các bước tấn công ForceMemo
"Giao dịch sớm nhất trên địa chỉ C2 đã diễn ra vào ngày 27 tháng 11 năm 2025 — hơn ba tháng trước những lần đưa mã độc vào GitHub repo đầu tiên vào ngày 8 tháng 3 năm 2026," StepSecurity cho biết. "Địa chỉ này có tổng cộng 50 giao dịch, với kẻ tấn công thường xuyên cập nhật URL của payload, đôi khi nhiều lần mỗi ngày."

Việc tiết lộ này diễn ra khi Socket đã gắn cờ một phiên bản mới của GlassWorm, về mặt kỹ thuật vẫn giữ nguyên kỹ thuật tấn công cốt lõi đồng thời cải thiện khả năng sống sót và né tránh bằng cách tận dụng extensionPack và extensionDependencies để phân phối payload độc hại thông qua mô hình phân phối bắc cầu.

Đồng thời, Aikido Security cũng đã quy tác giả GlassWorm cho một chiến dịch quy mô lớn đã thỏa hiệp hơn 151 kho lưu trữ GitHub với mã độc hại được che giấu bằng các ký tự Unicode vô hình. Điều thú vị là payload được giải mã được cấu hình để lấy các hướng dẫn C2 từ cùng một Solana wallet, cho thấy tác nhân đe dọa đã nhắm mục tiêu vào các kho lưu trữ GitHub theo nhiều đợt.

Việc sử dụng các phương pháp phân phối khác nhau và các phương pháp che giấu mã, nhưng cùng một cơ sở hạ tầng Solana, cho thấy ForceMemo là một vector phân phối mới được duy trì và vận hành bởi tác nhân đe dọa GlassWorm, người hiện đã mở rộng từ việc thỏa hiệp các tiện ích mở rộng VS Code sang việc chiếm đoạt tài khoản GitHub rộng hơn.

"Kẻ tấn công đưa malware vào bằng cách force-push lên nhánh mặc định của các kho lưu trữ bị xâm nhập," StepSecurity lưu ý. "Kỹ thuật này viết lại lịch sử git, bảo toàn thông điệp commit và tác giả ban đầu, và không để lại pull request hoặc dấu vết commit nào trong giao diện người dùng của GitHub. Không có chiến dịch chuỗi cung ứng nào khác được ghi nhận sử dụng phương pháp đưa mã độc này."