Go Module Mirror đã cung cấp "cửa hậu" cho các nhà phát triển trong hơn 3 năm.

Tác giả tanthanh 14/02/2026 14 phút đọc

Một proxy nhân bản mà Google chạy thay mặt cho các nhà phát triển ngôn ngữ lập trình Go đã đẩy gói backdoored trong hơn ba năm cho đến thứ Hai, sau khi các nhà nghiên cứu phát hiện ra mã độc hại đã kiến nghị gỡ bỏ nó hai lần.

Dịch vụ, được gọi là Gương mô-đun Go, lưu trữ các gói nguồn mở có sẵn trên GitHub và các nơi khác để quá trình tải xuống nhanh hơn và đảm bảo chúng tương thích với phần còn lại của hệ sinh thái Go. Theo mặc định, khi ai đó sử dụng các công cụ dòng lệnh được tích hợp trong Go để tải xuống hoặc cài đặt các gói, các yêu cầu sẽ được định tuyến qua dịch vụ. Mô tả trên trang web cho biết proxy được cung cấp bởi nhóm Go và “do Google.” điều hành

Bộ nhớ đệm trong

Kể từ tháng 11 năm 2021, Go Module Mirror đã tổ chức phiên bản cửa sau của mô-đun được sử dụng rộng rãi, công ty bảo mật Socket cho biết hôm thứ Hai. Tệp sử dụng “typosquatting,” một kỹ thuật đặt tên cho các tệp độc hại tương tự như các tệp hợp pháp được sử dụng rộng rãi và đặt chúng trong các kho lưu trữ phổ biến. Trong trường hợp ai đó tạo lỗi đánh máy hoặc thậm chí là một biến thể nhỏ so với tên chính xác khi tìm nạp tệp có dòng lệnh, họ sẽ truy cập vào tệp độc hại thay vì tệp họ muốn. (Một sơ đồ lỗi chính tả tương tự cũng phổ biến với tên miền.)

Mô-đun độc hại được đặt tên là boltdb-go/bolt, một biến thể của boltdb/bolt được áp dụng rộng rãi 8.367 gói khác phụ thuộc vào để chạy. Gói độc hại lần đầu tiên xuất hiện trên GitHub. Tệp ở đó cuối cùng đã được hoàn nguyên về phiên bản hợp pháp, nhưng vào thời điểm đó, Go Module Mirror đã lưu trữ tệp ở cửa sau và lưu trữ nó trong ba năm tiếp theo.

“Sự thành công của cuộc tấn công này dựa vào thiết kế của dịch vụ Go Module Proxy, ưu tiên bộ nhớ đệm cho hiệu suất và tính khả dụng, các nhà nghiên cứu của ” Socket viết. “Sau khi phiên bản mô-đun được lưu vào bộ nhớ đệm, nó vẫn có thể truy cập được thông qua Proxy mô-đun Go, ngay cả khi nguồn gốc sau đó được sửa đổi. Mặc dù thiết kế này mang lại lợi ích cho các trường hợp sử dụng hợp pháp, nhưng tác nhân đe dọa đã khai thác nó để liên tục phân phối mã độc bất chấp những thay đổi tiếp theo đối với kho lưu trữ.”

Có những thứ khác được thiết kế để thu hút các nhà phát triển vào gói. Một là tệp README đi kèm boltdb-go/bolt là bản sao của tệp từ gói lành tính ban đầu. Một điều nữa là gói ban đầu đã được lưu trữ. Các nhà phát triển thường xuyên chọn các nhánh hoạt động thay vì các phiên bản cũ hơn. Những người khác có thể bị lừa khi nghĩ rằng gói độc hại như vậy là gói ban đầu/hợp pháp.

Cửa sau lẻn vào mô-đun, xây dựng một địa chỉ và cổng IP ẩn, đồng thời kết nối với máy chủ do kẻ tấn công kiểm soát. Sau đó nó sẽ thực thi bất kỳ lệnh nào mà máy chủ từ xa đưa ra. Địa chỉ IP máy chủ, được lưu trữ bởi Hetzner Online (AS24940), có danh tiếng đáng tin cậy. Các nhà nghiên cứu của Socket nghi ngờ cơ sở hạ tầng được mua sắm đặc biệt cho chiến dịch để tránh bị phát hiện. “Không giống như phần mềm độc hại bừa bãi, cửa sau này được thiết kế để hòa nhập vào môi trường phát triển đáng tin cậy, làm tăng khả năng thỏa hiệp trên diện rộng trước khi bị phát hiện, họ viết.

