Một cuộc tấn công mạng tinh vi nhắm vào các giao diện Java Debug Wire Protocol (JDWP) không được bảo mật trên các máy chủ honeypot chạy TeamCity, một ứng dụng CI/CD phổ biến, đã được phát hiện bởi Wiz Research Team.
Nhóm nghiên cứu quan sát thấy rằng chỉ trong vòng vài giờ sau khi một máy chủ dễ bị tổn thương được tiếp xúc, kẻ tấn công đã khai thác giao diện JDWP để đạt được thực thi mã từ xa (Remote Code Execution – RCE). Tốc độ khai thác đáng báo động này, được ghi nhận trên nhiều trường hợp, nhấn mạnh tình trạng JDWP là mục tiêu ưu tiên cao đối với tội phạm mạng. Sử dụng các công cụ như GreyNoise, các nhà nghiên cứu đã xác định hơn 6.000 địa chỉ IP duy nhất quét các điểm cuối JDWP trong 90 ngày qua, cho thấy quy mô và mức độ khẩn cấp của mối đe dọa này.
Chuỗi Tấn Công Chi Tiết
Luồng tấn công bắt đầu bằng việc quét các cổng JDWP đang mở, sau đó nhanh chóng thực hiện một quá trình bắt tay (handshake) để xác nhận tính khả dụng của giao diện trên cổng 5005. Sau khi kết nối được thiết lập, kẻ tấn công đã lợi dụng việc JDWP không có cơ chế xác thực mặc định để tương tác với Java Virtual Machine (JVM).
Kẻ tấn công truy vấn các lớp đã được nạp và gọi các phương thức như java.lang.Runtime.getRuntime() và exec() để thực thi các lệnh độc hại. Các lệnh này tạo điều kiện thuận lợi cho việc tải xuống một script thả (dropper script) có tên logservice.sh từ một máy chủ từ xa. Script này sau đó cài đặt một payload đào tiền mã hóa XMRig đã được tùy chỉnh, ngụy trang dưới dạng một tiện ích hệ thống hợp pháp có tên logrotate.
Kỹ Thuật Né Tránh Phát Hiện
Miner đã được sửa đổi này có các cấu hình được mã hóa cứng (hardcoded) để né tránh phát hiện bằng cách tránh các đối số dòng lệnh đáng ngờ. Hơn nữa, kẻ tấn công đã sử dụng các proxy nhóm đào (mining pool proxies) để che giấu địa chỉ ví tiền mã hóa của mình, làm phức tạp các nỗ lực truy vết hoạt động của chúng.
Cơ Chế Duy Trì Quyền Truy Cập
Script độc hại cũng thiết lập các cơ chế duy trì quyền truy cập (persistence mechanisms) rộng rãi, tự nhúng vào các tệp khởi động shell, dịch vụ systemd, công việc cron và các script khởi động. Điều này đảm bảo phần mềm độc hại sẽ được khởi chạy lại sau khi khởi động lại hệ thống hoặc đăng nhập, đồng thời xóa các dấu vết của dropper ban đầu để giảm thiểu khả năng bị phát hiện.
Rủi Ro Tiềm Tàng của JDWP
Sự cố này là một lời nhắc nhở rõ ràng về những rủi ro cố hữu trong JDWP, một công cụ gỡ lỗi thường được kích hoạt trong môi trường phát triển cho các ứng dụng như Jenkins, Elasticsearch và Spring Boot. Mặc dù không được kích hoạt mặc định, JDWP thường chạy ở chế độ gỡ lỗi mà không có bảo mật đầy đủ, tạo ra một cổng cho kẻ tấn công để giành quyền kiểm soát hoàn toàn các tiến trình Java nếu bị phơi nhiễm ra Internet.
Chỉ Số Thỏa Hiệp (Indicators of Compromise – IOCs)
Dựa trên phân tích, các chỉ số thỏa hiệp sau đây đã được xác định:
- Dropper Script Filename:
logservice.sh - Malware Filename (disguised cryptominer):
logrotate(thực chất là XMRig đã sửa đổi) - Kiểu Malware: Cryptominer (XMRig)
- Kỹ thuật Né Tránh: Sử dụng mining pool proxies để che giấu địa chỉ ví.
Biện Pháp Phòng Ngừa và Phát Hiện
Nhóm Wiz lưu ý rằng các giải pháp của họ, như phát hiện phần mềm độc hại không agent (agentless malware detection) với các quy tắc YARA và Wiz Runtime Sensor, có thể phát hiện các mối đe dọa như vậy bằng cách giám sát việc khai thác JDWP, sửa đổi tệp hệ thống và hoạt động đào tiền mã hóa.
Cuộc tấn công này đóng vai trò là một lời cảnh tỉnh quan trọng đối với các tổ chức để bảo mật các giao diện gỡ lỗi và triển khai giám sát mạnh mẽ nhằm ngăn chặn các vi phạm tương tự. Các biện pháp cần được ưu tiên bao gồm:
- Hạn chế Tiếp Xúc: Đảm bảo các giao diện JDWP không bao giờ được phơi bày ra Internet công cộng. Giới hạn quyền truy cập chỉ cho các địa chỉ IP đáng tin cậy trong môi trường phát triển hoặc kiểm thử, sử dụng tường lửa hoặc nhóm bảo mật mạng.
- Xác thực và Ủy quyền: Nếu việc tiếp xúc là không thể tránh khỏi (trong môi trường nội bộ), hãy triển khai các giải pháp xác thực và ủy quyền mạnh mẽ cho các phiên JDWP, mặc dù JDWP tự thân không có các cơ chế này mặc định. Xem xét sử dụng VPN hoặc các đường hầm bảo mật.
- Giám sát Hoạt động: Triển khai các hệ thống giám sát và ghi nhật ký để theo dõi các hoạt động bất thường liên quan đến JDWP, bao gồm các kết nối đến từ các nguồn không xác định, các nỗ lực thực thi lệnh hoặc sửa đổi hệ thống.
- Phát hiện Malware: Sử dụng các công cụ phát hiện phần mềm độc hại dựa trên chữ ký (ví dụ: quy tắc YARA) và hành vi để nhận diện các payload như cryptominer hoặc dropper scripts.
- Quản lý Cấu hình: Kiểm tra và kiểm soát chặt chẽ các cấu hình ứng dụng để đảm bảo JDWP không được kích hoạt không cần thiết trong môi trường sản xuất hoặc môi trường tiếp xúc với mạng bên ngoài.










