Với tất cả những phân tích ở trên, thuật toán thực hiện đƣợc thiết kế nhƣ sau: Dữ liệu gói tin đi vào đƣợc kiểm tra các điều kiện là các điều kiện bẫy thời gian, bẫy tần suất, trạng thái tối thiểu. Tùy theo kết quả kiểm tra sau cùng của các điều kiện trên mà hệ thống sẽ sinh ra giá trị ƣu tiên F(i) cho mỗi kết nối phù hợp. Dựa theo giá
65 trị ƣu tiên mà hệ thống sẽ quyết định đẩy gói tin đó vào hàng đợi High Queue hay Low Queue.
Để minh họa đƣợc tốt nhất hiệu quả của thuật toán mới trên mô hình dữ liệu mới sẽ thể hiện ra sao trong trƣờng hợp website có tấn công xảy ra. Chúng tôi dựa trên các kiểu tấn công đã biết [4] nhƣng có chỉnh sửa để phù hợp với mô hình dữ liệu mới – do không tuân theo mô hình ON – OFF nên các ngƣỡng và cách tham chiếu các giá trị sẽ có sự khác biệt. Ta giả sử tất cả các kiểu tấn công, hacker có thể dễ dàng bắt chƣớc – do kẻ tấn công có thể tái tạo lại gói tin, tốc độ gửi dƣới bất kỳ dạng nào. Có tất cả bốn dạng tấn công chúng tôi tập trung thử nghiệm: “Simple flooding”, “High-burst slow”, “Low-burst fast”, “Low rate DDoS” hay Shrew Attack.
Với mỗi kiểu tấn công, sẽ có sự khác nhau về tần suất truyền tin, thời gian truyền tin cũng nhƣ cách tổ chức các nhóm nhỏ máy tính zombie tấn công cũng khác
66 nhau. Chúng tôi đi chi tiết vào mỗi dạng tấn công cụ thể, đặc điểm chi tiết nhận dạng chúng.
67
CHƢƠNG IV: MÔ PHỎNG VÀ ĐÁNH GIÁ 4.1 Thực hiện mô phỏng
4.1.1 Mô hình mô phỏng
Để phục vụ phép thử nghiệm ngắn gọn và tập trung vào tƣơng tác giữa trình duyệt và máy chủ web, chúng tôi chọn mô hình mô phỏng có cấu trúc cơ bản nhƣ hình 32. Sở dĩ chúng tôi chọn mô hình đơn giản nhƣ vậy trong khi thực tế từ ngƣời dùng đến máy chủ web, gói tin phải đi qua rất nhiều chặng mạng với cấu trúc khác nhau, mạng chứa máy chủ Web cũng có thể trang bị nhiều các lớp bảo vệ, các thiết bị hỗ trợ cân bằng tải…. tuy nhiên chúng không làm suy giảm lƣu lƣợng cần truyền tải thực sự từ trình duyệt lên web mà chỉ tăng độ trễ của gói tin. Theo những thống kê nghiên cứu thì độ trễ này (~20ms – 60ms) không đáng kể so với thời gian ngƣời dùng đọc dữ liệu. Do đó chúng tôi giả sử các chặng đƣờng mạng đó là môi trƣờng Internet chung trong mô hình chúng tôi sử dụng và không tính thêm thời gian trễ vào các ngƣỡng thời gian thử thách của giải pháp. Trong mô hình mô phỏng này chúng tôi cũng giả sử máy chủ Web có hỗ trợ Cache.
Hình 32 Mô hình mô phỏng
4.1.2 Chƣơng trình mô phỏng, yêu cầu thiết bị và cấu hình
Tất cả các nghiên cứu thực nghiệm chúng tôi đều tiến hành trên máy tính với các chƣơng trình mô phỏng bằng phần mềm. Thông số cơ bản của máy tính chúng tôi dùng là:
68 CPU: Intel Core i5-3210M 2.5 Ghz
RAM: 4 GB
Hệ điều hành: Ubuntu 12.04 LTS Precis Pangolin Video Card onboard
Để có thể mô phỏng đƣợc tất cả các tham số về độ trễ, thời gian gửi tin, độ lớn mỗi gói, có sinh dữ liệu tự động, mô phỏng cả trƣờng hợp Webserver có hỗ trợ cache… phải có phần cứng hỗ trợ. Điều mà không khả thi nếu triển khai toàn bộ các thành phần thiết bị cần thiết nhƣ trong nghiên cứu. Vì vậy chúng tôi chọn sử dụng phần mềm mô phỏng, trong số đó NS-2.29 [19] là công cụ mô phỏng chính. Do đây là phần mềm miễn phí, hỗ trợ tất cả các chuẩn giao thức cơ bản, hỗ trợ cache, nhiều thƣ viện mở rộng và có khả năng tùy biến cách thức gửi tin rất tốt. Chúng tôi đã tùy chỉnh cách thức gửi tin để phù hợp với lƣu lƣợng ngƣời dùng hợp lệ trong mô hình mới.
Ngoài ra để đo bộ nhớ chúng tôi sử dụng dbstat là một công cụ thống kê bộ nhớ trong Linux rất trực quan và có thể chọn thời gian đo, hỗ trợ xuất file định dạng phù hợp.
Để minh họa các kết quả thông qua đồ thị trực quan chúng tôi sử dụng Gnuplot phiên bản 4.6 chạy trên Ubuntu, hoặc dùng Gnuplot trên Window phiên bản 5.0 để hỗ trợ tiếng Việt khi trình bày thông tin các nhãn. Các kết quả chúng tôi lấy từ thống kê bên môi trƣờng Ubuntu.
4.1.3 Kịch bản mô phỏng
Để minh họa dạng tấn công DDos, sẽ rất khó để có thể thực hiện hàng triệu truy vấn trên một phần mềm mô phỏng. Không làm mất tính tổng quát của chƣơng trình thử nghiệm, chúng tôi thu nhỏ quy mô hệ thống đi khoảng 1000 lần. Băng thông thiết lập giữa Router của nhà cung cấp dịch vụ và máy chủ Web đặt là 1.024 Mbps [ tƣơng đƣơng 1 Gbps trong thực tế] và băng thông tối đa giữa bất kỳ máy của ngƣời dùng hợp lệ với máy chủ dao động từ 128Kbps đến 512Kbps đƣờng upload và 1.024 Mbps đƣờng download.
Với cách thu nhỏ nhƣ trên thì khoảng 8 kẻ tấn công [tƣơng đƣơng 8000 máy tính Zombie trong thực tế] có băng thông đƣờng upload tối đa 128Kbps cũng có thể
69 làm quá tải băng thông Webserver trong các trƣờng hợp tấn công Simple Flooding – không có biện pháp phòng chống.
Số ngƣời dùng hợp lệ tăng từ 1 đến 100 [tƣơng đƣơng 1000 đến 100.000 ngƣời dùng trong thực tế], số lƣợng kẻ tấn công cũng có thể thay đổi để thử nghiệm tính hiệu quả của thuật toán trong các trƣờng hợp lƣu lƣợng tấn công và lƣu lƣợng hợp lệ xen kẽ. Trong các trƣờng hợp có kẻ tấn công, chúng tôi sử dụng 3 ngƣời dùng hợp lệ có băng thông kết nối 128kbps [tƣơng đƣơng 3000 máy ngoài thực tế]
Chúng tôi giả sử rằng trong trƣờng hợp bình thƣờng máy chủ có thể phục vụ 200 kết nối của ngƣời dùng hợp pháp có băng thông 128kbps tại một thời điểm.
Kích thƣớc gói tin là 200 bytes. Đặt trọng số hàng đợi High Queue: 0.8, Low Queue: 0.2. Giá trị chọn phản ánh mức độ ƣu tiên trong xử lý gói tin. Trọng số chọn tƣơng tự với cách chọn của Paolo Losi [18] với hai luồng xử lý. Với những kết nối chuyển vào hàng đợi ƣu tiên cao cần có nhiều không gian hơn để có thể lƣu trữ và chuyển tiếp trong trƣờng hợp server phải yêu cầu phục vụ lƣợng lớn truy vấn. Những kết nối bị nghi ngờ chuyển vào hàng đợi ƣu tiên thấp có thể bị loại bỏ nếu lƣợng dữ liệu vào là quá lớn. Do đó chỉ nên dành một khoảng nhỏ chứa những dữ liệu chƣa thực sự cần thiết. Điểm quan trọng ở đây là giả sử bộ nhớ hàng đợi sẽ tăng theo lƣợng gói tin gửi và phụ thuộc vào bộ nhớ RAM thực lƣu trữ của máy tính. Do vậy trong các trƣờng hợp bình thƣờng, ta giả thiết là các hàng đợi này phục vụ đƣợc tất cả các kết nối mà không bị đầy dữ liệu.
4.1.4 Tham số đo đạc
Với từng kịch bản sẽ tiến hành đo những tham số thể hiện đặc tính bản chất của kết quả hƣớng đến.
Với kịch bản xác định tính hiệu quả của phƣơng pháp cũ với mô hình dữ liệu mới, chúng ta cần xác định đƣợc: Tỉ lệ phát hiện sai truy cập hợp pháp là tấn công trong các trƣờng hợp truy cập thông thƣờng = tỉ lệ truy cập thành công của ngƣời dùng bình thƣờng khi không có tấn công. Phát hiện sai ở đây nghĩa là khi sinh ra dữ liệu của ngƣời dùng bình thƣờng rồi tiến hành thử kết nối đến máy chủ Web thì phiên truy cập không thành công – do bị bộ lọc ngăn lại.
Với kịch bản xác định tính hiệu quả của phƣơng pháp mới với mô hình dữ liệu mới chúng tôi tiến hành đo đạc:
70 Tỉ lệ phiên truy cập thành công của ngƣời dùng hợp lệ trong các trƣờng hợp không có kẻ tấn công nào, có kẻ tấn công với các phƣơng pháp khác nhau, tốc độ khác nhau. Tỉ lệ phiên truy cập thành công đƣợc tính theo công thức:
số lần phiên người dùng hợp pháp được đi qua / số phiên thử nghiệm.
Tỉ lệ sử dụng bộ nhớ, CPU của bộ lọc so với trung bình các phƣơng pháp khác và mức chấp nhận đƣợc của máy chủ
Tỉ lệ ảnh hƣởng đến băng thông mạng hay thông lƣợng trung bình.
4. 2 Tiến hành mô phỏng
4.2.1 Kịch bản 1: Áp dụng mô hình lƣu lƣợng mới
a) Sử dụng mô hình lƣu lƣợng mới với bộ lọc cũ:
Kịch bản phương pháp cũ sử dụng mô hình lưu lượng cũ: Trong 8 tiếng, tác giả thiết kế 3 client hợp lệ lần lƣợt kết nối tới server vào các thời điểm khác nhau. Các kết nối hợp lệ này tuân theo thống kê ngƣỡng của mô hình Choi&Lim: thời gian nghỉ ngẫu nhiên trong phạm vi từ 5 giây đến 30 giây và lƣu lƣợng ngẫu nhiên trong khoảng từ 30KB đến 100KB. Sau đó tác giả tiến hành đo mẫu tỉ lệ phiên 3 client truy cập thành công trong các trƣờng hợp: không có tấn công xảy ra, có tấn công dạng đơn giản (Simple Flooding), có tấn công dạng phức tạp (Low-rate). Kết quả thu đƣợc tác giả so sánh tỉ lệ phiên truy cập thành công của client hợp lệ khi có áp dụng bộ lọc WDA [4] và khi không áp dụng bộ lọc WDA để tìm độ hiệu quả của thuật toán.
Kịch bản phương pháp cũ sử dụng mô hình lưu lượng mới: Trong 8 tiếng, chúng tôi cũng sử dụng 3 client hợp lệ lần lƣợt kết nối tới server vào các thời điểm khác nhau. Các kết nối hợp lệ này sử dụng ngƣỡng thống kê theo mô hình Lee &
Gupta. Chúng tôi tiến hành xây dựng lại cách gửi tin và tƣơng tác của các truy vấn
hợp lệ tới server. Sau đó chúng tôi tiến hành đo mẫu tỉ lệ phiên 3 client truy cập thành công trong các trƣờng hợp: không có tấn công xảy ra, có tấn công dạng đơn giản (Simple Flooding), có tấn công dạng phức tạp (Low-rate). Kết quả thu đƣợc chúng tôi so sánh tỉ lệ phiên truy cập thành công của client hợp lệ khi có áp dụng bộ lọc WDA [4] để tính toán tỉ lệ phát hiện sai sót truy cập hợp lệ là tấn công của WDA có sử dụng mô hình lƣu lƣợng mới.
71 Chúng tôi tiến hành thử nghiệm theo nguyên tắc: Áp dụng bộ lọc cũ với trƣờng hợp đặc tính lƣu lƣợng gửi lên của ngƣời dùng hợp pháp đƣợc thay đổi theo mô hình mới. Chúng tôi tăng dần số lƣợng ngƣời dùng hợp pháp và không có kẻ tấn công nào. Kết quả thu đƣợc minh họa qua đồ thị 33 và 34
+ Với trƣờng hợp ngƣời dùng sử dụng băng thông 128kbps
Hình 33 Hiệu quả của thuật toán cũ trên mô hình mới trƣờng hợp 1 + Với trƣờng hợp ngƣời dùng sử dụng băng thông 512kbps:
Hình 34 Hiệu quả của thuật toán cũ trên mô hình mới trƣờng hợp 2 Nhận xét:
72 Trong trƣờng hợp sử dụng ngƣời dùng có băng thông 128Kbps thì khi chúng tôi tăng số lƣợng ngƣời dùng lên 100, tỉ lệ truy cập thành công của ngƣời dùng bị suy giảm nghiêm trọng < 50% - hình 33 - tức tỉ lệ phát hiện sai của WDA tăng lên. Để chắc chắn hơn, chúng tôi sử dụng ngƣời dùng có băng thông 512kbps – hình 34 mức gần nhất với lƣu lƣợng thực tế hiện nay thì chỉ cần 20 ngƣời dùng cũng đủ làm tỉ lệ truy cập thành công tụt giảm thảm hại tới 40%. Điều này lý giải rằng, với những lƣu lƣợng gửi lên càng cao mặc dù hợp pháp thì vẫn bị WDA phát hiện nhầm lẫn đó là dạng tấn công càng cao.
b) Sử dụng mô hình lƣu lƣợng mới với bộ lọc mới:
Kịch bản phương pháp mới sử dụng mô hình lưu lượng mới: Trong 8 tiếng, chúng tôi cũng sử dụng 3 client hợp lệ lần lƣợt kết nối tới server vào các thời điểm khác nhau. Các kết nối hợp lệ này sử dụng ngƣỡng thống kê theo mô hình Lee &
Gupta. Chúng tôi tiến hành xây dựng lại cách gửi tin và tƣơng tác của các truy vấn
hợp lệ tới server. Tiếp tục chúng tôi tiến hành đo mẫu tỉ lệ phiên 3 client truy cập thành công trong các trƣờng hợp: không có tấn công xảy ra, có tấn công dạng đơn giản (Simple Flooding), có tấn công dạng phức tạp (Low-rate). Kết quả thu đƣợc chúng tôi so sánh tỉ lệ phiên truy cập thành công của client hợp lệ khi có áp dụng bộ lọc mới TLF01. Kết quả này so sánh với kết quả của phƣơng pháp WDA sử dụng mô hình lƣu lƣợng mới bên trên để định lƣợng sự khác biệt và hiệu quả của phƣơng pháp TLF01 so với WDA.
Chúng tôi tiến hành thử nghiệm theo nguyên tắc: Áp dụng bộ lọc mới chúng tôi xây dựng với trƣờng hợp dữ liệu ngƣời dùng hợp pháp đƣợc thay đổi các thuộc tính theo mô hình mới. Chúng tôi tăng dần số lƣợng ngƣời dùng hợp pháp và không có kẻ tấn công nào. Kết quả thu đƣợc minh họa qua đồ thị 35 và 36:
73 Hình 35 Hiệu quả của thuật toán mới trên mô hình mới trƣờng hợp 1
+ Với trƣờng hợp ngƣời dùng sử dụng băng thông 512kbps:
Hình 36 Hiệu quả của thuật toán mới trên mô hình mới trƣờng hợp 2 Nhận xét:
74 Rõ ràng khi thay đổi bộ lọc WDA thành TLF01, tỉ lệ phát hiện sai sót giảm đi nhanh chóng, số lƣợng phiên truy cập thành công không bị suy giảm nhiều – hình 35 mặc dù có tăng số lƣợng ngƣời dùng truy cập đồng thời hoặc chỉ bị suy giảm đáng kể nếu tăng băng thông gửi lên đến server cho khoảng 100 kết nối cùng lúc – hình 36. Rõ ràng với những trƣờng hợp số lƣợng kết nối của ngƣời dùng hợp pháp đông đột biến thì không thể có phƣơng pháp nào chống đƣợc vì đây là những kết nối của toàn bộ ngƣời dùng thật.
4.2.4 Kịch bản 2: Áp dụng bộ lọc mới cho các dạng tấn công
TH 1: Áp dụng bộ lọc TLF01 vào dạng tấn công Simple Flood, so sánh với WDA
Khi sử dụng mô hình dữ liệu mới, thì WDA phát hiện nhầm ngƣời dùng hợp lệ khá giống kẻ tấn công Simple Flood – vì không còn thời gian OFF nên tỉ lệ truy cập thành công suy giảm khá nhanh. Với khoảng 100 kẻ tấn công là mức đáp ứng của máy chủ suy giảm khá nhanh do tỉ lệ nhầm lẫn lớn giữa kẻ tấn công và ngƣời dùng bình thƣờng – lƣợng dữ liệu truyền tải phiên truy cập giữa ngƣời dùng bình thƣờng và kẻ tấn công không có sự khác biệt nhiều. Nhƣng với TLF01 thì vẫn đáp ứng tốt do đã loại bỏ đƣợc cơ chế tấn công dạng toàn bộ dữ liệu trong thời gian ngắn. Thống kê kết quả mô phỏng minh họa bên dƣới
75 Hình 37 Mô phỏng hiệu quả về tỉ lệ phát hiện đúng và băng thông của TLF01 với
dạng tấn công Simple Flooding.
TH2: High-burst-slow
Kết quả mô phỏng đƣợc minh họa ở đồ thị hình dƣới: tham số đo là tỉ lệ truy cập thành công và lƣu lƣợng giảm tải đƣợc khi áp dụng bộ lọc
76 Hình 38 Mô phỏng hiệu quả về tỉ lệ phát hiện đúng và băng thông của TLF01 với
dạng tấn công High-Burst-Slow Nhận xét:
Với trƣờng hợp này, kẻ tấn công gửi nhiều dữ liệu nhƣng tuân theo quy luật thời gian vẫn đảm bảo phiên truy cập không quá ngắn nhƣng lƣợng dữ liệu lại rải đều và cố gắng tiệm cận mức đỉnh để không coi là giả mạo. Kiểu tấn công này thì thuật toán bẫy tần suất của TLF01 vẫn đáp ứng đƣợc 58% tỉ lệ truy cập thành công, mặc dù có sự suy giảm đáng kể khi số lƣợng kẻ tấn công tăng lên. Nguyên nhân là khi số lƣợng kẻ tấn công tăng lên với cùng đặc tính thì xác suất phát hiện sai hoặc để lọt lƣới tấn công là truy cập hợp pháp tăng lên. Trong khi một trong số các kết nối bình thƣờng có thể bị nhầm sang một trong số các dạng tấn công.
TH3: Low-burst-fast
Kết quả mô phỏng đƣợc minh họa ở đồ thị hình dƣới: tham số đo là tỉ lệ truy cập thành công và lƣu lƣợng giảm tải đƣợc khi áp dụng bộ lọc
77 Hình 39 Mô phỏng hiệu quả về tỉ lệ phát hiện đúng và băng thông của TLF01 với