DRDoS
Distributed Reflection Denial of Service - Tấn công từ chối dịch vụ bằng phương pháp phản xạ nhiều vùng
(Th3 W@tch3r)
0. Chú ý:
a. Tôi cũng và tác giả của bài viết ( Steve Gibson ) không chịu trách nhiệm về hành động của các bạn khi đọc bài viết, bài viết chỉ có mục đích nâng cao kiến thức ... nếu bạn muốn thực hành thì hãy tự setup 1 server ở nhà và tấn công máy của mình.
b. Bài viết được lược dịch từ gốc
www.grc.com/dos/drdos.htm của tác giả Steve Gibson, tất cả credit là đều của Steve Gibson. Nếu bạn muốn 1 bản tiếng anh bạn có thể đến địa chỉ trên để tra cứu
c. Mọi vấn đề xin liên hệ th3watch3rvn at Yahoo dot com
1. Giới thiệu:Vào lúc 2 giờ sáng ngày 11 - 1 - 2002, Trang web GRC.COM đã bị đánh tung khỏi Internet bằng một kiểu tấn công từ chối dịch vụ mới. Điều kinh ngạc chính là nguồn tấn công đươ.c bắt đầu bằng những đường chính của Internet, bao gồm Yahoo.com và cả những IP "gary7.nsa.gov". Chúng tôi đã bị tấn công bởi hàng trăm server mạnh nhất của internet ...
Vào thời điểm chúng tôi tìm ra cách để ngăn chặn cuộc tấn công này và quay lại internet, 1 072 519 399 packet bị chặn đứng trước khi cuộc tấn công bị dừng ...
Đây chính là những thông tin được Steve Gibson mô tả trong bài báo về DRDoS mà ông đã gặp ngày 11-1-2002... và bây giờ chúng ta sẽ tìm hiểu xem DRDoS là gì và cách tấn công như thế nào.
2. Sơ lược về TCP/IP:
Bạn đọc thêm tại
www.viethacker.info/~th3watch3rvn trong bài TCP 3-ways hanshake để biết thêm về cách TCP mở 1 phiên làm việc
3. Lợi dụng TCP: phương pháp SYN flood truyền thống:
Nhiều năm trước đây, sự yếu kém của đường truyền TCP được các HĐH sử dụng đã bị các Internet's Hacker kháp phá ra và lợi dụng.
Theo sơ đồ ở dưới đây, Client gửi SYN packet cho server để thông báo server chuẩn bị 1 đường truyền. Server sẽ giành 1 phần tài nguyên hệ thống như bộ nhớ đệm để nhận và truyền dữ liệu. Ngoài ra các thông tin khác của Client cũng được ghi nhận như địa chỉ IP của Client và Cổng ( Port ). Sau đó server sẽ send ngược lại SYN/ACK packet để thông báo Client là mọi thứ đã chuẩn bị và nếu như không nhận đuợc ACK packt của Client ( có thể do packet đã bị thất lạc trên đường truyền ), server sẽ tiếp tục gửi lại SYN/ACK packet cho Client.
Nhưng chúng ta sẽ tiếp tục suy nghĩ tiếp. Như vậy với bất cứ 1 SYN packet đơn giản nào, Server cũng phải để 1 phần tài nguyên cho đường truyền đó, và tài nguyên của Server là có hạn và Hacker sẽ tìm mọi cách để Server đạt được cái giới hạn đó. ( Đây còn được gọi là half-open connection)
Bằng cách dùng Raw Sockets ( không phải TCP hay DUP packet ), IP gốc của packet có thể bị ghi đè lên và làm giả mạo. Khi một SYN packet với IP giả mạo được gửi đến Server, nó cũng như bao packet khác, vẫn hợp lệ đối với Server và Server sẽ cấp vùng tài nguyên cho đường truyền này, ghi nhận toàn bộ thông tin và gủi SYN/ACK packet ngược lại cho Client. Vì địa chỉ IP của Client là giả mạo nên sẽ không có Client nào nhận được SYN/ACK packet này, sau 1 thời gian không nhận được ACK packet từ Client, Server nghĩ rằng packet bị thất lạc nên lại tiếp tục gửi tiếp SYN/ACK packet, cứ như thế, connection tiếp tục mở.
Nếu như Hacker tiếp tục gửi nhiều SYN packet đến Server và cuối cùng Server đã không thể tiếp nhận thêm 1 connection nào nữa : Server đã bị flood.
Đây không phải là kiểu tấn công bằng đường truyền cao, bởi vì chỉ cần 1 máy tính nối internet dial up đơn giản cũng có thể tấn công kiểu này ( tất nhiên sẽ lâu hơn 1 chút )
4. Sự phát triển của cách tấn công bằng Bandwidth:
a. Điều gì xảy ra trong quá trình Bandwidth attack:
Không giống như cách tấn công SYN Flood, Bandwidth attack tạo 1 brute force attack từ các Server mạnh đến máy của Victim, những packet giả ồ ạt chiếm hết đường truyền của Victim làm máy Victim không thể nhận thêm 1 packet nào khác.
Như chúng ta thấy ở sơ đồ trên, tất cả packet đi vào 1 mạng máy tính qua 1 "Big-Pipe" ( ống dẫn lớn ), sau đó được router chia ra những "Small Pipe" ( ống dẫn nhỏ ) cho nhiều computer con tùy theo địa chỉ IP của packet. Nhưng nếu toàn bộ "Big-Pipe" bị flood bằng những packet chỉ hướng đến 1 computer nhất định trong mạng máy tính con này, Router đành phải chấp nhận loại bỏ phần lớn các packet để chỉ còn lại số lượng vừa đủ đi qua "Small Pipe" của computer đó. Kiểu tấn công "cá lớn nuốt cá bé" này sẽ đá văng victim ra khỏi internet...
5. DoS vs DDos ( Denial of Service Vs Distributed Deninal of Service )
DoS: Phong cách tấn công truyền thống, khi 1 computer tấn công 1 computer khác
Với kiểu tấn công này 1 máy tính có đường truyền cao có thể đánh bật các máy có đường truyền thấp hơn ra khỏi Internet
DDos: Tấn công mức độ cao hơn bằng cách sử dụng đường truyền của nhiều máy tính tấn công vào 1 máy tính hay 1 mạng máy tính.
Máy tấn công ( Attack Control Machanism ) sẽ điều khiển các máy tính khác ( Zombie ) để cùng tấn công vào 1 mục tiêu duy nhất ( Target / Victim Network )
Tất cả Zombie đều có thể ở trong 1 mạng máy tính với đường truyền thấp hơn, nhưng với nhiều mạng máy tính hợp lại, cho dùng Victim có đường truyền nhanh nhất thế giới cũng sẽ bị đánh bật ra khỏi internet dễ dàng. ( Tất cả "Small Pipe" của Zombie hợp lại thành "Big Pipe" hướng đến router của victim )
Vì sự tấn công đựơc giàn đều đến các máy khác nhau trên internet nên phương pháp này được gọi là DDoS
6. DRDoS ( Distributed Reflection Denial of Service ) - Thế hệ tiếp theo của DDoS.
( Lưu ý: Trong tài liệu gốc của Steve Gibson, đoạn này sẽ kể lại cuộc tấn công DRDoS hướng vào grc.com, nhưng ở đây với mục đính thông tin, tôi chỉ tóm lược về phương pháp DRDoS, nếu bạn thích đọc về cuộc tấn công này bạn có thể tham khảo ở trang web nguồn )
Bây giờ, chúng ta hãy nhớ lại phương pháp SYN attack truyền thống của DoS, phương pháp này dựa trên bước thứ nhất để mở connection của TCP để tạo các "open half" connection làm Server bị ăn mòn hết tài nguyên. Các SYN packet được gửi trực tiếp đến Server sau khi đã giả mạo IP nguồn. IP giả mạo sẽ là 1 IP không có thật trên Internet để cho Server không thể nào hoàn thành được connection.
Ta có Server A và Victim, giả sử ta gửi 1 SYN packet đến Server A trong đó IP nguồn đã bị giả mạo thành IP của Victim, bạn nghĩ chuyện gì sẽ xảy ra ??? Đúng, Server A sẽ mở 1 connection và gủi SYN/ACK packet cho Victim vì nghĩ rằng Victim muốn mở connection với mình. Và đây chính là khái niệm của Reflection ( Phản xạ ).
DRDoS có thể được mô tả như sau :
Hacker sẽ điều khiển Spoof SYN generator, gửi SYN packet đến tất cả các TCP Server lớn, lúc này các TCP Server này vô tình thành Zombie cho Hacker để cùng tấn công Victim và làm nghẽn đường truyền của Victim.