09/10/2018, 23:00

Bảo vệ server trước DDOS

DDOS bằng Flash hiện đang thịnh hành ở Việt Nam, với nhiều kiểu khác nhau nhưng điểm chung của chúng là tấn công vào web xử dụng cơ sở dữ liệu thông thường là mysql gây quá tải sever die mysql, apache...
Bằng cách đặt file flash tại các website có số lượng truy cập lớn, người dos sẽ phát lệnh tấn công khi có kha khá số lượng người đang truy cập web đặt file flash, các file flash này include tới file chứa địa chỉ web nạn nhân đặt tại server của kẻ tấn công và him có thể điều khiển tấn công vào site nào tùy thích.
Hiện nay có nhiều tool dos được share trên mạng nhưng người sử dụng không biết rằng họ chỉ là cỗ máy cho kẻ khác điều khiển từ xa. Vì ngoài thông tin dos người dùng điền vào, file flash còn lấy nội dung dos từ server của chủ tool dos (đó mới là mục đích chính).
Với số lượng truy cập lớn các request gửi hàng loạt tới server, biện pháp block ip dường như không có hiệu quả vì nếu block ta sẽ block nhầm ip của nhưng người vô tội và số lượng ip lớn việc drop cũng đã khiến server quá tải.
Để viết được tool ddos flash bạn chỉ cần hiểu biết 1 chút ít về action script của flash. Tuy nhiên tác hại của nó thì kinh khủng Nhưng chúng ta có thể hạn chế chúng bằng cách cách ly nó với mysql. Cũng với 1 đoạn mã (PHP) đơn giản:
PHP Code:
<?
if (strpos($_SERVER***91;'HTTP_REFERER'***93;,"ecvina.com")==false)
{
    $url="http://".$_SERVER***91;"HTTP_HOST"***93;.$_SERVER***91;"REQUEST_URI"***93;;
    echo "<a href="$url">Bấm vào đây</a>";
    exit;
}
?>
Đoạn mã trên chỉ cho phép những người dùng truy cập vào nội dung cần xem khi họ click trực tiếp vào link trên trang web, các yêu cầu không rõ suất xứ sẽ bị trả về nội dụng "bấm vào đây". Ưu điểm của phương pháp này đơn giản không cookie, không session, chống sốc cho mysql, giảm server load. Bạn chỉ cần include nó đặt lên trên đầu file cần bảo vệ trước cả session_start(); tất nhiên là thay tên domain trong đoạn mã trên bằng domain của bạn.

DDOS đang trở thành mốt thời thượng, đồng thời nó cũng trở thành cần câu cơm cho những kẻ vừa đốt vừa dập những kiểu làm ăn vô đạo đức này đã và sẽ phát triển trong tương lai chỉ mong các bạn ngoài đời chúng ta đã nói không với Ma túy xì ke, thuốc lá cũng sẽ nói không với DDOS vì một không gian IT lành mạnh. Trong khi nhà nước còn làm ngơ trước những kẻ phá hoại tài nguyên mạng khi mà họ có thể điểm danh từng thằng.. Đơn giản vì chúng chưa đốt nhà nước

Trước khi viết script này server của tôi cũng bị dos liên lục từ hôm 29 tết. Đã cài firewall và các mod chống ddos cho apache nhưng không có hiệu quả. Cách duy nhất hiện giờ có thể áp dụng là như trên chứ có viết thêm cái gì vô apache cũng vậy thôi bởi khi bị ddos nếu có cài firewall hay mod chống ddos thì server cũng luôn phải làm việc để drop IP (đó cũng là dos rồi). Chưa kể khi đụng chạm tới mysql thì server load và memory ngốn khủng khiếp --> sau đó thì die ok
Biện pháp duy nhất hiện nay là ngăn không cho tool dos tiếp xúc với mysql. Một khi đã cách ly được với mysql thì tool dos sẽ dos 1 trang html như vậy sẽ tăng được sức đề kháng cho server, root sẽ có nhiều thời gian hơn cho việc ngăn chặn tấn công, nếu lượng cường độ quá lớn sẽ làm die apache he he lúc đó ta tạm off service đi vậy.

