Tấn công mạng Typosquatting nguy hiểm: Rò rỉ dữ liệu GitHub

Tấn công mạng Typosquatting nguy hiểm: Rò rỉ dữ liệu GitHub

Vào ngày 7 tháng 11, đội ngũ nghiên cứu của Veracode Threat Research đã phát hiện một chiến dịch tấn công mạng typosquatting nguy hiểm nhắm vào các nhà phát triển sử dụng GitHub Actions. Gói npm độc hại “@acitons/artifact” đã tích lũy hơn 206.000 lượt tải xuống trước khi bị gỡ bỏ, đặt ra mối đe dọa đáng kể đối với các kho lưu trữ thuộc sở hữu của GitHub và có khả năng làm lộ các token xác thực nhạy cảm.

Gói độc hại này được ngụy tạo để giống với gói npm hợp pháp “@actions/artifact”, một phần của Bộ công cụ GitHub Actions chính thức.

Nội dung
Kỹ thuật Typosquatting và Sự Lây Lan
Cơ chế Hoạt động của Mã độc

Kích hoạt Post-install Hook
Chuỗi Lây nhiễm và Kích hoạt Payload
Mục tiêu Chính và Rò rỉ Thông tin Nhạy cảm

Nhắm mục tiêu Chính xác vào GitHub Actions
Exfiltration Token Xác thực và Nguy cơ Chuỗi Cung Ứng
Biện pháp Bảo mật Vận hành và Phản ứng

Kỹ thuật Tránh Phát hiện của Kẻ Tấn Công
Phản ứng và Phát hiện Tiếp theo
Chỉ số Nhận dạng Tấn công (IOCs)
Bài học và Khuyến nghị An ninh Mạng

Kỹ thuật Typosquatting và Sự Lây Lan

Kẻ tấn công đã hoán đổi các chữ cái “ti” thành “it” trong tên gói, một kỹ thuật typosquatting cổ điển được thiết kế để lừa các nhà phát triển gõ nhầm tên dependency trong quá trình cài đặt. Kỹ thuật che giấu tinh vi này đã chứng tỏ hiệu quả, tích lũy hàng trăm nghìn lượt tải xuống từ các nhà phát triển không nghi ngờ.

Các nhà nghiên cứu của Veracode đã xác định được sáu phiên bản độc hại của gói này, mỗi phiên bản đều chứa một post-install hook được thực thi trong quá trình cài đặt gói. Thông tin chi tiết về phát hiện này có thể được tìm thấy tại blog của Veracode.

Cơ chế Hoạt động của Mã độc

Kích hoạt Post-install Hook

Hook này có nhiệm vụ tải xuống và thực thi một mã độc bị che giấu, đã né tránh sự phát hiện của các sản phẩm chống virus phổ biến. Tại thời điểm phát hiện, tệp nhị phân độc hại này không bị gắn cờ bởi bất kỳ nhà cung cấp phần mềm chống virus nào trên VirusTotal, điều này nhấn mạnh tính chất tinh vi của mối đe dọa mạng.

Chuỗi Lây nhiễm và Kích hoạt Payload

Chuỗi tấn công được thiết kế cẩn thận. Mã độc bao gồm một shell script bị che giấu, được biên dịch bằng công cụ Shell Script Compiler (shc). Sau khi thực thi, nó tự chạy lại từ bash sau khi sửa đổi các biến môi trường để kích hoạt payload của mình. Điều này dẫn đến việc trích xuất và thực thi một gói Node chứa một tệp JavaScript bị che giấu có tên “verify.js”.

Mục tiêu Chính và Rò rỉ Thông tin Nhạy cảm

Nhắm mục tiêu Chính xác vào GitHub Actions

Phân tích cho thấy đây là một chiến dịch nhắm mục tiêu chính xác vào chính GitHub. Script verify.js chứa các kiểm tra biến môi trường cụ thể của GitHub mà chỉ được đặt trong quá trình xây dựng GitHub Actions. Mã độc bao gồm logic nhắm mục tiêu rõ ràng, sẽ tự thoát im lặng trừ khi chủ sở hữu kho lưu trữ khớp với các mục tiêu cụ thể, bao gồm cả tổ chức GitHub.

Exfiltration Token Xác thực và Nguy cơ Chuỗi Cung Ứng

Quan trọng nhất, mã độc được thiết kế để exfiltrate các token xác thực có sẵn trong môi trường xây dựng. Một khi thu được, các tác nhân đe dọa dự định sử dụng các token này để phát hành các artifact độc hại mới mạo danh GitHub, có khả năng gây ảnh hưởng đến người dùng hạ nguồn và tạo ra một mối đe dọa chuỗi cung ứng theo hiệu ứng domino.

Sự kiện rò rỉ dữ liệu nhạy cảm này cho thấy mức độ nguy hiểm của các cuộc tấn công nhắm mục tiêu vào các thành phần cốt lõi trong quy trình phát triển.

Biện pháp Bảo mật Vận hành và Phản ứng

Kỹ thuật Tránh Phát hiện của Kẻ Tấn Công

Chiến dịch đã thể hiện các thực hành bảo mật vận hành tiên tiến. Mỗi tệp nhị phân độc hại đều chứa một ngày hết hạn được mã hóa cứng, được đặt để tự hủy sau một ngày cụ thể — mẫu chính hết hạn vào ngày 6 tháng 11 UTC, với một mẫu khác được đặt để hết hạn vào ngày hôm sau. Điều này cho thấy sự lập kế hoạch có chủ ý và một chiến dịch có thời gian giới hạn, có thể để tránh bị phát hiện kéo dài.

Quá trình exfiltration diễn ra qua các kênh mã hóa. Mã độc đã truy xuất khóa mã hóa AES từ một máy chủ chỉ huy và kiểm soát (C2) từ xa và truyền dữ liệu được mã hóa đến một điểm cuối dựa trên GitHub App, che giấu thêm hạ tầng của kẻ tấn công.

Phản ứng và Phát hiện Tiếp theo

Veracode đã thông báo cho npm về gói độc hại, dẫn đến việc gỡ bỏ nó. Khách hàng của Veracode Package Firewall đã nhận được sự bảo vệ ngay lập tức vào thứ Sáu khi các nhà nghiên cứu xử lý mối đe dọa. Ngoài ra, các nhà nghiên cứu của Veracode đã phát hiện và chặn 12 phiên bản của một gói độc hại khác có tên “8jfiesaf83” từ cùng một chiến dịch vào đầu tháng 11.

Chỉ số Nhận dạng Tấn công (IOCs)

Các chỉ số quan trọng để nhận dạng và phòng thủ chống lại chiến dịch này bao gồm:

  • Malicious npm Package:@acitons/artifact
  • Other Malicious Package:8jfiesaf83
  • Malicious JavaScript File:verify.js

Bài học và Khuyến nghị An ninh Mạng

Sự cố này nhấn mạnh mối đe dọa ngày càng tăng của các tấn công chuỗi cung ứng, hiện được xếp hạng là hạng mục lỗ hổng nghiêm trọng thứ ba trong OWASP Top 10 2025. Cuộc tấn công này chứng minh cách typosquatting vẫn là một vector hiệu quả để xâm phạm hạ tầng CI/CD và giành quyền truy cập vào các thông tin xác thực nhạy cảm.

Các tổ chức sử dụng GitHub Actions nên kiểm tra kỹ lưỡng các thực hành quản lý dependency của họ và triển khai các lớp xác minh bổ sung cho việc cài đặt gói. Đây là một bước thiết yếu để tăng cường bảo mật mạng và ngăn chặn các cuộc tấn công tương tự trong tương lai.