Hiển thị các bài đăng có nhãn Anti. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Anti. Hiển thị tất cả bài đăng

[TUT] Anti DDoS - WebHunter - Phần 4

Phần 4: Phần này mình có hứng nên viết thêm. Thực ra phần này các bạn không cần đọc cũng được, nhưng mình khuyến khích các bạn nên đọc, bởi vì đây là kinh nghiêm thực tế của mình.

Khi nói đến việc anti-ddos, rất nhiều bạn và có thể nói là hầu hết mọi người đều nghĩ đến một công việc duy nhất cần làm, chính xác hơn thì nghĩ đến quy trình là :

Capture -> Phân tích -> Nhận ra đặt điểm -> Block nguồn nào có đặt điểm như vậy.

Tuy nhiên quy trình trên cũng có tồn tại những hạn chế của nó, đó là đối với botnet hay các loại attack tương tự. Với các hình thức tấn công bằng sức trâu bò thì việc nhận ra đặt điểm là không khó, thường chỉ cần "bắn tốc độ" là được. Tuy nhiên với những hình thức tấn công khác tinh vi hơn, các zombie không đánh một cách mạnh mẽ, ồ ạt mà chỉ lếch từ từ đến mục tiêu xong đồng loạt hit một cái, điều gì sẽ xảy ra ?? Dĩ nhiên việc mô phỏng người dùng hợp lệ giờ không còn khó, dù là trap gì chúng ta cũng có thể phân tích và đưa ra phương pháp bypass qua được. Lúc này thì việc limit resource là cần thiết vô cùng, và có thể nói đó là một cách hạn chế hữu hiệu (dĩ nhiên là phải kết hợp với các phương pháp khác để chống các hình thức khác).

Limit resource giống như là khái niệm chroot trên linux system, mỗi client có được một lượng resource nhất định và trong phạm vi đó thích làm gì thì làm. Và muốn làm được việc này thì buộc lòng các bạn phải nghiên cứu nhiều hơn về performance tuning system, chỉ có khi nào chúng ta hiểu thật sâu về system chúng ta mới có thể áp dụng phương pháp này hiệu quả.

Xem Thêm

 

[TUT] Anti DDoS - WebHunter - Phần 3

3. Phương pháp hạn chế.

Nhìn chung với DDoS chúng ta có 2 action cơ bản trong việc hạn chế (sau khi nhận ra được hình thức)

- Thứ nhất là block IP
- Thứ 2 là limit resource.

Block IP có được ưu điểm lớn đó là chặn luôn nguồn tấn công vào, điều này sẽ hạn chế được sự thất thoát tài nguyên, dĩ nhiên rồi vì mục tiêu của anti DDoS là hạn chế sự thất thoát tài nguyên, tuy nhiên bên cạnh đó chúng ta phải đối phó với bài toán khác đó chính là làm sao để lọc một cách cụ thể và chi tiết để không block lộn người dùng hợp lệ. Đây là vấn đề rất quan trọng đấy, nhưng không thảo luận ở đây.

Với cách thứ 2 là limit resource có ưu điểm chính là không block lộn người dùng, bởi vì chúng ta không áp dụng việc block. Thay vào đó chúng ta cần phải tính toán resource phù hợp cho các client, và phân bố cho hợp lý, vì vậy không sợ block nhầm người dùng. Tuy nhiên chúng ta phải đối phó với bài toàn lớn hơn là performance tuning system. Phải cấu hình làm sao cho hợp lý bởi vì lúc này chúng ta cũng đã công nhận rằng nguồn tấn công cũng là người dùng bình thường. Cho nên cũng cần phục vụ như người dùng bình thường.

Và biện pháp cuối cùng đó chính là kết hợp cả hai cái trên lại. Và nó dĩ nhiên là hiệu quả hơn.

Với việc Anti WebHunter, mình chọn biện pháp thứ 2, đó chính là giới hạn resource. Thực ra đây không phải là biện pháp tốt nhất, tuy nhiên bởi vì system của mình thường xuyên bị tấn công với nhiều loại phương pháp khác nhau cho nên buộc mình phải chọn hình thức nào ngăn chặn không chỉ một mà phải có hiệu quả với nhiều phương pháp.

Cụ thể là sau khi tính toán xong số liệu hợp lý, mình điều chỉnh lại firewall và performance tuning system của mình. Theo đó những rules sau đây đang được áp dụng :

