Trong không gian mạng phức tạp hiện nay, giữ vững tính toàn vẹn hệ thống là bài toán hàng đầu của các kỹ sư An toàn thông tin (InfoSec) và nhóm ứng cứu sự cố (DFIR). Kẻ tấn công khi đã vượt qua hàng rào phòng thủ thường tìm cách duy trì quyền truy cập trái phép (Persistence) mà không cần phải khai thác lại các lỗ hổng zero-day hay cấu hình sai từ đầu. Phương thức phổ biến nhất để thực hiện mục tiêu này chính là thiết lập “cửa hậu”. Tuy nhiên, không ít nhân sự CNTT vẫn nhầm lẫn giữa hai khái niệm Webshell và Backdoor kỹ thuật số.
Bài viết phân tích chuyên sâu này sẽ cung cấp góc nhìn toàn diện về:
- Bản chất kỹ thuật, cơ chế hoạt động và cách phân biệt Webshell với Backdoor.
- Phân loại chi tiết các dạng biến thể theo môi trường thực thi và ngôn ngữ lập trình.
- Các kỹ thuật phát hiện hiện đại áp dụng trong các mô hình Red Team và Blue Team.
- Chiến lược phòng thủ chiều sâu (Defense-in-Depth) chống lại nguy cơ bị cắm cửa hậu.
Backdoor (Cửa hậu) là gì?
Backdoor trong an toàn thông tin là cơ chế hoặc phương thức truy cập ẩn được tin tặc cài đặt trên hệ thống đích sau khi đã xâm nhập thành công. Mục đích chính của nó là bỏ qua các quy trình xác thực (Authentication Bypass) và cơ chế kiểm soát truy cập thông thường để quay lại hệ thống bất kỳ lúc nào.
Về bản chất, backdoor cho phép đối phương chiếm quyền điều khiển từ xa (Remote Access Control) tương tự các công cụ quản trị từ xa (RST) hợp pháp như SSH, RDP hay Telnet nhưng hoàn toàn phục vụ mục đích độc hại.
Thông qua cửa hậu, kẻ tấn công có thể:
- Thực thi mã từ xa (Remote Code Execution – RCE).
- Đọc, ghi, sửa đổi hoặc xóa các tệp tin hệ thống.
- Trích xuất dữ liệu nhạy cảm (Data Exfiltration).
- Cài đặt thêm các loại phần mềm độc hại (Malware Payload) khác.
- Biến máy nạn nhân thành một node trong mạng máy tính ma (Botnet) để leo thang tấn công DDoS.
Hình thái tồn tại của Backdoor vô cùng đa dạng: từ một tài khoản quản trị ẩn (Hidden Admin Account), một dịch vụ chạy ngầm lắng nghe cổng (Port Listening Service), cho đến các đoạn mã cố ý hoặc vô tinh bị bỏ lại trong quá trình phát triển phần mềm (Hardcoded Credentials / Undocumented APIs).
Ví dụ thực tế: Mã độc SUPERNOVA – một biến thể webshell/backdoor tinh vi được cấy trực tiếp vào mã nguồn phần mềm quản lý hệ thống SolarWinds Orion qua tấn công chuỗi cung ứng (Supply Chain Attack), cho phép hacker gửi lệnh thực thi từ xa với đặc quyền cao nhất.

