Thuật toán của tác giả Nguyễn Quang Quý

Một phần của tài liệu Cải thiện hiệu năng giải thuật RRED chống tấn công từ chối dịch vụ tốc độ thấp (Trang 35)

Thuật toán của tác giả Nguyễn Quang Quý [16] cũng là một biến thể của thuật toán RRED, điểm khác nhau của thuật toán này so với thuật toán gốc là nó không sử dụng giá trị T*. Ý tƣởng của thuật toán này là phát hiện các gói tin tấn công dựa vào:

 Gói tin vi phạm cơ chế timeout của giao thức TCP. Một dòng TCP thông thƣờng cần phải đợi ít nhất là 1s trƣớc khi gửi gói tin tiếp theo sau khi bị timeout.

 Trạng thái hàng đợi của liên kết nghẽn cổ chai: muốn làm cho hàng đợi của liên kết nghẽn cổ chai đầy thì kẻ tấn công phải gửi gói tin nhanh hơn tốc độ gói tin đi ra khỏi hàng đợi.

Mã nguồn thuật toán của tác giả Nguyễn Quang Quý có thể xem tại Phụ lục B. Giả mã của thuật toán nhƣ sau:

NewRRED − ENQUE(pkt)

1: f ← RRED–FLOWHASH(pkt) 2: if pkt.arrivaltime – Flow[f].T1 > 1 then

3: Tăng chỉ số cục bộ lên 1 cho mỗi ô nhớ của luồng f 4: else

5: if pkt.arrivaltime – T2 < T3then

7: else

8: Tăng chỉ số cục bộ lên 1 cho mỗi ô nhớ của luồng f 9: end if

10: end if

11: Flow[f].I ← Giá trị lớn nhất của các chỉ số cục bộ của luồng f 12: if Flow[f].I ≥ 0 then

13: RED−ENQUE(pkt) //pass pkt to the RED block 14: if RED drops pkt then

15: T2 ← pkt.arrivaltime 16: end if 17: else 18: Flow[f].T1 ← pkt.arrivaltime 19: drop(pkt) 20: end if 21: return

Chƣơng 3: PHÂN TÍCH GIẢI THUẬT RRED 3.1 Cấu hình mô phỏng

Để tính toán hiệu năng của thuật toán LF-RED trong khi có sự tấn công DoS tốc độ thấp, tôi sử dụng bộ mô phỏng NS-2 [21] và mã nguồn trong [4]. Một vài thuật toán quản lý hàng đợi động bao gồm RED [6], RED-PD [12], và DropTail [5] đƣợc sử dụng để so sánh.

Hình 3.1: Sơ đồ mạng trong các mô phỏng

Hình 3.1 biểu diễn sơ đồ mạng đƣợc sử dụng trong các mô phỏng. Trong đó, độ lớn hàng đợi của liên kết nghẽn cổ chai là 50 gói tin. Các thuật toán quản lý hàng đợi động (AQM) đƣợc sử dụng ở một hàng đợi của liên kết nghẽn cổ chai và các hàng đợi còn lại sử dụng thuật toán DropTail. Các dòng gói tin FTP sử dụng giao thức TCP phiên bản Newreno với kích thƣớc gói tin là 1000 bytes đƣợc tạo ra từ mỗi máy trong số 30 máy ngƣời dùng thông thƣờng. Lƣu lƣợng tấn công DoS tốc độ thấp đƣợc tạo ra bằng cách gửi các gói tin UDP với kích thƣớc là 50 bytes từ mỗi máy trong số 20 máy tấn công.

Các tham số của thuật toán LF-RED đƣợc thiết lập nhƣ sau: L = 2, N = 23, T* = 10ms, các tham số khác của thuật toán LF-RED có các giá trị mặc định của NS-2.

