Skip to main content

Command Palette

Search for a command to run...

Manic malware: khi cô lập thiết bị không còn ngăn được rò rỉ dữ liệu

Updated
20 min readView as Markdown
Manic malware: khi cô lập thiết bị không còn ngăn được rò rỉ dữ liệu

Tóm tắt

Ngày 20/08/2026, đội Mobile Threat Intelligence của ThreatFabric công bố Manic — một họ mã độc Android mới đang được phát tán thực tế, nằm ở giao điểm giữa trojan ngân hàng và spyware di động.

Manic theo dõi 169 package ID thuộc ngân hàng, dịch vụ thanh toán, ví và sàn tiền mã hóa, ứng dụng nhắn tin, dịch vụ chính phủ và eID, trình duyệt, ứng dụng email. Trọng tâm là Ukraine, mở rộng sang Nga, Trung và Tây Âu, cùng Anh.

Nhưng điểm đáng nói nhất của báo cáo không phải danh sách năng lực. Nó là một câu duy nhất:

Ngắt kết nối internet trực tiếp khỏi một thiết bị nhiễm không nhất thiết ngăn được việc dữ liệu bị đưa ra ngoài.

Manic mã hóa dữ liệu thu thập được bằng AES-GCM, xếp vào hàng đợi cục bộ, rồi tìm một thiết bị nhiễm khác trong tầm sóng vô tuyến qua Wi-Fi Direct, Bluetooth RFCOMM hoặc BLE GATT để nhờ chuyển tiếp về C2 — với tối đa bốn hop theo cấu hình mặc định.

Đây là một mạng store-and-forward được dựng từ điện thoại bị chiếm quyền của người khác. Và với đội ứng cứu sự cố, nó phá vỡ một giả định nền tảng: cô lập mạng là biện pháp ngăn chặn. Ở đây nó không phải.

Hành động ưu tiên: cập nhật playbook xử lý sự cố thiết bị di động — với một thiết bị Android nghi nhiễm, bật chế độ máy bay là chưa đủ; cần tắt riêng cả Bluetooth và Wi-Fi Direct.


Timeline

Timeline

Dòng thời gian hoạt động của Manic (nguồn: ThreatFabric).

Thời điểm Sự kiện
02/2026 Hạ tầng liên quan đầu tiên được đăng ký
Cuối 03 – 04/2026 Dịch vụ development và production đi vào hoạt động
Cuối 05/2026 Wrapper và implant đầu tiên được ghi nhận và lưu giữ
05 – 07/2026 Hạ tầng mở rộng; môi trường development gốc dần bị bỏ; chuẩn bị deployment thứ hai
07/2026 Wrapper cập nhật: anti-analysis mạnh hơn, nạp DEX trong bộ nhớ, phishing lock-secret; deployment mới đưa thêm panel và API lên
20/08/2026 ThreatFabric công bố phân tích

Nhịp tiến hóa từ tháng 5 tới tháng 7 cho thấy đây là một dự án đang được phát triển tích cực chứ không phải một sản phẩm đã hoàn thiện.

Một chi tiết nhỏ củng cố điều đó: lệnh reset_password vẫn còn trong dispatcher của bot nhưng trả về "not supported" — logic device-admin đã bị gỡ khỏi code. Đây là dấu vết của quá trình cắt gọt tính năng, thứ hiếm khi thấy trong một họ mã độc đã trưởng thành.


Phổ mục tiêu: nơi trojan ngân hàng gặp gián điệp

Nhóm Vai trò Ghi chú
Ngân hàng Mục tiêu gian lận Ukraine là trọng tâm chính; cùng Nga, Ba Lan, Séc, Slovakia, Áo, Đức, Pháp, Tây Ban Nha, Hà Lan, Estonia, Litva, Anh
Chính phủ / eID Ứng dụng định danh và dịch vụ công Ukraine, Ba Lan, Đức, Estonia, Litva, Séc, Slovakia
Ứng dụng thanh toán P2P, mua trước trả sau, chuyển tiền
Sàn tiền mã hóa Ứng dụng CEX
Ví tiền mã hóa Mục tiêu gian lận
Ứng dụng xác thực 2FA
Ứng dụng nhắn tin Thu thập thông báo và file Các messenger thương mại lớn và messenger dành cho quân đội
Trình duyệt / email Thu hoạch phiên đăng nhập

