Các nhà nghiên cứu an ninh mạng đã cảnh báo về các gói Packagist PHP độc hại giả mạo tiện ích Laravel, hoạt động như một cầu nối cho một remote access trojan (RAT) đa nền tảng, có thể hoạt động trên các hệ thống Windows, macOS và Linux.
Các gói độc hại bị phát hiện
Tên của các gói này được liệt kê dưới đây:
- nhattuanbl/lara-helper (37 Downloads)
- nhattuanbl/simple-queue (29 Downloads)
- nhattuanbl/lara-swagger (49 Downloads)
Theo Socket, gói "nhattuanbl/lara-swagger" không trực tiếp nhúng mã độc mà liệt kê "nhattuanbl/lara-helper" làm Composer dependency, khiến nó cài đặt RAT. Các gói này vẫn có sẵn để tải xuống từ kho lưu trữ gói PHP.
Cơ chế hoạt động của RAT
Cả lara-helper và simple-queue đều chứa một tệp PHP có tên "src/helper.php", sử dụng nhiều kỹ thuật để làm phức tạp việc phân tích tĩnh như obfuscation luồng điều khiển, mã hóa tên miền, tên lệnh, đường dẫn tệp và các định danh ngẫu nhiên cho tên biến và tên hàm.
"Khi được tải, payload kết nối với máy chủ C2 tại helper.leuleu[.]net:2096, gửi dữ liệu reconnaissance hệ thống và chờ lệnh – cấp cho kẻ tấn công quyền truy cập từ xa hoàn toàn vào máy chủ," nhà nghiên cứu an ninh Kush Pandya cho biết.
Điều này bao gồm việc gửi thông tin hệ thống và phân tích các lệnh nhận được từ máy chủ C2 để thực thi sau đó trên máy chủ bị xâm nhập. Giao tiếp diễn ra qua TCP sử dụng hàm stream_socket_client() của PHP. Danh sách các lệnh được hỗ trợ như sau:
- ping, để gửi một heartbeat tự động mỗi 60 giây
- info, để gửi dữ liệu reconnaissance hệ thống đến máy chủ C2
- cmd, để chạy một shell command
- powershell, để chạy một PowerShell command
- run, để chạy một shell command ở chế độ nền
- screenshot, để chụp màn hình bằng cách sử dụng imagegrabscreen()
- download, để đọc một file từ đĩa
- upload, để ghi một file vào đĩa và cấp quyền đọc, ghi, thực thi cho tất cả người dùng
- stop, để dừng socket và thoát
"Đối với việc thực thi shell, RAT dò tìm các disable_functions và chọn phương thức có sẵn đầu tiên từ: popen, proc_open, exec, shell_exec, system, passthru," Pandya nói. "Điều này giúp nó có khả năng chống lại các cấu hình tăng cường bảo mật PHP phổ biến."
Khuyến nghị và biện pháp phòng ngừa
Mặc dù máy chủ C2 hiện không phản hồi, nhưng RAT được cấu hình để thử lại kết nối mỗi 15 giây trong một vòng lặp liên tục, khiến nó trở thành một rủi ro bảo mật. Người dùng đã cài đặt các gói này được khuyến nghị nên coi như đã bị xâm phạm, gỡ bỏ chúng, xoay vòng tất cả các bí mật (secrets) có thể truy cập được từ môi trường ứng dụng và kiểm tra lưu lượng truy cập đi đến máy chủ C2.
Ngoài ba gói đã đề cập, kẻ tấn công đứng sau hoạt động này còn xuất bản ba thư viện khác ("nhattuanbl/lara-media", "nhattuanbl/snooze" và "nhattuanbl/syslog") không chứa mã độc, có thể là để xây dựng sự tin cậy và lừa người dùng cài đặt các gói độc hại.
"Bất kỳ ứng dụng Laravel nào đã cài đặt lara-helper hoặc simple-queue đều đang chạy một RAT dai dẳng. Kẻ tấn công có toàn quyền truy cập shell từ xa, có thể đọc và ghi các tệp tùy ý, và nhận được hồ sơ hệ thống liên tục cho mỗi máy chủ được kết nối," Socket cho biết.
"Vì sự kích hoạt xảy ra khi ứng dụng khởi động (qua service provider) hoặc tải tự động lớp (qua simple-queue), RAT chạy trong cùng một tiến trình với ứng dụng web, với cùng các quyền hệ thống tệp và biến môi trường, bao gồm thông tin xác thực cơ sở dữ liệu, API keys và nội dung tệp .env."