Đối với 3 tham số của của tấn công DoS tốc độ thấp, chúng ta chọn:

 Ta = 1s bởi vì theo A. Kuzmanovic và E. W. Knightly [10, 11] thì tấn công LDoS với Ta ≈ 1s sẽ đạt đƣợc hiệu quả nhất.

 Tb = 200ms.

 Rb = 0.25Mbps vì vậy Rb tổng cộng của 20 máy tấn công là 5Mbps bằng với băng thông của liên kết nghẽn cổ chai của mạng.

Với 3 tham số này chúng ta có thể tạo ra 3 tập hợp các mô phỏng để tính toán và so sánh hiệu năng của các thuật toán AQM. Với mỗi tập hợp các mô phỏng chúng ta giữ 2 tham số là hằng số và thay đổi giá trị tham số còn lại. Thay đổi 3 tham số này nhằm tìm hiểu khả năng mềm dẻo của thuật toán LF-RED nếu kẻ tấn công thay đổi cách thức gửi gói tin trong cuộc tấn công.

3.2 Phân tích chƣơng trình mô phỏng

Theo mã nguồn thuật toán LF-RED [4] chúng ta có bảng tƣơng ứng địa chỉ của các node nhƣ sau:

Bảng 3.1: Tương ứng địa chỉ của các node

Node Địa chỉ Router R0 0 Router R1 1 Server 2 User 1 3 User 2 4 … … User 30 32 Attacker 1 33 Attacker 2 34 … … Attacker 20 52

Các dòng gói tin TCP thông thƣờng từ User 1 đến User 30 và các dòng gói tin UDP tấn công từ Attacker 1 đến Attacker 20 đều có đích là node Server kết nối trực tiếp với Router R1.

Các dòng gói tin ánh xạ vào bộ nhớ nhƣ sau:

Dòng gói tin Địa chỉ nguồn Mức 0 Mức 1 User flow 1 3 5 8 User flow 2 4 6 10 User flow 3 5 7 12 User flow 4 6 8 14 User flow 5 7 9 16 User flow 6 8 10 18 User flow 7 9 11 20 User flow 8 10 12 22 User flow 9 11 13 1 User flow 10 12 14 3 User flow 11 13 15 5 User flow 12 14 16 7 User flow 13 15 17 9 User flow 14 16 18 11 User flow 15 17 19 13 User flow 16 18 20 15 User flow 17 19 21 17 User flow 18 20 22 19 User flow 19 21 0 21 User flow 20 22 1 0 User flow 21 23 2 2 User flow 22 24 3 4 User flow 23 25 4 6

User flow 24 26 5 8 User flow 25 27 6 10 User flow 26 28 7 12 User flow 27 29 8 14 User flow 28 30 9 16 User flow 29 31 10 18 User flow 30 32 11 20 Attacker flow 1 33 12 22 Attacker flow 2 34 13 1 Attacker flow 3 35 14 3 Attacker flow 4 36 15 5 Attacker flow 5 37 16 7 Attacker flow 6 38 17 9 Attacker flow 7 39 18 11 Attacker flow 8 40 19 13 Attacker flow 9 41 20 15 Attacker flow 10 42 21 17 Attacker flow 11 43 22 19 Attacker flow 12 44 0 21 Attacker flow 13 45 1 0 Attacker flow 14 46 2 2 Attacker flow 15 47 3 4 Attacker flow 16 48 4 6 Attacker flow 17 49 5 8

Attacker flow 18 50 6 10

Attacker flow 19 51 7 12

Attacker flow 20 52 8 14

Nhƣ vậy các dòng gói tin dùng chung bộ nhớ để lƣu thông tin nhƣ sau:

Bảng 3.3: Các dòng gói tin dùng chung bộ nhớ

Địa chỉ nguồn Địa chỉ nguồn Địa chỉ nguồn Mức 0 Mức 1

3 26 49 5 8 4 27 50 6 10 5 28 51 7 12 6 29 52 8 14 7 30 9 16 8 31 10 18 9 32 11 20 10 33 12 22 11 34 13 1 12 35 14 3 13 36 15 5 14 37 16 7 15 38 17 9 16 39 18 11 17 40 19 13 18 41 20 15 19 42 21 17

