Các kết quả mô phỏng

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 43)

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 làm tăng mạnh số lƣợng gói tin tấn công đi qua router R0 trong 1 (s). Ngƣợc lại khi

hash_bins_ = 60 thì 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 có nhiều dòng hoạt động hơn nên không có sự thay đổi mạnh đối với các chỉ số ở trên.

a) Với Rb = 0.25 (Mbps)

Nếu sử dụng tham số Rb = 0.25 (Mbps) thì ξ = 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.11: 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* < ξ.

Hình 3.12: 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à khi T* > 16 (ms).

b) Với Rb = 0.5 (Mbps)

Nếu sử dụng tham số Rb = 0.5 (Mbps) thì ξ = 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.13: 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

Hình 3.14: 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 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.0 (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.15: 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

Hình 3.16: 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à khi T* > 16 (ms).

3.3.6 Đánh giá chung

Nhƣ vậy, có thể thấy trong trƣờng hợp băng thông của liên kết nghẽn cổ chai là 5 (Mbps) và để bảo vệ các gói tin TCP có kích thƣớc 1000 (bytes) thì T* < 16 (ms) và để đảm bảo hiệu năng của thuật toán LF-RED trong tất cả các trƣờng hợp mô phỏng thì T* > giá trị lớn nhất của ξ tức là T* > 4 (ms).

Chƣơng 4: ĐỀ XUẤT CẢI TIẾN 4.1 Cải tiến thứ nhất

4.1.1 Ý tƣởng

Có thể tăng hiệu năng của thuật toán LF-RED bằng cách đặt T*=10 (ms) trong những khoảng thời gian các nguồn tấn công phát tràn gói tin và giảm giá trị T* trong những khoảng thời gian còn lại. Để xác định những khoảng thời gian các nguồn tấn công phát tràn gói tin tôi sử dụng 1 biến đếm lƣu tổng số bít của các gói tin đến router R0 trong mỗi khoảng thời gian 10ms. Nếu thông lƣợng đến router R0 trong khoảng này lớn hơn hoặc bằng băng thông của liên kết nghẽn cổ chai thì có thể nghi ngờ đang có tấn công xảy ra. Trong trƣờng hợp không có tấn công xảy ra nhƣng thông lƣợng gói tin đến router R0 vẫn có thể lớn hơn hoặc bằng băng thông của liên kết nghẽn cổ chai bởi vì trong khoảng thời gian 10 (ms) đó có nhiều dòng gói tin TCP đang trong trạng thái khởi động chậm (slow start). Ngƣợc lại trong trƣờng hợp có tấn công xảy ra nhƣng thông lƣợng gói tin đến router R0 vẫn có thể nhỏ hơn băng thông của liên kết nghẽn cổ chai do cách chọn khoảng thời gian 10 (ms) để tính thông lƣợng. Để khối DF lọc gói tin tấn công hiệu quả thì không thể giảm giá trị T* nhỏ hơn 4 (ms) là khoảng thời gian lớn nhất giữa 2 gói tin liên tiếp của cùng một dòng tấn công trong tất cả các mô phỏng kể trên. Chẳng hạn nếu Rb = 0.1 (Mbps) thì khoảng thời gian giữa 2 gói tin liên tiếp của một dòng tấn công là 4 (ms), khi đó nếu đặt T* nhỏ hơn 4 (ms) thì khối DF sẽ lọc đƣợc ít gói tin tấn công hơn so với trƣờng hợp đặt T* lớn hơn 4 (ms). Cụ thể tôi cho T* thay đổi trong khoảng [6ms; 10ms].

4.1.2 Mô tả giải thuật

Giả mã của thuật toán LF-RED (T* updated) nhƣ sau: LFRED − ENQUE(pkt)

1: update_T(pkt)

2: f ← LFRED–FLOWHASH(pkt) 3: Tmax ← MAX(Flow[f].T1, T2)

4: if pkt.arrivaltime [Tmax, Tmax + T*] then

5: Giảm chỉ số cục bộ đi 1 cho mỗi ô nhớ của luồng f 6: else

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

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

11: RED−ENQUE(pkt) //pass pkt to the RED block 12: if RED drops pkt then

13: T2 ← pkt.arrivaltime 14: end if 15: else 16: Flow[f].T1 ← pkt.arrivaltime 17: drop(pkt) 18: end if

19: return

Thủ tục update_T(pkt) cập nhật giá trị T* dựa vào value (Mbps) là thông lƣợng gói tin đến router trong 10 (ms) trƣớc đó:  Nếu value > 7 (Mbps) thì T* = 10 (ms)  Nếu value (5 Mbps; 7 Mbps] thì T* = T* + 0.4 (ms)  Nếu T* > 10 (ms) thì T* = 10 (ms)  Nếu value [4 Mbps; 5 Mbps] thì T* = T* - 0.3 (ms)  Nếu T* < 6 (ms) thì T* = 6 (ms)  Nếu value < 4 (Mbps) thì T* = 6 (ms)

4.1.3 Đánh giá hiệu năng khi kích thƣớc bộ nhớ nhỏ (N = 23) a) Biến thiên Ta a) Biến thiên Ta

Kết quả nhƣ sau (giá trị hash_bins_ trong tệp leodos.tcl giữ nguyên là 23 khi so sánh thuật toán LF-RED (T*=10ms) và LF-RED (T* updated)):

Khi thay đổi Ta trong khoảng từ 0.2 đến 2 (s) trong khi Tb và Rb đƣợc giữ nguyên:

Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps).

Kết quả tại Ta = 0.5 (s):

Bảng 4.1: Kết quả tại Ta = 0.5 (s); Tb = 200 (ms); Rb = 0.25 (Mbps)

