Joomla là hệ thống quản lý nội dung (CMS) phổ biến thứ hai sau WordPress và thường xuyên trở thành mục tiêu của tin tặc. Biểu đồ dưới đây cho thấy XSS là lỗ hổng phổ biến nhất bị khai thác trong Joomla cũng như WordPress. Các nguyên nhân khác dẫn đến việc Joomla bị hack bao gồm tiêm mã, SQL Injection, v.v.
Hướng dẫn này hữu ích cho bạn nếu bạn đang tìm kiếm tài nguyên để xóa mã độc khỏi website Joomla bị hack. Hãy theo dõi các liên kết dưới đây nếu bạn cần:
- Tiện ích mở rộng xóa mã độc Joomla
- Hướng dẫn bảo mật Joomla
Một website Joomla bị hack có thể gây lo lắng rất lớn. Nhưng trước khi bắt đầu quy trình xóa hack Joomla, hãy nhanh chóng xem qua các dấu hiệu của trang web Joomla bị xâm nhập.
Dấu hiệu website Joomla bị hack
- Tìm kiếm Google hiển thị “Trang web này có thể đã bị hack” trong mô tả meta.
- Khai thác tiền mã hóa (crypto mining) chạy ngầm.
- Website tự động chuyển hướng sang trang spam.
- Trang chủ bị biến dạng hoặc bị thay thế bởi hack Joomla.
- Bị đăng xuất khỏi tài khoản quản trị.
- Xuất hiện các quản trị viên mới lạ.
- Tốc độ tải trang chậm hoặc dung lượng trang bất thường lớn.
- Các spam trước đây không có bắt đầu xuất hiện trên trang web của bạn.
- Trang web bị Google đưa vào danh sách đen vì “mã độc” hoặc “lừa đảo trực tuyến”.
- Spam này cũng bao gồm quảng cáo và chuyển hướng không mong muốn.
- Tăng lượng truy cập không tự nhiên trên trang web. Bạn có thể kiểm tra bằng Google Search Console.
- CMS hoặc phần mềm khác có thể bị hỏng. Đặc biệt là tường lửa!
Website của bạn có biểu hiện dấu hiệu bị hack Joomla? Nhắn tin cho chúng tôi qua widget chat, chúng tôi sẵn sàng hỗ trợ. Khắc phục website của tôi ngay.
Quy trình xóa hack & mã độc Joomla
Một số chỉ báo phổ biến như cảnh báo danh sách đen từ Google và các công cụ tìm kiếm khác, hành vi bất thường của trình duyệt, tệp bị sửa đổi và sự hiện diện của người dùng độc hại mới trong bảng điều khiển Joomla cho thấy một trang web Joomla đã bị xâm nhập. Dưới đây là hướng dẫn để xác định và dọn dẹp trang Joomla bị hack của bạn:
- Xác định vụ hack
Quét trang web Joomla của bạn để xác định vị trí mã độc và các mã tải trọng độc hại. Tính năng bảo mật Joomla tích hợp của Astra đảm bảo giám sát và xác định kịp thời trang Joomla bị hack.
Tiếp theo, hãy kiểm tra tất cả các tệp đã được sửa đổi, bao gồm cả các tệp lõi (core files). Bạn có thể làm điều này bằng cách kiểm tra thủ công các tệp qua SFTP.
Kiểm tra (audit) các tài khoản người dùng và quản trị viên độc hại.
Nếu trang Joomla của bạn xuất hiện trong danh sách đen của Google hoặc các cơ quan bảo mật website khác, bạn có thể kiểm tra trạng thái bảo mật của trang web Joomla! bằng công cụ chẩn đoán của họ. Để kiểm tra tính minh bạch của Google, hãy truy cập trang web Trạng thái Duyệt web an toàn nơi bạn có thể xem:
- Chi tiết bảo mật trang web cung cấp thông tin về chuyển hướng độc hại, spam và tải xuống.
- Chi tiết kiểm tra thông báo về lần quét gần nhất của Google phát hiện mã độc.
Sử dụng các công cụ giám sát bảo mật miễn phí như Google Search Console, Bing Webmaster Tools và Norton SafeWeb để kiểm tra báo cáo bảo mật của trang web.
- Khắc phục hack Joomla
Để có thông tin về vị trí tiềm ẩn của mã độc, người dùng bị xâm nhập và đánh giá mối đe dọa, hãy chọn giải pháp dọn dẹp toàn bộ trang web. So sánh các tệp bị nhiễm với bản sao lưu trước đó để đánh giá phạm vi thay đổi và xóa các sửa đổi độc hại. Dọn dẹp cơ sở dữ liệu Joomla bị hack bằng bảng điều khiển quản trị cơ sở dữ liệu, như PHPMyAdmin hoặc các công cụ như Search-Replace-DB hoặc Adminer.
Bước tiếp theo là bảo mật tất cả các tài khoản người dùng. Thường tin tặc để lại nhiều cửa sau (backdoor) để có thể truy cập lại ngay cả sau khi dọn dẹp trang web. Các cửa sau thường được nhúng trong các tệp trông hợp pháp nhưng đặt sai thư mục. Do đó, việc dọn dẹp kỹ lưỡng các tệp khỏi cửa sau là điều bắt buộc, nếu không có nguy cơ tái nhiễm.
1. Dọn dẹp cơ sở dữ liệu
Bắt đầu bằng việc dọn dẹp từ cơ sở dữ liệu bị nhiễm. SQL Injection Joomla có thể tạo người dùng cơ sở dữ liệu mới. Để tìm người dùng mới được tạo sau một ngày cụ thể, hãy sử dụng mã sau:
SELECT * FROM users AS u
WHERE u.created > UNIX_TIMESTAMP(STR_TO_DATE('My_Date', '%M %d %Y'));
Một khi tìm thấy người dùng độc hại, hãy xóa chúng bằng câu lệnh SQL DROP USER. Không chỉ vậy, để tránh nhiễm trùng trong tương lai:
- Làm sạch (sanitize) dữ liệu đầu vào của người dùng.
- Hạn chế quyền cơ sở dữ liệu trên tài khoản.
- Chặn rò rỉ thông tin lỗi cơ sở dữ liệu chỉ cục bộ.
- Sử dụng ép kiểu (type casting) bất cứ khi nào có thể.
2. Bảo mật Server
Ngay cả khi cài đặt an toàn, server bị lỗi cấu hình vẫn có thể gây hack Joomla. Mặc dù danh sách các vấn đề bảo mật Joomla rất dài, một số điểm then chốt cần nhớ:
- Đóng tất cả các cổng mở (open ports).
- Xóa các sub-domain không sử dụng.
- Kiểm tra thường xuyên các lỗi cấu hình.
- Nếu bạn dùng server chia sẻ, hãy chọn phân đoạn mạng (subnet) hoặc dùng VPN.
- Chặn thông báo lỗi rò rỉ thông tin.
- Đặt mật khẩu mạnh, ngẫu nhiên cho tài khoản FTP và Database!
- Đảm bảo bạn sử dụng tường lửa hoặc giải pháp bảo mật nào đó.
3. Thiết lập quyền truy cập (File Permissions)
- Trước hết, đảm bảo không người dùng nào có thể tải lên file thực thi như
.php,.aspx, v.v. Chỉ cho phép tải lên file hình ảnh. - Thiết lập quyền file cho server. Tệp nhạy cảm nhất có thể là file
.htaccess. Đặt quyền444 (r--r--r--)hoặc440 (r--r----). - Đảm bảo các tệp PHP không thể bị ghi đè. Đặt
*.phpthành444 (r--r--r--). - Quan trọng nhất, hãy sử dụng các tiện ích mở rộng (extensions) phổ biến. Joomla là CMS lớn, nên các thay thế luôn tồn tại. Các extension phổ biến nhận bản cập nhật nhanh hơn khi có lỗ hổng. Hãy cố gắng theo dõi xu hướng phổ biến!
4. Kiểm tra các tệp bị sửa đổi trong Joomla
Thường tin tặc sửa đổi tệp của bạn để tiêm spam. Điều này có thể gây rối loạn cài đặt. Bạn có thể cần cài đặt lại. Để tránh điều này, hãy luôn giữ bản sao lưu. Khi phân tích tệp sau hack Joomla, lệnh diff rất tiện lợi. Nó giúp kiểm tra các tệp đã thay đổi. Tất cả các tệp Joomla đều công khai trên Github.
Có thể dùng để so sánh. Để kiểm tra tính toàn vẹn của tệp lõi bằng lệnh SSH:
$ mkdir joomla
$ cd joomla
Đầu tiên, tạo thư mục tên joomla và chuyển vào đó.
$ 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
Lệnh wget tải tệp Joomla từ GitHub. Dòng thứ hai giải nén chúng.
$ diff -r joomla-3.6.4 ./public_html
Cuối cùng, lệnh diff so sánh nội dung. Lần này kiểm tra thư mục public_html. Tương tự, bạn có thể kiểm tra nhiều tệp. Ngoài ra, có thể kiểm tra thủ công bằng client FTP. SSH cho phép liệt kê các thay đổi tệp.
$ find ./ -type f -mtime -15
Lệnh SSH này tiết lộ các tệp được sửa đổi trong 15 ngày qua. Bạn có thể thay đổi dấu thời gian. Tìm tất cả các tệp được sửa đổi gần đây!
Liên hệ chuyên gia bảo mật Astra ngay hôm nay để tìm và sửa hack Joomla. Tường lửa mạnh mẽ của chúng tôi bảo vệ trang web khỏi XSS, LFI, RFI, SQL Injection, Bot xấu, Scanner lỗ hổng tự động và hơn 80 mối đe dọa bảo mật khác.
5. Kiểm tra nhật ký người dùng (User Logs)
Nhật ký hệ thống là công cụ tốt nhất để xác định nguyên nhân hack Joomla. Nhật ký ghi lại tất cả các hoạt động trước đó. Do đó, bất cứ khi nào có tiêm XSS hay SQL Injection, luôn có bản ghi yêu cầu. Ngoài ra, tin tặc thường tạo tài khoản quản trị mới. Nếu muốn tìm người dùng đáng ngờ:
- Đăng nhập vào bảng điều khiển Joomla.
- Nhấp vào Users và chọn Manage.
- Kiểm tra người dùng đáng ngờ, đặc biệt là những người vừa đăng ký.
- Xóa tất cả người dùng không xác định.
- Kiểm tra ngày truy cập cuối cùng (Last Visit Date).
- Xác định nơi lưu trữ nhật ký server. Dùng để xác định SQL Injection Joomla, v.v.
- Nếu thấy người dùng đăng nhập từ địa chỉ IP lạ, hãy xóa họ.
Ngoài ra, hãy dùng Báo cáo chẩn đoán Google để tìm nguyên nhân. Nó cung cấp cái nhìn toàn diện về trang web. Nếu trang web bị danh sách đen, hãy làm việc chặt chẽ với Google. Báo cáo chẩn đoán sẽ cho biết nguyên nhân bị liệt đen. Dùng nó để tìm và loại bỏ nhiễm trùng!
Làm gì sau khi xóa hack Joomla?
Cập nhật (Update)
Thường hack Joomla xảy ra do tệp chưa được vá lỗi. Do đó, bước đầu tiên sau khi dọn dẹp hack là cập nhật Joomla. Các bản cập nhật về cơ bản loại bỏ các tiện ích mở rộng dễ bị tấn công và vá các lỗ hổng bảo mật, mang lại môi trường an toàn.
Hiện tại, Joomla phiên bản 3.x là phiên bản chính ổn định nhất. Những ai đang dùng nhánh 1.x và 2.x nên nâng cấp ngay lên 3.x.
Ngoài cập nhật phiên bản chính, hãy cập nhật tất cả các tệp lõi, component, template, module và plugin Joomla.
Cài đặt lại (Reinstall)
Sau khi bị hack, cũng nên cài đặt lại tất cả các tiện ích mở rộng để đảm bảo chúng hoạt động bình thường và không chứa mã độc. Ngoài ra, hãy xóa các theme, component, module hoặc plugin cũ/đã vô hiệu hóa khỏi server web. Đôi khi chúng ta quên xóa các tệp liên quan đến các module và plugin bị bỏ rơi, điều này vẫn có thể để lại lỗ hổng. Vì vậy, hãy chắc chắn loại bỏ cả các tệp tin vì chúng có thể chứa các lỗ hổng nghiêm trọng.
Sau khi dọn dẹp trang Joomla bị hack, hãy thực hiện sao lưu. Có chiến lược sao lưu tốt là cốt lõi của các thực hành bảo mật tốt. Lưu trữ bản sao lưu ở vị trí ngoại tuyến (off-site), vì lưu trên server cũng có thể dẫn đến hack.
Cuối cùng,建议 quét hệ thống của bạn bằng một phần mềm antivirus tốt. Có khả năng hệ thống bị xâm nhập nếu người dùng máy tính bị nhiễm virus có quyền truy cập vào trang web của bạn. Bảo vệ trang web bằng tường lửa ứng dụng web (WAF) về cơ bản bảo vệ trang web của bạn khỏi người dùng độc hại hoặc mối đe dọa mã độc từ web. Tường lửa ứng dụng web của Astra giảm thiểu các mối đe dọa trực tuyến và giữ mã độc ở xa.
Đặt lại (Reset)
Đặt lại tất cả mật khẩu để tránh tái nhiễm. Đảm bảo bạn đã bật xác thực hai yếu tố (2FA) trên các tài khoản người dùng. Ngoài ra, hãy thực hành nguyên tắc đặc quyền tối thiểu (least privilege) và chỉ cấp quyền truy cập hạn chế cho những người cần làm một công việc cụ thể.
Mẹo bảo mật Joomla sau Hack
Việc thực hiện các thực hành bảo mật sau sẽ bảo vệ trang Joomla của bạn khỏi hầu hết các cuộc tấn công:
- Cập nhật thường xuyên phiên bản Joomla, extension và plugin:
Một trang Joomla an toàn là trang được cập nhật thường xuyên. Mỗi bản cập nhật phiên bản đều phát hành cùng với cải tiến bảo mật và sửa lỗi. Phiên bản Joomla cũ hoặc bất kỳ extension/plugin lỗi thời nào cũng có thể để tin tặc xâm nhập.
- Sử dụng mật khẩu mạnh:
Thông tin xác thực yếu cuối cùng có thể bị lộ qua Brute Force và đóng vai trò như các lỗ hổng bảo mật phổ biến, dẫn đến bảo mật bị xâm phạm. Mật khẩu dễ đoán và tài khoản quản trị mặc định giúp kẻ xấu dễ dàng truy cập trang Joomla của bạn, làm cho nó chịu đựng nhiều hoạt động độc hại. Mật khẩu dài với nhiều ký tự tạo nên mật khẩu an toàn hơn mã ngắn hơn.
- Sao lưu định kỳ:
Việc sao lưu thường xuyên các file và cơ sở dữ liệu giúp bạn bảo vệ dữ liệu khi có sự cố. Một số extension như Easy Joomla Backup cung cấp sao lưu tự động theo lịch trình có thể khôi phục sau này nếu mất dữ liệu do hack.
- Hạn chế truy cập trang quản trị:
Kẻ xấu thường tấn công brute-force vào trang đăng nhập quản trị dễ đoán. Do đó, bắt buộc phải hạn chế truy cập vào khu vực quản trị. Khuyên không dùng URL trang đăng nhập quản trị mặc định, thay bằng tên riêng. Ngoài ra, bảng điều khiển quản trị phải được bảo vệ bằng mật khẩu. Các extension như Admin Tools, RSFirewall, v.v. cho phép chủ trang Joomla thay đổi URL trang đăng nhập.
- Tiện ích mở rộng bảo mật:
Việc sử dụng extension bảo mật giúp rất nhiều trong việc bảo mật trang Joomla. Các extension này, khi được cấu hình đúng với trang web, cho phép bạn chặn mọi loại hoạt động độc hại và che giấu các lỗ hổng bảo mật. Extension giúp bạn chặn tấn công hacker và vá các lỗ hổng bảo mật của trang Joomla.
- Sử dụng xác thực hai yếu tố (2FA):
Mã xác thực hai yếu tố (thường gọi là mật khẩu một lần: OTP) làm cho trang Joomla của bạn an toàn hơn. Dù mật khẩu bị đoán hoặc lộ, vẫn phải vượt qua mã xác thực để truy cập trái phép vào tài khoản.
- Cẩn thận với các bản tải xuống bị hỏng:
Không bao giờ tải extension, plugin hoặc mục premium miễn phí từ nguồn không xác thực hoặc không chính thức. Plugin từ nguồn không rõ có thể bị hỏng hoặc chứa mã độc làm hỏng trang web. Đừng tiết kiệm tiền ở đây, hãy chi tiền cho nguồn chính thống.
- Chứng chỉ SSL:
Mỗi khi người dùng đăng nhập trang web, thông tin xác thực được gửi đến server mà không mã hóa. Sử dụng chứng chỉ SSL, thông tin này sẽ được mã hóa trước khi gửi đến server. Cách này, chứng chỉ SSL cung cấp lớp bảo vệ bổ sung cho trang web Joomla.
- Tắt lớp FTP:
Lớp FTP thường không cần thiết trong Joomla và bị tắt theo mặc định. Cần giữ nguyên trạng thái này, vì lớp FTP bật là một lỗ hổng bảo mật lớn trong các trang Joomla.
- Quyền file và thư mục phù hợp:
Luôn quản lý quyền trên tệp và thư mục, và không bao giờ cấp toàn quyền truy cập permission 777. Không bao giờ cấp toàn quyền hoặc permission 777, mà dùng 755 cho thư mục, 644 cho tệp và 444 cho tệp configuration.php.
Đăng ký dùng thử Astra ngay hôm nay!