Phổ này là lý do ThreatFabric mô tả Manic là một sự pha trộn. Gian lận tài chính rõ ràng là mục tiêu chính — độ phủ trải khắp ngân hàng, dịch vụ thanh toán, sàn và ví tiền mã hóa, ứng dụng định danh chính phủ, và ứng dụng xác thực.

Nhưng nhóm mục tiêu vượt ra ngoài phạm vi tài chính, bao gồm ứng dụng nhắn tin thương mại và messenger dành cho quân đội, trình duyệt và email. Kết hợp với các năng lực spyware như theo dõi vị trí, giám sát thông báo, thu thập file và giám sát thiết bị từ xa, điều này cho operator tầm nhìn vào cả hoạt động tài chính lẫn liên lạc rộng hơn của nạn nhân.

Đây là chỗ ranh giới giữa tội phạm tài chính và thu thập tình báo trở nên mờ. Một bộ công cụ được xây để rút tiền không cần tới messenger quân sự trong danh sách theo dõi.

Năng lực của Manic

Tổng quan năng lực của Manic (nguồn: ThreatFabric).


pinPadOverlay: overlay không có giao diện giả

Đây là phần kỹ thuật đáng phân tích nhất của báo cáo, và nó có hệ quả trực tiếp tới nội dung đào tạo nhận thức mà phần lớn tổ chức đang dùng.

Cơ chế pinPadOverlay

Overlay chỉ phủ đúng vùng bao của bàn phím số (nguồn: ThreatFabric).

Cơ chế hoạt động như sau. Khi Manic phát hiện một bàn phím số trong ứng dụng mục tiêu, nó phủ một overlay chỉ lên đúng vùng bao gộp của các phím đó — không phải toàn màn hình.

Khi nạn nhân chạm vào overlay, Manic ghi lại vị trí chạm và phần tử UI lân cận. Sau đó nó tạm thời tắt việc chặn chạm và tái tạo cú chạm tại đúng tọa độ đó thông qua Accessibility, để ứng dụng ngân hàng thật nhận được input và tiếp tục hoạt động bình thường.

Khác với overlay phishing truyền thống, Manic không hiển thị bất kỳ giao diện ngân hàng giả nào. Nó bắt input trực tiếp từ bàn phím của chính ứng dụng hợp pháp.

Hệ quả với đội phòng thủ đáng được nói thẳng: phần lớn nội dung đào tạo nhận thức về trojan ngân hàng Android hướng dẫn người dùng nhận diện giao diện bất thường — màn hình đăng nhập trông khác, logo sai tỷ lệ, font lệch, yêu cầu nhập thông tin ở nơi không nên có. Với Manic, không có gì bất thường để nhận ra. Ứng dụng thật, giao diện thật, luồng nghiệp vụ thật, và giao dịch vẫn thành công.

Hai năng lực PIN cần phân biệt rõ

ThreatFabric mô tả hai cơ chế riêng biệt liên quan tới PIN, và việc nhầm lẫn chúng sẽ dẫn tới đánh giá sai mức độ rủi ro:

Năng lực Hoạt động ở đâu Vai trò
pinPadOverlay Bên trong ứng dụng ngân hàng đang mở Đánh cắp — bắt cú chạm của nạn nhân trên bàn phím thật
autoEnterPin Tại màn hình khóa của Android Sử dụng lại — thử nhập credential hoặc pattern đã lưu

Cái thứ nhất ghi lại input trong lúc giao dịch ngân hàng. Cái thứ hai có thể cho operator quyền truy cập vào một chiếc điện thoại đang khóa. Đó là hai mức độ rủi ro khác nhau, và Manic có cả hai.


Accessibility làm keylogger có phân loại

Manic dùng Accessibility service làm UI keylogger, nhưng không phải theo cách thô sơ. Nó phân loại nội dung text trước khi ghi, chia thành bảy nhóm:

1. Input màn hình khóa
2. Ứng viên recovery phrase
3. Mã SMS 4–6 chữ số
4. Mật khẩu
5. Tin nhắn dài
6. Thông tin đăng nhập email
7. Text thông thường