Xin nhắc lại ưu điểm của phương pháp này là cực kỳ đơn giản không cookie, session.
vikhoa viết 01:13 ngày 10/10/2018
Bài của bạn cũng hay lắm, nhưng đọc xong đến câu cuối thì thấy ...huề tiền quá Mới có kiểu flood mới, cách của bạn cũng không ăn thua đâu (mà chắc bạn cũng chưa bị). DDTH mấy hôm vừa rồi liên tục bị, bandwidth luôn nằm trong khoảng 8-12Mbps liên tục mười mấy giờ, vì vậy nên apache "hấp hối", không chịu nổi, lúc vào được lúc không. Server mạnh mà còn thế, các web khác server yếu hoặc shared host thì chết chắc luôn.

Còn cách nào khác hay hơn không nhỉ?
0day viết 01:14 ngày 10/10/2018
Ý tưởng tốt tuy không có gì là mới, nhưng thật sự mà nói dùng các php scripts để chống ddos thì tệ hại vô cùng ... Cần phải hạn chế các requests đụng đến php hay cgi script...

Biện pháp duy nhất hiện nay là ngăn không cho tool dos tiếp xúc với mysql. Một khi đã cách ly được với mysql thì tool dos sẽ dos 1 trang html như vậy sẽ tăng được sức đề kháng cho server, root sẽ có nhiều thời gian hơn cho việc ngăn chặn tấn công, nếu lượng cường độ quá lớn sẽ làm die apache he he lúc đó ta tạm off service đi vậy.

Xin nhắc lại ưu điểm của phương pháp này là cực kỳ đơn giản không cookie, session.
ặc, Referer hay các HTTP header khác cũng làm giả được đó...

Nói chung ddos là không chống được... Càng nhiều tiền thì càng hạn chế được nhiều... nhưng cũng không chống được...
Nghèo thì chết, mà giàu cũng chết...

hôm trước đọc bài này :
Payment Gateway StormPay Battling Sustained DDoS Attack

http://news.netcraft.com/archives/20...os_attack.html

The attacks flooded StormPay with up to 6 gigabits a second of data, according to Barrett Lyon, chief technology officer of Prolexic Technologies, which specializes in DDoS defense and is working with StormPay to mitigate the attack. Lyon said the DDoS involved DNS amplification, using bogus DNS requests to cause Internet nameservers to inundate StormPay's web site with traffic. The impact can be seen on the performance chart for StormPay.com:
6Gbps, Vietnam mình có bao nhiêu server chịu nổi nhỉ ? Chắc là không ?
theo VNNIC : Tổng băng thông kênh kết nối quốc tế của Việt Nam : 3615 Mbps ~ 3Gbps
http://www.vnnic.vn/thongke/thongke/...gchu/index.jsp
thanhduc viết 01:13 ngày 10/10/2018
Dễ nhận thấy là DDOS không thể chống được hoàn toàn vì khi bạn mở cổng cho người ta vào với 1 số lượng lớn người cùng truy cập server đã có thể không đáp ứng nổi chưa nói đến kẻ chủ ý tấn công bằng nhiều phương pháp làm số lượng đó nhân lên gấp nhiều lần, với cường độ lớn thì flood html cũng chết chưa nói đến đụng vào mysql thì sẽ die ngay lập tức. Khi bạn có thiết lập firewall để chặn hoặc hạn chế các request đến thì server cũng liên lục phải làm việc này, việc chặn hay lọc các request liên tục như vậy cũng đã làm cho server quá tải rồi.
Bài viết trên nhằm hạn chế tác hại của DDOS tới server chứ không nói là chống hoàn toàn.
Kiểu flood mới :-/ vikhoa không nói rõ mới thế nào chứ server của tôi cũng bị flood từ 29 tết tới hơn 1 tuần sau đó liên tục 24/24. Trong khoảng thời gian đó có nhiều lúc ddth cũng die
VietDuc viết 01:12 ngày 10/10/2018
to ThanhDuc: cách chặn của Ecvina hiện tại không ổn đâu em. VK nói đúng đó, cách thức DDOS DDTH mấy ngày qua kô đơn giản là dùng X-Flash như thông thường cũng như cách chặn trên chắc chắn không có hiệu quả. Mấy ngày rồi nghiên cứu DDTH server mà thấy phát khiếp. Không off tạm server thì chỉ có nước hết BW cái vèo với tố độ lên đến 10Mbps.
0day viết 01:14 ngày 10/10/2018
Quote Được gửi bởi thanhduc
Kiểu flood mới :-/ vikhoa không nói rõ mới thế nào chứ server của tôi cũng bị flood từ 29 tết tới hơn 1 tuần sau đó liên tục 24/24. Trong khoảng thời gian đó có nhiều lúc ddth cũng die
không có gì mới chỉ là nhiều hơn : khoảng 100 -> 300 "GET /" requests per second, 800K->1.2MB/s (tùy theo giờ), cường độ thế này server chết là phải rồi.
thanhduc viết 01:09 ngày 10/10/2018
1-0 4531 9/45/45 K 0.47 2 11 0.0 0.00 0.00 69.242.182.24 www.ecvina.com GET /home/?u2=701 HTTP/1.1
2-0 4532 8/52/52 K 0.55 1 23 0.0 0.00 0.00 58.239.242.27 www.ecvina.com GET /home/?u2=651 HTTP/1.1
Chắc là cùng chung 1 kẻ dos rồi lượng resquest cũng từ mức 100-300( 300 mức mà còn có thể thấy được trước khi apache off, nếu như mysql còn chạy thì sẽ die sớm hơn)
Cách thức thế nào mới là ổn hả anh Đức hiện giờ các firewall = script cũng điều chung một cơ chế là chặn không cho tiếp xúc với mysql mà thôi, còn firewall cho server và apache cũng không hiệu quả rồi
Với cách này đảm bảo sẽ không bị lỗi mysql
0day viết 01:13 ngày 10/10/2018
còn firewall cho server và apache cũng không hiệu quả rồi
câu này sai rồi, muốn hạn chế tốt nhất thì càng phải thiêt lập các cơ chế phòng vệ ở tầng càng thấp càng tốt, lưu ý php là thông dịch và sẽ làm tổn hao tài nguyên hơn. Xài php script để chống ddos là giải pháp tồi hơn các giải pháp khác.

