DDOS - Bảo mật và phòng chống Ddos cho website WordPress (phần 4)

Bảo Mật và phòng chống DDOS cho Website WordPress: Dùng Wordfence

Tôi muốn chia sẻ thêm với các anh em về vấn đề bảo mật cho Website WordPress khi Cloudflare bị đục nhằm hạn chế mức độ của các cuộc tấn công. Tất nhiên, tôi không thể chặn toàn bộ nhưng giảm rất nhiều. Ở phần 01, Tôi chia sẻ cách dùng plugin bảo mật cơ bản cho WordPress với Wordfence.

1. Wordfence

Wordfence là một Plugin cung cấp một giải pháp cơ bản và nâng cao hỗ trợ bảo mật cho WordPress. Cái mà mình thích khi sử dụng WordFence là nó cho phép thiết lập các quy tắc nâng cao để ngăn chặn các cuộc tấn công DDOS như:

  • Chặn IP
  • Chặn nếu IP tấn công vào 1 URL theo một quy tắc nào đó
  • Chặn truy cập vào 1 URL bất kỳ
  • Chặn nếu cố gáng đăng nhập
  • Chặn các cuộc tấn công cơ bản thông qua các kiểu tấn công như xss, sqli, xxe, …
  • Yêu cầu đăng nhập 2 bước dùng Google Authenticator
  • Yêu cầu đặt mật khẩu khó …

Một cái nữa mà Wordfence cung cấp là tính năng Live Traffic giúp tôi có thể phân tích trực tiếp những truy cập vào Website mà đôi khi không cần đọc Log Server. Tôi phải dùng thêm Wordfence vì Cloudflare vẫn để lọt các truy vấn tấn công.

2. Thiết lập Firewall và chặn các đợt tấn công nếu lọt qua Cloudflare Firewall

2.1 Chặn các truy cập với URL String Random

Ở bài viết trước, tôi đã thiết lập các ruler để chặn các truy vấn với các URL String Random mà Tôi nghi ngờ khi kết thúc các URL thường có các ký tự ngẫu nhiên kiểu như: ?B, ?C, ?1, ?2, … Trong mục Firewall (Ảnh 1) tôi chọn All Firewall Option:


Hình 1

Và trong phần Immediately block IPs that access these URLs tôi sẽ nhập vào các ruler sau đây:

/?A*
/?B*
/?C*
/?D*
/?E*
/?G*
/?H*
/?I*
/?J*
/?K*
/?L*
/?M*
/?N*
/?O*
/?Q*
/?R*
/?T*
/?V*
/?X*
/?Y*
/?Z*
/?0*
/?1*
/?2*
/?3*
/?4*
/?5*
/?6*
/?7*
/?8*
/?9*
/?b*
/?c*
/?e*
/?g*
/?h*
/?j*
/?l*
/?m*
/?n*
/?o*
/?q*
/?v*
/?x*
/?y*
/?z*

Hình 2

2.2 Block nếu cố login vào các username admin không tồn tại.

Tôi xem xét log truy cập và thấy hay bị các truy cập thử login trái phép vào các username như Admin, Administrator, login, mod, moderator… Nên thêm các user này vào và lock ngay lập tức vì các user đó không tồn tại trên Website.


Hình 3

2.3 Thiết lập khác

Bạn nên thiết lập bổ sung các mục mà tôi check trong ảnh 3 như yêu cầu user khi đăng ký phải chọn mật khẩu mạnh, … và tránh password admin bị leak.

2.4. Block các Referer giả mạo

Ở phần trước, tôi cũng setup block các Referer từ FBI, CIA, … Nhưng cloudflare không hiểu lý do gì vẫn để lọt được các truy cập vào Server nên tôi áp dụng cả các quy tắc này vào trong Wordfence. Tôi chặn các Referer nguy hiểm trong hình 04 bằng cách vào Firewall -> Blocking, Chọn Custom pattern và nhập vào như sau:


Hình 4

Mục Referer nhập vào các Url chỉ bao gồm domain và các chuỗi liên quan tới Website của Tôi với 2 dấu * ở hai đầu để chặn triệt để.

Ví dụ với baidu, full url referer của nó có https://help thì tôi bỏ cái đó đo và thay bằng dấu * vì nó có thể thay cái help bằng bất cứ cái gì.

Ở đằng sau có keywords=www.example.net/ nó có thể là domain của tôi hoặc thay bằng một url khác có trên Website của tôi, nên đăng sau dấu / Tôi thêm dấu * để chặn luôn nếu là 1 URL khác có trên Website của tôi.


Hình 5

2.5 Block Browser User Agent

Cũng trong mục Blocking, tôi Block 15 Browser User Agent tấn công mạnh nhất vào Website của tôi như ảnh 06.


Hình 6

Có 2 Browser User Agent tấn công hàng trăm triệu Request vào Website của tôi là:

  • Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
  • Ubuntu Chromium/34.0.1847.116 Chrome/34.0.1847.116 Safari/537.36

Bạn có thể xem cách tạo ruler block ở ảnh 07


Hình 7

2.6 Scan Website

Wordfence có một tính năng hữu ích khác là Scan Website. Nhờ việc Scan và xem lại các thư mục thủ công mà tôi phát hiện được một số Backdoor trên Website. Wordfence sẽ báo cho bạn các vấn đề như ở ảnh 08.


Hình 8

3. Live Traffic

Đây là phần hỗ trợ tôi thêm trong việc phân tích trực quan các nguồn truy cập mà không cần thông qua việc xem log Server. Trong phần này, tôi lựa chọn All Traffic như ảnh 09 vì nếu chỉ chọn Security Only, các truy cập vào các URL với Random Query String có thể sẽ bị bỏ qua.


Hình 9

Các truy vấn với Random Query String đã lọt qua được cloudflare và bị chặn bởi Wordfence chính xác bạn có thể xem ở ảnh 10.


Hình 10

4. Lời kết

Sau hơn 1 tháng bị tấn công dữ dội và cương độ ngày càng tăng, Website của tôi vẫn có thể trụ vững với CPU ổn định ở dưới 5%. Hiện tại, chúng đã tăng cường độ tấn công từ 200 triệu Request mỗi ngày lên gần 700 triệu Request mỗi ngày, nhưng Web vẫn có thể truy cập với tốc độ dưới 1 giây. Bạn có thể xem Request trong 24 giờ qua ở ảnh 10.1.


Hình 10.1

Với mức độ tấn công cao như vậy, nên tôi phải Buy Wordfence với giá $99/month và thấy là nó đáng giá. Trong vòng 30 ngày qua, Website của tôi đã chịu khoảng hơn 9 tỷ Request với khoảng 17TB dữ liệu truyền tải bạn có thể xem ở ảnh 11.


Hình 11

Nguồn: Tô Triều