Mỗi bản ghi kèm theo metadata đầy đủ: tên ứng dụng và package, nội dung đã bắt, timestamp, input đến từ Autofill hay do gõ tay, và ứng dụng đó có nằm trong danh sách mục tiêu của Manic hay không.

Bên cạnh đó, quyền truy cập SMS và thông báo cung cấp tầm nhìn bổ sung vào các luồng xác thực, còn phiên WebRTC từ xa cho phép operator xem màn hình và tương tác với thiết bị thông qua đặc quyền Accessibility.

Một quan sát của chúng tôi, mức tin cậy trung bình. Việc phân loại và gắn nhãn dữ liệu ngay tại thiết bị là hành vi của một sản phẩm được thiết kế có chủ đích, không phải của một keylogger ghi tất cả rồi gửi hết. Nó cho phép ưu tiên và lọc dữ liệu trước khi đưa vào hàng đợi exfiltration.

Điều đó khớp rất hợp lý với thiết kế mesh mô tả ở phần sau: một kênh chuyển tiếp qua Bluetooth hoặc Wi-Fi Direct qua nhiều hop có băng thông thấp hơn nhiều và độ tin cậy kém hơn hẳn một kết nối trực tiếp tới C2. Trong điều kiện đó, việc chỉ gửi những gì đáng gửi không phải một tính năng thêm vào cho tiện — nó là yêu cầu thiết kế bắt buộc để mesh có ý nghĩa thực tế.

ThreatFabric mô tả cả hai đặc điểm nhưng không nêu mối liên hệ giữa chúng; đây là suy luận của chúng tôi. Đề nghị đối chiếu độc lập trước khi đưa vào báo cáo chính thức.


Mesh relay: cơ chế và điểm phát hiện

Sơ đồ mesh relay

Cơ chế chuyển tiếp store-and-forward giữa các thiết bị nhiễm (nguồn: ThreatFabric).

Manic dùng cơ chế store-and-forward để đưa dữ liệu ra ngoài ngay cả khi thiết bị nhiễm không thể liên lạc trực tiếp với máy chủ C2.

Quy trình:

  1. File thu thập được và kết quả lệnh được mã hóa bằng AES-GCM rồi đặt vào hàng đợi cục bộ.

  2. Thiết bị nguồn có thể duy trì trạng thái offline hoàn toàn trong khi mã độc tìm đường ra.

  3. Manic thử theo thứ tự: peer Wi-Fi Direct đã thiết lập trước → truy vấn các peer Bluetooth → peer BLE, để xác định peer nào có kết nối internet.

  4. Nếu tìm được peer phù hợp, gói đã mã hóa được chuyển sang peer đó và đẩy tiếp về phía C2.

  5. Nếu không có đường nào khả dụng, gói ở lại hàng đợi và Manic thử lại sau. Chi tiết bổ sung mà ThreatFabric cung cấp cho The Hacker News:

  • Mỗi item mới xếp hàng nhận giới hạn bốn hop theo mặc định, dù cấu hình có thể thay đổi giá trị này.

  • Metadata relay mang theo hop count hiện tại, cho phép các peer trung gian biết gói đã đi qua bao nhiêu chặng.

  • Một peer đang online có thể tự tạo Wi-Fi Direct group khi không tìm thấy peer nào. Mọi build được ghi nhận đều dùng cùng một tên mạng, và thử tạo group tối đa ba lần. Chi tiết cuối cùng là điểm phát hiện tốt nhất ở tầng mạng mà báo cáo cung cấp: một tên mạng Wi-Fi Direct cố định, dùng chung giữa các build khác nhau, là thứ có thể quét được trong môi trường doanh nghiệp có giám sát phổ vô tuyến.

Hệ quả trực tiếp mà ThreatFabric nêu: việc gỡ bỏ kết nối internet trực tiếp khỏi một thiết bị nhiễm không nhất thiết ngăn được exfiltration, vì một điện thoại nhiễm khác trong tầm sóng có thể đóng vai trò gateway cho nó.


Bộ lệnh và cơ chế duy trì

Manic hỗ trợ 23 lệnh từ C2:

