CHƯƠNG 2 PHÁT HIỆN VÀ PHÒNG CHỐNG TẤN CÔNG TCP SYNFLOOD
2.4. Phát hiện tấn công TCP SynFlood
Trong phần này, luận án sẽ trình bày chức năng phát hiện tấn công TCP Syn Flood, chức năng này là một trong các chức năng chính của hệ thống DDoS-Defence.
Việc phát hiện sớm cuộc tấn công DDoS Syn Flood là rất quan trọng trong việc xử lý và giảm thiểu ảnh hưởng của cuộc tấn công đối với hệ thống. Đối với các phương pháp sử dụng threshold để phát hiện tấn công DDoS thường gây ra các cảnh báo sai hoặc không phát hiện ra. Điểm hạn chế của phương pháp sử dụng threshold là tin tặc có thể thay đổi lưu lượng tấn cơng về số lượng, tần suất để tránh khỏi sự phát hiện của hệ thống, do khơng có cơ chế thay đổi giá trị threshold một cách tự động phù hợp để mô tả hoạt động thực tế của hệ thống mạng được bảo vệ khi có sự thay đổi. Do đó, trong nghiên cứu này, chúng tơi đề xuất một phương pháp cho phép theo dõi và tự động cập nhật giá trị threshold khi số lượng và tần suất truy nhập trên hệ thống thay đổi.
Cơ chế của phương pháp đề xuất là định kỳ theo dõi tần số xuất hiện các gói tin TCP có cờ (flag) được thiết lập là Reset. Lý do theo dõi các gói tin TCP có flag là Reset là vì theo nguyên lý hoạt động của giao thức TCP, khi máy chủ nhận được gói tin SYN giả mạo thì máy chủ sẽ gửi trả lại gói tin ACK tới địa chỉ IP của máy thực (máy bị giả mạo địa chỉ IP). Khi máy thực nhận được gói tin ACK của máy chủ thì sẽ gửi gói tin TCP Reset tới máy chủ để hủy kết nối. Đây là điểm khác biệt giữa kết nối mạng thông thường với kết nối mạng sử dụng trong tấn cơng DDoS Syn Flood.
Attacker User User Server IP A IP B
Hình 2.4 Cơ chế giả mạo IP của tin tặc
Để xác định giá trị threshold, phương pháp xác định tần số xuất hiện các gói tin TCP Reset tại từng thời điểm (Ci), sau đó giá trị threshold (Thd) sẽ được xác định dựa vào giá trị trung bình của tần số xuất hiện các gói tin TCP Reset sau n lần lấy mẫu (Mean - μ). Tiếp theo, chúng tôi xác định độ lệch lớn nhất (Deviation - σ) giữa giá trị Mean với số lần xuất hiện các gói tin TCP Reset lớn nhất trong N lần lấy mẫu. Gọi Ci là giá trị tần số xuất hiện các gói tin TCP Reset tại thời điểm Ti và Ts là thời điểm lấy mẫu tiếp theo. Phương pháp xác định Ci được mơ tả như hình dưới đây:
Ti = Ts New packet Match TCP Reset No Yes Ci = Ci++ No Get Ci Reset Counter
Hình 2.5 Phương pháp xác định tần số xuất hiện gói tin TCP Reset Giá trị μ được xác định như sau: Giá trị μ được xác định như sau:
1 1
(C .. CN)
N
2 1 1 ( ) n i i C N
Giá trị Thd được xác định là Thd = ∝*σ. Trong đó, giá trị ∝ được thiết lập trước, tùy theo
từng hệ thống cụ thể.
2.5. Phát hiện và loại bỏ các gói tin giả mạo trong tấn cơng DDoS TCP Syn Flood
Trong phần này, luận án sẽ trình bày chức năng phát hiện tấn cơng TCP Syn Flood, chức năng này là một trong các chức năng chính của hệ thống DDoS-Defence.
Khi phát hiện tấn cơng DDoS xảy ra thì chức năng phát hiện và loại bỏ gói tin giả mạo sẽ được kích hoạt để chặn các gói tin tấn cơng gửi đến hệ thống cần bảo vệ. Chức năng phát hiện và loại bỏ các gói tin giả mạo dựa trên phát hiện ra đặc trưng của trường PID trong IP Header tăng liên tục khi các gói tin được gửi ra từ cùng một máy tính.
Trong phần này, luận án sẽ trình bày hai giải pháp phát hiện và loại bỏ các gói tin giả mạo trong tấn cơng DDoS dạng DDoS TCP Syn Flood là PIDAD1 và PIDAD2.
2.5.1. Đặc trưng của các gói tin IP được gửi đi từ cùng một máy nguồn
Một trong những đóng góp trọng tâm của luận án là đề xuất phương pháp phát hiện các gói tin giả mạo trong tấn cơng TCP Syn Flood dựa vào đặc trưng của trường Packet Identifier trong IP Header (sau đây gọi tắt là trường PID) [104]. Đây là đặc trưng riêng của các phương pháp được chúng tôi đề xuất, so với những phương pháp khác đã được đề xuất trước đây. Cụ thể như sau:
Như đã phân tích ở phần trên, các gói tin giả mạo sử dụng trong tấn cơng TCP Syn Flood là rất khó để phát hiện nếu xét riêng từng gói tin. Tuy nhiên, các gói tin này có thể có những mối liên hệ riêng giữa chúng mà có thể coi là dấu hiệu tìm vết, khi chúng được quan sát trong một luồng các gói tin giả mạo phát đi từ một máy tính. Dựa trên dấu hiệu này, ta có thể xây dựng các phương pháp để phát hiện và thực hiện lọc bỏ (nhiều nhất có thể được) các gói tin giả mạo sử dụng trong tấn cơng TCP Syn Flood.
Qua quan sát thực tế và khảo sát các tập dữ liệu kiểm thử, chúng tôi thấy rằng khi một máy tính gửi ra một gói tin, khơng phân biệt địa chỉ IP đích hay dịch vụ sử dụng thì giá trị PID sẽ tăng lên một đơn vị. Điều này có nghĩa khi quan sát ở phía máy chủ thì ta sẽ nhận được ch̃i các gói tin có giá trị PID tăng liên tiếp, nếu chúng gửi đi từ cùng một máy.
Dưới đây, luận án trình bày chi tiết hơn về trường thông tin PID và nguyên lý hoạt động của giao thức IP để làm sở cứ cho phát hiện mới được đề cập ở trên như sau:
Trường thông tin PID là một trường thông tin 16 bit trong IP Header. Trường thông tin này được sử dụng để xác định thứ tự các gói tin khi bị phân mảnh (fragment) khi gói tin đó được truyền từ mơi trường mạng có MTU cao sang mơi trường mạng có MTU thấp hơn.
Hình 2.6 IP Header [104]
Tuy nhiên, qua quan sát thực tế thì khi hoạt động ở trạng thái bình thường, một máy tính gửi ra một gói tin mà khơng phân biệt địa chỉ IP đích hay dịch vụ sử dụng thì giá trị PID sẽ tăng lên một đơn vị.
Nguyên lý này cũng được áp dụng trong phương pháp Idle-scan [74] cho phép Client kiểm tra một cổng mở trên máy chủ hay không khi Client khơng thể gửi trực tiếp gói tin đến máy chủ mà phải thơng qua một máy tính khác ở trạng thái Idle (trạng thái máy tính khơng gửi, nhận gói tin).
Ngồi ra, để có thêm sở cứ cho tính tăng liên tiếp của giá trị PID, chúng tôi cũng khảo sát trên các tập dữ liệu kiểm thử và dữ liệu thu thập được trên môi trường thực tế như ở dưới đây.
2.5.2. Kiểm chứng giả thuyết về tính chất tăng dần của giá trị PID
Các giải pháp phát hiện và loại bỏ các gói tin giả mạo trong tấn cơng TCP Syn Flood mà được đề xuất dựa trên giả định rằng các gói tin được gửi đi từ cùng một máy tính sẽ có giá trị PID tăng dần (theo dịng thời gian, nếu quan sát các packet được phát đi ra khỏi máy này). Tuy nhiên dịng PID đến từng máy đích thì có thể tăng ngắt qng. Trong phần này, chúng tôi sẽ đưa ra các kết quả khảo sát kiểm chứng và thực nghiệm để củng cố cho sự phổ biến của giả định này.
Tôi sử dụng hai tập dữ liệu để kiểm chứng tính chất tăng dần của giá trị PID như sau: Tập dữ liệu thứ nhất là tập dữ liệu kiểm thử DARPA Intrusion Detection Evaluation [12] do viện MIT cung cấp. Tập dữ liệu này được sử dụng nhiều bởi các nghiên cứu để đánh giá hiệu quả của các phương pháp phát hiện xâm nhập và tấn công DDoS.
Tập dữ liệu này bao gồm hai tập tin inside.tcpdump và outside.tcpdump được thu thập trên hệ thống DARPA vào tuần thứ 05 ngày thứ 04. Trong đó, tập tin inside.tcpdump được thu thập từ vùng mạng bên trong, bao gồm 3.404.824 gói tin từ 505 địa chỉ IP nguồn khác nhau. Tập tin outside.tcpdump được thu thập từ vùng mạng bên ngồi, bao gồm 2.558.481 gói tin từ 503 địa chỉ IP nguồn khác nhau.
Tập dữ liệu thứ hai là tập dữ liệu dhbkdata.pcap, chúng tôi thu thập tại hệ thống mạng của Trường Đại học Bách Khoa Hà Nội. Tập dữ liệu này được thu thập tại cổng kết nối Internet của hệ thống mạng trong khoảng thời gian 30s. Kết quả, chúng tôi thu thập được tập dữ liệu với 386.643 gói tin từ 8.258 địa chỉ IP nguồn khác nhau.
Các tệp tin PCAP ở trên, chúng tôi tải lên hệ thống lưu trữ của Google tại địa chỉ [46].
2.5.2.1. Kiểm chứng giả thuyết PID dựa trên quan sát ngẫu nhiên
Để thực hiện kiểm chứng giả thuyết PID dựa trên quan sát ngẫu nhiên, chúng tôi lựa chọn một cách ngẫu nhiên một số địa chỉ IP có trong các tập dữ liệu và xác minh xem giá trị PID của các gói tin có cùng IP nguồn có tăng liên tục hay khơng. Kết quả như sau:
a) Kết quả từ tập dữ liệu thứ nhất của DARPA:
IP nguồn IP đích Dịch vụ PID tăng dần từ giá trị Tập tin inside.tcpdump 172.16.114.50 172.16.112.10 NTP 41-46 172.16.114.50 172.16.112.100 TCP/HTTP 49-57 172.16.114.50 172.16.112.50 TCP/HTTP 61-76 172.16.112.20 172.16.255.255 RIPv1 1700-1701 172.16.112.20 192.168.1.10 DNS 1702-1716 172.16.112.149 197.218.177.69 TCP/SMTP 10340-10427 172.16.112.149 194.7.248.153 TCP/ SMTP 13163-13188 172.16.112.149 172.16.112.50 TCP/TELNET 16203-23619 Tập tin outside.tcpdump 172.16.114.169 197.182.91.233 SMTP 13445-13456 172.16.114.169 196.37.75.158 SMTP 15916-15939 172.16.114.169 207.25.71.141 HTTP 36935-27047 135.13.216.191 172.16.144.148 SMTP 627-635 195.115.218.108 172.16.112.100 ICMP/SMTP 410-426 196.227.33.189 172.16.112.100 ICMP/SMTP 3659-3697
b) Kết quả từ tập dữ liệu thứ hai thu được từ hệ thống mạng của trường ĐHBK:
IP nguồn IP đích Dịch vụ PID tăng dần từ giá trị 118.69.16.64 202.191.59.169 TCP 50844 1.54.241.82 202.191.59.169 TCP/TLSv1.2 39276 202.191.59.141 42.191.59.17 QUIC 12006 202.191.56.158 27.67.252.170 HTTP 57719 202.191.56.154 185.53.178.6 HTTP 62443 202.191.59.160 216.58.220.206 QUIC 16092
Bảng 2.2 Kiểm chứng giá trị PID trên tập dữ liệu ĐHBK
2.5.2.2 Kiểm chứng giả thuyết PID trên toàn bộ tập dữ liệu thu được
Để có thêm sở cứ, chúng tơi tiếp tục xác minh tỷ lệ các gói tin có giá trị PID tăng liên tiếp có cùng địa chỉ IP nguồn từ 03 tập tin ở trên.
Để tìm ra tỷ lệ các gói tin có giá trị PID tăng liên tiếp có cùng địa chỉ IP nguồn, chúng tôi sử dụng cách làm như phương pháp [35]. Cách làm này chỉ khác là, chúng tơi sẽ tìm các gói tin có giá trị PID tăng liên tiếp từ cùng địa chỉ IP nguồn thay vì tìm các gói tin có giá trị PID tăng liên tiếp nhưng có IP nguồn khác nhau như trong [35].
Tơi kiểm chứng tỷ lệ các gói tin có ít nhất 02 giá trị tăng liên tục (2-PID); Tỷ lệ các gói tin có ít nhất 03 giá trị tăng liên tục (3-PID); Tỷ lệ các gói tin có ít nhất 04 giá trị tăng liên tục (4-PID). Kết quả như sau:
Tập tin 2-PID 3-PID 4-PID
inside.tcpdump 89,6% 84,2% 78,2%
outside.tcpdump 88,6% 82,1% 77,3%
dhbkdata.pcap 90,6% 89,5% 87,5%
Bảng 2.3 Kiểm chứng tỷ lệ gói tin có giá trị PID tăng dần
Trên đây chỉ là những ví dụ chi tiết lấy ra từ các khảo sát thực tế của chúng tôi; chúng đều giúp khẳng định mạnh mẽ tính phổ biến của giả định cơ sở quan trọng về tính tăng liên tục của PID (quan sát từ máy phát ra).
2.5.3. Giải pháp phát hiện và loại bỏ các gói tin giả mạo PIDAD1
Trong phần này, luận án trình bày về một đề xuất mới, sử dụng giải pháp PIDAD1 trong việc phát hiện và loại bỏ các gói tin giả mạo. Ý tưởng của giải pháp này là nhóm các gói tin nhận được phía máy chủ có giá trị PID tăng liên tiếp, nhưng có giá trị IP nguồn khác nhau vào thành từng nhóm (Cluster). Các gói tin trong mỡi Cluster được coi là gói tin giả mạo cần loại bỏ. Tuy nhiên, vấn đề ở đây là thông thường, người dùng thường sử dụng nhiều ứng
dụng, dịch vụ khác nhau cùng một lúc. Do đó, ở phía Server, ta chỉ nhận được ch̃i các gói tin tăng liên tục ngắt quãng. Đây là vấn đề mà giải pháp đề xuất cần phải giải quyết trong việc nhóm các gói tin có giá trị PID tăng liên tiếp vào các Cluster. Để giải quyết vấn đề này, giải pháp PIDAD1 sử dụng thuật toán DBSCAN để nhóm các gói tin vào các Cluster. Trong phần này, luận án sẽ trình bày tổng quan về thuật toán DBSCAN là cơ sở để thực hiện ý tưởng đề xuất. Phần tiếp theo, luận án sẽ trình bày về quá trình Training phase, được sử dụng để thiết lập các tham số cho thuật tốn DBSCAN. Phần cuối cùng, luận án sẽ trình bày về quá trình Detection phase để phát hiện và loại bỏ các gói tin giả mạo khi tấn công xảy ra. Giải pháp đề xuất này được công bố với nghiên cứu “Synflood Spoof Source DDoS Attack Defence Based on Packet ID Anomaly Detection – PIDAD” tại Information Science and Applications (ICISA) 2016 pp 739-751/Springer.
2.5.3.1. Thuật toán DBSCAN
Thuật toán DBSCAN [6] là thuật toán do Martin Ester và các tác giả khác đề xuất là thuật
toán gom các đối tượng dựa trên mật độ, hiệu quả với cơ sở dữ liệu lớn, có khả năng xử lý nhiễu.
Ý tưởng chính của thuật tốn là vùng lân cận (Eps) mỡi đối tượng trong một Cluster có số đối tượng lớn hơn ngưỡng tối thiểu. Các đối tượng trong mỗi Cluster được phân làm 2 loại: đối tượng bên trong Cluster (core point: đối tượng lõi) và đối tượng nằm trên đường biên của Cluster (border point: đối tượng biên).
Hình 2.7 Thuật tốn DBSCAN [6] a) Một số định nghĩa a) Một số định nghĩa
Vùng lân cận Eps của đối tượng p, ký hiệu NEps(p) là tập hợp các đối tượng q sao cho khoảng cách giữa p và q dist(p,q) nhỏ hơn hoặc bằng Eps: NEps(p) = {qD | dist(p,q) Eps} Đối tượng p tới được trực tiếp theo mật độ (directly density-reachable) thỏa Eps, MinPts từ đối tượng q nếu pNEps(q) và |NEps(q)| MinPts. Nếu p, q đều là đối tượng lõi (core point) quan hệ directly density-reachable là đối xứng, nghĩa là p tới được trực tiếp theo mật độ từ q và ngược lại. Nếu trong p, q có một core point, một đối tượng biên như hình dưới thì chỉ đối tượng biên tới được trực tiếp theo mật độ từ đối tượng lõi mà khơng có chiều ngược lại (bất đối xứng).
Đối tượng p tới được theo mật độ (density-reachable) thỏa Eps, MinPts từ đối tượng q nếu tồn tại một dãy p1, p2, ..., pn (p1 =q, pn= p) sao cho pi+1 tới được theo mật độ trực tiếp từ pi.
Đối tượng p kết nối theo mật độ (density-connected) thỏa Eps, MinPts với đối tượng q tồn tại đối tượng o sao cho cả p và q đều tới được theo mật độ từ o.
b) Thuật toán
Để tìm một Cluster, thuật tốn DBSCAN bắt đầu từ một đối tượng bất kỳ và sau đó tìm tất cả các đối tượng tới được theo mật độ thỏa Eps and MinPts từ đối tượng p. Nếu p là đối tượng lõi, bước trên sinh ra một Cluster thỏa Eps and MinPts. Nếu p là đối tượng biên thì khơng tìm được đối tượng tới được theo mật độ từ p, DBSCAN duyệt đối tượng tiếp theo trong cơ sở dữ liệu. Vì sử dụng chung thơng số Eps và MinPts cho tất cả các Cluster nên DBSCAN có thể kết hợp hai Cluster thành một Cluster nếu hai Cluster gần nhau. Khoảng cách giữa hai tập đối tượng S1 và S2, ký hiệu dist (S1, S2) là giá trị khoảng cách nhỏ nhất của hai đối tượng p, q thuộc S1, S2: dist (S1, S2) = min{dist(p,q) | pS1, qS2}. Hai tập đối tượng trong cùng một Cluster có thể tách nhau nếu khoảng cách giữa chúng lớn hơn.
2.5.3.2. Giải pháp PIDAD1
Giải pháp PIDAD1 được đề xuất dựa trên cơ sở sự tăng liên tục của giá trị PID trong IP Header và sử dụng thuật tốn DBSCAN để nhóm các gói tin có giá trị PID tăng liên tiếp vào các Cluster. Giải pháp PIDAD1 cần thực hiện thông qua hai quá trình Training phase và Detection phase. Trong đó, Training phase được thực hiện để thiết lập các tham số đầu vào cho thuật toán DBSCAN và Detection phase để phát hiện và loại bỏ các gói tin giả mạo tiếp theo gửi đến hệ thống.
Giải pháp PIDAD1 sử dụng các ký hiệu, thuật ngữ viết tắt dưới đây với ý nghĩa như sau: - Npc: Số lượng các gói tin có địa chỉ IP nguồn khác nhau mà hệ thống nhận được sau khi tấn cơng DDoS xảy ra. Các gói tin này được sử dụng trong Training phase để thiết lập các