Mã độc pkr_mtsi: Mối đe dọa nghiêm trọng từ Malvertising

Gần đây, một **mã độc** đóng gói tinh vi dành cho Windows, được biết đến với tên gọi **pkr_mtsi**, đã trở thành một công cụ mạnh mẽ để phân phối nhiều biến thể **mã độc** khác nhau thông qua các chiến dịch malvertising quy mô lớn. Hoạt động này đặt ra một **mối đe dọa mạng** đáng kể, nhắm mục tiêu vào người dùng và hệ thống doanh nghiệp.
pkr_mtsi được phát hiện lần đầu vào ngày **24 tháng 4 năm 2025**, và kể từ đó, nó tiếp tục hoạt động tích cực. Mục tiêu chính của packer này là phát tán các trình cài đặt trojanized, được ngụy trang thành các ứng dụng phần mềm hợp pháp. Điều này gây khó khăn trong việc nhận diện và phòng chống.
Tổng quan về pkr_mtsi và Chiến dịch Malvertising
Các chiến dịch lừa đảo này thường nhắm vào các công cụ phổ biến như **PuTTY**, **Rufus**, và **Microsoft Teams**. Những kẻ tấn công sử dụng các trang web tải xuống giả mạo, đạt được thứ hạng cao trên các công cụ tìm kiếm thông qua kỹ thuật malvertising và SEO poisoning. Người dùng không nghi ngờ tải xuống phần mềm từ các trang web giả mạo này, tin rằng chúng là nguồn đáng tin cậy.
Vai trò của pkr_mtsi trong chuỗi tấn công
pkr_mtsi đóng vai trò như một bộ tải (loader) đa năng, chứ không phải là một trình đóng gói tải trọng đơn lẻ. Điều này cho phép nó phân phối nhiều họ **mã độc** khác nhau, bao gồm **Oyster**, **Vidar**, **Vanguard Stealer**, và **Supper**. Đây không phải là các cuộc tấn công chuỗi cung ứng, mà là các nền tảng giả mạo được thiết kế tinh vi để lừa dối người dùng.
Các nhà nghiên cứu tại ReversingLabs đã theo dõi sự phát triển của **pkr_mtsi** trong suốt tám tháng qua. Họ nhận thấy **mã độc** này đã liên tục được cải tiến, tích hợp các phương pháp che giấu và kỹ thuật chống phân tích ngày càng phức tạp. Điều này làm tăng thách thức cho các chuyên gia **phân tích mã độc**.
Cơ chế hoạt động của pkr_mtsi
Mặc dù có sự tiến hóa liên tục, **pkr_mtsi** vẫn duy trì các đặc điểm cấu trúc và hành vi nhất quán. Điều này là chìa khóa để cho phép các giải pháp bảo mật có thể phát hiện **mã độc** này một cách đáng tin cậy. Tuy nhiên, mức độ bao phủ phát hiện vẫn chưa đồng nhất giữa các công cụ bảo mật khác nhau.
Theo phân tích của ReversingLabs, các sản phẩm chống virus thường gắn cờ **pkr_mtsi** bằng cách sử dụng các chuỗi con như “oyster” hoặc “shellcoderunner”. Điều này cho thấy tầm quan trọng của việc cập nhật chữ ký và cải thiện khả năng phát hiện dựa trên hành vi.
Chi tiết Kỹ thuật của Packer pkr_mtsi
Kỹ thuật Tránh Phát hiện và Phân tích Mã độc
pkr_mtsi hoạt động bằng cách cấp phát các vùng bộ nhớ nơi giai đoạn thực thi tiếp theo sẽ được ghi. Trong các phiên bản đầu tiên, packer sử dụng các lời gọi trực tiếp đến **VirtualAlloc** để cấp phát bộ nhớ. Tuy nhiên, các biến thể gần đây đã chuyển sang sử dụng các lời gọi bị che giấu đến **ZwAllocateVirtualMemory**.
Kỹ thuật che giấu này làm phức tạp quá trình gỡ lỗi và **phân tích mã độc** bằng cách khiến việc theo dõi các hoạt động cấp phát bộ nhớ trở nên khó khăn hơn. Điều này là một nỗ lực nhằm làm chậm hoặc ngăn cản các nhà nghiên cứu bảo mật hiểu được luồng thực thi của **mã độc**.
Sau khi cấp phát bộ nhớ, packer tái cấu trúc các tải trọng bằng cách chia chúng thành các đoạn nhỏ, dao động từ một đến tám byte. Các đoạn này được lưu trữ dưới dạng giá trị tức thời (immediate values) trong luồng lệnh. Các biến thể mới hơn còn phức tạp hơn khi truyền các đoạn này qua các quy trình giải mã trước khi ghi chúng vào các offset bộ nhớ cụ thể.
Quá trình tái cấu trúc tải trọng theo từng đoạn nhỏ và sử dụng quy trình giải mã bổ sung này là một kỹ thuật che giấu hiệu quả. Nó gây khó khăn cho việc phục hồi tải trọng hoàn chỉnh từ bộ nhớ, đặc biệt là khi thực hiện **phân tích mã độc** tĩnh. Kỹ thuật này đòi hỏi phân tích động để quan sát quá trình giải mã và tái lắp ráp.
ReversingLabs cũng xác định rằng các biến thể **pkr_mtsi** ban đầu giải quyết các DLL và hàm API từ các chuỗi văn bản thuần (plaintext strings). Tuy nhiên, các phiên bản mới hơn hiện sử dụng các định danh đã băm (hashed identifiers) kết hợp với việc duyệt **Process Environment Block (PEB)**. Kỹ thuật này giúp tránh việc các chuỗi API bị phát hiện dễ dàng trong quá trình phân tích tĩnh.
Việc sử dụng các hàm API băm và duyệt PEB khiến việc xác định các hàm API mà **mã độc** dự định gọi trở nên khó khăn hơn nhiều. Kẻ tấn công hy vọng rằng kỹ thuật này sẽ giúp **mã độc** vượt qua các cơ chế phát hiện dựa trên chuỗi hoặc chữ ký truyền thống.
Thêm vào đó, packer này còn sử dụng các lời gọi rác (junk calls) mở rộng đến các hàm **API GDI**. Những lời gọi này không phục vụ mục đích chức năng nào, mà chỉ nhằm gây cản trở các nỗ lực phân tích tĩnh và hành vi. Chúng làm tăng kích thước mã, làm xáo trộn luồng thực thi và khiến việc gỡ lỗi trở nên phức tạp hơn.
Những đặc điểm này, mặc dù gây khó khăn cho việc phân tích, lại hình thành các chữ ký phát hiện đáng tin cậy. Các nhà nghiên cứu có thể tập trung vào các đặc điểm hành vi và cấu trúc nhất quán để tạo ra các quy tắc phát hiện hiệu quả.
Các Định dạng và Cơ chế Duy trì
pkr_mtsi tồn tại ở cả định dạng tệp thực thi (**EXE**) và thư viện liên kết động (**DLL**). Các biến thể DLL hỗ trợ nhiều ngữ cảnh thực thi khác nhau, với một đường dẫn kích hoạt đáng tin cậy khi DLL được tải để giải nén giai đoạn tiếp theo và tải trọng cuối cùng. ReversingLabs cung cấp phân tích chuyên sâu về các biến thể này.
Một số mẫu DLL của **pkr_mtsi** xuất hàm **DllRegisterServer**. Điều này cho phép tải **mã độc** thông qua **regsvr32.exe**, một công cụ dòng lệnh hợp pháp của Windows. Bằng cách lợi dụng **regsvr32.exe**, **mã độc** có thể đạt được khả năng thực thi liên tục thông qua đăng ký COM dựa trên registry.
Giai đoạn trung gian của **pkr_mtsi** bao gồm một mô-đun được đóng gói bằng **UPX** đã bị sửa đổi. Các thành phần nhận dạng của **UPX** đã được loại bỏ một cách có chọn lọc để tránh bị phát hiện. Các tiêu đề, giá trị magic và siêu dữ liệu phụ trợ đều bị loại bỏ trong khi vẫn duy trì khả năng thực thi.
Sự làm suy giảm có chủ đích này làm phức tạp cả việc nhận dạng tĩnh lẫn các quy trình giải nén tự động. Điều này tạo ra một thách thức đáng kể cho các nhà nghiên cứu bảo mật khi cố gắng **phân tích mã độc** và hiểu rõ cơ chế hoạt động của nó. Các tác nhân đe dọa thường xuyên khai thác phần mềm hợp pháp để ngụy trang hoạt động của chúng.
Nhận diện và Phát hiện
Mặc dù **pkr_mtsi** sử dụng nhiều kỹ thuật che giấu tinh vi, các đặc điểm cấu trúc và hành vi nhất quán của nó vẫn cho phép phát hiện đáng tin cậy. Việc theo dõi các hoạt động cấp phát bộ nhớ bị che giấu, quy trình tái cấu trúc tải trọng, và các lời gọi API băm là các phương pháp hiệu quả để nhận diện sự hiện diện của **mã độc** này.
Các hệ thống **phát hiện xâm nhập** và giải pháp bảo mật điểm cuối cần được trang bị các khả năng phát hiện hành vi nâng cao để chống lại các kỹ thuật né tránh của **pkr_mtsi**. Cập nhật thường xuyên các chữ ký và quy tắc phát hiện dựa trên các phân tích mới nhất là yếu tố then chốt để bảo vệ hệ thống khỏi **mối đe dọa mạng** này và các biến thể của nó.