Lệnh Mô tả
remote_control Khởi động phiên xem màn hình hoặc camera trước qua WebRTC, chế độ screenshot hoặc accessibility-component
get_logs Đóng gói log hoạt động Accessibility để gửi về
location Trả về tọa độ hiện tại, độ chính xác và timestamp
screenshot Chụp và trả về ảnh màn hình khi MediaProjection đang hoạt động
export_sms Xuất dữ liệu SMS đã lưu
export_calls Xuất lịch sử cuộc gọi
export_contact Xuất danh bạ và thông tin liên quan
export_push Xuất log thông báo và push đã bắt được
export_apps Xuất danh sách ứng dụng đã cài
export_file Chọn file cục bộ khớp điều kiện, nén và trả về kết quả
send_sms Gửi nội dung do operator cung cấp tới số điện thoại chỉ định
ussd Thực thi mã USSD qua TelephonyManager
send_push Hiển thị thông báo cục bộ do operator cung cấp
send_file Tải file host trên server theo key và ghi vào đường dẫn cục bộ
delete_file Xóa file cục bộ được chọn
force_lock Khóa màn hình qua Accessibility service trên các phiên bản Android hỗ trợ
geo Bật định vị thiết bị bằng cách tự động tương tác với màn hình cài đặt
disable_gp Vô hiệu hóa Google Play Protect bằng tự động hóa giao diện
get_more_rights Điều khiển luồng cấp quyền runtime, notification listener, all-files, overlay và miễn trừ tối ưu pin
refresh Dựng lại và cập nhật trạng thái filesystem, quyền và credential lên server
reload_config Lấy và áp dụng app_config.json mới nhất
reset_password Còn tồn tại nhưng trả về "not supported"; logic device-admin đã bị gỡ
default Placeholder không thao tác trong dispatcher
Luồng Device Takeover

Luồng Device Takeover của Manic (nguồn: ThreatFabric).

Persistence dựa trên background worker, alarm, cùng Accessibility và notification service. Các thành phần này duy trì liên lạc C2, xử lý lệnh, tải dữ liệu trong hàng đợi lên, và đồng bộ mesh offline, với chu kỳ thực thi mỗi 10 đến 15 phút tùy build.

Build tháng 7 còn gỡ implant khỏi launcher, chỉ kích hoạt thông qua wrapper hoặc deep link — nghĩa là nạn nhân không nhìn thấy biểu tượng nào để nghi ngờ hay gỡ cài đặt.

Trong các phiên điều khiển từ xa, Manic che giấu hoạt động bằng màn hình đen, màn hình giả hoặc màn hình cập nhật, bao gồm cả overlay che các hộp thoại xin quyền — để nạn nhân không thấy operator đang cấp thêm quyền cho mã độc.


IOC

IOC lấy từ báo cáo ThreatFabric ngày 20/08/2026.

Mẫu (SHA-256)

80be0942d0e20b5006e240434f42512c8b3cd0d54eee858a25663c1a4224a576
    Wrapper tháng 7      tech.intel.dialer.updater
 
feea425cde1223fe7afdd7a1ea631678ec6282f6cc20c3d3c0fb97cdbcf65b9b
    Implant thả tháng 7  org.lenovo.storage.processor
 
e7abc375f24d0dd2419e0bce4686c7301b3ee82ae38906c67d3481580f6c648e
    Implant chính        tech.apple.dialer.scheduler
 
7c12f1237090e32c18583f66f1a9e44b029ad7c1e61179e1d524fb3093abd59a
    Implant tương tự     io.motorola.secure.executor
 
2884108b35eba7b8099087405653c1b23c3839f0d5058c4d61341fc31cfc6040
    Wrapper tháng 5      org.honor.secure.helper
 
2fb5b01ea5a483d60b659e85327a53c6661bdd630d4afd93dc5fe0941d3ccbbe
    Implant tháng 5      dev.huawei.media.helper

Mô thức đặt tên package — phần săn được nhất

tech.intel.dialer.updater
org.lenovo.storage.processor
tech.apple.dialer.scheduler
io.motorola.secure.executor
org.honor.secure.helper
dev.huawei.media.helper

Công thức rất nhất quán: TLD giả (tech, org, io, dev) + tên thương hiệu phần cứng (Intel, Lenovo, Apple, Motorola, Honor, Huawei) + từ nghe như thành phần hệ thống (updater, processor, scheduler, executor, helper).

