Vấn đề chọn lựa đúng một mô hình dữ liệu chuẩn ảnh hƣởng rất lớn đến độ chính xác của một phƣơng pháp đề xuất có sử dụng kết quả thống kê của mô hình đó. Thông qua những thống kê và kết quả nghiên cứu đã đƣợc chứng minh tính đúng đắn, chúng tôi chọn mô hình Lee&Gupta [14] và một số kết quả thống kê mới nhất từ các mô hình khác để bổ sung những thuộc tính đầy đủ của hành vi truy cập hợp lệ của ngƣời dùng Web ngày nay.
38
CHƢƠNG III: ĐỀ XUẤT CẢI TIẾN VÀ GIẢI PHÁP 3.1 Phân tích
Bài toán đặt ra từ đầu là nghiên cứu giải pháp để giảm thiểu tấn công từ chối dịch vụ phân tán vào các Website. Chúng tôi cũng đã chọn phƣơng pháp dựa theo đặc tính lƣu lƣợng dữ liệu truy vấn Webserver để tìm cách phân loại lƣu lƣợng bình thƣờng và lƣu lƣợng của kẻ tấn công khi máy chủ có lƣợng lớn kết nối cùng truy cập vào một lúc. Để hiểu rõ hơn đƣợc những phần nào là cải tiến chúng tôi thực hiện, phần nào đã có các kết quả từ nghiên cứu khác, chúng tôi trình bày những hạn chế khi áp dụng mô hình dữ liệu mới vào bộ lọc cũ, hiệu năng suy giảm cụ thể ra sao, chúng tôi đã cải tiến và tạo ra quy trình xử lý mới nhƣ thế nào trong những mệnh đề logic thể hiện rõ bài toán cần thực hiện. Mục tiêu của chúng tôi là từ những thay đổi thuộc tính trong đặc tính của lƣu lƣợng, chúng tôi tìm cách xây dựng cách thức xử lý mới để so sánh, nhận dạng từng thuộc tính của lƣu lƣợng theo những trọng số phù hợp. Những ý tƣởng đƣợc đề xuất từ khi bắt đầu nghiên cứu cho đến khi cho ra kết quả cũng sẽ đƣợc mô tả cụ thể nội dung, cách hiện thực hóa, các vấn đề nảy sinh và cách giải quyết vấn đề. Ngoài ra, trƣớc khi chúng tôi thực hiện nghiên cứu này thì đã có một số ý tƣởng sử dụng mô hình dữ liệu cũ cũng nhƣ theo cách tiếp cận khác cùng giải quyết vấn đề. Do vậy, chúng tôi thực hiện thêm một việc đó là so sánh các kiến trúc này với kiến trúc do chúng tôi xây dựng lên.
3.1.1 Bài toán cần chứng minh
Thông qua cách tiếp cận về đánh giá độ tin cậy khi xây dựng giải pháp mới từ [4,9,17,21] với những mô hình dữ liệu đƣợc chọn và cùng mục đích là phân loại lƣu lƣợng, ngƣời ta rút ra kết luận rằng: Phƣơng pháp mới đề xuất đƣợc gọi là có tính hiệu quả nếu nó chứng minh đƣợc các điều kiện cơ bản sau
Chứng minh với mô hình dữ liệu hành vi mới, phƣơng pháp giải quyết cũ
không còn chính xác hoặc không hiệu quả.
Chứng minh với phương pháp mới đề xuất, có thể giải quyết được cả hai
trường hợp: cho qua với các lƣu lƣợng hợp lệ mới, cũ và ngăn chặn hiệu quả
39 Để chứng minh các mệnh đề trên chúng ta có sử dụng hai phƣơng pháp: suy diễn toán học [6] hoặc chứng minh thông qua thực nghiệm Heuristic [4]. Chúng tôi chọn cách chứng minh thông qua thực nghiệm. Do khi áp dụng các mô hình dữ liệu khác nhau đƣợc thống kê theo nhiều phân phối khác nhau Lognormal, Gamma, Weibull… nên để xác suất tìm đƣợc mối liên hệ giữa các phƣơng pháp và chứng minh thông qua toán học không phải dễ dàng.
3.1.2 Mệnh đề 1
Khi áp dụng mô hình dữ liệu hành vi Choi&Lim vào phương pháp cũ nhƣ của E.Doron là hiệu quả nhƣng nếu áp dụng mô hình dữ liệu hành vi mới của Lee & Gupta vào phƣơng pháp đó chưa chắc là hiệu quả.
Hay viết theo quan điểm toán học logic thì:
Một hành vi là hợp lệ trong mô hình Choi & Lim cũng phải hợp lệ trong mô
hình Lee & Gupta. Trong khi một hành vi hợp lệ trong mô hình Lee & Gupta chƣa
chắc là hợp lệ trong mô hình Choi&Lim.
Và thực chất là khi áp dụng mô hình mới Lee&Gupta [14] vào kiến trúc phần mềm cũ WDA [4], tỉ lệ phát hiện sai tăng lên nhanh chóng. Sở dĩ nhƣ vậy là bởi:
Thứ nhất, các nghiên cứu của Choi&Lim đã giả thuyết là bỏ qua các truy vấn tự động trong thời gia OFF lúc mà ngƣời dùng đọc thông tin trên website. Quá trình ON – OFF tách bạch thành hai khoảng thời gian riêng biệt. Thời kỳ ON trình duyệt sẽ tải toàn bộ dữ liệu và hiển thị thông tin đến ngƣời dùng. Thời kỳ OFF là thời kỳ ngƣời dùng đọc dữ liệu không có thêm dữ liệu truy vấn. Những thông số đo đƣợc cũng dựa trên phân loại thống kê này. Nhƣng thống kê cho thấy, kết quả của mô hình Lee&Gupta là các kết quả mở rộng của mô hình trƣớc, có sự đo đạc băng thông, lƣu lƣợng bao quát và mới hơn, sử dụng chung một thuật toán đánh giá nên dĩ nhiên một hành vi sử dụng ít băng thông hơn, có thời gian nghỉ tƣơng đƣơng sẽ là hợp lệ trong mô hình mới. Các kết quả thống kê đặc điểm lƣu lƣợng trong những trƣờng hợp không có phát sinh các truy vấn Ajax hoặc RSS là gần nhƣ tƣơng đƣơng mặc dù lƣu lƣợng các đối tƣợng trong mô hình thống kê mới có sự chênh lệch và lớn hơn so với trƣớc. Thống kê bên dƣới chứng tỏ luận cứ này:
40 Hình 13 Kết quả thống kê thuộc tính nổi bật của mô hình Choi & Lim [15]
Hình 14 Thống kê thuộc tính nổi bật của mô hình Lee&Gupta [14]
Thứ hai, với các dạng truy vấn mà ngay cả trong thời gian ngƣời dùng đọc, trình duyệt cũng có thể tự động lấy thêm dữ liệu – nhƣ cập nhật định kỳ RSS, tự động gửi thêm dữ liệu thống kê đến các trang Web thống kê quảng cáo…thì rõ ràng cách phân loại của Choi & Lim đã bị vi phạm, lƣợng dữ liệu truy vấn và thời gian OFF không còn phân biệt mà sẽ trộn lẫn nhau, dẫn đến các kết quả thống kê khác biệt. Dữ liệu gửi lên trong mô hình mới nhiều hơn và quãng thời gian thực sự là OFF ngắn hơn nhiều lần cũng nhƣ bị chia nhỏ trong cả phiên truy nhập. Minh họa sau sẽ giải thích điều đó:
Hình 15 Minh họa mô hình ON – OFF của Choi & Lim
41 Hình 16 Minh họa mô hình dữ liệu mới
Hình 15 là mô hình ON-OFF theo nghiên cứu của Choi&Lim có mức phân hóa rõ rệt thời gian tải dữ liệu ON và thời gian nghỉ OFF. Trong khi trong hình 16, thời gian tải dữ liệu bị chèn xen kẽ vào thời gian nghỉ khi ngƣời dùng đọc trang. Nhƣ vậy, khó có thể so sánh hai ngƣỡng băng thông gửi lên nhƣ nhau trong cùng một khoảng thời gian là một phiên Web-request.
Kịch bản của mô hình 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ờ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ả sẽ 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.
Để chứng minh đƣợc tỉ lệ sai sót lớn khi áp dụng mô hình dữ liệu mới vào phƣơng pháp cũ, chúng tôi sẽ giữ nguyên kịch bản mô phỏng nhƣng thay đổi cách kết nối của 3 client hợp lệ vào server trong các thời điểm khác nhau đó. Trong thời gian nghỉ ngẫu nhiên nhƣ kịch bản cũ, chúng tôi vẫn sẽ cho phép client này thiết lập kết nối mới tới server nhƣ mô hình Lee&Gupta, đồng thời lƣợng dữ liệu upload cũng lớn hơn từ 50KB đến 150KB hoặc 2MB đến 6MB.
Kết quả thực nghiệm trong thực tế cũng chứng minh rằng: khi áp dụng mô hình dữ liệu mới vào phƣơng pháp cũ, khi số lƣợng ngƣời dùng hợp lệ tăng lên thì tỉ
42 lệ phát hiện sai của WDA tăng lên nhanh chóng nếu dữ liệu gửi lên của mỗi ngƣời dùng là lớn. Nhƣ vậy mệnh đề 1 đã đƣợc chứng minh bằng thực nghiệm.
Hình 17 Hiệu quả của thuật toán cũ trên mô hình mới Và khi tăng số ngƣời dùng hợp lệ cùng truy cập vào máy chủ website.
43
3.1.3 Mệnh đề 2
Chứng minh rằng với phương pháp mới đề xuất, có thể giải quyết đƣợc cả hai
trường hợp: cho qua với các lưu lượng hợp lệ mới, cũ và ngăn chặn hiệu quả đƣợc
các dạng tấn công đã biết.
Để làm rõ và chứng minh đƣợc tính hiệu quả của phƣơng pháp đề xuất, chúng tôi sử dụng phƣơng pháp heuristic thử nghiệm và các kết quả mở rộng sẽ đƣợc thảo luận cụ thể trong chƣơng 4 khi áp dụng phƣơng pháp mới cho các dạng tấn công đã biết.
3.2 Chiến thuật phân loại lƣu lƣợng hợp lệ và lƣu lƣợng tấn công 3.2.1 Bẫy thời gian 3.2.1 Bẫy thời gian
Cơ sở của phƣơng pháp là xác định ranh giới giữa các kết nối HTTP trong một Web-request. Trong một nghiên cứu về lƣu lƣợng HTTP, B.Mah [16] phát hiện ra rằng để xác định số lƣợng dữ liệu trong một phiên yêu cầu truy vấn và nhận dữ liệu thì yêu cầu cần thiết là phải đảm bảo các điều kiện
Các kết nối phải xuất phát từ cùng một ngƣời dùng.
Các kết nối phải đảm bảo cách nhau một khoảng thời gian gọi là TThresh
Hình 19 Xác định quan hệ giữa hai kết nối HTTP
Nếu kết nối C2 bắt đầu trong khoảng thời gian Tthresh thì nó là truy vấn trên cùng một Web-request, còn không thì nó nằm trong truy vấn khác – tất nhiên là từ cùng một địa chỉ IP. Thời gian TThresh theo ƣớc tính của tác giả là trong khoảng 1 giây < Tthresh < 30 giây. Trung bình lấy giá trị là 1 giây. Đây cũng là giá trị mà Lee &
44 Gupta sử dụng để phân biệt hai yêu cầu truy vấn khác nhau với máy chủ. Trong khi E.Doron lại sử dụng cách tính sau 0,8 giây không nhận đƣợc dữ liệu mới thì phiên truy cập đi vào thời kỳ OFF. Dựa theo cách tính này thì tổng lƣu lƣợng gửi đi cho mỗi Web-request đƣợc tính là tổng dữ liệu gửi đi trong thời gian ON. Trong mô hình dữ liệu mới, thì có sự đan xen giữa thời gian gửi dữ liệu và thời gian đọc của ngƣời dùng – nhƣ hình minh họa 20.b bên dƣới. Theo thống kê của mô hình mới thì tổng thời gian đọc – reading time – khoảng 39.70, không khác nhiều so với mô hình Choi & Lim, nhƣng trong thời gian reading time, vẫn có các truy vấn tới máy chủ xen vào – hình 20.b. Do đó ý tƣởng ở đây là sẽ đặt một khoảng thời gian gọi là thời gian thử thách không nhỏ hơn thời gian trung bình của một phiên Web-request thông thƣờng. Trong khoảng thời gian này sẽ đo lƣợng dữ liệu gửi đến máy chủ. Tất cả các kết nối mà có dữ liệu truyền tải trong khoảng thời gian này sẽ đƣợc tính toán sao cho lƣợng dữ liệu không vƣợt quá giá trị trung bình đã đƣợc tính toán thống kê theo mô hình mới.
45 Gọi khoảng thời gian này là Tthreshold giá trị dữ liệu nhận đƣợc từ phía ngƣời dùng là DReceived, giá trị ngƣỡng trung bình đƣợc phép của phiên làm việc đó là Davg(i), thời điểm bắt đầu Tstart từ lúc trình duyệt ngƣời dùng gửi tin đến lúc thời điểm ngƣời dùng kết thúc phiên làm việc đó và sang trang mới là Tend, những giá trị này hoàn toàn có thể ghi lại đƣợc do có thời điểm bắt đầu gửi gói tin của phiên đó là thời gian bắt đầu phiên mới. Vậy ta có thời gian của mỗi phiên TE là:
TE = Tend – Tstart;
Trong khoảng thời gian TE để một hành vi là hợp lệ thì nó phải đảm bảo hai điều kiện:
Hành vi là hợp lệ theo mô hình mới nếu {
(1)
Giá trị trung bình Davg(i) đƣợc tính dựa theo công thức Davg(i) = DMax * F;
Trong đó F là giá trị ƣu tiên. Nếu vi phạm quy tắc thì giá trị giảm, nếu truy vấn không đáng ngờ thì điểm tăng nhƣng không vƣợt quá 1, tức là 0<= F <= 1. DMax là giá trị khởi đầu có trọng số bằng với kích cỡ truy vấn trong thống kê Lee & Gupta. Nhƣ vậy giá trị trung bình Davg(i) không bao giờ lớn hơn DMax và luôn có xu hƣớng giảm nếu chẳng may kết nối cố tình vƣợt qua bẫy. Cách giải quyết này có thể giải quyết đƣợc các trƣờng hợp cố tình gửi lƣợng lớn dữ liệu đến máy chủ trong thời gian ngắn – Simple Flood do thời gian thử thách kết nối là đủ lâu. Tuy nhiên cách xử lý này vẫn có hạn chế nếu tổng lƣợng dữ liệu trong phiên này liên tục giữ mức đỉnh trong giới hạn cho phép, nếu số lƣợng kết nối quá đông, máy chủ sẽ quá tải. Cần phải có cơ chế hiệu quả hơn để phát hiện quy luật của những kết nối từ chiến thuật thiết kế tự động của kẻ tấn công.
Chiến thuật sử dụng bẫy thời gian khá hiệu quả khi áp dụng lọc với dạng tấn công sau đây :
Tấn công “Simple flooding”
Đặc điểm nhận dạng chính của dạng tấn công này là hiện tƣợng gửi lƣợng lớn dữ liệu liên tục đến máy chủ Web từ máy khách mà không có thời gian nghỉ giữa các lần truy vấn. Dạng tấn công này đƣợc mô tả bởi hình sau:
46 Hình 21 Truy vấn liên tiếp gửi dữ liệu lớn mà không có thời gian nghỉ
Dạng tấn công này có thể phát hiện dễ dàng khi áp dụng cơ chế bẫy thời gian, bẫy băng thông gửi. Nếu thời gian nghỉ trong phiên mà nhỏ hơn thời gian nghỉ giới hạn và lƣu lƣợng gửi dữ liệu lên vƣợt quá lƣu lƣợng đƣợc cho phép theo thống kê trong mô hình Lee & Gupta thì phát hiện đó là các lƣu lƣợng tấn công.
Hình 22 Mô hình hoạt động của bộ lọc khi tấn công Simple Flooding Thông số kẻ tấn công:
- Lƣu lƣợng dữ liệu tải lên trong một phiên: BW = Max_TH bytes - Thời gian nghỉ: 0 giây
47 - WDAQ cộng dồn lƣợng dữ liệu gửi lên server với mỗi gói tin đến
- Khi BW ≤ Max_TH, điều kiện vẫn đƣợc thỏa mãn, gói tin chuyển đến hàng đợi ƣu tiên cao và ra khỏi bộ lọc (Gói P1)
- Do không có thời gian nghỉ, bộ lọc mới coi đây là một phiên, khi BW > Max_TH, điều kiện bị vi phạm, gói tin chuyển đến Low queue
- Khi Low queue chƣa bị đầy, gói tin vào đây vẫn đƣợc phục vụ, mặc dù kém hơn so với gói tin vào hàng đợi High queue (Gói P2)
- Khi Low queue đầy, gói tin sẽ bị hủy bỏ (Gói P3)
3.2.2 Bẫy tần suất
Để giải quyết trƣờng hợp kẻ tấn công sử dụng chiến thuật thực hiện tự động gửi dữ liệu luôn ở mức đỉnh đến máy chủ theo một quy luật nhất định trong thời gian TE, chúng tôi thiết kế một bẫy tần suất chu kỳ xuất hiện truy vấn. Theo những thống kê của các mô hình dữ liệu hiện đại, số lƣợng truy vấn đƣợc trình duyệt thực hiện là không giống nhau trong mỗi lần tải trang cũng nhƣ các điểm khởi tạo yêu cầu truy vấn là không giống nhau. Để minh họa rõ hơn, chúng ta hãy quan sát hình 21.a. Ở hình này, có tất cả hai thời điểm có xảy ra truy vấn tải dữ liệu, hai thời gian nghỉ xen kẽ với mức độ khác nhau. Thời gian truy vấn càng ít thì dữ liệu gửi lên càng ít, thời gian truy vấn cần càng nhiều thì lƣu lƣợng gửi đến máy chủ càng lớn hơn. Trong một trang website, các “main-object” – khung HTML tải xuống và “inline-object” – đối tƣợng nhúng nhƣ ảnh, file, iframe … có độ lớn là khác nhau và