Mã độc Typosquatting: Nguy cơ nghiêm trọng từ Maven Central

Mã độc Typosquatting: Nguy cơ nghiêm trọng từ Maven Central

Một chiến dịch mã độc mới đây đã xâm nhập thành công vào Maven Central, một trong những kho lưu trữ đáng tin cậy nhất dành cho các nhà phát triển Java. Kẻ tấn công đã giả mạo một tiện ích mở rộng thư viện Jackson JSON hợp pháp, đánh dấu một **mối đe dọa mạng** tinh vi sử dụng kỹ thuật typosquatting.

Chiến dịch Tấn công Typosquatting trên Maven Central

Gói phần mềm độc hại được phát hành dưới không gian tên org.fasterxml.jackson.core/jackson-databind. Đây là một trong những trường hợp đầu tiên phát hiện mã độc tinh vi trên Maven Central thông qua kỹ thuật typosquatting.

Cuộc tấn công lợi dụng sự nhầm lẫn không gian tên khéo léo. Thư viện Jackson hợp pháp hoạt động dưới com.fasterxml.jackson.core, trong khi phiên bản độc hại sử dụng org.fasterxml.jackson.core. Sự khác biệt tinh tế này dễ khiến nhà phát triển vô tình thêm gói độc hại vào dự án của họ.

Kỹ thuật Đánh lừa Tên miền và Thời gian triển khai

Chiến dịch mã độc này cho thấy dấu hiệu của sự chuẩn bị kỹ lưỡng. Kẻ tấn công đã tạo ra một tên miền giả mạo, fasterxml.org, để sao chép tên miền hợp pháp fasterxml.com. Đây là chiến lược hoán đổi từ .com sang .org tương tự như trong không gian tên gói.

Tên miền giả mạo được đăng ký vào ngày 17 tháng 12 năm 2025, chỉ tám ngày trước khi các nhà phân tích của Aikido xác định mối đe dọa này. Khoảng thời gian ngắn giữa đăng ký tên miền và triển khai là một mô hình phổ biến trong các hoạt động mã độc.

Mục đích là giảm khả năng phát hiện sớm và đưa vào danh sách chặn. Gói này đã được báo cáo cho Maven Central và gỡ bỏ trong vòng 1,5 giờ sau khi phát hiện. Tuy nhiên, không thể loại trừ khả năng các hệ thống nhà phát triển đã bị xâm phạm, gây ra rủi ro bảo mật nghiêm trọng.

Để biết thêm chi tiết về phân tích này, bạn có thể tham khảo bài viết từ Aikido Security: Maven Central Jackson Typosquatting Malware Analysis.

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

Các nhà phân tích của Aikido lưu ý rằng mã độc sử dụng nhiều lớp che giấu để che đậy mục đích thực sự của nó. Mã bên trong tệp JAR bị xáo trộn mạnh mẽ, với các nỗ lực nhằm đánh lừa cả các công cụ phân tích dựa trên học máy thông qua kỹ thuật prompt injection.

Khi mở trong các trình soạn thảo không thoát các ký tự Unicode đúng cách, mã hiển thị nhiều nhiễu đáng kể. Điều này gây khó khăn cho việc kiểm tra thủ công. Tuy nhiên, sau khi kiểm tra kỹ lưỡng, nhóm nghiên cứu đã giải mã thành công mã độc hại.

Mã độc Trojan Downloader và Quy trình Lây nhiễm

Mã độc được xác định là một trojan downloader. Nó có chức năng liên hệ với một máy chủ điều khiển và kiểm soát (C2) để thực thi các payload độc hại trên các hệ thống bị nhiễm. Quy trình lây nhiễm của mã độc diễn ra qua bảy giai đoạn.

Giai đoạn đầu tiên bắt đầu khi một nhà phát triển thêm dependency độc hại vào tệp pom.xml của họ. Sau khi được đưa vào, gói sẽ tự động thực thi khi một ứng dụng Spring Boot khởi động.