Điểm quan trọng: không package nào dùng đúng namespace thật của hãng. Namespace hợp lệ của các hãng này là com.lenovo.*, com.huawei.*, com.motorola.*. Việc dùng org., io., dev., tech. với tên thương hiệu phần cứng là mô thức có thể xây dựng phát hiện, và nó áp dụng được cho các mẫu chưa biết của cùng họ.

Artifact hành vi

# Chu kỳ hoạt động
Background worker chạy mỗi 10–15 phút (tùy build)
 
# Mesh relay
Tên mạng Wi-Fi Direct cố định, dùng chung giữa các build
Tối đa 3 lần thử tạo Wi-Fi Direct group
Giới hạn mặc định 4 hop, metadata mang hop count
Kênh: Wi-Fi Direct → Bluetooth RFCOMM → BLE GATT (theo thứ tự ưu tiên)
Mã hóa payload: AES-GCM
 
# Trên thiết bị
Yêu cầu quyền Accessibility và notification access ngay sau khi cài
Implant không có biểu tượng trên launcher (build tháng 7)
Overlay phủ đúng vùng bao bàn phím số trong app ngân hàng
Overlay che hộp thoại xin quyền trong phiên điều khiển từ xa
Nạp DEX trong bộ nhớ (build tháng 7)

Nhận định

Mesh relay phá vỡ giả định "cô lập mạng là ngăn chặn".

Đây là điểm trung tâm, và nó có hệ quả trực tiếp tới quy trình ứng cứu sự cố. Playbook xử lý thiết bị di động nghi nhiễm ở phần lớn tổ chức đi theo trình tự quen thuộc: bật chế độ máy bay, ngắt Wi-Fi, thu giữ thiết bị, phân tích sau. Trình tự đó dựa trên một giả định đúng suốt nhiều năm — rằng cắt kết nối internet là cắt đường ra của dữ liệu.

Với Manic, giả định đó sai. Chế độ máy bay tắt dữ liệu di động và Wi-Fi, nhưng nhiều thiết bị Android cho phép bật lại Bluetooth trong chế độ máy bay, và Wi-Fi Direct có thể hoạt động độc lập với kết nối Wi-Fi hạ tầng. Nếu có một thiết bị nhiễm khác trong tầm sóng — trong cùng văn phòng, cùng tòa nhà, cùng chuyến xe — hàng đợi dữ liệu vẫn có đường ra.

Biện pháp đúng ở đây cụ thể hơn: tắt riêng Bluetooth và Wi-Fi Direct, hoặc với tình huống đủ nghiêm trọng, đặt thiết bị vào túi chắn sóng. Đây là thay đổi nhỏ trong quy trình nhưng cần được viết vào playbook thay vì để người xử lý tự suy ra.

pinPadOverlay làm hỏng nội dung đào tạo hiện có. Nếu chương trình nhận thức của tổ chức bạn dạy người dùng "để ý giao diện lạ trong app ngân hàng", nội dung đó không áp dụng được cho Manic. Không có giao diện lạ nào.

Thông điệp cần thay thế nó là một thông điệp khác về bản chất: cấp quyền Accessibility cho một ứng dụng không phải công cụ trợ năng là dấu hiệu nghiêm trọng, bất kể mọi thứ sau đó trông có bình thường đến đâu. Quyền Accessibility là điều kiện tiên quyết cho gần như toàn bộ chuỗi năng lực của Manic — keylogger, overlay, điều khiển từ xa, tự cấp thêm quyền. Đó là điểm quyết định duy nhất mà người dùng thực sự có quyền kiểm soát.

Hai điểm phát hiện thực tế nhất với môi trường doanh nghiệp có quản lý thiết bị:

  • Việc cấp quyền Accessibility bất thường cho ứng dụng ngoài danh mục được phê duyệt.

  • Kết nối Bluetooth hoặc Wi-Fi Direct từ điện thoại không đang chủ động truyền file — hoạt động vô tuyến ngang hàng không có lý do nghiệp vụ tương ứng. Cả hai đều không cần biết trước hash hay tên họ mã độc.

Liên hệ Việt Nam

Cần nói rõ trước: ThreatFabric liệt kê mục tiêu tại Ukraine, Nga, Trung và Tây Âu, cùng Anh. Việt Nam không nằm trong danh sách 169 package ID được ghi nhận, và chúng tôi không suy diễn thêm ngoài dữ liệu có sẵn.

