CastleLoader: Nguy hiểm & Tinh vi trong Kỹ thuật Tấn công Bộ nhớ

CastleLoader, một loại mã độc tải (malware loader) tinh vi, đã nổi lên như một mối đe dọa mạng nghiêm trọng đối với các cơ quan chính phủ và tổ chức hạ tầng trọng yếu.
Được xác định lần đầu vào đầu năm 2025, mã độc tàng hình này đã được sử dụng làm điểm truy cập ban đầu trong các cuộc tấn công phối hợp nhằm vào nhiều lĩnh vực, bao gồm các cơ quan liên bang, công ty công nghệ thông tin, các tổ chức hậu cần và nhà cung cấp cơ sở hạ tầng thiết yếu trên khắp Bắc Mỹ và Châu Âu.
Tổng quan về Chiến dịch CastleLoader và Phạm vi Ảnh hưởng
Các nhà nghiên cứu bảo mật đã ghi nhận rằng một chiến dịch CastleLoader duy nhất đã ảnh hưởng đến khoảng 460 tổ chức khác nhau. Đặc biệt, chiến dịch này tập trung vào việc xâm phạm các hệ thống chính phủ tại Hoa Kỳ.
CastleLoader hoạt động như một loader đa giai đoạn, phân phối các payload thứ cấp trực tiếp vào bộ nhớ hệ thống. Điều này khiến việc phát hiện bằng các biện pháp phòng thủ bảo mật truyền thống trở nên cực kỳ khó khăn.
Chức năng và Mục tiêu Chiến lược của Mã độc
Chức năng chính của mã độc này là thiết lập một chỗ đứng ban đầu trên các hệ thống bị xâm nhập. Sau đó, nó sẽ triển khai các công cụ nguy hiểm hơn, bao gồm các công cụ đánh cắp thông tin (information stealer) và trojan truy cập từ xa (remote access trojan). Các công cụ này cho phép những kẻ tấn công kiểm soát hoàn toàn các mạng bị lây nhiễm.
Bản chất đa năng và tỷ lệ lây nhiễm cao của CastleLoader đã biến nó thành công cụ được ưa chuộng bởi các tác nhân đe dọa muốn xâm nhập các mục tiêu có giá trị cao, đồng thời né tránh các hệ thống phát hiện.
Để tìm hiểu thêm về phân tích chi tiết, bạn có thể tham khảo tại phân tích mã độc CastleLoader của Any.Run.
Vector và Kỹ thuật Tấn công Ban đầu của CastleLoader
Vector tấn công của CastleLoader thường liên quan đến các kỹ thuật kỹ thuật xã hội (social engineering) được gọi là ClickFix. Trong đó, nạn nhân bị lừa thông qua các lời nhắc cập nhật phần mềm giả mạo hoặc thông báo xác minh hệ thống.
Khi người dùng thực hiện theo các yêu cầu giả mạo này, họ vô tình thực thi các lệnh độc hại, dẫn đến việc triển khai CastleLoader như giai đoạn thứ hai của chuỗi tấn công.
Cách tiếp cận lừa đảo này đã chứng tỏ hiệu quả đáng kể trong việc vượt qua các chương trình đào tạo nâng cao nhận thức người dùng và các kiểm soát bảo mật ban đầu.
Kiến trúc và Chuỗi Thực thi Tinh vi
Các nhà phân tích và nghiên cứu của Any.Run đã ghi nhận kiến trúc tinh vi của mã độc này trong quá trình điều tra chi tiết. Họ đã xác định một chuỗi thực thi được sắp xếp cẩn thận, được thiết kế đặc biệt để né tránh các công cụ bảo mật hiện đại.
Phân tích cho thấy CastleLoader không hoạt động như một tệp thực thi đơn giản, mà thay vào đó dựa vào một phương pháp tiếp cận phân lớp phức tạp. Điều này khiến mọi giai đoạn đều có vẻ tương đối vô hại khi kiểm tra lần đầu.
Phương pháp này cho phép mã độc phân tán hoạt động độc hại của nó trên nhiều quy trình (process) có vẻ hợp pháp, từ đó ẩn mình một cách hiệu quả.
Cơ chế Lây nhiễm Nâng cao của CastleLoader
Cơ chế lây nhiễm của CastleLoader thể hiện một kỹ thuật che giấu và tàng hình bậc thầy. Mã độc này được đóng gói dưới dạng tệp cài đặt Inno Setup chứa nhiều thành phần, bao gồm AutoIt3.exe và một script AutoIt đã biên dịch được lưu dưới dạng freely.a3x.
Kỹ thuật Process Hollowing và Tiêm Mã vào Bộ nhớ
Khi được thực thi, script AutoIt sẽ khởi tạo giai đoạn quan trọng tiếp theo: khởi chạy quy trình jsc.exe (một trình biên dịch JScript.NET hợp pháp) với cờ CREATE_SUSPENDED. Cờ này tạm dừng quy trình ngay sau khi tạo.
Thay vì thực thi trong trạng thái tạm dừng này, mã độc triển khai một kỹ thuật process hollowing tinh vi. Kỹ thuật này tiêm một tệp thực thi PE (Portable Executable) đầy đủ chức năng trực tiếp vào không gian bộ nhớ của jsc.exe.
Trình tự Thực thi Kỹ thuật Process Hollowing
- Đầu tiên, bộ nhớ được cấp phát trong quy trình mục tiêu bằng
VirtualAllocEXvới quyềnPAGE_EXECUTE_READWRITE. Điều này cho phép thực thi mã từ vùng bộ nhớ mới được cấp phát. - Tiếp theo, hình ảnh PE độc hại được ghi vào vùng bộ nhớ này bằng
WriteProcessMemory. - Mã độc sau đó trích xuất địa chỉ PEB (Process Environment Block) và ghi đè trường
ImageBaseAddress, đảm bảo mã được tiêm tải đúng vị trí bộ nhớ.
Cách tiếp cận này khác biệt so với các kỹ thuật process hollowing truyền thống, vốn thường sử dụng NtUnmapViewOfSection để xóa bộ nhớ quy trình gốc. Bằng cách bỏ qua bước này, CastleLoader tránh kích hoạt các cơ chế phát hiện giám sát mẫu hoạt động đáng ngờ này.
Các giai đoạn cuối cùng bao gồm sử dụng SetThreadContext để chuyển hướng thực thi đến điểm vào của payload đã tiêm, sau đó là ResumeThread để bắt đầu thực thi.
Toàn bộ chuỗi này giữ mã độc giới hạn trong bộ nhớ mà không tạo ra các tạo phẩm đáng ngờ trên đĩa cho đến khi quá trình khởi tạo hoàn tất. Kết quả là một mô-đun mã độc hoàn chỉnh chỉ tồn tại trong không gian bộ nhớ của quy trình mục tiêu sau khi bị thay đổi, khiến việc phát hiện dựa trên chữ ký tĩnh truyền thống trở nên không hiệu quả.
Thách thức trong Phát hiện và Phòng chống CastleLoader
Các công cụ giám sát bảo mật dựa vào phân tích hành vi quy trình gặp khó khăn, bởi vì mỗi thành phần riêng lẻ đều có vẻ hợp pháp khi được kiểm tra riêng biệt. Chữ ký tệp tĩnh, các heuristic hành vi và hệ thống giám sát quy trình thông thường đều không thể phát hiện mô hình thực thi tinh vi này.
Điều này biến CastleLoader trở thành một mối đe dọa đặc biệt nguy hiểm đối với các tổ chức thiếu khả năng phát hiện dựa trên bộ nhớ hiện đại và các giải pháp phát hiện xâm nhập và phản ứng điểm cuối (EDR).
Ví dụ về Kịch bản Chuỗi Thực thi (CLI minh họa)
Mặc dù nội dung gốc không cung cấp lệnh CLI cụ thể liên quan đến việc kích hoạt CastleLoader, nhưng để minh họa một kịch bản tiềm năng của kỹ thuật tiêm mã vào tiến trình jsc.exe, có thể hình dung các bước như sau:
# Bước 1: Giả định một script AutoIt (freely.a3x) được thực thi bởi AutoIt3.exe# AutoIt3.exe freely.a3x# Bước 2: Script AutoIt này sẽ tạo một tiến trình jsc.exe bị tạm dừng.# Đây là hành động nội bộ của mã độc, được điều khiển qua các API hệ thống.# Ví dụ minh họa (không phải lệnh thực tế mà mã độc chạy trực tiếp qua CLI):# Start-Process jsc.exe -WindowStyle Hidden -PassThru -Suspended# Bước 3: Mã độc sử dụng các hàm API Windows (như VirtualAllocEX, WriteProcessMemory,# SetThreadContext, ResumeThread) để tiêm payload độc hại vào tiến trình jsc.exe# đang bị tạm dừng và sau đó tiếp tục thực thi nó.# Không có lệnh CLI trực tiếp cho các bước thao tác bộ nhớ phức tạp này từ phía người dùng.Các bước trên chỉ mang tính chất minh họa để làm rõ cơ chế kỹ thuật và không phải là các lệnh thực tế mà một người dùng có thể thực thi để tái tạo cuộc tấn công CastleLoader. Các giải pháp bảo mật nâng cao cần tập trung vào việc giám sát hành vi API và bộ nhớ để chống lại các kỹ thuật tấn công như vậy.







