Thông tin truyền tải đến một máy chủ, một hệ thống mạng, có thể coi là tập hợp của nhiều gói tin có chung một địa chỉ (giải địa chỉ đến ) và một số thuộc tính chung. Với thông tin kết nối đến một website bán hàng thì các thông tin chủ yếu gồm:
- Cổng kết nối: chủ yếu là HTTP
- Nguồn địa chỉ: mỗi một site sẽ có nguồn khách hàng cố định và “vãng lai” nhất định. Dựa theo địa chỉ IP được cấp của mỗi ISP, có thể tìm ra được tần suất truy cập của khách hang.
- Các giao dịch thường là thông tin hàng hóa nến độ dài gói tin sẽ có điểm chung.
Với những hệ thống khác nhau, đặc điểm của luồng thông tin sẽ có những sự khác nhau. Những đặc điểm khác nhau này có thể được mô tả qua một khái niệm gọi là độ phức tạp của thông tin – entropy.
3.2.1 Entropy của nguồn tin
Theo Shanon[19], Entropy thông tin mô tả mức độ hỗn loạn trong một tín hiệu lấy từ một sự kiện ngẫu nhiên. Nói cách khác, entropy cũng chỉ ra có bao nhiêu thông tin trong tín hiệu, với thông tin là các phần không hỗn loạn ngẫu nhiên của tín hiệu. Ví dụ, nhìn vào một dòng chữ tiếng Việt, được mã hóa bởi các chữ cái, khoảng cách, và dấu câu, tổng quát là các ký tự. Dòng chữ có ý nghĩa sẽ không hiện ra một cách hoàn toàn hỗn loạn ngẫu nhiên; ví dụ như tần số xuất hiện của chữ cái x sẽ không giống với tần số xuất hiện của chữ cái phổ biến hơn là t. Đồng thời, nếu dòng chữ vẫn đang được viết hay đang được truyền tải, khó có thể đoán trước được ký tự tiếp theo sẽ là gì, do đó nó có mức độ ngẫu nhiên nhất định. Entropy thông tin là một thang đo mức độ ngẫu nhiên này
Mỗi nguồn tin đều có những giả định về tính ngẫu nhiên của các địa chỉ nguồn thông tin, trạng thái hữu hạn của các kết nối. Mỗi trạng thái i, khả năng xảy ra của
các sự kiện lần lượt là p1, p2, p3, …, pn. Các xác suất xảy ra này là biết trước. Theo [19], mỗi trạng thái sẽ có một entropy Hi. Entropy của nguồn tin sẽ được tính bằng tổng các entropy này cùng với xác suất xuất hiện của các trạng thái.
j p j p P H P H i i j i i i i i log , .
Trong trường hợp theo dõi các kết nối đến hệ thống, các chỉ số về : - Địa chỉ nguồn kết nối
- Định dạng của kết nối (giao thức, các hàm gọi – GET, POST) - Các đặc tính kết nối (Độ dài gói tin, file tham chiếu)
đều có thể coi là những trạng thái của nguồn tin và có thể sử dụng để tính entropy của nguồn thông tin.
Theo [1], Entropy của một nguồn tin là một đại lượng luôn dương hoặc bằng không. Do Entropy của nguồn tin phụ thuộc tỉ lệ vào các thành phần có trong nguồn tin. Nếu ta chọn các thành phần mô hình tính là các địa chỉ IP, các trường flag trong gói tin TCP, ta có thể xây dựng được mô hình về entropy của nguồn tin. Những nghiên cứu của Jung [11] đã chỉ rõ về sự lặp lại của các địa chỉ IP nguồn, của các tài liệu mà khách hàng truy vấn tới. Từ đó ta có thể suy ra, trong một khoảng thời gian nhất định, entropy của nguồn tin đến hệ thống là tương đối ổn định hoặc thay đổi không đáng kể.
Trong trường hợp xảy ra tấn công DDoS, giả thiết là các nguồn địa chỉ IP được sử dụng là các địa chỉ giả mạo, có tính ngẫu nhiên. Trong tấn công, số lượng kết nối sẽ tăng vọt. Đồng thời, các cờ hiệu trong gói tin TCP do được tạo ngẫu nhiên nên cũng có số lượng tăng đột biến. Như vậy, có thể dễ dàng nhận thấy, entropy của nguồn
tin sẽ tăng lên và với mức độ thay đổi là rất lớn [6]. Nếu có thể theo dõi được sự thay đổi này thì sẽ phát hiện ra tấn công DDoS với sai biệt là nhỏ.
3.2.2 Xây dựng mô hình Entropy của nguồn tin
Như đã phân tích ở 3.2.1, các đại lượng sau sẽ được chọn để tính entropy của nguồn tin kết nối đến hệ thống:
- - Địa chỉ IP nguồn
- Cờ hiệu kết nối trong gói tin TCP: ACK, SYN, RST, PUSH, FIN.
Ở đây, vấn đề đặt ra là làm thế nào để xác định khoảng lấy mẫu tín hiệu. Thông thường có hai cách lấy mẫu:
- Lấy mẫu dựa theo số lượng gói tin
- Lấy mẫu dựa theo khoảng thời gian theo dõi.
Trong trường hợp lấy mẫu theo số lượng gói tin, giả sử sẽ được xác định mẫu là W gói tin (W ~ 10000 gói tin ). Lúc này, số lượng các địa chỉ IP, số lượng các cờ sẽ được lựa chọn để tính xác suất và Entropy của W gói tin. Sau đó, dịch chuyển tiếp W gói tin để tính tiếp entropy của nguồn tin.
Trường hợp lấy mẫu theo thời gian theo dõi, có thể lựa chọn khoảng thời gian giữa hai lần lấy mẫu là 20 ~ 30 giây. Trong khoảng thời gian này, số lượng gói tin nhận được sẽ được phân tích và tính entropy của nguồn tin.
3.2.3 Phát hiện thay đổi theo ngưỡng
Hệ thống phát hiện dựa trên sự thay đổi Entropy sẽ được huấn luyện, ghi nhớ trạng thái entropy của mạng trong một khoảng thời gian w gọi là thời gian huấn luyện. Trong điều kiện bình thường, theo những kết quả quan sát được, giá trị entropy sẽ xoay quang một giá trị trung bình e. Khoảng thời gian học càng lâu thì giá trị e này càng chính xác. Độ sai khác giữa các giá trị là rất nhỏ và có thể xác định được ngưỡng cận trên s dựa theo những sự theo dõi của bản thân nhà khai thác dịch vụ.
Khi hệ thống chuyển sang trạng thái theo dõi phát hiện, trạng thái entropy của hệ thống sẽ được liên tục cập nhật theo những khung thời gian hoặc khung gói tin. Có thể chọn khoảng thời gian từ 60s đến 300s tùy theo yêu cầu phát hiện nhanh hay chậm. Sau mỗi một khoảng thời gian, hệ thống sẽ tính toán lại giá trị entropy, so sánh với ngưỡng e. Nếu giá trị ngưỡng thay đổi s lớn hơn giá trị s cho trước, có thể kết luận là đang xảy ra một cuộc tấn công DDoS.