20 43 22 19 21 44 0 21 22 45 1 0 23 46 2 2 24 47 3 4 25 48 4 6

Bảng 3.3 cho thấy dòng gói tin có địa chỉ nguồn là 3 (sau đây gọi là dòng 3) dùng chung ô nhớ ở cả 2 mức với dòng gói tin có địa chỉ nguồn là 26 và 49 (49 là một dòng gói tin tấn công). Các dòng tấn công từ 33 đến 52 đã “đầu độc” các dòng thông thƣờng vì chúng dùng chung ô nhớ với các dòng thông thƣờng, chỉ có dòng 7 dùng chung ô nhớ với dòng 30, dòng 8 dùng chung ô nhớ với dòng là 31, dòng 9 dùng chung ô nhớ với dòng 32 là không bị “đầu độc”. Các nghiên cứu trong và ngoài nƣớc gần đây trong [1], [3], [15], [16] đều dựa trên ánh xạ các dòng gói tin vào bộ nhớ ở bảng 3.2 (tƣơng ứng với các giá trị mặc định L = 2, N = 23).

Khi thực hiện các mô phỏng, có thể thấy rằng tấn công từ chối dịch vụ phân tán tốc độ thấp vẫn đạt đƣợc hiệu quả đối với các dòng thông thƣờng bị “đầu độc” trên tất cả các mức. Các dòng gói tin thông thƣờng này liên tục bị rơi vào trạng thái timeout, vì vậy thông lƣợng của chúng bị giảm mạnh, gần nhƣ là bằng không trong khoảng thời gian tấn công (giá trị mặc định là từ thời điểm 120 (s) đến thời điểm 220 (s) của mỗi mô phỏng). Điều này có thể giải thích là do trong khoảng thời gian các nguồn tấn công phát tràn các gói tin vào mạng (chẳng hạn 200 (ms) đầu của mỗi giây), gói tin của các dòng thông thƣờng này đến router R0 sẽ bị loại bỏ vì giá trị T1 của các ô nhớ dùng chung đó đƣợc cập nhật thƣờng xuyên.

Đối với các dòng gói tin thông thƣờng không dùng chung ô nhớ với các dòng tấn công trên tất cả các mức (có thể dùng chung trên một số mức) thì có một mức mà ô nhớ ánh xạ của dòng này trên mức đó không dùng chung thông tin với bất kỳ dòng tấn công nào. Có 2 loại dòng kiểu này:

 Các dòng có ô nhớ này dùng chung thông tin với các dòng thông thƣờng khác: Đây là trƣờng hợp của dòng 7 và dòng 30, dòng 8 và dòng 31, dòng 9 và dòng 32. Kết quả thực hiện các mô phỏng cho thấy thông lƣợng tổng cộng của các dòng TCP là thông lƣợng của các dòng này. Nhƣ vậy khi 2 dòng thông thƣờng dùng chung ô nhớ để lƣu thông tin thì có thể hỗ trợ nhau tránh đƣợc ảnh hƣởng của tấn công DoS phân tán tốc độ thấp.

 Các dòng có ô nhớ này không dùng chung thông tin với bất kỳ các dòng thông thƣờng nào khác: Nhƣ vậy các dòng này có một vị trí ô nhớ không dùng chung

với bất kỳ dòng nào kể cả dòng tấn công cũng nhƣ dòng thông thƣờng. Trong các mô phỏng ở trên không xảy ra trƣờng hợp này. Nếu có không gian bộ nhớ lớn và áp dụng kỹ thuật hàm băm hoàn hảo (perfect hash function) để tránh xung đột thì có thể xảy ra trƣờng hợp này. Đối với các dòng này, chúng không bị timeout do nguyên nhân dùng chung ô nhớ với các dòng tấn công mà do khoảng thời gian phát tràn các gói tin của các nguồn tấn công đủ lớn, khi đó gói tin của các dòng này đến router R0 sẽ bị loại bỏ, dẫn đến hiện tƣợng timeout. Nhƣ vậy, tấn công DoS phân tán tốc độ thấp đồng bộ các dòng TCP thông thƣờng, làm cho chúng rơi vào trạng thái timeout, thông lƣợng tổng cộng bị giảm mạnh.

