BLOG

Bị tấn công DDOS nửa tỷ kết nối trong chưa đầy 7 ngày.

Firefly 13.05.2021
223 người theo dõi 2037 bình luận 1295 bài chia sẻ

Bị tấn công DDOS nửa tỷ kết nối trong chưa đầy 7 ngày.

Hôm nay gánh chịu gần 300 triệu Request

Vấn đề của mình:

Sau khi viết loạt bài lột trần các thủ đoạn lừa đảo FOREX làm cho hàng ngàn nhà đầu tư mất tổng số tiền lên tới vài trăm tỷ, thì Website cá nhân của mình bị tấn công DDOS dữ dội. Cá nhân mình cũng bị đe doạ, thậm chí bọn chúng tìm về nhà để đe doạ.

--- Thực trạng hiện tại.

Website vẫn đang bị tấn công dồn dập, dù tạm thời thì đã không còn lọt vào được đến Server nữa.

Tổng số request tới Website trong 7 ngày qua là khoảng NỬA TỶ REQUEST. (HÌnh số 1)

1. Hệ thống đang sử dụng:

WordPress + DirectAdmin + Cloudflare + Sucuri + CSF

2. Cách thức tấn công

Gửi các Request tới các URL hợp lệ được sinh các query string ngẫu nhiên.

Đây là kiểu tấn công mạnh nhất trong đợt tấn công này khi chúng liên tục gửi Request tới các url hợp lệ và đằng sau đó sinh ra các query ngẫu nhiên nên gần như lọt qua được cả Sucuri và Cloudflare.

Các bạn có thể xem ở hình thứ hai.

Với các truy vấn này, chúng lọt qua được theo mình thấy là chúng có http referer đến từ các nguồn cực kỳ uy tín như Youtube, Google, FBI, CIA... (Hình số 3)

Tấn công qua XML-RPC của WordPress

Đây là cách thức thứ hai và với kiểu tấn công này, chúng cũng liên tục gửi request thông qua file xml-rpc.php của WordPress.

Tấn công qua FEED WordPress

Đặc điểm của WordPress là có thể lấy FEED cho từng bài, từng chuyên mục, từng Tag nên chúng đã liên tục gửi hơn 100 Request kết hợp với random query string vào FEED URL gây quá tải hệ thống

(Xem hình 04)

Tấn công qua 404 URL

HÌnh thức tiếp theo là chúng gửi các Request qua 404 URL tới các URL không tồn tại và để lọt qua được các hệ thống chống DDOS của CF và Sucuri, chúng cũng referer từ các nguồn có độ Trust cao cùng với việc sinh các Random Query String.

Nếu bạn từng truy cập từ Facebook vào Website thông qua link, bạn sẽ thấy ở đằng sau có thêm ?fb=....... Thì viẹc chúng sinh random query string cũng tương tự. Nghĩa là nếu bạn viết ruler cho các String này thì có thể bạn cũng sẽ block luôn các nguồn đáng tin thậm chí các campain chạy Ads.

Tấn công qua việc tải các hình ảnh và File tĩnh

Cách tiếp theo mà chúng tấn công là qua các File tĩnh.

Bằng cách nào đó, chúng liệt kê được hầu hết các File ảnh có trên thư mục uploads của Wordpress và các File tĩnh sau đó liên tục gửi Request để tải về.

Bạn có thể xem thiệt hại qua file tĩnh chúng request qua CDN trong chưa đầy 9h lên tới 405GB.

GIẢI PHÁP PHÒNG CHỐNG LÀ GÌ?

Giải pháp ở đây là mình đang sử dụng bộ 3:

Tối ưu hoá Website + Cloudflare + Sucuri + CSF

Cloudflare

Cloudflare được sử dụng là lớp đầu tiên vì mình đang sử dụng Gói Pro $20/month nên có thêm nhiều tính năng.

+ Bật WAF bạn bắt buộc phải bật WAF vì trong đó có nhiều ruler và có 1 Option riêng hỗ trợ WordPress chống DDOS. HÌnh 4.1

+ Thiết lập các Rulers

- Challenge toàn bộ các kết nối đến từ các quốc gia ngoài Việt Nam. Nghĩa là nếu kết nối đến từ bên ngoài sẽ có một phần check capcha trước khi lọt vào được Website. (Hình 4.2)

Block toàn bộ request đến từ các quốc gia nguy hiểm bao gồm: Trung Quốc, Ấn Độ, Indonesia, Nga, Mexico, Iran, Iraq

Block toàn bộ các ASNs nguy hiểm như Ponnynet, Chinanet Backbone (hình 06)

Cho phép các Bot quan trọng truy cập nếu bạn không muốn rớt thứ hạng SEO trên Google vì chặn các Bot khiến chúng không thể truy cập được.

Lọc và chặn các IP tấn công trực tiếp vào hệ thống thông qua Access Log trên Server.