- Mỗi IP chi có thể mở một kết nối đến system trong một thời điểm, thực ra sau khi tính toán thì mình nhận ra 1 là đủ, lúc đầu mình giới hạn ở mức 4 nhưng sau đó chuyển xuống 1 và tiếp tục theo dõi, kết quả rằng điều đó không làm ảnh hưởn người dùng, người dùng load vẫn nhanh và ổn định. => không cần nhiều hơn 1.
- Gia tăng thời gian keepalive lên, bởi vì một khi dùng ít kết nối thì cần gia tăng keepalive để việc truyền tải được trơn tru hơn.
- Áp dụng việc cache hợp lý, cache lại những thứ có thể cache, system của mình chủ yếu là trang tin, nội dung dữ liệu chỉ đọc cho nên có thể nói cache là một biện pháp performance tuning rất hiệu quả.
- Không giới hạn thời gian mở connection, bởi vì chỉ mở một kết nối thì có nghĩa là dù nhận được nhiều gói tin nữa thì cũng sẽ bị drop bởi kernel chứ không có kết nối nào được mở.
- Cuối cùng là một khi đã áp dụng những hình thức bên trên thì không cần block IP làm gì nữa, cứ để thoải mái. Dĩ nhiên là mình cũng có áp dụng việc block với syn flood, nhưng trong topic này chỉ nói về WebHunter cho nên mình không đề cập các hình thức khác.
Nói tóm lại, trong bài viết trên của mình chỉ là cách nhìn nhận và giải quyết ván đề của mình, cũng với cách nhìn nhận đó có thể có bạn khác đưa ra hình thức tốt hơn.
- XHACKER -

Xem Thêm

 

[TUT] Anti DDoS - WebHunter - Phần 2

2. WebHunter

Với WebHunter, mình từng bị WebHunter tấn công, lúc bị tấn công system của mình đang sử dụng Litespeed Free, với limit connection ở mức 2000 (quá ít đúng không :">), và thực sự lúc đó mình cũng không sử dụng firewall vì đang trong quá trình config mà thôi. Vài nhận xét mà mình thu thập được về hìn thức tấn công của WebHunter

- WebHunter tấn công không làm full bandwidth của system của mình, điều này được chứng minh thông qua việc mình không thể kết nối port 80 lúc đó nhưng những port khác mình vào bình thườg, và quan trọng hơn là bw mình đo trong system thông qua công cụ bwm-ng không cao, khoảng tầm 3MByte/s, dưới rất nhiều so với mức giới hạn bandwidth.

- Từ đây chúng ta có thể suy ra rằng, mục tiêu của WebHunter không phải là Bw của system mà là giới hạn connection của webserver và sự đứt gãy liên kết giữa Web server và back-end. Một kiểu tấn công điển hình vào trong CPU/RAM.

Xem Thêm

 

[TUT] Anti DDoS - WebHunter - Phần 1

1. Mọi thứ bắt đầu từ những việc đơn giản.

Chúng ta cùng xem lại định nghĩ DoS/DDoS là gì và phân tích bản chất của nó. Thực ra DoS/DDoS đều có một mục tiêu chung là làm cho victim phải mất khả năng phục vụ. Mà muốn victim không còn khả năng phục vụ thì có nghĩa rằng sẽ phải làm cho victim cạn kiệt tài nguyên (resource). Vậy resource ở đây bao gồm gì ?? Chúng ta có thể thấy resource ở đây là :

- CPU/RAM/HDD
- Bandwidth

Trong hai dạng resource trên thì dạng quan trọng hơn chính là Bandwidth, bởi vì với phương pháp tấn công vào trong CPU/RAM/HDD chúng ta có thể dễ dàng anti được, bởi lúc này vấn đề sẽ quay lại với việc làm sao performance tuning cho system. Bởi nếu giả sử như việc attack không diễn ra, nhưng tăng lượng người xem binh thường lên thì chúng ta cũng buộc phải performance tuning cho hệ thống. Có lẽ vì điểm này cho nên người ta thường nói với DDoS, việc đầu tư vào trong cơ sỡ hạ tầng là việc quan trọng hàng đầu.

Ngược lại với những hình thức tấn công vào trong Bandwidth thì không đơn giản, bởi vì hiện nay Bandwidth vẫn là một resource đắt đỏ và quan trọng, không rộng rãi và thoải mái như các resource kia. Cho nên theo ý kiến cá nhân thì việc attack vào trong bandwidth vẫn nguy hiểm hơn, giả sủa các bạn có thể có những rules hợp lý, có thể xử lý tốt, các bạn nhận ra được hình thức tấn công nhưng nếu như bandwidth không đủ thì việc người dùng truy cập cũng không thực hiện được.
- XHACKER-

Xem Thêm

 

Copyright © Dương-UG Blog's - Nguyễn Bình Dương