Điều này xảy ra do Spring quét các lớp @Configuration và phát hiện JacksonSpringAutoConfiguration. Mã độc kiểm tra sự hiện diện của ApplicationRunner.class, luôn có mặt trong môi trường Spring Boot. Điều này đảm bảo mã độc chạy mà không yêu cầu bất kỳ lời gọi rõ ràng nào từ nhà phát triển.

Kiểm tra Tính bền bỉ và Nhận dạng Môi trường

Cơ chế lây nhiễm bao gồm kiểm tra tính bền bỉ. Mã độc tìm kiếm một tệp có tên .idea.pid trong thư mục làm việc. Tên tệp này khéo léo hòa trộn với các tệp dự án của IntelliJ IDEA. Điều này làm cho nó ít đáng ngờ hơn đối với các nhà phát triển có thể nhận thấy các tệp bất thường trong cấu trúc dự án của họ.

Sau đó, mã độc thực hiện việc nhận dạng môi trường bằng cách kiểm tra System.getProperty("os.name"). Thao tác này xác định hệ thống đang chạy Windows, macOS hay Linux. Thông tin này được sử dụng để tải xuống payload phù hợp với hệ điều hành được phát hiện.

IOCs và Phân tích Payload

Kênh Điều khiển và Kiểm soát (C2)

Giao tiếp với máy chủ điều khiển và kiểm soát (C2) diễn ra qua địa chỉ http[:]//m[.]fasterxml[.]org:51211/config[.]txt. Máy chủ này cung cấp dữ liệu cấu hình được mã hóa AES. Mã độc sử dụng một khóa AES-ECB cố định là 9237527890923496 để giải mã các URL payload cho từng nền tảng được hỗ trợ.

Định dạng đã giải mã tuân theo mẫu os|url. Ví dụ, đối với hệ thống Windows, có thể là win|http[:]//103.127.243[.]82:8000/http/192he23/svchosts.exe.

Phân phối và Thực thi Payload

Sau khi tải xuống binary dưới dạng payload.bin vào thư mục tạm của hệ thống, mã độc sẽ thực thi nó. Nó chuyển hướng đầu ra đến /dev/null trên các hệ thống Unix hoặc NUL trên Windows. Mục đích là để ngăn chặn mọi hoạt động hiển thị. Payload của Windows cố tình sử dụng tên svchosts.exe, một lỗi chính tả của tiến trình svchost.exe hợp pháp, nhằm tránh bị phát hiện trong các cuộc tấn công mạng.

Ví dụ về lệnh thực thi và chuyển hướng đầu ra:

# Trên hệ thống Unix/Linux
./payload.bin > /dev/null 2>&1

# Trên hệ thống Windows
payload.bin > NUL 2>&1

Phân tích Cobalt Strike Beacons

Phân tích các payload đã tải xuống thông qua VirusTotal xác nhận rằng các binary của LinuxmacOS là các Cobalt Strike beacons. Cobalt Strike là một công cụ kiểm thử xâm nhập mạnh mẽ.

Công cụ này thường được sử dụng bởi các nhóm ransomware và các nhóm mối đe dọa dai dẳng nâng cao (APT) cho mục đích truy cập từ xa, đánh cắp thông tin đăng nhập và di chuyển ngang trong mạng. Đây là một dấu hiệu rõ ràng của một cuộc tấn công mạng có chủ đích.

Các Chỉ số Compromise (IOCs)

Để hỗ trợ phát hiện và phòng ngừa mã độc, các chỉ số thỏa hiệp (IOCs) sau đây đã được xác định:

  • Tên miền giả mạo: fasterxml.org
  • C2 Server: m[.]fasterxml[.]org:51211
  • C2 Configuration URL: http[:]//m[.]fasterxml[.]org:51211/config[.]txt
  • Payload Download IP: 103.127.243[.]82:8000
  • Payload Download URL (Ví dụ Windows): http[:]//103.127.243[.]82:8000/http/192he23/svchosts.exe
  • Tên tệp persistence: .idea.pid
  • Tên tệp payload Windows: svchosts.exe
  • Khóa AES-ECB (Hardcoded): 9237527890923496