Tất cả những trình bày ở trên giải thích vì sao theo Nguyễn Quang Quý [15], khi tăng số lƣợng máy tấn công lên thì thuật toán LF-RED không hiệu quả, cụ thể thông lƣợng TCP tổng cộng bằng khoảng 5% băng thông của liên kết nghẽn cổ chai, vì khi đó các vị trí ô nhớ trên tất cả các mức đều bị “đầu độc”.

Mặt khác, có thể thấy rằng tác giả bài báo [3] sử dụng hàm băm trên 2 mức (L = 2) là mức 0 và mức 1 có vai trò tƣơng đƣơng nhau, có nghĩa là nếu 2 dòng gói tin ánh xạ ở mức 0 đến vị trí ô nhớ giống nhau thì chúng cũng ánh xạ ở mức 1 đến vị trí ô nhớ giống nhau. Vì vậy có thể sử dụng một mức băm thì kết quả cho ra vẫn tƣơng tự nhƣ trong trƣờng hợp 2 mức.

3.3 Các kết quả mô phỏng 3.3.1 Biến thiên Ta 3.3.1 Biến thiên Ta

Trong tập hợp các mô phỏng thứ nhất chúng ta thay đổi Ta trong khoảng từ 0.2 đến 2 (s) trong khi Tb và Rb đƣợc giữ nguyên:

Hình 3.2: Kết quả khi Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps) với thuật toán LF-RED và thực hiện mô phỏng với NS-2

3.3.2 Biến thiên Tb

Trong tập hợp các mô phỏng thứ hai chúng ta thay đổi Tb trong khoảng từ 0 đến 600 (ms) trong khi Ta và Rb đƣợc giữ nguyên:

Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps).

Giá trị Tb đƣợc thay đổi nhằm mục đích kiểm tra thuật toán LF-RED trong một khoảng thời gian để xác định sự ổn định và hiệu quả của nó.

Hình 3.3: Kết quả khi Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps) với thuật toán LF-RED và thực hiện mô phỏng với NS-2

3.3.3 Biến thiên Rb

Trong tập hợp các mô phỏng thứ ba chúng ta thay đổi Rb trong khoảng từ 0.1 đến 0.5 (Mbps) trong khi Ta và Tb đƣợc giữ nguyên:

Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, 0.15, …, 0.5] (Mbps).

Hình 3.4: Kết quả khi Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, …, 0.5] (Mbps) với thuật toán LF-RED và thực hiện mô phỏng với NS-2

3.3.4 Biến thiên T* khi kích thƣớc bộ nhớ nhỏ (N = 23)

Các gói tin của cùng một dòng TCP thông thƣờng (có kích thƣớc 1000 bytes) trong một đợt bùng nổ gói tin đến router R0 cách nhau một khoảng là:

(1040*8)/(10*1000*1000) = 0.832 (ms).

Ở đây có một điểm đáng chú ý là phần mềm NS-2 coi 1 (Mbps) = 1000*1000 (bíts/s).

a) Với Rb = 0.25 (Mbps)

Trong trƣờng hợp sử dụng tham số tấn công Rb = 0.25 (Mbps) thì các gói tin của cùng một dòng UDP tấn công (có kích thƣớc là 50 bytes) trong một đợt bùng nổ gói tin tấn công đến router R0 cách nhau một khoảng là:

ξ = (50*8)/(0.25*1000*1000) = 1.6 (ms).

Các mô phỏng với Ta = 1 (s), Tb = 200 (ms), Rb = 0.25 (Mbps) và cho T* thay đổi trong khoảng [0.4 ms; 19.2 ms] có kết quả nhƣ sau:

Hình 3.5: Số lượng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200 (ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED

Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) tăng mạnh khi T* < ξ và khi T* > 16 (ms). 16 (ms) tƣơng đƣơng với khoảng thời gian của 10 gói tin liên tiếp của cùng một dòng TCP thông thƣờng trong một đợt bùng nổ gói tin đến router R0 nếu giả sử rằng chỉ có một dòng thông thƣờng sử dụng hết băng thông của liên kết nghẽn cổ chai là 5 (Mbps).

Hình 3.6: Số lượng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200 (ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED

Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) giảm nhẹ khi T* < ξ và giảm mạnh khi T* > 16 (ms).

b) Với Rb = 0.5 (Mbps)

Nếu sử dụng tham số Rb = 0.5 (Mbps) thì các gói tin của cùng một dòng UDP tấn công (có kích thƣớc là 50 bytes) trong một đợt bùng nổ gói tin tấn công đến router R0 cách nhau một khoảng là:

ξ = 0.8 (ms).

Các mô phỏng với Ta = 1 (s), Tb = 200 (ms), Rb = 0.5 (Mbps) và cho T* thay đổi trong khoảng [0.4 ms; 19.2 ms] có kết quả nhƣ sau:

Hình 3.7: Số lượng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200 (ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED

Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) tăng mạnh khi T* < ξ và tăng nhẹ khi T* > 16 (ms).

Hình 3.8: Số lượng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200 (ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED

Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) giảm mạnh khi T* < ξ và khi T* > 16 (ms).

c) Với Rb = 0.1 (Mbps)

Nếu sử dụng tham số Rb = 0.1 (Mbps) thì ξ = 4 (ms).

Các mô phỏng với Ta = 1 (s), Tb = 200 (ms), Rb = 0.1 (Mbps) và cho T* thay đổi trong khoảng [0.4 ms; 19.2 ms] có kết quả nhƣ sau:

Hình 3.9: Số lượng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200 (ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED

Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) tăng mạnh khi T* < ξ và khi T* > 16 (ms).

Hình 3.10: Số lượng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200 (ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED

Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) giảm nhẹ khi T* < ξ và giảm mạnh khi T* > 16 (ms).

3.3.5 Biến thiên T* khi kích thƣớc bộ nhớ lớn hơn (N = 60)

Thay đổi giá trị hash_bins_ trong tệp leodos.tcl từ 23 thành 60 (N = 60) để hai dòng gói tin khác nhau ánh xạ vào các vị trí ô nhớ khác nhau thì thấy rằng khi T* > 16 (ms) không có sự thay đổi mạnh đối với số lƣợng các gói tin tấn công cũng nhƣ số lƣợng các gói tin TCP đi qua router R0 trong 1 (s). Dễ thấy là khi hash_bins_ = 23 (N = 23), trong mỗi giây sau khoảng thời gian phát tràn gói tin của các nguồn tấn công chỉ có các dòng TCP thông thƣờng 7, 30, 8, 31, 9, 32 hoạt động. Khi có hơn 10 gói tin của một trong các dòng này đến router R0, nếu có một gói tin của nó bị loại bỏ tại router R0 thì 10 gói tin theo sau của dòng đó đều bị nghi ngờ là gói tin tấn công vì T* > 16 (ms), giá trị F.I bị trừ đi và < 0 dẫn đến trạng thái timeout của dòng đó và router R0 ở trạng thái nhàn rỗi cho đến khi các nguồn tấn công phát tràn gói tin trong giây tiếp theo, độ lớn trung bình avg của hàng đợi bị giảm xuống dƣới giá trị minth. Khi các gói tin tấn công đƣợc phát tràn trở lại trong giây tiếp theo thì xác suất để khối RED loại bỏ các gói tin tấn công bằng 0 vì độ lớn trung bình của hàng đợi avg < minth, chính vì vậy

Một phần của tài liệu Cải thiện hiệu năng giải thuật RRED chống tấn công từ chối dịch vụ tốc độ thấp (Trang 35)

Tải bản đầy đủ (PDF)

(100 trang)