Như chúng tơi phân tích ở trên, vấn đề đặt ra là làm thế nào để xây dựng tập dữ liệu tương quan sạch mà tin tặc khó có thể đưa các yêu cầu sai lệch vào trong quá trình huấn luyện (training phase) và sử dụng để tấn công. Để giải quyết vấn đề này, chúng tôi xây dựng một tập các tiêu chí áp dụng cho các nguồn gửi yêu cầu và yêu cầu tương ứng để xác minh các yêu cầu đó là các yêu cầu được có phải được gửi từ người dùng bình thường hay khơng? Sau
mỡi khoảng thời gian, chúng tôi lấy thông tin trong cơ sở dữ liệu ra để xác minh. Các yêu cầu và nguồn gửi thỏa mãn điều kiện sẽ là đầu vào cho thuật toán Association Rule để tạo ra tập dữ liệu tương quan.
Tơi sử dụng các tiêu chí sau đây:
a) Tiêu chí ngẫu nhiên về thời điểm truy cập
Tiêu chí này nhằm tìm ra các url được gửi đi từ các IP nguồn khác nhau có đủ điều kiện được sử dụng để xây dựng tập dữ liệu tương quan hay không. Chúng tôi quan sát thấy rằng, khi hệ thống hoạt động ở chế độ bình thường, chưa bị tấn cơng thì với một yêu cầu gửi đến máy chủ từ nhiều IP nguồn khác nhau thì thời điểm gửi u cầu của mỡi IP nguồn đó sẽ ngẫu nhiên. Trong khi hệ thống bị tấn cơng thì thời điểm gửi u cầu của mỡi IP sẽ khơng cịn ngẫu nhiên do cùng bị điều khiển để gửi yêu cầu đồng loạt như minh họa tại hình 3.4. Tương tự như đã thực hiện tại mục 3.4.2, sau mỗi khoảng thời gian TT, chúng tơi tính tốn giá trị Hdata. Trường hợp giá trị Hdata ≥ Thd thì các yêu cầu được kiểm tra thỏa mãn tiêu chí ngẫu nhiên về thời điểm truy cập và sẽ được tiếp tục kiểm tra qua các tiêu chí dưới đây, trước khi được sử dụng để xây dựng tập yêu cầu tương quan.
b) Tính hợp lệ của mỗi IP nguồn gửi yêu cầu
Bước tiếp theo, chúng tôi cần xác định xem các IP nguồn đã thỏa mãn tiêu chí ở trên thì có thỏa mãn tập các tiêu chí dưới đây hay khơng. Trường hợp các IP nguồn thỏa mãn tập các tiêu chí dưới đây thì các IP này sẽ được đưa vào danh sách White-List và các yêu cầu được gửi đi từ nguồn này sẽ được xây dựng tập dữ liệu tương quan. Các tiêu chí bao gồm:
- Các yêu cầu không được gửi lặp lại trong khoảng thời gian Δs. Chúng tơi thấy rằng, người dùng bình thường khi truy cập một trang web thì cần thời gian để đọc nội dung của trang đó và sẽ khơng gửi lại yêu cầu đã gửi trong khoảng thời gian nhất định. Tuy nhiên với các máy tính tấn cơng thì cùng một yêu cầu có thể gửi liên tục trong khoảng thời gian nhỏ. Do đó, chúng tơi cho rằng nguồn gửi bình thường phải thỏa mãn điều kiện khơng gửi lại yêu cầu đã gửi trong khoảng thời gian nhất định Δs. Giá trị Δs có thể thay đổi theo từng hệ thống cụ thể dựa vào theo dõi hoạt động của hệ thống khi chưa bị tấn công. Trong nghiên cứu này, chúng tôi lựa chọn Δs = 5s, trên dữ liệu log tấn công được thu thập [110] để đánh giá giải pháp đề xuất.
- Độ lệch trung bình thời điểm đến của các yêu cầu được gửi đi từ một IP nguồn DTR: Thời điểm các yêu cầu được gửi đi từ cùng IP nguồn từ máy bình thường sẽ mức độ ngẫu nhiên nhất định, trong khi các yêu cầu được gửi từ máy tấn cơng sẽ có độ tương quan nhất định (do cùng được gửi thơng qua một chương trình độc hại). Để xác định các nguồn gửi sạch, chúng tôi xác định tổng độ lệch về thời gian được tính theo thời điểm đến của mỗi yêu cầu. Với nguồn gửi bình thường thì giá trị này sẽ có độ lớn nhất định, trong khi với máy tấn cơng thì giá trị này sẽ thấp. Chúng tôi sử dụng một mảng MR bao gồm n phần tử để lưu thông tin về khoảng thời gian của các yêu cầu nhận được từ một IP nguồn. Ví dụ với nguồn gửi bình thường MR = [12,3,5,10,…,n]), với nguồn gửi tấn công MR = [2,2,3,2,…,n]). Gọi i là yêu
cầu thứ i nhận được và Ti là thời điểm nhận được yêu cầu. Từ đó tổng độ lệch về thời gian giữa các u cầu được tính theo cơng thức sau:
𝐷𝑇𝑅 = ∑ 𝑇𝑖+1− 𝑇𝑖
𝑛 𝑖=1
𝑛
Tôi cần thiết lập một ngưỡng để xác định xem tổng độ lệch DTR phải lớn hơn giá trị TTR thì các yêu cầu nhận được từ một IP nguồn thỏa mãn điều kiện. Trong nghiên cứu này chúng tôi chọn giá trị TTR = 10s, trên dữ liệu log tấn công [2] được sử dụng mơ hình đánh giá thực nghiệm giải pháp đề xuất. Giá trị này có thể thay đổi tuy thuộc vào từng hệ thống được bảo vệ.
- Tiêu chí về độ lệch trung bình độ dài url DL: Các máy bình thường khi gửi yêu cầu đến máy chủ thường có độ dài (tính theo số lượng ký tự có trong url) khác nhau do nội dung truy cập trên máy chủ thường khác nhau. Trong khi độ dài của các yêu cầu gửi từ máy tấn công thường giống nhau và lặp lại. Do đó, độ lệch DL của các máy tấn công sẽ nhỏ hơn nhiều so với máy bình thường.
Tương tự với cách làm ở trên, chúng tôi sử dụng mảng ML để lưu độ dài của n yêu cầu gửi đến máy chủ từ một IP nguồn. Ví dụ với nguồn gửi bình thường ML = [12,30,50,120,…,n]), với nguồn gửi tấn công MR = [30,30,55,55,…,n]). Gọi i là yêu cầu thứ i nhận được và Ci là độ dài mỗi yêu cầu nhận được. Độ lệch trung bình DL được xác định theo công thức sau:
𝐷𝐿 = [𝐶𝑖− 𝐷(𝑐)] 2 𝑛 𝐷(𝑐) = ∑𝑛 𝐶𝑖 𝑖=1 𝑛
Từ đó, với mỡi IP nguồn với tập yêu cầu gửi đến, chúng tôi xác định được giá trị DL này phải lớn hơn một ngưỡng TDL được thiết lập trước căn cứ vào từng hệ thống cần bảo vệ cụ thể. Trong nghiên cứu này, chúng tôi lựa chọn TDL = 60 ký tự, trên dữ liệu log tấn công [2] để đánh giá thực nghiệm giải pháp đề xuất.
Sau khi tìm được các IP nguồn và yêu cầu được gửi từ các IP đó thỏa mãn đồng thời các điều kiện ở trên, IP nguồn sẽ được đưa vào White-List và tập dữ liệu bao gồm IP và các yêu cầu sẽ được sử dụng làm đầu vào của thuật toán Association Rule để xây dựng tập dữ liệu tương quan.
Để xác định tham số đầu vào cho thuật tốn Association Rule (Độ hỡ trợ và Độ tin cậy), chúng tôi thu thập log dữ liệu truy cập trên môi trường mạng thực tế tại trường đại học Bách Khoa Hà Nội khi hệ thống không bị tấn cơng. Sau đó, chúng tơi áp dụng thuật toán Association Rule với tập dữ liệu thu được với nhiều giá trị độ hỗ trợ và độ tin cậy khác nhau để tìm ra giá trị phù hợp cho tập tương quan lớn nhất. Qua thực nghiệm, chúng tôi xác định được giá trị độ hỗ trợ = 2 và độ tin cậy ≥ 50% là giá trị phù hợp cho số lượng tập tương quan lớn nhất. Tuy nhiên, đối với từng hệ thống cần bảo vệ khác nhau, giá trị này có thể thay đổi cho phù hợp.
3.5.5.2. Thiết kế cấu trúc dữ liệu cho thuật toán
Vấn đề thứ hai đặt ra với tiêu chí này là làm thế nào để phát hiện nhanh các yêu cầu là tấn cơng hay bình thường trong trường hợp máy chủ nhận được rất nhiều các yêu cầu khi có tấn cơng xảy ra.
Để giải quyết vấn đề thứ hai, chúng tôi thiết kế 02 bảng dữ liệu (TR và TA) có cấu trúc và thuật tốn cho phép lưu trữ và tìm kiếm nhanh tập các yêu cầu thỏa mãn điều kiện tương quan khi máy chủ nhận được nhiều yêu cầu cùng lúc. Cụ thể như sau:
Index
Chỉ số của mỗi tập tương quan trong Hash-table
(2 bytes)
TR C
Tập tương quan của yêu cầu gửi đến