Tuy nhiên ba đặc điểm của thị trường trong nước khiến kỹ thuật này đáng được theo dõi, độc lập với việc chiến dịch cụ thể này có mở rộng hay không.

Thứ nhất, cấu trúc thị trường. Android chiếm thị phần áp đảo tại Việt Nam, và mobile banking là kênh giao dịch chính của phần lớn người dùng cá nhân. Một họ mã độc nhắm vào tổ hợp "ứng dụng ngân hàng trên Android" đang nhắm vào đúng mô hình sử dụng phổ biến nhất trong nước.

Thứ hai, thói quen cấp quyền Accessibility. Đây không phải rủi ro lý thuyết — các chiến dịch trojan ngân hàng Android trong nước đã khai thác chính thói quen này nhiều năm, thường thông qua ứng dụng giả mạo dịch vụ công hoặc tiện ích hệ thống. Điều mà pinPadOverlay bổ sung là làm cho giai đoạn sau khi cấp quyền trở nên gần như không thể phát hiện bằng mắt thường. Nạn nhân đã quen với việc "app yêu cầu quyền trợ năng để hoạt động"; giờ đây họ cũng không còn manh mối nào sau đó.

Thứ ba, mật độ thiết bị. Mesh relay không phụ thuộc vào hạ tầng mạng mà phụ thuộc vào mật độ thiết bị nhiễm trong bán kính sóng vô tuyến. Môi trường đô thị Việt Nam — chung cư mật độ cao, tòa nhà văn phòng, phương tiện công cộng giờ cao điểm — là điều kiện thuận lợi cho cơ chế này nếu tỷ lệ nhiễm trong một khu vực đạt ngưỡng nhất định. Đây là yếu tố mà các biện pháp kiểm soát ở tầng mạng doanh nghiệp không chạm tới được.

Về mô hình BYOD. Với các tổ chức cho phép truy cập email công việc hoặc ứng dụng nội bộ từ điện thoại cá nhân, các năng lực export_file, export_push và chia sẻ màn hình qua WebRTC của Manic biến một thiết bị cá nhân bị nhiễm thành cửa sổ nhìn trực tiếp vào dữ liệu tổ chức. Điểm khó ở đây mang tính cấu trúc: MDM không kiểm soát được thiết bị không đăng ký, và phần lớn chính sách BYOD trong nước dừng lại ở mức yêu cầu đặt mật khẩu màn hình khóa.


Khuyến nghị

  • Cập nhật playbook ứng cứu thiết bị di động: với thiết bị Android nghi nhiễm, tắt riêng Bluetooth và Wi-Fi Direct thay vì chỉ dựa vào chế độ máy bay; với sự cố nghiêm trọng, dùng túi chắn sóng.

  • Đổi trọng tâm đào tạo nhận thức từ "nhận diện giao diện lạ" sang "quyền Accessibility là ranh giới quyết định" — đây là điểm kiểm soát duy nhất mà người dùng thực sự nắm được trong chuỗi này.

  • Giám sát hai hành vi trên thiết bị được quản lý: cấp quyền Accessibility cho ứng dụng ngoài danh mục phê duyệt, và hoạt động Bluetooth hoặc Wi-Fi Direct không tương ứng với nhu cầu nghiệp vụ nào.

  • Áp dụng mô thức package name làm quy tắc phát hiện: cảnh báo trên ứng dụng dùng tên thương hiệu phần cứng lớn kèm TLD không phải com. — đây là quy tắc bắt được cả các mẫu chưa biết của cùng họ.

  • Với chính sách BYOD: yêu cầu đăng ký MDM cho mọi thiết bị truy cập email hoặc ứng dụng nội bộ, và bật kiểm tra tình trạng thiết bị thay vì chỉ yêu cầu khóa màn hình.

  • Nếu nghi ngờ thiết bị đã nhiễm: giả định PIN ngân hàng và mã khóa màn hình đã bị lộ, đổi cả hai từ một thiết bị khác, thu hồi các phiên đăng nhập đang hoạt động, và kiểm tra lịch sử giao dịch — pinPadOverlay hoạt động im lặng nên không có dấu hiệu nào cho biết PIN đã bị lấy hay chưa.


Tài liệu tham khảo

More from this blog

F

FPT IS Security

972 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.