Webshell là gì?
Webshell là một dạng Backdoor đặc thù được thiết kế dưới dạng tập tin kịch bản (Script) chạy trên môi trường máy chủ web (Web Server). Webshell thường là các file mã độc mang định dạng như .php, .asp, .aspx, .jsp, .py… được tải lên thông qua các lỗ hổng như Arbitrary File Upload, Local File Inclusion (LFI), hoặc Remote File Inclusion (RFI).
Kẻ tấn công tương tác với Webshell thông qua giao thức truyền tải siêu văn bản (HTTP/HTTPS) bằng cách gửi các yêu cầu (HTTP Request) chứa tham số điều khiển. Khi máy chủ web thông dịch tập tin kịch bản này, nó sẽ tương tác trực tiếp với giao diện dòng lệnh (Command Line Interface) của hệ điều hành phía dưới.
Thực chất, Webshell hoạt động như một giao diện quản trị web (Web-based Administration Interface), cung cấp các tính năng:
- Quản lý tệp tin (File Manager): Tải lên, tải về, chỉnh sửa mã nguồn.
- Quản trị cơ sở dữ liệu (Database Client): Kết nối và truy vấn SQL trực tiếp.
- Thực thi lệnh hệ thống: Command Execution / Interactive Terminal.
- Thực hiện quét mạng nội bộ: Internal Network Scanning / Pivoting.
Một số biến thể Webshell phổ biến từ cơ bản đến nâng cao:
- Shell kinh điển: r57 shell, c99 shell, WebAdmin – thường viết bằng PHP với giao diện tương tác cơ bản.
- Shell thế hệ mới: b374k, cung cấp GUI hiện đại tích hợp bộ gõ lệnh, quản lý tiến trình, gửi mail spam.
- Framework Webshell mã hóa: China Chopper, Behinder (Biến Hình), Godzilla – các công cụ sử dụng thuật toán mã hóa giao tiếp (AES/RSA) để chủ động bypass các hệ thống phát hiện xâm nhập WAF/IDS.

