Nhiều chủ website nhỏ thắc mắc vì sao trang chậm dù ít khách. Khi mở nhật ký truy cập ra xem, họ thường phát hiện điều bất ngờ: phần lớn lượt truy cập không phải của người thật.
Bot dò mật khẩu chạy liên tục, tự động, và nhắm vào những đường vào cố định của WordPress mà mọi cài đặt đều có.
Vì sao bot tốn tài nguyên tới vậy
Điểm mấu chốt nằm ở cách WordPress hoạt động: mỗi lượt truy cập đều phải khởi tạo toàn bộ hệ thống — nạp lõi, nạp các tiện ích đang bật, kết nối cơ sở dữ liệu — trước khi biết được đây là khách thật hay bot.
Nghĩa là một lượt dò mật khẩu thất bại vẫn tốn gần bằng một lượt xem trang thật. Với hàng nghìn lượt mỗi ngày, đây là tải lớn.
Hệ quả trên máy chủ dùng chung: website của bạn có thể chậm vì bot đang tấn công website của người khác trên cùng máy. Ngược lại, website của bạn bị tấn công cũng làm chậm hàng xóm.
Các đường bot thường nhắm vào
Giao diện lập trình cũ dùng cho ứng dụng di động. Đây là đường ít người biết nhất và thường là đường bị đánh nhiều nhất. Lý do nó hấp dẫn với bot: có một phương thức cho phép gộp nhiều lần thử mật khẩu vào một yêu cầu duy nhất — nghĩa là bot thử được hàng trăm mật khẩu chỉ trong một lượt gọi, vượt qua các cơ chế đếm số lần đăng nhập sai thông thường.
Trang đăng nhập quản trị. Đường vào rõ ràng nhất, bị dò liên tục.
Đường dẫn liệt kê tài khoản. Một số cấu hình cho phép lấy danh sách tên đăng nhập qua truy vấn đơn giản — bot dùng để biết cần dò tài khoản nào.
Biểu mẫu bình luận và liên hệ — spam.
Dò tiện ích và giao diện có lỗ hổng — bot quét các đường dẫn quen thuộc để tìm phiên bản cũ chưa vá.
Cách kiểm tra website của bạn có bị không
Đừng đoán — hãy đo:
- Mở nhật ký truy cập mà nhà cung cấp lưu trữ cung cấp.
- Đếm theo đường dẫn — xem đường dẫn nào được gọi nhiều nhất. Nếu một đường dẫn kỹ thuật chiếm tỉ lệ lớn thay vì các bài viết, đó là bot.
- Xem địa chỉ nguồn — bot thường đến từ dải địa chỉ của các nhà cung cấp máy chủ đám mây, không phải từ nhà mạng dân dụng.
- Xem thời gian — lưu lượng đều đặn suốt đêm là chữ ký của máy, không phải của người.
Điểm quan trọng: công cụ phân tích lưu lượng thông thường không đếm bot vì chúng đo bằng mã chạy trong trình duyệt, mà bot thì không chạy mã đó. Vì vậy bảng thống kê của bạn có thể hiển thị vài trăm lượt trong khi máy chủ thực tế xử lý hàng chục nghìn.
Chặn theo thứ tự hiệu quả
Bước một — tắt đường vào không dùng tới.
Nếu bạn không dùng ứng dụng di động để đăng bài và không dùng dịch vụ kết nối từ xa, hãy chặn giao diện lập trình cũ đó. Đây thường là biện pháp cho hiệu quả cao nhất so với công sức.
Cảnh báo quan trọng: sau khi chặn, ứng dụng WordPress trên điện thoại và một số dịch vụ kết nối sẽ không đăng bài được nữa. Hãy xác nhận không ai trong nhóm đang dùng chúng trước khi chặn, và ghi lại cách gỡ chặn để lần sau tìm được.
Bước hai — bảo vệ trang đăng nhập.
- Giới hạn số lần đăng nhập sai từ một địa chỉ.
- Bật xác thực hai bước cho tài khoản quản trị.
- Đổi tên đăng nhập mặc định — đừng dùng tên dễ đoán.
- Cân nhắc giới hạn truy cập trang quản trị theo địa chỉ nếu bạn làm việc từ nơi cố định.
Bước ba — chặn ở lớp ngoài.
Đây là điểm nhiều người làm sai thứ tự. Nếu website của bạn đi qua một dịch vụ trung gian ở phía trước, việc chặn tại máy chủ không giảm được tải — yêu cầu vẫn tới nơi rồi mới bị từ chối.
Chặn ở lớp ngoài cùng thì yêu cầu bị chặn trước khi chạm tới máy chủ của bạn. Với các nguồn tấn công tập trung, đây là cách duy nhất thật sự giảm tải.
Lưu ý về việc chặn theo địa chỉ: nếu website đi qua dịch vụ trung gian, địa chỉ mà máy chủ nhìn thấy có thể là địa chỉ của dịch vụ đó chứ không phải của khách — chặn theo địa chỉ khi đó là vô nghĩa hoặc chặn nhầm. Cần kiểm tra cấu hình trước.
Bước bốn — chống spam bình luận.
- Bật kiểm duyệt trước khi hiển thị.
- Đóng bình luận cho bài cũ — phần lớn spam nhắm vào bài đã lâu.
- Dùng công cụ lọc spam.
- Cân nhắc tắt hẳn bình luận nếu website của bạn không cần.
Một nguồn tải khác ít người biết
WordPress có cơ chế chạy các tác vụ định kỳ — gửi thư, kiểm tra cập nhật, dọn dẹp. Mặc định, cơ chế này được kích hoạt bởi mỗi lượt tải trang, kể cả lượt của bot.
Nghĩa là website bị bot quét nhiều sẽ chạy các tác vụ nền nhiều hơn mức cần thiết — tải chồng lên tải.
Cách xử lý: tắt cơ chế mặc định trong tệp cấu hình và thay bằng một lịch chạy thật ở phía máy chủ, theo chu kỳ cố định. Phần lớn nhà cung cấp lưu trữ hỗ trợ việc này và có hướng dẫn cụ thể.
Những gì không giúp được nhiều
- Cài thêm tiện ích bảo mật nặng — bản thân chúng cũng tốn tài nguyên ở mỗi lượt truy cập, kể cả lượt của bot.
- Nâng gói lưu trữ — giải quyết triệu chứng, không giải quyết nguyên nhân, và chi phí tăng theo.
- Bộ nhớ đệm — hữu ích cho khách thật, nhưng phần lớn đường bot nhắm vào không đi qua bộ nhớ đệm.
- Ẩn phiên bản WordPress — bot không kiểm tra phiên bản, chúng thử mọi thứ.
Việc nên làm định kỳ
- Xem nhật ký truy cập mỗi tháng — mất mười phút và cho biết chuyện gì đang xảy ra.
- Cập nhật lõi, giao diện và tiện ích — phần lớn website bị chiếm quyền là qua lỗ hổng đã có bản vá.
- Gỡ tiện ích và giao diện không dùng — mã không dùng vẫn là bề mặt tấn công.
- Kiểm tra danh sách tài khoản quản trị — tài khoản lạ là dấu hiệu đã bị xâm nhập.
- Kiểm tra sao lưu có khôi phục được không — sao lưu chưa thử khôi phục không phải sao lưu.
Nếu đã bị xâm nhập
- Đổi toàn bộ mật khẩu — quản trị, cơ sở dữ liệu, tài khoản lưu trữ.
- Kiểm tra danh sách người dùng và xoá tài khoản lạ.
- Khôi phục từ bản sao lưu sạch nếu có.
- Cập nhật mọi thứ trước khi đưa trở lại.
- Tìm nguyên nhân — nếu không vá lỗ hổng thì sẽ bị lại.
- Với website có giao dịch hoặc dữ liệu khách hàng, cân nhắc nhờ người có chuyên môn.
Một điều đáng nhớ
Bot không nhắm vào bạn vì website của bạn quan trọng. Chúng quét toàn bộ mạng internet một cách tự động, và website mới dựng hôm qua cũng bị dò như website lâu năm.
Nhìn theo cách đó, việc bảo vệ không phải phản ứng với một mối đe doạ cụ thể mà là điều kiện cơ bản để vận hành — giống như khoá cửa, không phải vì có ai đang rình.
Câu hỏi thường gặp
Vì sao bot làm chậm website nhiều tới vậy?
Vì mỗi lượt truy cập đều phải khởi tạo toàn bộ WordPress trước khi biết đây là khách thật hay bot — nên một lượt dò mật khẩu thất bại vẫn tốn gần bằng một lượt xem trang thật.
Vì sao bảng thống kê không hiển thị bot?
Vì công cụ phân tích thông thường đo bằng mã chạy trong trình duyệt, mà bot không chạy mã đó — nên bảng có thể hiện vài trăm lượt trong khi máy chủ xử lý hàng chục nghìn.
Biện pháp hiệu quả nhất là gì?
Chặn giao diện lập trình cũ nếu không dùng — vì nó có phương thức gộp nhiều lần thử mật khẩu vào một yêu cầu, vượt qua cơ chế đếm đăng nhập sai.
Chặn đường đó có ảnh hưởng gì không?
Ứng dụng WordPress trên điện thoại và một số dịch vụ kết nối sẽ không đăng bài được — cần xác nhận không ai trong nhóm đang dùng trước khi chặn.
Nâng gói lưu trữ có giải quyết được không?
Chỉ giải quyết triệu chứng chứ không giải quyết nguyên nhân, và chi phí tăng theo. Nên chặn nguồn tải trước.