Bên Trong Mạng Lưới SC Malware: Khi Việc Xóa File Không Còn Đủ Để Diệt Backdoor

Tổng Quan
Hãy tưởng tượng bạn vừa xóa sạch thư mục gốc của một website bị hack, khôi phục lại mã nguồn nguyên bản từ backup và tự tin rằng hệ thống đã hoàn toàn sạch bóng mã độc. Nhưng chỉ vài giây sau, không một vết tích truy cập lạ, toàn bộ các file backdoor lại tự động xuất hiện nguyên vẹn như chưa từng bị xóa.
Đó không phải là hiện tượng tâm linh hay lỗi lưu cache – đó là sức mạnh của SC Malware, dòng mã độc WordPress vừa được các chuyên gia an ninh mạng phát hiện.
Khác biệt hoàn toàn với các kỹ thuật xâm nhập truyền thống, SC Malware không hề sống phụ thuộc vào đĩa cứng. Nó giấu mình thành một mạng lưới tự phục hồi (Self-Healing Mesh) đan xen giữa bảng điều khiển Database, phân vùng bộ nhớ dùng chung (System V Shared Memory) ẩn sâu trong RAM của máy chủ, và nhận lệnh điều khiển thông qua các hợp đồng thông minh (Smart Contract) trên mạng lưới Blockchain Ethereum.
Nếu bạn chỉ tìm và xóa file, bạn chỉ đang "cắt ngọn cỏ". Mã độc trong RAM và Database sẽ lập tức tái sinh lại toàn bộ bộ nguồn độc hại chỉ sau một lượt click chuột.
Báo cáo phân tích dưới đây sẽ bóc tách cơ chế "bất tử" kỹ thuật của SC Malware và tiết lộ quy trình 5 bước ngắt luồng chuẩn xác để triệt hạ tận gốc mối đe dọa này.
Bối Cảnh Phát Hiện SC Malware
Cuối tháng 09/2026, các chuyên gia phân tích sự cố tại Sucuri ghi nhận chuỗi sự cố tái nhiễm liên tục trên hàng loạt website WordPress dù quản trị viên đã liên tục xóa file backdoor và khôi phục backup.
Kết quả phân tích nguyên nhân gốc (Root Cause Analysis - RCA) cho thấy đối phương không áp dụng mô hình backdoor truyền thống (vốn chỉ dựa vào một hoặc vài file PHP ẩn như shell.php, wp-tmp.php). Thay vào đó, chúng triển khai một hệ sinh thái nạp mã đan xen (Mesh Loaders) gồm ít nhất 8 thành phần phân tán. Nếu bất kỳ thành phần nào bị xóa, các thành phần còn lại nằm trong bộ nhớ RAM hoặc Database sẽ tự động khởi chạy lại và ghi đè file mã độc trở lại đĩa cứng chỉ sau vài giây.
Phân Tích Kiến Trúc Self-Healing Mesh
Điểm mấu chốt làm nên khả năng "bất tử" của SC Malware chính là cơ chế tự phục hồi đa tầng (Multi-Vector Self-Healing). Dưới đây là 8 thành phần cốt lõi tạo nên mạng lưới này:
Nạp Mã Sớm Qua .user.ini (auto_prepend_file)
Mã độc can thiệp vào file cấu hình .user.ini tại thư mục gốc của website, khai thác chỉ thị auto_prepend_file:
auto_prepend_file = "/home/victim/public_html/wp-content/uploads/2026/01/sc_loader.php"
Cấu hình này ép buộc PHP Engine phải nạp và thực thi đoạn mã sc_loader.php trước khi bất kỳ file PHP nào của WordPress (kể cả index.php hay wp-config.php) được khởi chạy.
Lợi Dụng Drop-Ins: advanced-cache.php và db.php
WordPress hỗ trợ các file Drop-in để tùy biến hạ tầng caching và database:
wp-content/advanced-cache.php: Được nạp tự động khi biếnWP_CACHEbật trongwp-config.php. Mã độc chèn payload ẩn tại đây để đánh chặn mọi luồng HTTP request.wp-content/db.php: Cho phép ghi đè lớp kết nối cơ sở dữ liệuwpdb. Mã độc chèn hook vàodb.phpđể can thiệp trực tiếp vào các truy vấn SQL, sẵn sàng khôi phục payload nếu phát hiện cấu hình trong Database bị xóa.
Duy Trì Tồn Tại Trong System V Shared Memory (RAM)
Đây là kỹ thuật tinh vi nhất của SC Malware. Mã độc lợi dụng tiện ích mở rộng shmop (Shared Memory Operations) của PHP để tạo các phân vùng bộ nhớ chia sẻ trên Linux/Unix:
Nhờ cơ chế này, cho dù quản trị viên xóa sạch toàn bộ thư mục public_html, tiến trình PHP-FPM đang chạy vẫn lưu giữ payload trong RAM. Ngay khi có một HTTP request mới kích hoạt tiến trình PHP, mã độc từ RAM sẽ lập tức ghi ngược file sc_loader.php và .user.ini về lại đĩa cứng.
Ghi Mã Độc Vào Bảng wp_options Trong Database
Mã độc mã hóa toàn bộ payload dưới dạng chuỗi Base64 / Serialized object và lưu vào bảng wp_options dưới các option_name nhìn có vẻ hợp lệ (ví dụ: wp_schema_check_v2, _transient_sc_cache).
Chèn Mã Vào Must-Use Plugins (MU-Plugins) & Theme Active
Mã độc tạo các file trong thư mục wp-content/mu-plugins/. Các file trong thư mục này được WordPress tự động thực thi mà không cần kích hoạt trong trang quản trị. Đồng thời, mã độc chèn đoạn mã ngắn vào file functions.php của theme đang active để làm lớp bọc dự phòng cuối cùng (fallback mechanism).
Phân Tích Luồng Hoạt Động Theo Giai Đoạn
Cơ chế hoạt động của SC Malware vận hành theo một vòng lặp tự phục hồi khép kín (Self-Healing Loop) gồm 5 giai đoạn chính:
Giai Đoạn 1: Xâm Nhập & Triển Khai Mạng Lưới (Infiltration & Mesh Deployment)
Attacker khai thác lỗ hổng RCE trên plugin/theme hoặc dùng credential bị rò rỉ để tải lên file cài đặt ban đầu. Ngay khi thực thi, mã độc không tạo webshell đơn lẻ mà phân tán thành 8 mảnh ghép (mesh components): file .user.ini, các Drop-in advanced-cache.php/db.php, sc_loader.php trong mu-plugins/, và payload lưu trong wp_options.
Giai Đoạn 2: Nạp Vào Bộ Nhớ RAM & Cài Đặt Cắm Rễ (RAM Seeding & Persistence)
Mã độc kích hoạt thư viện shmop để mở phân vùng bộ nhớ dùng chung (System V Shared Memory segment) trực tiếp trên RAM máy chủ. Toàn bộ loader được nén/mã hóa đưa vào phân vùng này. Từ thời điểm này, payload chính không còn phụ thuộc vào file trên đĩa. Kể cả khi toàn bộ thư mục web bị xóa, tiến trình PHP-FPM vẫn lưu giữ đoạn mã độc hại này trong RAM.
Giai Đoạn 3: Đồng Bộ Lệnh Từ Blockchain (Blockchain C2 Sync)
Mã độc thiết lập kết nối HTTPS outbound tới các Node public Ethereum RPC (Cloudflare RPC, Infura). Nó gửi truy vấn JSON-RPC eth_call đọc dữ liệu lưu trữ từ một Smart Contract do Attacker chỉ định để lấy địa chỉ C2 thật, lệnh nạp mới, hoặc đoạn mã JavaScript Skimmer mới nhất.
Giai Đoạn 4: Che Đậy & Đánh Chặn (Anti-Forensics & Stealth Interception)
Mã độc thiết lập các bộ lọc (hooks) để qua mặt người quản trị và công cụ bảo mật:
Hook vào
users.phpđể giấu tài khoản Admin ẩn danh.Hook vào
all_pluginsđể giấu các plugin độc hại.Check User-Agent / IP: Nếu phát hiện IP/User-Agent của Admin/Bot quét -> Mã độc trả về giao diện sạch. Nếu là khách truy cập thường -> Kích hoạt mã độc.
Giai Đoạn 5: Kích Hoạt Payload & Vòng Lặp Tự Phục Hồi (Self-Healing Trigger)
Thực thi Payload: Khi người dùng thông thường truy cập, mã độc chèn mã JS trộm thông tin thẻ (Checkout Skimmer) hoặc chuyển hướng sang trang cá độ/spam.
Kích hoạt Self-Healing: Ngay khi có HTTP request mới gửi đến máy chủ sau khi quản trị viên xóa file, tiến trình PHP sẽ nạp payload từ Shared Memory (RAM) hoặc Database. Đoạn mã trong RAM phát hiện file bị thiếu và tự động sinh lại file ngay lập tức trước khi trang web kịp render xong.
Kênh Điều Khiển C2 Qua Blockchain (Ethereum RPC)
Thay vì kết nối trực tiếp về IP hoặc Domain C2 cố định (vốn dễ bị chặn bởi Firewall/WAF), SC Malware khai thác hạ tầng Web3 / Blockchain.
Phương thức hoạt động:
Gửi truy vấn RPC: Mã độc phát ra các truy vấn HTTPS POST chuẩn dạng JSON-RPC
eth_calltới các node Ethereum public uy tín (như Cloudflare Ethereum RPC Gateway, Ankr, Infura).Đọc dữ liệu Smart Contract: Mã độc truy vấn một địa chỉ Smart Contract được attacker lập trình sẵn. Dữ liệu trả về chứa thông tin IP C2 thực sự hoặc mã lệnh PHP mới đã được mã hóa trong trường dữ liệu giao dịch.
Ưu thế lẩn tránh:
Traffic đi ra ngoài hoàn toàn là HTTPS hợp lệ tới các domain uy tín (
cloudflare-eth.com,mainnet.infura.io).Không thể hạ gục hạ tầng C2 này bằng cách báo cáo Domain Abuse hay takedown Server.
Thách thức lớn với các giải pháp WAF/SIEM dựa trên threat intelligence feed truyền thống.
Kỹ Thuật Lẩn Tránh & Che Đậy (Anti-Forensics)
SC Malware trang bị hàng loạt cơ chế tự bảo vệ nhằm qua mặt cả người quản trị lẫn các plugin an ninh:
Ẩn Tài Khoản Admin Ẩn Danh
Mã độc tạo tài khoản quản trị ẩn trong bảng wp_users, sau đó can thiệp vào hook users_list_table_query_args của WordPress. Khi quản trị viên mở trang Users (Người dùng) trong Dashboard, mã độc tự động lọc bỏ ID của tài khoản ẩn ra khỏi câu lệnh SQL query, khiến danh sách hiển thị hoàn toàn bình thường.
Chặn Cảnh Báo Từ Plugin An Ninh
Mã độc bổ sung hook vào bộ lọc all_plugins để giấu các file plugin độc hại trong danh sách Installed Plugins. Ngoài ra, nó chủ động tìm và vô hiệu hóa các bảng dữ liệu hoặc luồng quét của các plugin như Wordfence, Sucuri Security, iThemes Security bằng cách override các hằng số cấu hình an ninh.
Nhận Diện & Fingerprint Truy Cập
Mã độc kiểm tra User-Agent, HTTP_ACCEPT_LANGUAGE và địa chỉ IP của người truy cập. Nếu phát hiện truy cập từ trình duyệt của Admin đã đăng nhập hoặc từ các bot quét an ninh (như Googlebot, VirusTotal, Sucuri Scanner), mã độc sẽ ngưng hoạt động hoặc trả về nội dung sạch. Mã độc chỉ kích hoạt các hành vi độc hại (chèn JS Skimmer, redirect trang cá độ) đối với người dùng thông thường từ máy tìm kiếm.
Quy Trình Khắc Phục & Triệt Hạ Mã Độc (Step-by-Step Remediation)
Để triệt tiêu hoàn toàn mã độc SC Malware mà không bị tái nhiễm, bắt buộc phải tuân thủ thứ tự ngắt luồng từ Memory -> Database -> File System.
Bước 1: Ngắt Luồng Thực Thi Server (Execution Cutoff)
Chuyển Nginx / Apache sang chế độ bảo trì hoặc chặn tạm thời mọi HTTP request từ bên ngoài vào site.
Vô hiệu hóa tính năng
auto_prepend_filebằng cách đổi tên hoặc xóa các file.user.inivà.htaccesstại thư mục gốc.Trong file
wp-config.php, tạm thời bổ sung hằng số chặn nạp plugin và sửa file:
Bước 2: Giải Phóng Bộ Nhớ Chia Sẽ System V (Clear Shared Memory)
Khởi động lại toàn bộ dịch vụ xử lý PHP (PHP-FPM) và Web Server để hủy bỏ các tiến trình lưu RAM:
Kiểm tra và xóa các phân vùng bộ nhớ dùng chung System V IPC còn sót lại:
ipcs -m
for id in $(ipcs -m | grep www-data | awk '{print $2}'); do ipcrm -m $id; done
Bước 3: Làm Sạch Cơ Sở Dữ Liệu (Database Sanitization)
Rà soát bảng wp_options, loại bỏ các hàng chứa chuỗi mã hóa nghi vấn hoặc tiền tố SC_:
Kiểm tra danh sách Admin chuẩn xác bằng SQL query trực tiếp (bỏ qua giao diện WordPress Dashboard):
=> Xóa bỏ ngay các tài khoản lạ không thuộc quyền quản lý của tổ chức.
Xóa các tác vụ Cron độc hại trong cron transient:
Bước 4: Làm Sạch & Thay Thế Mã Nguồn File System
Xóa toàn bộ file mã nguồn WordPress Core, giữ lại duy nhất thư mục
wp-contentvà filewp-config.php(đã qua kiểm tra).Tải bộ cài chính thức của WordPress từ
wordpress.orgvà ghi đè lại toàn bộ Core.Rà soát thư mục
wp-content/:Xóa file
wp-content/advanced-cache.phpvàwp-content/db.php.Xóa sạch thư mục
wp-content/mu-plugins/.Re-install toàn bộ Theme và Plugin từ nguồn nguyên bản (Repository chính thức).
Phân quyền lại thư mục và file chuẩn mực:
Bước 5: Đổi Secret Keys & Cấu Hình Giám Sát Sau Incident
Thay đổi toàn bộ chuỗi Secret Salts trong
wp-config.phpbằng công cụ API chính thức của WordPress (https://api.wordpress.org/secret-key/1.1/salt/) để vô hiệu化 toàn bộ session đăng nhập hiện tại.Đổi mật khẩu Database, Mật khẩu tài khoản Admin, mật khẩu FTP/SSH.
Thiết lập luật WAF chặn các kết nối đi ra (outbound) tới các node Ethereum RPC không nằm trong danh mục cho phép.
Khuyến Nghị Cho Người Dùng Và Quản Trị Viên Wordpress
Khẩn Cấp (Thực Hiện Trong 0 - 24 Giờ)
Rà soát quyền truy cập tệp cấu hình nâng cao: Kiểm tra ngay sự tồn tại của tệp
.user.ini,wp-content/advanced-cache.php, vàwp-content/db.php. Nếu website không sử dụng các plugin Caching hoặc Database tùy biến, hãy xóa hoặc kiểm tra kỹ nội dung các tệp này.Tắt tính năng chỉnh sửa tệp trực tiếp trong Dashboard: Thêm 2 dòng cấu hình sau vào tệp
wp-config.phpđể chặn kẻ tấn công (hoặc mã độc) sửa đổi code trực tiếp từ trang quản trị:define('DISALLOW_FILE_EDIT', true);define('DISALLOW_FILE_MODS', true);
Kiểm tra tài khoản Quản trị viên (Admin) bằng SQL trực tiếp: Không phụ thuộc vào danh sách trong giao diện WordPress Dashboard. Đăng nhập vào phpMyAdmin / MySQL CLI và chạy câu lệnh sau để phát hiện các tài khoản Admin bị ẩn ngầm:
SELECT ID, user_login, user_email FROM wp_usersWHERE ID IN (SELECT user_id FROM wp_usermeta WHERE meta_key='wp_user_level' AND meta_value=10);
Khởi động lại tiến trình PHP-FPM / Web Server: Nếu nghi ngờ website bị nhiễm, thực hiện khởi động lại PHP-FPM ngay lập tức để giải phóng phân vùng bộ nhớ dùng chung (System V Shared Memory) đang lưu giữ payload ẩn trong RAM.
Ngắn Hạn (Thực Hiện Trong 1 - 7 Ngày)
Đổi toàn bộ Secret Salts & Credentials:
Thay mới chuỗi Secret Keys/Salts trong
wp-config.phpqua công cụ chính thức của WordPress (https://api.wordpress.org/secret-key/1.1/salt/) để hủy bỏ toàn bộ phiên đăng nhập (cookies/sessions) hiện tại.Đổi mật khẩu tài khoản Database, FTP/SSH, cPanel/DirectAdmin và toàn bộ tài khoản Admin WordPress (bắt buộc bật xác thực 2 yếu tố - 2FA).
Thiết lập cơ chế kiểm tra tính toàn vẹn tệp tin (File Integrity Monitoring - FIM): Sử dụng các công cụ/plugin an ninh có khả năng tự động so sánh checksum của WordPress Core, Theme, Plugin với kho gốc trên WordPress.org để phát hiện ngay lập tức khi tệp bị chèn mã lạ.
Giám sát kết nối mạng đi ra ngoài (Outbound Traffic): Cấu hình Firewall/Egress Rules chặn hoặc cảnh báo khi có các truy vấn HTTPS POST nghi vấn từ server ra các cổng Ethereum RPC công cộng (
cloudflare-eth.com,mainnet.infura.io,rpc.ankr.com).
Bảng Phân Loại Kỹ Thuật MITRE ATT&CK
| Tactic | Technique ID | Technique Name | Mô Tả Kỹ Thuật Trong SC Malware |
|---|---|---|---|
| Persistence | T1505.002 |
Server Software Component: Web Shell | Sử dụng Drop-ins (db.php, advanced-cache.php) và .user.ini để duy trì quyền thực thi code. |
| Persistence | T1546.012 |
Event-Triggered Execution: Shared Modules | Lưu giữ mã độc trong System V Shared Memory (RAM) để tự nạp lại khi có tiến trình PHP mới. |
| Defense Evasion | T1564.001 |
Hide Artifacts: Hidden Files & Directories | Giấu các file độc hại trong thư mục uploads/mu-plugins và giấu tài khoản Admin trên Dashboard. |
| Command & Control | T1102.002 |
Web Service: Bidirectional Communication | Khai thác các cổng RPC công cộng của Ethereum Blockchain để nhận lệnh C2 ẩn danh. |
| Execution | T1059.001 |
Command and Scripting Interpreter: PowerShell/PHP | Thực thi động các đoạn mã PHP nguy hiểm thông qua hàm eval() và mã hóa base64. |
IOCs
Tệp tin & Cấu hình
[File Path] /public_html/.user.ini (chứa chỉ thị auto_prepend_file)
[File Path] /public_html/wp-content/advanced-cache.php (chứa mã eval mã hóa)
[File Path] /public_html/wp-content/db.php (chứa hook override wpdb
[File Path] /public_html/wp-content/mu-plugins/sc_loader.php
[Database Option] wp_options -> option_name = 'wp_schema_check_v2'
[Database Option] wp_options -> option_name = '_transient_sc_cache'
[Memory Segment] System V IPC Memory Segments owned by web user with non-standard payload size
C2 Blockchain
https://mainnet.infura.io/v3/\*
Nhận Định Chuyên Gia & Bài Học Cho Môi Trường Hosting Tại VN
Theo quan sát của FPT IS SOC Team, sự xuất hiện của SC Malware phản ánh xu hướng phát triển phức tạp của các dòng mã độc nhắm vào CMS thương mại điện tử.
Tại Việt Nam, rất nhiều doanh nghiệp và cơ quan đang vận hành hệ thống WordPress trên các hạ tầng Shared Hosting cPanel/DirectAdmin giá rẻ. Hạn chế cố hữu của môi trường này bao gồm:
Thiếu cô lập phân vùng bộ nhớ PHP (IPC Memory Insecurity): Nhiều nhà cung cấp Hosting cấu hình PHP-FPM chạy chung dưới tài khoản đại diện hoặc không cô lập phân vùng System V Shared Memory giữa các Virtual Host. Điều này khiến mã độc ở 1 site bị nhiễm có thể "lây lan ngầm" qua bộ nhớ RAM sang các site khác nằm trên cùng server vật lý.
Thói quen dọn dẹp bề mặt: Phần lớn quản trị viên khi phát hiện bị hack chỉ thực hiện quét file bằng plugin hoặc xóa file báo động. Chính tư duy "xóa file là sạch" đã hoàn toàn thất bại trước kiến trúc Self-Healing Mesh của SC Malware.
Khuyến nghị chiến lược: Các tổ chức cần chuyển hướng sang mô hình lưu trữ dạng Containerized (Docker/K8s) hoặc bật các cơ chế cô lập triệt để (chroot, CloudLinux CageFS) cho tiến trình PHP-FPM, đồng thời thiết lập giải pháp giám sát tính toàn vẹn của file (File Integrity Monitoring - FIM) theo thời gian thực.
Tài Liệu Tham Khảo
WordPress Backdoor Rebuilds Itself After Cleanup Using Files, Database, and Shared Memory
SC WordPress Malware: A Self-Healing Mesh of Loaders, Drop-Ins, and a Blockchain-Controlled Backdoor
WordPress Malware Keeps Coming Back: SC Backdoor Cleanup | MagicWP