Sucuri

Sucuri có Option hoạt động phía sau Cloudflare như lớp phòng chống thứ hai.

Gói trả phí $10/tháng.

Sucuri cho phép bật chế độ chống DDOS khẩn cấp giống Cloudflare.

Hiểu đơn giản là các kết nối sẽ được thực thi qua Cloudflare, sau đó xuống lớp lọc của Sucuri cuối cùng mới lọt vào Server.

Sucuri có realtime trên hệ thống của họ cho biết map + nguồn đang truy cập và chọn Block luôn hay không. (Hình 6.1)

Sucuri đồng thời cũng hỗ trợ chặn kết nối qua XMLRPC của WordPress và nhiều thứ hay ho khác nữa.

Sucuri cũng hỗ trợ Block thông qua http referer nên mình block luôn các referer bố láo qua FBI, CIA, WhiteHouse...

CSF Firewall

Mình chọn thiết lập tiêu chuẩn và chặn các kết nối từ các quốc gia nguy hiểm như Trung Quốc, Ấn Độ, Indonesia, Nga, Mexico, Iran, Iraq.. Mà chúng lọt qua được Cloudflare và Sucuri.

Tối ưu hoá Website.

Đây là bước quan trọng, mình đã tối ưu hoá Website cực kỹ. Hình ảnh dùng định dạng Webp rất nhẹ.

Tổng load Website chỉ tầm 300kb

Số Request trực tiếp tới Server cực ít (Tầm 19-21 Request)

Kết quả: Trong tình trạng Server luôn bị quá tải ở mức 203% (Hình 7) 

thì giờ đây, khi đang gánh chịu gần 300 triệu Request, CPU đã ổn đỉnh ở mức dưới 10% (Hình 8) và Website chạy phà phà.

À, Website của mình là https://www.tohaitrieu.net

Bài học cá nhân chia sẻ cùng các bạn

