Ethereum hợp đồng thông minh ẩn chứa bẫy! gói npm bị cài đặt nến bóng dài nhắm vào các nhà phát triển.

Các nhà nghiên cứu an ninh cảnh báo rằng một loại tấn công mới đang âm thầm lợi dụng hợp đồng thông minh Ethereum làm kênh chỉ huy và kiểm soát (C2), ẩn giấu phần mềm độc hại trong các gói npm JavaScript có vẻ vô hại, nhắm mục tiêu vào máy tính của các nhà phát triển. Phương pháp này không chỉ làm tăng độ khó trong việc theo dõi và loại bỏ mà còn tận dụng tính không thể thay đổi và công khai của Blockchain, khiến cho phía phòng thủ khó khăn hơn trong việc chặn đứng.

phần mềm độc hại npm bẫy cách lợi dụng Ethereum truyền tải lệnh tấn công

ReversingLabs phát hiện rằng hai gói npm có tên colortoolsv2 và mimelib2 sẽ đọc các hợp đồng thông minh cụ thể trên Ethereum để lấy URL của trình tải xuống độc hại giai đoạn hai, thay vì mã hóa cứng hạ tầng trong các gói.

Thiết kế này giảm khả năng phát hiện tĩnh và để lại ít manh mối hơn trong việc xem xét mã. Mặc dù số lần tải xuống của hai gói này rất thấp (lần lượt là 7 lần và 1 lần), nhưng cách tấn công của chúng tạo ra mối đe dọa nghiêm trọng đối với an ninh chuỗi cung ứng.

Giả mạo GitHub và kỹ thuật xã hội hướng dẫn cài đặt

Khảo sát cho thấy, sự quảng bá của những phần mềm độc hại này đến từ một mạng lưới kho GitHub giả mạo thành robot giao dịch, chẳng hạn như solana-trading-bot-v2.

Kẻ tấn công thông qua dấu sao giả, lịch sử gửi bị phóng đại và tài khoản người bảo trì bù nhìn, dụ dỗ các nhà phát triển cài đặt phụ thuộc độc hại một cách vô tình.

Phương pháp này giống hệt như cuộc tấn công đăng ký tên miền npm vào cuối năm 2024, khi hàng trăm gói sẽ truy vấn hợp đồng Ethereum trong giai đoạn cài đặt, lấy URL cơ sở, sau đó tải xuống các tệp thực thi độc hại nhắm vào Windows, Linux, macOS.

Chi tiết kỹ thuật của kênh lệnh trên chuỗi

Công ty an ninh Checkmarx và Phylum phát hiện rằng địa chỉ hợp đồng chính mà kẻ tấn công sử dụng là 0xa1b40044EBc2794f207D45143Bd82a1B86156c6b, và thông qua ethers.js gọi getString(address) để lấy địa chỉ máy chủ C2 mới nhất.

Các nút C2 này bao gồm 45.125.67.172:1337 và 193.233.201.21:3001, sẽ thay đổi theo thời gian để tránh bị chặn.

Do vì dữ liệu hợp đồng thông minh không thể bị xóa sửa, cách lưu trữ trên chuỗi này khó bị gỡ bỏ hơn so với GitHub Gist truyền thống hoặc lưu trữ đám mây.

Đề xuất phòng thủ: Chặn kịch bản vòng đời và yêu cầu mạng

Các chuyên gia khuyên rằng, đội ngũ phát triển nên kích hoạt tham số --ignore-scripts trong quá trình cài đặt npm và quy trình CI để ngăn chặn các tập lệnh vòng đời độc hại tự động thực thi, và cố định phiên bản gói thông qua các tệp khóa.

Đồng thời, nên chặn các IP độc hại đã biết và địa chỉ hợp đồng trong tường lửa hoặc đại lý bảo mật, và giám sát các cuộc gọi nghi ngờ đến getString(address) trong nhật ký xây dựng.

Hướng dẫn an ninh chính thức của Node.js cũng khuyến nghị thực hiện đánh giá nghiêm ngặt về danh tính của người duy trì và dữ liệu metadata của gói, nhằm giảm thiểu rủi ro tấn công chuỗi cung ứng.

Kết luận

Mặc dù sự kiện lần này không ảnh hưởng nhiều đến lượng tải xuống, nhưng nó đã tiết lộ một kiểu tấn công kín đáo và khó phòng ngừa hơn - sử dụng Blockchain như một kênh lệnh bền vững, kết hợp kỹ thuật xã hội và thâm nhập chuỗi cung ứng mã nguồn mở, gây ra mối đe dọa lâu dài cho các nhà phát triển và doanh nghiệp. Trong tương lai, sự kết hợp giữa phần mềm độc hại trên chuỗi và các cuộc tấn công chuỗi cung ứng truyền thống có thể trở thành một chuẩn mực mới trong lĩnh vực an ninh mạng.

ETH-0.28%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
Không có bình luận
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)