PS:Bạn thử cho xem cấu hình của server cỡ nào mà chịu được 300 requests per second ?
thanhduc viết 01:11 ngày 10/10/2018
Processor InformationProcessor #1 Vendor: GenuineIntel
Processor #1 Name: Intel(R) Pentium(R) 4 CPU 3.40GHz
Processor #1 speed: 3392.131 MHz
Processor #1 cache size: 2048 KB

Processor #2 Vendor: GenuineIntel
Processor #2 Name: Intel(R) Pentium(R) 4 CPU 3.40GHz
Processor #2 speed: 3392.131 MHz
Processor #2 cache size: 2048 KB

Memory InformationMemory: 1025392k/1040272k available (1864k kernel code, 14080k reserved, 752k data, 176k init, 122768k
highmem)
Mức 300 request là mức tối đa sau đó thì apache off ok
Server thuê ở DigiPower. Hình như bạn còn quá nghi ngờ về phương pháp đơn giản này ( nhưng tôi có thể đẩm bảo nó còn hiệu quả hơn hoặc bằng xfirewall( quảng cáo)) Còn các request GET/POST cũng vậy thôi. Hiện nay chúng ta đang hạn chế tác hại của DDOS chứ không phải là chống
thanhduc viết 01:04 ngày 10/10/2018
không hiểu ai ác ý muốn thử firewall hay sao mà dos từ chiều đến giờ:

CPU Usage: u19.94 s4.43 cu0 cs0 - 86.7% CPU load
291 requests/sec - 1513 B/second - 5 B/request
150 requests currently being processed, 0 idle servers

Tuy nhiên server vẫn êm các bạn coi hình:
http://i49.photobucket.com/albums/f2...84/tranfic.gif
http://i49.photobucket.com/albums/f2...er284/ddos.gif

Như vậy phương pháp đơn giản của tôi đã phát huy được hiệu quả: mysql đã được bảo vệ an toàn giảm server load.

Tuy nhiên sau khi trình bày phương pháp trên tôi thật sự buồn vì mọi người có vẻ quá coi thường doạn mã trên và chưa thực sự tỏ ra đoàn kết chống dos mà có vẻ chệch sang thử ai bị dos đau hơn
Bài liên quan
0