40 Bình luận
  • ne0ltv
    Hôm nọ có thằng rủ mình chơi forex, kêu bên e bao lãi (ko nhớ là nó nói lãi trong lần giao dịch đầu tiên hay tuần đầu), mình mới hỏi lại: Thế lãi cái a rút cả gốc luôn đc ko em, hay thế này, đành nào cũng lãi, e cho a mượn nạp vào, xong e chỉ cần đưa a 50% lãi thôi
    Nó chặn luôn, chưa kịp hỏi thêm
  • Firefly
    @ytroidatoi hầu hết các VPS mua giờ là Unmanaged VPS mà bác.

    Phải tự thân vận động chứ không có Option hỗ trợ đâu.

    Cũng tốn thêm 1 mớ, nhưng cũng đáng vì tính ra nếu là bọn nó thuê tấn công, thì vốn mình trụ ngon hơn vốn chúng nó. Chi phí của mình tốn ít hơn hehe.

    Thích thì chiến thôi ????
  • YTroiDatOi
    Woa

    Em thấy cái số liệu DDOS kinh thiệt!

    Với cho em hỏi. Bác đang xài VPS của bên nào vậy? Nó ko có gói hỗ trợ chống DDOS luôn ah bác?
    • Firefly
      @ytroidatoi vps vultr, mấy Location Châu Á không có Option chống Ddos đâu bác.
    • Firefly
      @ytroidatoi hôm qua mình thử chuyển về VPS của AZDIGI và giờ đang ở azdigi của thím Thạch bác nhé.
    • YTroiDatOi
      @firefly Về VN thì đỡ. Con vultr hình như ko có. Em nhớ thì DO hay OVH hình như có options này.

      Vậy coi như tất cá bác tự thân vận động hết. Bên NCC ko support gì luôn

      Thêm một mớ tiền để trang bị đồ chơi cho riêng mình
    • Firefly
      @ytroidatoi hầu hết các VPS mua giờ là Unmanaged VPS mà bác.

      Phải tự thân vận động chứ không có Option hỗ trợ đâu.

      Cũng tốn thêm 1 mớ, nhưng cũng đáng vì tính ra nếu là bọn nó thuê tấn công, thì vốn mình trụ ngon hơn vốn chúng nó. Chi phí của mình tốn ít hơn hehe.

      Thích thì chiến thôi ????
  • taoaman
    Chúc mừng bác
  • Banhbaobanhbo
    Kinh nghiệm rất bổ ích!x
  • ne0ltv
    Hôm nọ có thằng rủ mình chơi forex, kêu bên e bao lãi (ko nhớ là nó nói lãi trong lần giao dịch đầu tiên hay tuần đầu), mình mới hỏi lại: Thế lãi cái a rút cả gốc luôn đc ko em, hay thế này, đành nào cũng lãi, e cho a mượn nạp vào, xong e chỉ cần đưa a 50% lãi thôi
    Nó chặn luôn, chưa kịp hỏi thêm
  • cmcc
    Quá hay bác ạ. Xem thời điểm hiện tại bác vẫn còn bị ddos à
    Bữa nào làm bài hướng dẫn tối ưu wp để được 100 điểm google insight đi bác
    • Firefly
      @cmcc nhất trí bác.
    • KaZaT
      @cmcc mình thấy cái google insight đó không ý nghĩa lắm đâu. Nhiều web lớn điểm cũng thấp lè tè mà
    • Firefly
      @kazat cái đó ý nghĩa cho Website vừa và nhỏ bác ạ. Với nó cũng ép mình phải giảm bớt những thứ dư thưaf và đỡ tốn thời gian của ng sử dụng. Coi như là điều tốt.

      Chứ giờ vào web mà load mãi không lên, đúng là visitors sẽ thoát ngay trong chưa đầy 2 giây. Còn time đọc bài, thực ra chỉ 1-2 phút thôi.
    • cmcc
      @kazat nhưng chắc là điểm seo sẽ tăng
  • burgyyy
    Hay! Chúc mừng bác. Thank bác chia sẻ
  • minister
    E xài vultr 5-6 năm nay.
    Php thì khó. Chứ công nghệ bây h ddos dạng này chả ăn thua. Nó block tới từng request level rồi. Ngay trong code
    • alexle
      @minister chưa hiểu lắm, xử lý ở code thì là vào đến bên trong rồi ?
    • minister

      @alexle code php nó # với go , c hay thậm chí nodejs

      php là scripting, nó ko chạy trực tiếp, ko có multithread, green thread.

      php phải chạy qua webserver như apache hoặc nginx, nên code nó ko kiểm soát đc tới từng request.


      còn hiện với các công nghệ #, nó ko cần webserver nữa vì performance của nó đủ ngon. VD với các request đc nhận diện là ddos, có thể code để block ngay trong Go.

      Go nó chính là webserver như nginx/apache.

    • alexle

      @minister vẫn là từ code, vào đến đây thì mệt rồi, bên mình mấy cái này xử lý từ infrastructure

    • minister

      @alexle cái gì mà chả từ code

      bạn xài cloudflare thì routing hay block ddos của nó cũng code = Go hoặc C thôi.

      code tới tầm nào, level nào mới là vấn đề.

    • alexle

      @minister các thiết bị firewall nó hỗ trợ tối ưu hoá cho các tập lệnh chuyên dụng của nó từ phần cứng, code của bạn chạy còn phải qua mấy tầng biên dịch nữa làm sao so về tốc độ được.

    • minister

      @alexle đang nói cùng 1 phần cứng

      code lower level language tốc độ có thể gấp hàng trăm lần.


      bạn nghĩ bao nhiêu % dân chống ddos can thiệp đc vào phần cứng?

    • alexle

      @minister có nói gì đến cùng một phần cứng đâu, còn trong dự án thì phần cứng đi thuê với đi mua chứ can thiệp vào làm gì

    • minister

      @alexle ô bảo firewall còn gì.

      cùng 1 cái firewall, cùng 1 router thì chọn công nghệ phát triển từ đầu quan trọng.

      giờ còn code php thì ăn hành phải rồi. không kiểm soát dc quá nhiều thứ.


      high latency , tốn memory, performance thấp...

      để ddos 1 platform phát triển = go / c resource cần gấp 30-50 lần là ít

  • ideafusioncreative
    Cám ơn chia sẻ, vào thấy Forex out ngay trong note đầu
  • KaZaT
    website em dùng bố chúng nó cũng không ddos được. Vì em share trên facebook
    • Firefly
      @kazat nó không ddos, nó report bay account thôi bác
    • cmcc
      @firefly em thắc mắc là nó report thế nào ạ. Fb nó ko check nội dung report hay sao
    • atcm
      @cmcc check hay không thì không biết, nhưng bị nhiều rp thì fb nó khóa đã, kèm theo thông báo khóa vì bị nhiều rp
    • KaZaT
      @atcm kiểu như có ông nào kiện đất mình thì trước mắt thành tài sản đang tranh chấp cái đã, bán không ai mua, mặc dù kiện vớ vẩn mình thắng
  • SamSam
    Bác cứ chuyển tiếp hết request về Linkhay nhé ????
  • KBietJ
    BTW: bài 15 thủ đoạn lừa đảo Forex của bạn hay, cho mình xin share giúp mọi người!?
  • lytamhoan
    quá cao thủ, hâm mộ quá!!!
  • zealous

    bác chủ @firefly cho em mạo muội xin bác viết 1 bài về giải pháp và các action của bác trong vụ này được ko ạ. nếu bác ngại viết thì bác draf gạch đầu dòng vào comment của em với, mời bác chén rượu lá chuối.

  • TrNgo

    Viết quảng cáo dịch vụ wp à / Show cái request rate mới quan trong, nửa tỷ kết nối trong 7 ngày không nói lên gì cả

Website liên kết