Sau khi phát hiện ra mô-đun này, Socket đã kiến nghị vào thứ Sáu tuần trước để loại bỏ nó. Socket đã kiến nghị một lần nữa vào thứ Hai, khi gói hàng cuối cùng đã được gửi xuống. Các nhà nghiên cứu đã cung cấp chuỗi sự kiện sau:

  • Tác nhân đe dọa tạo một kho lưu trữ bị lỗi chính tả (github.com/boltdb-go/bolt) trên GitHub
  • Họ xuất bản phiên bản cửa sau (v1.3.1) với cơ chế truy cập từ xa ẩn
  • Go Module Mirror tìm nạp và lưu trữ phiên bản này, lưu trữ nó để cài đặt trong tương lai
  • Tác nhân đe dọa sửa đổi kho lưu trữ GitHub, thay thế v1.3.1 bằng phiên bản sạch
  • Những người đánh giá thủ công đang kiểm tra GitHub giờ đây sẽ chỉ thấy phiên bản sạch
  • Mặc dù kho lưu trữ GitHub có vẻ an toàn, Go Module Mirror vẫn tiếp tục phục vụ phiên bản độc hại của v1.3.1 cho các nhà phát triển
  • Chúng tôi đã xác định gói được lưu trong bộ nhớ đệm độc hại và yêu cầu xóa nó khỏi Go Module Mirror vào ngày 30 tháng 1 năm 2025 và sau đó một lần nữa vào ngày 3 tháng 2 năm 2025.
  • Chúng tôi cũng đã báo cáo kho lưu trữ GitHub và tài khoản liên quan cho GitHub để điều tra thêm và gỡ xuống vào ngày 3 tháng 2 năm 2025
  • Mặc dù kho lưu trữ GitHub là “clean” vào thời điểm phát hiện nhưng gói được lưu trong bộ nhớ đệm được phân phối thông qua Proxy mô-đun Go vẫn độc hại. Đây là lý do tại sao hành vi bộ nhớ đệm mô-đun của Go có nguy cơ bảo mật, vì nó cho phép kẻ tấn công ẩn dấu vết của chúng sau khi gói của chúng được lưu vào bộ nhớ đệm.
  • Tác nhân đe dọa tạo một kho lưu trữ bị lỗi chính tả (github.com/boltdb-go/bolt) trên GitHub
  • Họ xuất bản phiên bản cửa sau (v1.3.1) với cơ chế truy cập từ xa ẩn
  • Go Module Mirror tìm nạp và lưu trữ phiên bản này, lưu trữ nó để cài đặt trong tương lai
  • Tác nhân đe dọa sửa đổi kho lưu trữ GitHub, thay thế v1.3.1 bằng phiên bản sạch
  • Những người đánh giá thủ công đang kiểm tra GitHub giờ đây sẽ chỉ thấy phiên bản sạch
  • Mặc dù kho lưu trữ GitHub có vẻ an toàn, Go Module Mirror vẫn tiếp tục phục vụ phiên bản độc hại của v1.3.1 cho các nhà phát triển
  • Chúng tôi đã xác định gói được lưu trong bộ nhớ đệm độc hại và yêu cầu xóa nó khỏi Go Module Mirror vào ngày 30 tháng 1 năm 2025 và sau đó một lần nữa vào ngày 3 tháng 2 năm 2025.
  • Chúng tôi cũng đã báo cáo kho lưu trữ GitHub và tài khoản liên quan cho GitHub để điều tra thêm và gỡ xuống vào ngày 3 tháng 2 năm 2025
  • Mặc dù kho lưu trữ GitHub là “clean” vào thời điểm phát hiện nhưng gói được lưu trong bộ nhớ đệm được phân phối thông qua Proxy mô-đun Go vẫn độc hại. Đây là lý do tại sao hành vi bộ nhớ đệm mô-đun của Go có nguy cơ bảo mật, vì nó cho phép kẻ tấn công ẩn dấu vết của chúng sau khi gói của chúng được lưu vào bộ nhớ đệm.

Đại diện của cả Google và nhóm Go đã không trả lời email hỏi những bước nào được thực hiện để đảm bảo sự an toàn của các mô-đun được cung cấp qua gương.

Nghiên cứu kể một câu chuyện cảnh báo về tầm quan trọng của việc kiểm tra mã đúng cách trước khi chạy nó trên các thiết bị sản xuất. Quá trình này bao gồm xác minh tính toàn vẹn của gói trước khi cài đặt, phân tích các phần phụ thuộc để tìm các điểm bất thường và sử dụng các công cụ bảo mật để kiểm tra mã đã cài đặt ở cấp độ sâu hơn.

Cập nhật, ngày 7 tháng 2 năm 2025: Trong một email được gửi hơn 24 giờ sau khi câu chuyện này xuất hiện trực tiếp trên Ars, đại diện của Google đã đưa ra tuyên bố như sau:

Mô-đun đã bị xóa khỏi cả proxy mô-đun Go và GitHub và chúng tôi đã thêm nó vào cơ sở dữ liệu lỗ hổng Go cho bất kỳ ai nghĩ rằng họ có thể đã bị ảnh hưởng. Chúng tôi đang giải quyết vấn đề này thông qua các bản sửa lỗi như phân tích khả năng thông qua Khóa mũ và chạy so sánh với deps.dev.  Chúng tôi muốn cảm ơn Socket và những người đóng góp cho nhóm Go đã phát hiện ra mô-đun và đang giải quyết các bản sửa lỗi. Chúng tôi sẽ tiếp tục làm việc với ngành công nghiệp rộng lớn hơn để nâng cao nhận thức xung quanh các vấn đề bảo mật nguồn mở phổ biến như thế này và công việc đang được thực hiện thông qua các sáng kiến như SLSA và OpenSSF.

Tác giả tanthanh Admin
Bài viết trước Ứng dụng DeepSeek trên iOS gửi dữ liệu không mã hóa đến các máy chủ do ByteDance kiểm soát.

Ứng dụng DeepSeek trên iOS gửi dữ liệu không mã hóa đến các máy chủ do ByteDance kiểm soát.

Bài viết tiếp theo

Hàng nghìn bộ định tuyến TP-Link bị hack đã được sử dụng trong các cuộc tấn công chiếm đoạt tài khoản kéo dài nhiều năm.

Hàng nghìn bộ định tuyến TP-Link bị hack đã được sử dụng trong các cuộc tấn công chiếm đoạt tài khoản kéo dài nhiều năm.
Viết bình luận
Thêm bình luận

Bài viết liên quan

Thông báo

0917111899