DoS Attack -Tấn công từ chối dịch vụ là gì?
Đã gửi: Năm T6 29, 2006 12:04 pm
Tấn công từ chối dịch vụ ngày này đã trở thành nổi ám ảnh lớn đối với tất cả các mạng máy tính. Như bạn biết đó, các websites lớn như Yahoo, eBay đã từng bị hackers tấn công bằng DDoS.
Ở VN gần đây nhất là vụ một thành viên nhóm Bé Yêu -DantruongX tấn công vào website của Công ty thuơng mại ĐT Việt cơ.Vụ HVA bị Dos rồi đánh sập...
Vậy DoS Attack là gì có những loại nào?
Sau đây là thứ mà tớ vừa tìm thấy^^.
-DN:(từ điển^^online)Thực chất của tấn công bằng từ chối dịch vụ(Denial Of Services Attack) là hacker sẽ chiếm dụng một lựợng lớn tài nguyên trên server, tài nguyên có thể là băng thông, bộ nhớ, cpu, đĩa cứng, ... làm cho server không thể nào đáp ứng các yêu cầu khác từ các clients của những người dùng bình thường và có thể nhanh chónh bị ngừng hoạt động, crash hoặc reboot.
-Một số dạng tấn công từ chối dịch vụ:phần này là sưutập đuợc^^.
Có rất nhiều kiểu tấn công bằng từ chối dịch vụ, bao gồm tấn công từ bên ngoài và tấn công từ mạng bên trong. Ở đây chỉ đề cập đến một số dạng tấn công từ chối dịch vụ thường gặp.
Ping of Death
Một số máy tính sẽ ngưng hoạt động, reboot hoặc bị crash khi gởi gói data ping với kích thước lớn đến chúng.
Ví dụ: C:\> ping -l 655540
Teardrop
Tất cả các dữ liệu chuyển đi trên mạng từ hệ thống nguồn đến hệ thống đích đều phải trải qua 2 quá trình sau: dữ liệu sẽ được chia ra thành các mảnh nhỏ ở hệ thống nguồn, mỗi mảnh đều phải có một giá trị offset nhất định để xác định vị trí của mảnh đó trong gói dữ liệu được chuyển đi. Khi các mảnh này đến hệ thống đích, hệ thống đích sẽ dựa vào giá trị offset để sắp xếp các mảnh lại với nhau theo thứ tự đúng như ban đầu. Ví dụ, có một dữ liệu gồm 4000 bytes cần được chuyển đi, giả sử rằng 4000 bytes này được chia thành 3 gói nhỏ(packet):
packet thứ nhất sẽ mang các 1bytes dữ liệu từ 1 đến 1500
packet thứ hai sẽ mang các bytes dữ liệu từ 1501 đến 3000
packet thứ ba sẽ mang các bytes dữ liệu còn lại, từ 3001 đến 4000
Khi các packets này đến đích, hệ thống đích sẽ dựa vào offset của các gói packets để sắp xếp lại cho đúng với thứ tự ban đầu: packet thứ nhất -> packet thứ hai -> packet thứ ba
Trong tấn công Teardrop, một loạt gói packets với giá trị offset chồng chéo lên nhau được gởi đến hệ thống đích. Hệ thống đích sẽ không thể nào sắp xếp lại các packets này, nó không điều khiển được và có thể bị crash, reboot hoặc ngừng hoạt động nếu số lượng packets với giá trị offset chồng chéo lên nhau quá lớn!
Hãy xem lại ví dụ trên, đúng ra các packet được gởi đến hệ thống đích có dạng như sau: (1->1500 bytes đầu tiên) (1501->3000 bytes tiếp theo) (3001->4000 bytes sau cùng), trong tấn công Teardrop sẽ có dạng khác: (1->1500 bytes) (1501->3000 bytes) (1001->4000 bytes). Gói packet thứ ba có lượng dữ liệu sai!
SYN Attack
Trước hết, bạn hãy xem lại tiến trình bắt tay 3 bước của một kết nối TCP/IP. Một client muốn kết nối đến một host khác trên mạng.
;Bước 1: client gởi một SYN packet với số Sequence Number ban đầu(ISN) đến host cần kết nối:
client-----SYN packet----->host
;Bước 2: host sẽ phản hồi lại client bằng một SYN/ACK packet, ACK của packet này có giá trị đúng bằng ISN ban đầu do client gởi đã gởi đến host ở bước 1 và chờ nhận một ACK packet từ client
host-----SYN/ACK packet----->client
;Bước 3: client phản hồi lại host bằng một ACK packet
client-----ACK packet----->host
Khi host nhân được ACK packet này thì kết nối được thiết lập, client vào host có thể trao đổi các dữ liệu cho nhau.
Trong SYN Attack, hacker sẽ gởi đến hệ thống đích một loạt SYN packets với địa chỉ ip nguồn không có thực. Hệ thống đích khi nhận được các bad SYN packets này sẽ gởi trở lại SYN/ACK packet đến các địa chỉ không có thực này vào chờ nhận được ACK messages từ các địa chỉ ip đó. Vì đây là các địa chỉ ip không có thực, hệ thống đích sẽ sẽ chờ đợi vô ích và còn nối đuôi các "request" chờ đợi này nào hàng đợi, gây lãng phí một lượng đáng kể bộ nhớ trên máy chủ mà đúng ra là phải dùng vào việc khác thay cho phải chờ đợi ACK messages.
Land Attack
Land Attack cũng gần giống như SYN Attack, nhưng thay vì dùng các địa chỉ ip không có thực, hacker sẽ dùng chính địa chỉ ip của hệ thống nạn nhân. Điều này sẽ tạo nên một vòng lặp vô tận giữa hệ thống nạn nhân với chính hệ thống nạn nhân đó, giữa một bên cần nhận ACK messages còn một bên thì chảng bao giờ gởi ACK messages. Tuy nhiên, hầu hết các hệ thống đều dùng filter hoặc firewall để tránh khỏi kiểu tấn công này!
Smurf Attack
Hai nhân tố chính trong Smuft Attack là là các ICMP echo request packets và chuyển trực tiếp các packets đến các địa chỉ broadcast.
+ Giao thức ICMP thường dùng để xác định một máy tính trên mạng Internet có còn hoạt động(alive) hay không. Để xác định một máy có alive không, bạn cần gởi một ICMP echo request đến máy đó. Khi máy nhận được packet này, nó sẽ gởi trả lại bạn một ICMP echo reply packet. Trong trường hợp bạn không nhận được ICMP echo reply packet, điều này có nghĩa là máy đó không còn hoạt động(not alive). Đây cũng chính là cách hoạt động của các chương trình ping.
+ Mỗi mạng máy tính đều có địa chỉ địa chỉ broadcast và địa chỉ mạng. Địa chỉ broadcast có các bit host đều bằng 0 và địa chỉ broadcast có các bit host đều bằng 1. Ví dụ địa chỉ ip lớp B 140.179.220.200 sẽ có địa chỉ mạng là 140.179.0.0 và địa chỉ broadcast mặc định là 140.179.0.0. Khi một packet được gởi đến địa chỉ broadcast, lập tức packet này sẽ được chuyển đến tất cả các máy trong mạng.
Trong Smurf Attack, cần có ba thành phần: hacker(người ra lệnh tấn công), mạng khuếch đại(sẽ nghe lệnh của hacker) và dĩ nhiên là hê thống nạn nhân. Hacker sẽ gởi các ICMP echo request packets đến địa chỉ broadcast của mạng khuếch đại. Điều đặc biệt là các ICMP echo request packets này có địa chỉ ip nguồn chính là địa chỉ ip của nạn nhân. Khi các packets đó đến được địa chỉ broadcast của mạng khuếch đại, lập tức tất cả các máy tính trong mạng khuếch đại sẽ nhận được các packets này. Các máy này tưởng rằng máy tính nạn nhân đã gởi ICMP echo request packets đến(do hacker đã làm giả địa chỉ ip nguồn), lập tức chúng sẽ đồng loạt gởi trả lại hệ thống nạn nhân các ICMP reply echo request packets. Hệ thống máy nạn nhân sẽ không chịu nỗi một khối lượng khổng lồ các packets này và nhanh chóng bị ngừng hoạt động, crash hoặc reboot. Như vậy, bạn có thể thấy rằng hacker chỉ cần gởi một lượng nhỏ các ICMP echo request packets đi, và hệ thống mạng khuếch đại sẽ khuếch đại lượng ICMP echo request packets này lên gấp bội. Tỉ lệ khuếch đại phụ thuộc vào số mạng tính có trong mạng khuếch đại. Nhiệm vụ của các hacker là cố chiếm được càng nhiều hệ thống mạng hoặc routers cho phép chuyển trực tiếp các packets đến địa chỉ broadcast và không lọc địa chỉ nguồn của các outgoing packets. Có được các hệ thống này, hacker sẽ dễ dàng tiến hành Smurf Attack trên các hệ thống cần tấn công.
UDP Flooding
Ngập lụt UDP đòi hỏi phải có 2 hệ thống máy cùng tham gia. Hackers sẽ làm cho hệ thống đi vào môt vòng lặp trao đổi các dữ liệu vô ích qua giao thức UDP. Hacker có thể giả mạo địa chỉ ip của các packets là địa chỉ loopback(127.0.0.1), gởi packet này đến hệ thống của nạn nhân trên cổng udp echo(7). Hệ thống của nạn nhân sẽ echo lại các messages do 127.0.0.1(chính nó) gởi đến, kết quả là nó sẽ đi vòng một vòng lặp echo vô tận. Tuy nhiên, nhiều hệ thống sẽ không cho dùng địa chỉ loopback. Hacker sẽ giả mạo một địa chỉ ip của một máy tính nào đó trên mạng nạn nhân và tiến hành ngập lụt udp trên hệ thống của nạn nhân.
Tấn công DNS
Hacker có thể đổi một entry trên Domain Name Server của hệ thống nạn nhân chỉ đến một website nào đó của hacker. Khi client yêu cầu DNS phân tích địa chỉ www.company.com thành địa chỉ ip, lập tức DNS(đã bị hacker thay đổi cache tạm thời) sẽ đổi thành địa chỉ ip của www.hacker.com. Kết quả là thay vì phải vào http://www.company.com/ thì các nạn nhân sẽ vào http://www.hacker.com/. Một cách tấn công từ chối dịch vụ thật hữu hiệu!
Distributed DoS Attacks
Phân pháp tấn công DoS hay còn gọi là DDoS yêu cầu phải có ít nhất vài hackers cùng tham gia. Đầu tiên các hackers sẽ cố thâm nhập vào các mạng máy tính được bảo mật kém, sau đó cài lên các hệ thống này chương trình DDoS server. Bây giờ các hackers sẽ hẹn nhau đến thời gian đã định sẽ dùng DDoS client kết nối đến các DDoS servers, sau đó đồng loạt ra lệnh cho các DDoS servers này tiến hành tấn công DDoS đến hệ thống nạn nhân.
Các công cụ DDoS Attack
Hiện nay có hai công cụ mà các hackers thường dùng để tiến hành DDoS Attack. Đó là Tribe Flood Network(TFN2K) và Stacheldraht. Stacheldraht mạnh hơn TF2K, dùng TCP và ICMP ECHO_REPLY, không dùng UDP nhưng có thêm chức năng bảo mật rất đáng tin cậy.
ST
Ở VN gần đây nhất là vụ một thành viên nhóm Bé Yêu -DantruongX tấn công vào website của Công ty thuơng mại ĐT Việt cơ.Vụ HVA bị Dos rồi đánh sập...
Vậy DoS Attack là gì có những loại nào?
Sau đây là thứ mà tớ vừa tìm thấy^^.
-DN:(từ điển^^online)Thực chất của tấn công bằng từ chối dịch vụ(Denial Of Services Attack) là hacker sẽ chiếm dụng một lựợng lớn tài nguyên trên server, tài nguyên có thể là băng thông, bộ nhớ, cpu, đĩa cứng, ... làm cho server không thể nào đáp ứng các yêu cầu khác từ các clients của những người dùng bình thường và có thể nhanh chónh bị ngừng hoạt động, crash hoặc reboot.
-Một số dạng tấn công từ chối dịch vụ:phần này là sưutập đuợc^^.
Có rất nhiều kiểu tấn công bằng từ chối dịch vụ, bao gồm tấn công từ bên ngoài và tấn công từ mạng bên trong. Ở đây chỉ đề cập đến một số dạng tấn công từ chối dịch vụ thường gặp.
Ping of Death
Một số máy tính sẽ ngưng hoạt động, reboot hoặc bị crash khi gởi gói data ping với kích thước lớn đến chúng.
Ví dụ: C:\> ping -l 655540
Teardrop
Tất cả các dữ liệu chuyển đi trên mạng từ hệ thống nguồn đến hệ thống đích đều phải trải qua 2 quá trình sau: dữ liệu sẽ được chia ra thành các mảnh nhỏ ở hệ thống nguồn, mỗi mảnh đều phải có một giá trị offset nhất định để xác định vị trí của mảnh đó trong gói dữ liệu được chuyển đi. Khi các mảnh này đến hệ thống đích, hệ thống đích sẽ dựa vào giá trị offset để sắp xếp các mảnh lại với nhau theo thứ tự đúng như ban đầu. Ví dụ, có một dữ liệu gồm 4000 bytes cần được chuyển đi, giả sử rằng 4000 bytes này được chia thành 3 gói nhỏ(packet):
packet thứ nhất sẽ mang các 1bytes dữ liệu từ 1 đến 1500
packet thứ hai sẽ mang các bytes dữ liệu từ 1501 đến 3000
packet thứ ba sẽ mang các bytes dữ liệu còn lại, từ 3001 đến 4000
Khi các packets này đến đích, hệ thống đích sẽ dựa vào offset của các gói packets để sắp xếp lại cho đúng với thứ tự ban đầu: packet thứ nhất -> packet thứ hai -> packet thứ ba
Trong tấn công Teardrop, một loạt gói packets với giá trị offset chồng chéo lên nhau được gởi đến hệ thống đích. Hệ thống đích sẽ không thể nào sắp xếp lại các packets này, nó không điều khiển được và có thể bị crash, reboot hoặc ngừng hoạt động nếu số lượng packets với giá trị offset chồng chéo lên nhau quá lớn!
Hãy xem lại ví dụ trên, đúng ra các packet được gởi đến hệ thống đích có dạng như sau: (1->1500 bytes đầu tiên) (1501->3000 bytes tiếp theo) (3001->4000 bytes sau cùng), trong tấn công Teardrop sẽ có dạng khác: (1->1500 bytes) (1501->3000 bytes) (1001->4000 bytes). Gói packet thứ ba có lượng dữ liệu sai!
SYN Attack
Trước hết, bạn hãy xem lại tiến trình bắt tay 3 bước của một kết nối TCP/IP. Một client muốn kết nối đến một host khác trên mạng.
;Bước 1: client gởi một SYN packet với số Sequence Number ban đầu(ISN) đến host cần kết nối:
client-----SYN packet----->host
;Bước 2: host sẽ phản hồi lại client bằng một SYN/ACK packet, ACK của packet này có giá trị đúng bằng ISN ban đầu do client gởi đã gởi đến host ở bước 1 và chờ nhận một ACK packet từ client
host-----SYN/ACK packet----->client
;Bước 3: client phản hồi lại host bằng một ACK packet
client-----ACK packet----->host
Khi host nhân được ACK packet này thì kết nối được thiết lập, client vào host có thể trao đổi các dữ liệu cho nhau.
Trong SYN Attack, hacker sẽ gởi đến hệ thống đích một loạt SYN packets với địa chỉ ip nguồn không có thực. Hệ thống đích khi nhận được các bad SYN packets này sẽ gởi trở lại SYN/ACK packet đến các địa chỉ không có thực này vào chờ nhận được ACK messages từ các địa chỉ ip đó. Vì đây là các địa chỉ ip không có thực, hệ thống đích sẽ sẽ chờ đợi vô ích và còn nối đuôi các "request" chờ đợi này nào hàng đợi, gây lãng phí một lượng đáng kể bộ nhớ trên máy chủ mà đúng ra là phải dùng vào việc khác thay cho phải chờ đợi ACK messages.
Land Attack
Land Attack cũng gần giống như SYN Attack, nhưng thay vì dùng các địa chỉ ip không có thực, hacker sẽ dùng chính địa chỉ ip của hệ thống nạn nhân. Điều này sẽ tạo nên một vòng lặp vô tận giữa hệ thống nạn nhân với chính hệ thống nạn nhân đó, giữa một bên cần nhận ACK messages còn một bên thì chảng bao giờ gởi ACK messages. Tuy nhiên, hầu hết các hệ thống đều dùng filter hoặc firewall để tránh khỏi kiểu tấn công này!
Smurf Attack
Hai nhân tố chính trong Smuft Attack là là các ICMP echo request packets và chuyển trực tiếp các packets đến các địa chỉ broadcast.
+ Giao thức ICMP thường dùng để xác định một máy tính trên mạng Internet có còn hoạt động(alive) hay không. Để xác định một máy có alive không, bạn cần gởi một ICMP echo request đến máy đó. Khi máy nhận được packet này, nó sẽ gởi trả lại bạn một ICMP echo reply packet. Trong trường hợp bạn không nhận được ICMP echo reply packet, điều này có nghĩa là máy đó không còn hoạt động(not alive). Đây cũng chính là cách hoạt động của các chương trình ping.
+ Mỗi mạng máy tính đều có địa chỉ địa chỉ broadcast và địa chỉ mạng. Địa chỉ broadcast có các bit host đều bằng 0 và địa chỉ broadcast có các bit host đều bằng 1. Ví dụ địa chỉ ip lớp B 140.179.220.200 sẽ có địa chỉ mạng là 140.179.0.0 và địa chỉ broadcast mặc định là 140.179.0.0. Khi một packet được gởi đến địa chỉ broadcast, lập tức packet này sẽ được chuyển đến tất cả các máy trong mạng.
Trong Smurf Attack, cần có ba thành phần: hacker(người ra lệnh tấn công), mạng khuếch đại(sẽ nghe lệnh của hacker) và dĩ nhiên là hê thống nạn nhân. Hacker sẽ gởi các ICMP echo request packets đến địa chỉ broadcast của mạng khuếch đại. Điều đặc biệt là các ICMP echo request packets này có địa chỉ ip nguồn chính là địa chỉ ip của nạn nhân. Khi các packets đó đến được địa chỉ broadcast của mạng khuếch đại, lập tức tất cả các máy tính trong mạng khuếch đại sẽ nhận được các packets này. Các máy này tưởng rằng máy tính nạn nhân đã gởi ICMP echo request packets đến(do hacker đã làm giả địa chỉ ip nguồn), lập tức chúng sẽ đồng loạt gởi trả lại hệ thống nạn nhân các ICMP reply echo request packets. Hệ thống máy nạn nhân sẽ không chịu nỗi một khối lượng khổng lồ các packets này và nhanh chóng bị ngừng hoạt động, crash hoặc reboot. Như vậy, bạn có thể thấy rằng hacker chỉ cần gởi một lượng nhỏ các ICMP echo request packets đi, và hệ thống mạng khuếch đại sẽ khuếch đại lượng ICMP echo request packets này lên gấp bội. Tỉ lệ khuếch đại phụ thuộc vào số mạng tính có trong mạng khuếch đại. Nhiệm vụ của các hacker là cố chiếm được càng nhiều hệ thống mạng hoặc routers cho phép chuyển trực tiếp các packets đến địa chỉ broadcast và không lọc địa chỉ nguồn của các outgoing packets. Có được các hệ thống này, hacker sẽ dễ dàng tiến hành Smurf Attack trên các hệ thống cần tấn công.
UDP Flooding
Ngập lụt UDP đòi hỏi phải có 2 hệ thống máy cùng tham gia. Hackers sẽ làm cho hệ thống đi vào môt vòng lặp trao đổi các dữ liệu vô ích qua giao thức UDP. Hacker có thể giả mạo địa chỉ ip của các packets là địa chỉ loopback(127.0.0.1), gởi packet này đến hệ thống của nạn nhân trên cổng udp echo(7). Hệ thống của nạn nhân sẽ echo lại các messages do 127.0.0.1(chính nó) gởi đến, kết quả là nó sẽ đi vòng một vòng lặp echo vô tận. Tuy nhiên, nhiều hệ thống sẽ không cho dùng địa chỉ loopback. Hacker sẽ giả mạo một địa chỉ ip của một máy tính nào đó trên mạng nạn nhân và tiến hành ngập lụt udp trên hệ thống của nạn nhân.
Tấn công DNS
Hacker có thể đổi một entry trên Domain Name Server của hệ thống nạn nhân chỉ đến một website nào đó của hacker. Khi client yêu cầu DNS phân tích địa chỉ www.company.com thành địa chỉ ip, lập tức DNS(đã bị hacker thay đổi cache tạm thời) sẽ đổi thành địa chỉ ip của www.hacker.com. Kết quả là thay vì phải vào http://www.company.com/ thì các nạn nhân sẽ vào http://www.hacker.com/. Một cách tấn công từ chối dịch vụ thật hữu hiệu!
Distributed DoS Attacks
Phân pháp tấn công DoS hay còn gọi là DDoS yêu cầu phải có ít nhất vài hackers cùng tham gia. Đầu tiên các hackers sẽ cố thâm nhập vào các mạng máy tính được bảo mật kém, sau đó cài lên các hệ thống này chương trình DDoS server. Bây giờ các hackers sẽ hẹn nhau đến thời gian đã định sẽ dùng DDoS client kết nối đến các DDoS servers, sau đó đồng loạt ra lệnh cho các DDoS servers này tiến hành tấn công DDoS đến hệ thống nạn nhân.
Các công cụ DDoS Attack
Hiện nay có hai công cụ mà các hackers thường dùng để tiến hành DDoS Attack. Đó là Tribe Flood Network(TFN2K) và Stacheldraht. Stacheldraht mạnh hơn TF2K, dùng TCP và ICMP ECHO_REPLY, không dùng UDP nhưng có thêm chức năng bảo mật rất đáng tin cậy.
ST