Joomla là CMS phổ biến thứ hai sau WordPress và thường xuyên bị hacker nhắm mục tiêu. Biểu đồ cho thấy XSS là lỗ hổng khai thác nhiều nhất trên Joomla (tương tự WordPress). Các nguyên nhân khác: Code Injection, SQLi...
Hướng dẫn này dành cho bạn nếu cần tài nguyên loại bỏ malware khỏi site Joomla bị hack. Nếu tìm Joomla Security Guide, xem link liên quan.
Site Joomla bị hack rất phiền toái. Trước khi bắt đầu quy trình dọn dẹp, hãy xem nhanh các dấu hiệu.
Dấu Hiệu Site Joomla Bị Hack
- Google search hiển thị 'This site may be hacked' trong meta description.
- Khai thác cryptocurrency ngầm (crypto mining).
- Website redirect sang trang spam.
- Trang index bị biến dạng hoặc thay thế bởi hack Joomla.
- Bị đăng xuất khỏi tài khoản admin.
- Xuất hiện admin mới lạ.
- Load trang chậm, nặng nề.
- Spam không mong muốn xuất hiện (quảng cáo, redirect...).
- Site bị Google blacklist vì 'malware' hoặc 'phishing'.
- Traffic bất thường tăng vọt (kiểm tra Google Webmaster Tools).
- CMS hoặc phần mềm khác bị lỗi (đặc biệt firewall).
Quy Trình Loại Bỏ Hack & Malware Joomla
Các dấu hiệu chung: cảnh báo blacklist bởi Google/search engine, hành vi trình duyệt bất thường, file bị sửa, user độc mới trong dashboard Joomla. Dưới đây hướng dẫn xác định và dọn dẹp:
-
Xác Định Hack
Quét site Joomla để xác định vị trí malware và payload độc. Astra integrated Joomla security đảm bảo giám sát và phát hiện kịp thời. Kiểm tra file bị sửa (bao gồm core file) qua SFTP thủ công. Kiểm tra tài khoản user/admin độc. Nếu site bị blacklist bởi Google, kiểm tra trạng thái bảo mật qua diagnostic tools. Truy cập Safe Browsing Site Status để xem: Site safety details (redirect độc, spam, download) và Testing Details (lần quét gần nhất phát hiện malware). Dùng tool miễn phí: Google Webmasters Central, Bing Webmaster Tools, Norton SafeWeb.
-
Khắc Phục Hack Joomla
Sau khi nắm thông tin malware location, user bị xâm nhập, đánh giá mối đe dọa: thực hiện dọn dẹp toàn bộ site. So sánh file nhiễm với backup trước để đánh giá mức độ sửa đổi và xóa thay đổi độc. Dọn dẹp database Joomla bị hack bằng PHPMyAdmin hoặc tool Search-Replace-DB, Adminer. Bảo mật mọi tài khoản user. Hacker thường để lại nhiều backdoor để tái xâm nhập sau khi dọn dẹp. Backdoor nhúng trong file trông hợp pháp nhưng ở thư mục sai. Bắt buộc dọn dẹp triệt để backdoor để tránh tái nhiễm.
1. Dọn Dẹp Database
Bắt đầu từ database bị nhiễm. Joomla SQL injection có thể tạo user database mới. Tìm user tạo sau ngày cụ thể:
Select * from users as u AND u.created > UNIX_TIMESTAMP(STR_TO_DATE('My_Date', '%M %d %Y '));Khi tìm thấy user lạ, xóa bằng
Drop User;. Để tránh nhiễm sau: sanitize user input, hạn chế quyền database, chặn lộ lỗi database chỉ local, dùng type casting.2. Bảo Mật Server
Dù cài đặt an toàn, server lỗi vẫn gây hack Joomla. Điểm then chốt: đóng port mở, xóa subdomain không dùng, kiểm tra config định kỳ, nếu share server hãy subnetting hoặc VPN, chặn lỗi rò rỉ info, đặt mật khẩu FTP/database mạnh ngẫu nhiên, dùng firewall/giải pháp bảo mật.
3. Thiết Lập Permission (Quyền File)
- Đảm bảo không user nào upload executable (.php, .aspx...). Chỉ cho upload file ảnh.
- File nhạy cảm nhất: .htaccess. Set permission
444 (r–r–r–)hoặc440 (r–r—–). - Đảm bảo file PHP không bị ghi đè: set
*.php=444. - Dùng extension phổ biến – cập nhật nhanh khi có lỗ hổng.
4. Kiểm Tra File Bị Sửa Trong Joomla
Hacker thường sửa file chèn spam. Cần cài đặt mới nếu quá rối. Luôn giữ backup. Lệnh
diffgiúp so sánh file. File Joomla công khai trên GitHub. Kiểm tra core file integrity qua SSH:$ mkdir joomla $ cd joomla $ wget https://github.com/joomla/joomla-cms/releases/download/3.6.4/Joomla_3.6.4-Stable-Full_Package.tar.gz $ tar -zxvf Joomla_3.6.4-Stable-Full_Package.tar.gz $ diff -r joomla-3.6.4 ./public_htmlLệnh
find ./ -type f -mtime -15liệt kê file sửa trong 15 ngày qua. Thay đổi timestamp tùy ý. Tìm file sửa gần đây!5. Kiểm Tra User Logs
System logs ghi lại hoạt động – nơi tìm nguyên nhân hack (XSS, SQL injection luôn để lại dấu vết request). Hacker thường tạo admin mới. Kiểm tra user nghi ngờ: Login Dashboard → Users → Manage → tìm user đăng ký gần đây → Remove user lạ → kiểm tra Last Visit Date → tìm server logs → xác định SQL injection... Nếu user login từ IP lạ, xóa ngay. Dùng Google diagnostic report tìm nguyên nhân – báo cáo toàn diện, nếu blacklisted thì hợp tác chặt chẽ với Google để dọn dẹp.
Việc Cần Làm Sau Khi Dọn Dẹp Hack Joomla
Cập Nhật
Hack Joomla thường do file chưa vá lỗi. Bước đầu sau dọn dẹp: update Joomla. Update loại bỏ extension dễ bị tấn công, lấp lỗ hổng bảo mật. Hiện Joomla 3.x là major version ổn định nhất. Dùng 1.x, 2.x phải chuyển sang 3.x ngay. Cập nhật core files, components, templates, modules, plugins.
Cài Đặt Lại (Reinstall)
Sau hack, cài lại tất cả extension đảm bảo chức năng và sạch malware. Xóa theme, component, module, plugin đã vô hiệu hóa/hủy bỏ khỏi server. Đôi khi quên xóa file của module/plugin bỏ rơi – vẫn để lỗ hổng. Hãy xóa sạch file. Sau dọn dẹp, backup. Chiến lược backup tốt là cốt lõi an ninh. Lưu backup off-site (không trên server – server cũng có thể bị hack). Quét hệ thống bằng antivirus tốt – máy tính nhiễm của user có quyền truy cập site có thể gây nguy hiểm. Bảo vệ site bằng Website Firewall (Astra WAF chặn mối đe dọa online, giữ malware xa).
Reset Mật Khẩu
Reset mọi password tránh tái nhiễm. Bật two-factor authentication (2FA) cho tài khoản. Tuân thủ nguyên tắc least privilege – chỉ cấp quyền cần thiết.
Mẹo Bảo Mật Joomla Sau Hack
Áp dụng các thực hành sau bảo vệ site khỏi đa số tấn công:
Cập Nhật Thường Xuyên Joomla Version, Extension & Plugin
Site Joomla an toàn = site cập nhật thường xuyên. Mỗi bản update có cải tiến bảo mật, fix bug. Phiên bản/extension/plugin lỗi thời mời hacker.
Dùng Mật Khẩu Mạnh
Credential yếu bị brute-force – lỗ hổng phổ biến. Mật khẩu dễ đoán, tài khoản admin mặc định giúp kẻ xấu dễ dàng xâm nhập. Mật khẩu dài, đa ký tự an toàn hơn mật khẩu ngắn.
Backup Định Kỳ
Backup thường xuyên file & database cứu vãn khi sự cố. Extension như Easy Joomla Backup hỗ trợ backup tự động theo lịch, restore khi mất data do hack.
Hạn Chế Truy Cập Trang Admin
Kẻ xấu brute-force trang login admin dễ đoán. Bắt buộc hạn chế truy cập khu vực admin. Không dùng URL login admin mặc định – đổi thành tên riêng. Admin panel phải bảo vệ bằng mật khẩu. Extension Admin tools, RSFirewall... cho phép đổi URL login.
Extension Bảo Mật
Extension bảo mật hiệu quả lớn. Cấu hình đúng, chúng chặn hoạt động độc hại, lấp lỗ hổng.
Sử Dụng Xác Thực Hai Yếu Tố (2FA)
Mã 2FA (OTP) làm site an toàn hơn. Dù password bị lộ/đoán, vẫn cần mã xác thực để truy cập trái phép.
Cảnh Giác Download Bị Nhiễm
Không bao giờ tải extension/plugin/theme premium miễn phí từ nguồn không chính thức/chưa xác thực. File từ nguồn lạ có thể chứa malware. Đừng tiết kiệm tiền ở chỗ này – đầu tư nguồn chính thống.
Chứng Chỉ SSL
Khi user login, credential gửi lên server không mã hóa. SSL encrypt credential trước khi gửi – lớp bảo vệ thêm cho Joomla.
Tắt FTP Layer
FTP layer thường không cần trong Joomla và disable mặc định. Hãy giữ như vậy – FTP layer bật là lỗ hổng bảo mật lớn.
Permission File & Thư Mục Phù Hợp
Luôn quản lý permission, không bao giờ cho full access 777. Dùng 755 cho thư mục, 644 cho file, 444 cho configuration.php.