Kết quả LF-RED (T*=10ms) LF-RED (T* updated)

rate_f1_normal 600.680000 600.600000 rate_f1_attack 588.810000 596.670000 nth_f1 0.980239 0.993457 rate_f2_attack 40.630000 27.300000 Kết quả tại Ta = 1.0 (s): Bảng 4.2: Kết quả tại Ta = 1 (s); Tb = 200 (ms); Rb = 0.25 (Mbps)

Kết quả LF-RED (T*=10ms) LF-RED (T* updated)

rate_f1_normal 600.68000 600.600000 rate_f1_attack 597.220000 598.750000

nth_f1 0.994240 0.996920

rate_f2_attack 17.940000 17.510000 Trong đó:

rate_f1_normal là thông lƣợng trung bình (packets/s) của các dòng TCP thông thƣờng đi qua liên kết nghẽn cổ chai khi không có tấn công DoS tốc độ thấp xảy ra.

rate_f1_attack là thông lƣợng trung bình (packets/s) của các dòng TCP thông thƣờng đi qua liên kết nghẽn cổ chai khi có tấn công DoS tốc độ thấp xảy ra.

nth_f1 là tỉ lệ bảo vệ thành công lƣu lƣợng TCP thông thƣờng, nó bằng

rate_f1_attack/rate_f1_normal.

rate_f2_attack là thông lƣợng trung bình (packets/s) của các dòng tấn công đi qua liên kết nghẽn cổ chai khi có tấn công DoS tốc độ thấp xảy ra.

b) Biến thiên Tb

Khi 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).

Kết quả tại Tb = 160 (ms):

Bảng 4.3: Kết quả tại Tb = 160 (ms); Ta = 1 (s); Rb = 0.25 (Mbps)

Kết quả LF-RED (T*=10ms) LF-RED (T* updated)

rate_f1_normal 600.680000 600.600000 rate_f1_attack 594.770000 597.780000 nth_f1 0.990161 0.995305 rate_f2_attack 24.630000 15.580000 Kết quả tại Tb = 360 (ms): Bảng 4.4: Kết quả tại Tb = 360 (ms); Ta = 1 (s); Rb = 0.25 (Mbps)

Kết quả LF-RED (T*=10ms) LF-RED (T* updated)

rate_f1_normal 600.680000 600.600000 rate_f1_attack 596.630000 598.300000

nth_f1 0.993258 0.996170

c) Biến thiên Rb

Khi 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).

Kết quả tại Rb = 0.35 (Mbps):

Bảng 4.5: Kết quả tại Rb = 0.35 (Mbps); Ta = 1 (s); Tb = 200 (ms)

Kết quả LF-RED (T*=10ms) LF-RED (T* updated)

rate_f1_normal 600.680000 600.600000 rate_f1_attack 596.070000 598.390000 nth_f1 0.992325 0.996320 rate_f2_attack 14.540000 14.890000 Kết quả tại Rb = 0.475 (Mbps): Bảng 4.6: Kết quả tại Rb = 0.475 (Mbps); Ta = 1 (s); Tb = 200 (ms)

Kết quả LF-RED (T*=10ms) LF-RED (T* updated)

rate_f1_normal 600.680000 600.600000 rate_f1_attack 595.950000 596.650000

nth_f1 0.992126 0.993423

4.2 Cải tiến thứ hai 4.2.1 Ý tƣởng 4.2.1 Ý tƣởng

Cải tiến thứ hai mà tôi đề xuất đối với thuật toán lọc tốc độ thấp LF-RED đó là phân biệt một gói tin đến là gói tin tấn công hay gói tin thông thƣờng dựa vào cơ chế lùi thời gian phát lại gói tin theo hàm số mũ của giao thức TCP. Để phân biệt đƣợc thì các dòng gói tin cần đƣợc lƣu thông tin vào các vị trí ô nhớ khác nhau, vì vậy tôi thay đổi giá trị của biến hash_bins_ trong tệp leodos.tcl từ 23 thành 31. Trong thực tế khi các router có dung lƣợng bộ nhớ đủ lớn và sử dụng hàm băm hoàn hảo thì chúng ta có thể thực hiện đƣợc việc này. Khi hash_bins_ = 31, ánh xạ các dòng gói tin vào bộ nhớ nhƣ sau:

Bảng 4.7: Ánh xạ các dòng gói tin vào bộ nhớ với hash_bins_=31

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 24 User flow 10 12 14 26 User flow 11 13 15 28 User flow 12 14 16 30 User flow 13 15 17 1 User flow 14 16 18 3 User flow 15 17 19 5

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

Attacker flow 10 42 13 24 Attacker flow 11 43 14 26 Attacker flow 12 44 15 28 Attacker flow 13 45 16 30 Attacker flow 14 46 17 1 Attacker flow 15 47 18 3 Attacker flow 16 48 19 5 Attacker flow 17 49 20 7 Attacker flow 18 50 21 9 Attacker flow 19 51 22 11 Attacker flow 20 52 23 13 Các dòng gói tin dùng chung bộ nhớ để lƣu thông tin nhƣ sau:

Bảng 4.8: Các dòng gói tin dùng chung bộ nhớ với hash_bins_=31

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

3 34 5 8 4 35 6 10 5 36 7 12 6 37 8 14 7 38 9 16 8 39 10 18 9 40 11 20 10 41 12 22 11 42 13 24

12 43 14 26 13 44 15 28 14 45 16 30 15 46 17 1 16 47 18 3 17 48 19 5 18 49 20 7 19 50 21 9 20 51 22 11 21 52 23 13 22 24 15 23 25 17 24 26 19 25 27 21

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 43)

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

(100 trang)