
Nhiều anh em quản máy chủ có chung một suy nghĩ: cài Fail2Ban, giới hạn số lần đăng nhập sai, thế là xong, bot brute force cứ để nó gõ. Mình cũng từng nghĩ vậy. Nhưng thực tế vận hành hạ tầng nhiều năm cho mình thấy một điều khác: brute force thành công là chuyện có thật, và nó vẫn xảy ra đều. Nếu không có ca nào thành công thì đã chẳng có hàng triệu con bot cày ngày đêm ngoài kia. Chúng vẫn chạy vì với chúng, vấn đề chỉ là thời gian.
Bot brute force đông đến mức nào
Vài con số để hình dung quy mô. Một nghiên cứu honeypot của NCSA (Mỹ) mô phỏng một dải mạng /16 ghi nhận trung bình khoảng 875.000 lượt dò mật khẩu SSH mỗi ngày, tổng cộng hơn 400 triệu lượt trong 463 ngày, đến từ 4 triệu địa chỉ IP khác nhau. Ở tầng web, Akamai từng đo được khoảng 26 tỷ lượt credential stuffing mỗi tháng trên toàn cầu. Tỷ lệ thành công mỗi lượt chỉ khoảng 0,1 đến 2 phần trăm, nghe thì thấp, nhưng nhân với hàng tỷ lượt thử thì số tài khoản bị chiếm là rất lớn.
Còn theo báo cáo Verizon DBIR 2026, nếu tính ở bất kỳ giai đoạn nào của một vụ xâm nhập thì việc lạm dụng credential bị đánh cắp xuất hiện trong 39 phần trăm tổng số vụ rò rỉ dữ liệu, nhiều hơn mọi kỹ thuật khác. Nghĩa là mật khẩu vẫn đang là thứ bị khai thác nhiều nhất, không phải chuyện của quá khứ.
Vì sao có Fail2Ban rồi mà vẫn bị
Điểm mấu chốt nằm ở chỗ này: bot bây giờ không còn dò kiểu 123456, abcdef, chạy lần lượt theo bảng chữ cái nữa. Cách đó quá chậm và Fail2Ban chặn được thật. Thứ chúng dùng là các bộ từ điển được xây từ dữ liệu rò rỉ thật, gọi là combolist. Kịch bản điển hình diễn ra thế này.
Bạn, hoặc một nhân viên trong team, dùng chung một mật khẩu quen thuộc trên nhiều nơi: forum, diễn đàn, tool online, dịch vụ nào đó đăng ký cho vui. Một trong các nền tảng đó bị hack, mật khẩu lộ ra ngoài. Mật khẩu quen thuộc đó lập tức được đưa vào từ điển của giới tấn công, gắn kèm email và username của bạn. Từ lúc đó, khi bot đi brute force, nó dò theo đúng bộ từ điển này trước, tức là thử ngay mật khẩu thật của bạn thay vì đoán mò. Đây là lý do mình nói brute force thành công là có thật: về bản chất nó không còn là đoán nữa, nó là thử lại mật khẩu đã biết.
Fail2Ban chặn theo IP và theo số lần thử sai. Nhưng botnet có hàng triệu IP, mỗi IP chỉ cần thử một hai mật khẩu trong list rồi chuyển sang IP khác, không bao giờ chạm ngưỡng bị ban. Kiểu tấn công rải đều và chậm rãi này đi xuyên qua rate limit một cách bình thường. Số liệu của Verizon còn chỉ ra một điều đáng suy nghĩ: người dùng có xác suất đang xài một mật khẩu đã nằm trong dữ liệu rò rỉ cao gấp 4 lần so với xài một mật khẩu yếu. Tức là kẻ tấn công không cần bạn đặt mật khẩu yếu, chỉ cần bạn đặt trùng.
Cảnh báo của Chrome là thật, đừng bỏ qua
Google Chrome hay hiện thông báo kiểu mật khẩu của bạn yếu, hoặc mật khẩu của bạn đã bị lộ trong một vụ rò rỉ dữ liệu. Rất nhiều người bấm bỏ qua theo phản xạ. Đừng. Chrome đối chiếu mật khẩu của bạn với các cơ sở dữ liệu rò rỉ thật, nên khi nó báo lộ nghĩa là mật khẩu đó gần như chắc chắn đã nằm trong combolist mà bot dùng để dò. Thấy cảnh báo này thì việc cần làm là đổi mật khẩu đó ở tất cả những nơi đang dùng nó, ngay trong ngày.
Lỗi không phải lúc nào cũng đến từ bạn
Một điểm nhiều chủ doanh nghiệp hay bỏ sót: bạn có thể quản mật khẩu của mình rất kỹ, nhưng máy chủ vẫn bị vào vì mật khẩu của nhân viên hoặc một người trong team lộ ở đâu đó. Verizon ghi nhận 73 phần trăm nạn nhân ransomware từng có dấu vết nhiễm infostealer hoặc lộ credential trong vòng 12 tháng trước khi bị tấn công. Bảo mật đăng nhập vì thế là chuyện của cả team, không phải của riêng người quản trị.
Nói thêm cho đầy đủ: ngoài chuyện mật khẩu, các form login, dịch vụ SSH hay chính hệ điều hành thỉnh thoảng vẫn dính CVE cho phép tin tặc khai thác máy chủ mà không cần đăng nhập. Chuyện đó không hiếm, nhưng nằm ngoài phạm vi bài này. Ở đây mình chỉ muốn chốt một ý: đừng coi brute force là mối đe dọa đã lỗi thời.
Vậy phải làm gì
Với mật khẩu, có hai nguyên tắc mình coi là bắt buộc, áp cho cả bản thân lẫn nhân sự:
- Mỗi nền tảng một mật khẩu riêng, không có ngoại lệ. Một nơi lộ thì thiệt hại dừng ở đúng nơi đó.
- Dùng mật khẩu random đủ mạnh thay vì mật khẩu quen thuộc dễ nhớ. Mật khẩu bạn hay dùng nhất chính là mật khẩu có khả năng đã nằm trong từ điển của hacker cao nhất.
Còn vấn đề khó nhớ khi mỗi nơi một mật khẩu thì lời giải là app quản lý mật khẩu. Mình recommend 1Password: tự sinh mật khẩu random cho từng site, tự điền khi đăng nhập, có kho chung cho team để chia sẻ mật khẩu nội bộ mà không phải gửi qua chat, và có tính năng Watchtower tự báo khi mật khẩu nào của bạn xuất hiện trong dữ liệu rò rỉ. Bạn chỉ cần nhớ đúng một mật khẩu chính. Nếu muốn phương án miễn phí thì Bitwarden cũng dùng được.
Với máy chủ, riêng SSH và các cổng đăng nhập thì nên siết lại như sau:
- Tắt hẳn đăng nhập bằng mật khẩu cho SSH, chỉ dùng SSH key. Đây là thay đổi quan trọng nhất, vì brute force mật khẩu trở nên vô nghĩa khi không còn mật khẩu để dò.
- Chặn đăng nhập root trực tiếp, vào bằng user thường rồi sudo.
- Giới hạn IP được phép truy cập SSH và các trang quản trị, tốt nhất là chỉ mở qua VPN nội bộ kiểu WireGuard.
- Bật xác thực hai lớp cho mọi panel quản trị, webmail, trang billing.
- Fail2Ban vẫn giữ, nhưng coi nó là lớp phụ để giảm rác trong log, không phải lớp phòng thủ chính.
Tất cả những việc trên làm trong một buổi chiều là xong, và nó rẻ hơn rất nhiều so với một lần bị chiếm máy chủ. Bên mình vận hành hạ tầng hosting và VPS mỗi ngày, nhìn log auth thì hiểu: bot chưa bao giờ nghỉ, chỉ có mình chủ quan hay không thôi.
- Hộ Kinh Doanh Mua Windows Bản Quyền: Hướng dẫn theo Nghị định 70/2025 và Luật Thuế Mới
- CVE-2026-41940: Lỗ hổng Authentication Bypass nghiêm trọng trên cPanel/WHM - Patch ngay
- Anthropic ra mắt Claude Security Public Beta - AI scan code và tự vá lỗ hổng
- Dựng Proxmox Backup Server chống ransomware ngay hôm nay: 8 bước từ một sự cố thật của bên mình
- CVE-2026-23918: Lỗ hổng RCE trong Apache HTTP/2 - Cập nhật EasyApache 4 ngay
- Kiểm tra IP leak khi dùng proxy/VPN bằng ip.tnd.vn