So sánh và Phân biệt giữa Webshell và Backdoor
Dù cùng hướng tới mục tiêu duy trì quyền truy cập trái phép, Webshell và Backdoor có những điểm khác biệt căn bản về phạm vi, vị trí triển khai và cơ chế hoạt động:
| Tiêu chí | Backdoor | Webshell |
|---|---|---|
| Khái niệm & Phạm vi | Khái niệm tổng quát, bao hàm mọi cơ chế truy cập ẩn trên mọi lớp (Hệ điều hành, Firmware, Mạng, Ứng dụng). | Tập con (Subset) chuyên biệt của Backdoor, chỉ hoạt động trên môi trường Web Server. |
| Phương thức kích hoạt | Khởi chạy như dịch vụ hệ thống (Service/Daemon), tạo kết nối ngược (Reverse Shell) hoặc lắng nghe cổng (Bind Shell). | Hoạt động thụ động (Passive). Chỉ kích hoạt khi nhận được yêu cầu HTTP/HTTPS Request chứa tham số độc hại. |
| Môi trường & Vị trí | Nằm ở bất kỳ đâu: Thư mục Binary (/usr/bin, System32), Windows Registry, Bootkit/Rootkit, RAM (Fileless). | Bắt buộc phải nằm trong thư mục gốc web (Web Root Directory) hoặc đường dẫn Web Server có quyền thực thi. |
| Quyền hạn ban đầu | Thường khởi tạo với quyền cao (SYSTEM/root) nếu cài thông qua tiến trình đặc quyền hoặc Trojan. | Bị giới hạn bởi quyền của tài khoản chạy dịch vụ Web (www-data, iusr, apache). Cần leo thang đặc quyền để chiếm server. |
4 Loại Webshell theo Ngôn ngữ Lập trình & Cấu trúc
Bên cạnh phương thức hoạt động hay độ phức tạp, việc phân loại Webshell dựa trên ngôn ngữ lập trình và nền tảng hạ tầng đóng vai trò quyết định giúp đội ngũ an ninh mạng khoanh vùng rủi ro và xây dựng tập quy tắc giám sát (Rule/Signature) tương thích cho từng hệ thống Web Server. Mỗi nền tảng công nghệ đều có những đặc thù riêng về cơ chế thực thi lệnh và môi trường chạy runtime mà kẻ tấn công có thể lợi dụng. Dưới đây là chi tiết các loại Webshell phổ biến phân theo ngôn ngữ lập trình và cấu trúc triển khai:
1. PHP Webshell
Phổ biến nhất hiện nay do PHP chiếm tỉ lệ lớn trong các ứng dụng Web/CMS (WordPress, Joomla, Drupal).
Cơ chế: Tận dụng các hàm thực thi lệnh nguy hiểm của PHP như system(), shell_exec(), exec(), passthru(), eval(), assert(), proc_open().
Mẫu mã độc đơn giản (One-liner):
<?php system($_GET['cmd']); ?>
<?php eval($_POST['code']); ?>
Kho lưu trữ tham khảo nghiên cứu: JohnTroony/php-webshells, drag0s/php-webshells.
2. JSP / Servlet Webshell (Java Environment)
Sử dụng trên các ứng dụng doanh nghiệp chạy máy chủ Java (Apache Tomcat, JBoss, WebLogic, WebSphere).
Cơ chế: Khai thác lớp java.lang.Runtime hoặc java.lang.ProcessBuilder để gọi lệnh OS. Ngoài ra còn tận dụng Expression Language (EL).
Mẫu mã độc điển hình:
<% Runtime.getRuntime().exec(request.getParameter("cmd")); %>
Kho lưu trữ tham khảo: threedr3am/JSP-Webshells (bao gồm các kỹ thuật Obfuscation bypass signature).
3. ASP / ASPX Webshell (Windows IIS)
Dành riêng cho môi trường Microsoft IIS.
- ASP Classic (.asp): Sử dụng VBScript/JScript với các đối tượng COM như
Server.CreateObject("WSCRIPT.SHELL"). - ASPX (.aspx): Sử dụng C# hoặc VB.NET, tương tác trực tiếp với không gian tên
System.Diagnostics.Processcủa .NET Framework.
Kho lưu trữ tham khảo: tennc/webshell, xl7dev/WebShell.
4. Webshell Đơn giản vs. Phức tạp (Mã hóa / Fileless)
Tương tự như các chủng loại Backdoor nói chung, Webshell cũng liên tục biến đổi và nâng cấp qua từng giai đoạn để vượt qua các giải pháp giám sát an ninh thông thường. Tùy thuộc vào mức độ tinh vi trong cách thức hoạt động, kiến trúc điều khiển và khả năng ẩn nấp, Webshell được chia thành các cấp độ từ cơ bản đến nâng cao. Dưới đây là các cấp độ phân loại Webshell từ đơn giản nhất đến các dạng mã độc vô hình tinh vi nhất hiện nay:
- Webshell đơn giản: Kích thước nhỏ, chỉ gồm vài dòng lệnh thô, dễ bị phát hiện bởi giải pháp quét chữ ký (Signature Scan).
- Webshell phức tạp / Client-Server: Gồm mã nguồn tĩnh trên server kết hợp phần mềm điều khiển có GUI tại client (như China Chopper).
- Webshell mã hóa & Memory-only: Như Behinder, Godzilla – sử dụng giao tiếp mã hóa AES/Phar hóa dữ liệu, chèn trực tiếp mã bytecode vào bộ nhớ RAM của tiến trình web (Memory Webshell), hoàn toàn không lưu file trên đĩa cứng (Fileless Artifacts).
Phân loại các dạng Backdoor phổ biến
Backdoor (cửa hậu) không tồn tại dưới một dạng duy nhất mà được biến đổi linh hoạt tùy thuộc vào mục tiêu, đối tượng tấn công và cấp độ can thiệp vào hệ thống. Việc hiểu rõ phân loại các dạng Backdoor phổ biến là bước nền tảng giúp đội ngũ bảo mật xây dựng ma trận phòng thủ tương ứng—từ việc giám sát ứng dụng người dùng cuối cho đến kiểm soát an toàn ở cấp độ nhân (Kernel) và chuỗi cung ứng. Dưới đây là các hình thái Backdoor phổ biến và nguy hiểm nhất hiện nay:
- Remote Access Trojan (RAT): Mã độc giả danh phần mềm hợp lệ. Sau khi chạy, RAT mở kết nối C2 (Command and Control) giúp kẻ tấn công theo dõi màn hình, ghi bàn phím (Keylogger), lấy cắp dữ liệu.
- Built-in Backdoor / Firmware Backdoor: Cửa hậu đặt sẵn do nhà sản xuất (hoặc lập trình viên) cố ý/vô tình bỏ quên trong thiết bị phần cứng, router, IoT.
- Supply Chain Backdoor: Chèn mã độc vào mã nguồn của bản cập nhật phần mềm hợp pháp trước khi phân phối tới người dùng (ví dụ kinh điển: vụ tấn công SolarWinds SunBurst).
- Rootkit (OS/Kernel Level): Backdoor hoạt động ở cấp độ nhân hệ điều hành, có khả năng che giấu tiến trình, che giấu tập tin và bypass toàn bộ phần mềm diệt virus (Antivirus/EDR).
Kỹ thuật phát hiện (Detection Techniques) hiện đại
Dù đã áp dụng các biện pháp phòng thủ chủ động, kẻ tấn công vẫn có thể vượt qua rào cản bằng các kỹ thuật tinh vi hoặc lỗ hổng Zero-day. Lúc này, kỹ thuật phát hiện (Detection Techniques) đóng vai trò là “mắt thần” giúp đội ngũ vận hành sớm nhận diện sự hiện diện của mã độc, hạn chế tối đa thời gian nằm vùng (Dwell Time) và thiệt hại do sự cố gây ra. Bằng cách phối hợp giữa giám sát tĩnh (mã nguồn, tệp tin) và giám sát động (tiến trình, lưu lượng mạng), các phương pháp phát hiện hiện đại dưới đây sẽ giúp phát hiện kịp thời sự tồn tại của Webshell lẫn Backdoor:
Đối với Webshell
- Theo dõi tính toàn vẹn tệp tin (File Integrity Monitoring – FIM): Sử dụng thuật toán băm (MD5/SHA256) so sánh cây thư mục web hiện tại với bản Whitelist sạch ban đầu để tìm ra file bị sửa đổi hoặc tạo mới.
- Phân tích nhật ký truy cập (Web Server Log Analysis): Tìm kiếm các request dị thường trong Access Log:
- Tần suất truy cập URL kỳ lạ từ ít IP/User-Agent.
- Request không có trường HTTP Referrer.
- Các tham số GET/POST chứa chuỗi mã hóa Base64, Hex hoặc từ khóa thực thi (
eval,system,cmd).
- Scanners dựa trên chữ ký và quy tắc YARA: Sử dụng bộ quy tắc YARA để quét mã nguồn web, phát hiện hàm nguy hiểm, chuỗi bị làm rối (Obfuscated Code).
- Giám sát tiến trình (Host-based EDR / HIDS): Theo dõi hành vi của tiến trình web (như
w3wp.exe,httpd,nginx). Nếu tiến trình web đẻ ra các tiến trình con dòng lệnh nhưcmd.exe,powershell.exe,/bin/sh-> 99% hệ thống đã bị cắm Webshell.
Đối với Backdoor tổng thể
- Giám sát lưu lượng mạng (Network Traffic Analysis): Phát hiện các kết nối bất thường (Outbound Connections) từ máy chủ ra các IP/Domain lạ trên Internet, hoặc các chu kỳ gửi tín hiệu duy trì kết nối (Beaconing).
- Kiểm tra tiến trình & Bộ nhớ (Memory Forensics): Phân tích RAM bằng công cụ Volatility để tìm tiến trình ẩn (Hidden Processes), kỹ thuật chèn mã (Process Injection / DLL Injection).
- Kiểm toán cấu hình & Tài khoản (System Audit): Rà soát danh sách Scheduled Tasks, Windows Services, Registry Run Keys, SSH Authorized Keys để phát hiện điểm duy trì quyền truy cập trái phép.
Biện pháp phòng chống chủ động (Prevention Strategies)
Để tối ưu hóa chi phí vận hành và giảm thiểu tối đa rủi ro cho hệ thống, chiến lược bảo mật hiện đại luôn ưu tiên phòng ngừa chủ động (Proactive Prevention) thay vì chỉ tập trung xử lý sau khi sự cố đã xảy ra. Bằng cách thiết lập các lớp phòng thủ chuyên sâu từ hạ tầng web cho đến yếu tố con người, tổ chức có thể triệt hạ từ sớm các con đường phát tán mã độc và triệt tiêu khả năng cắm sâu của Webshell hay Backdoor.
Phòng chống Webshell
- Hardening cấu hình Web Server:
- Tắt quyền thực thi script trong các thư mục cho phép upload file (ví dụ:
php_flag engine offtrong.htaccesshoặc cấu hìnhnoexectrên Linux). - Vô hiệu hóa các hàm nguy hiểm trong
php.ini(disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,eval).
- Tắt quyền thực thi script trong các thư mục cho phép upload file (ví dụ:
- Kiểm soát đầu vào (Input Validation & Sanitization):
- Áp dụng nguyên tắc Strict Whitelist cho chức năng upload (chỉ chấp nhận extension .jpg, .png; kiểm tra MIME-type và Magic Bytes).
- Đổi tên tệp tin upload thành chuỗi ngẫu nhiên (UUID/Hash).
- Triển khai WAF (Web Application Firewall): Ngăn chặn các cuộc tấn công LFI/RFI/Upload trước khi payload chạm tới máy chủ.
Phòng chống Backdoor tổng thể
- Triển khai kiến trúc Zero Trust: Không tin tưởng bất kỳ kết nối nào, áp dụng nguyên tắc đặc quyền tối thiểu (Least Privilege).
- Cập nhật và Quản lý lỗ hổng (Vulnerability & Patch Management): Vá lỗi Hệ điều hành, CMS, Framework và ứng dụng định kỳ.
- An toàn chuỗi cung ứng (Software Supply Chain Security): Kiểm tra chữ ký số của bản cập nhật, mã hóa mã nguồn, đánh giá bảo mật phần mềm bên thứ ba.
- Đào tạo nâng cao nhận thức Security Awareness: Tăng cường khả năng nhận biết email Phishing, liên kết độc hại cho nhân sự toàn tổ chức.
Kết luận
Webshell và Backdoor đại diện cho những kỹ thuật duy trì truy cập tinh vi nhất trong kho vũ khí của tội phạm mạng. Việc phân biệt rõ ràng cơ chế hoạt động của Webshell (hoạt động trên ứng dụng web) và Backdoor (hoạt động đa nền tảng, sâu trong hệ thống) là tiền đề bắt buộc để xây dựng các kịch bản ứng cứu sự cố (Incident Response Playbook) chính xác.
An ninh mạng không phải là một trạng thái tĩnh mà là một quy trình cải tiến liên tục. Bằng cách kết hợp giữa tư duy phòng thủ chiều sâu (Defense-in-Depth), công nghệ giám sát hiện đại (EDR/WAF/FIM) và việc đào tạo nguồn nhân lực chất lượng cao, các tổ chức mới có thể chủ động triệt hạ các “cửa hậu” độc hại trước khi thiệt hại xảy ra.
Tài liệu tham khảo:
- Pavle Culum, Roman Kroshinsky – Investigating Web Shells (Gigamon Blog)
- Trung Nguyen – Backdoor là gì? Webshell nguy hiểm đến mức nào? (CyStack)
- National Security Agency (NSA) – Cybersecurity Information: Detect and Prevent Web Shell Malware
- Trend Micro – Godzilla Webshell Backdoor Analysis
- Imperva Security Research – What is a Web Shell: Detection & Protection Guide
- MITRE ATT&CK Matrix – Persistence Techniques: Web Shell (T1505.003) & Server Software Component

