CHƯƠNG 2 PHÁT HIỆN VÀ PHÒNG CHỐNG TẤN CÔNG TCP SYNFLOOD
2.2. Tổng quan về dạng tấn công TCP SynFlood
Trong phần này, luận án trình bày về đặc trưng của dạng tấn công TCP Syn Flood từ điểm yếu trong giao thức giao vận TCP. Từ đó, chúng ta có thể thấy được những khó khăn, thách thức trong việc phát hiện và phịng chống dạng tấn cơng này. Cụ thể như sau:
Hình 2.1 TCP handshakes [4]
Dạng tấn công TCP Syn Flood là dạng tấn cơng DDoS mà tin tặc gửi tràn ngập gói tin SYN đến đích bị tấn cơng [5]. Dạng tấn cơng này được cho là một trong những dạng tấn cơng khó phịng chống nhất vì địa chỉ IP nguồn của gói tin tấn cơng được giả mạo ngẫu nhiên, trong khi các trường thơng tin khác hồn tồn như gói tin bình thường. Do đó, máy chủ nạn nhân khó có thể phân biệt được gói tin nào là gói tin giả mạo khi quan sát riêng rẽ từng gói tin. Tin tặc thực hiện tấn công TCP Syn Flood thông qua việc khai thác điểm yếu của giao thức giao vận TCP trong quá trình bắt tay ba bước (3-way handshake sub-protocol).
Dưới đây là nguyên lý hoạt động của giao thức TCP và điểm yếu mà tin tặc lợi dụng để khai thác tấn công:
Giao thức TCP [4] là giao thức được sử dụng phổ biến trên Internet để tạo một kết nối truyền tin tin cậy giữa hai máy tính. Theo nguyên lý hoạt động của giao thức này, để khởi tạo một kết nối TCP phải thực hiện quá trình TCP handshakes. Trong quá trình này, đầu tiên, Client gửi một gói tin SYN đến máy chủ để yêu cầu khởi tạo kết nối. Sau khi nhận được yêu cầu, máy chủ sẽ gửi lại gói tin phản hồi SYN-ACK, để thông báo trạng thái sẵn sàng kết nối cho Client, đồng thời trong phản hồi đó, máy chủ cũng gửi lại gói tin SYN để yêu cầu khởi tạo kết nối với phía Client. Bước cuối cùng trong quá trình khởi tạo kết nối là Client gửi lại gói tin ACK để phản hồi lại cho máy chủ trạng thái sẵn sàng ở phía mình.
Từ nguyên lý khởi tạo kết nối của giao thức TCP ở trên, cho thấy giao thức TCP có một điểm yếu nghiêm trọng là cứ khi nhận được một gói tin SYN, nếu cịn đủ tài nguyên thì máy chủ dành sẵn phần tài nguyên bộ nhớ cần thiết để chuẩn bị phục vụ cho kết nối sau này mà khơng có cơ chế kiểm tra gói tin SYN đó có là gói tin thực hay khơng. Lợi dụng điểm yếu này, tin tặc sẽ tấn công máy chủ bằng cách gửi tràn ngập gói tin SYN giả mạo tới máy chủ để làm cạn kiệt tài nguyên trên máy chủ với mục đích là làm máy chủ khơng cịn tài ngun để phục vụ các yêu cầu hợp lệ gửi tới.
Các gói tin giả mạo được tạo ra với các trường thơng tin giống như của gói tin thơng thường, nhưng với địa chỉ IP nguồn giả mạo (sinh ngẫu nhiên). Nếu khơng có cơ chế theo dõi đặc biệt, máy chủ khơng thể phân biệt được gói tin nào là gói tin thực hay giả mạo.
2.3. Mơ hình triển khai phương pháp phát hiện và phịng chống tấn công TCP Syn Flood
Trong các phần trên, chúng tơi đã trình bày ý tưởng phương pháp của các giải pháp đề xuất đưa trong chương này. Trước khi đi sâu vào phần cơ chế kỹ thuật và giải thuật chi tiết, chúng tơi xin trình bày đơi nét về mơ hình triển khai trong thực tế (tức là sản phẩm dự kiến sẽ xây dựng được nếu ứng dụng các giải pháp thuật toán này). Chúng tơi hy vọng rằng có thêm phần mơ hình triển khai tổng quan này (dự kiến sản phẩm sơ bộ) sẽ giúp độc giả hình dung rõ ràng hơn về phạm vi và cách thức ứng dụng của các giải pháp lý thuyết sẽ được trình bày sau đó.
Cụ thể là mục này sẽ trình bày chức năng và nguyên lý hoạt động của hệ thống phịng chống tấn cơng DDoS (sau đây gọi là hệ thống DDoS-Defence) như là một sản phẩm hệ thống dự kiến sẽ đưa vào ứng dụng trong thực tế. Hệ thống DDoS-Defence này có hai thành phần tương ứng với việc phịng chống hai dạng tấn cơng TCP Syn Flood và Web App-DDoS. Trong phần này, luận án tập trung trình bày về hệ thành phần thứ nhất, hệ TCP Syn Flood Defence. Thành phần cịn lại sẽ được trình bày trong chương 3.
Về cơ bản, một phương pháp phát hiện và phịng chống tấn cơng DDoS là một phương pháp tổng thể, được kết hợp từ nhiều chức năng hệ thống khác nhau, từ khâu chuẩn bị, phát hiện đến phòng chống. Trong khâu chuẩn bị, chức năng hệ thống là thu thập thông tin trạng thái ở chế độ bình thường và khơng có tấn cơng xảy ra. Thơng tin thu thập được ở giai đoạn này được sử dụng cho khâu phát hiện và phòng chống tiếp theo.
Do đó, để phát hiện và phịng chống tấn cơng TCP Syn Flood, chúng tôi thiết kế thành phần TCP Syn Flood Defence bao gồm 04 chức năng chính:
Chức năng xây dựng danh sách các địa chỉ IP sạch IP white-list;
Chức năng phát hiện tấn công TCP Syn Flood;
Chức năng phát hiện và loại bỏ gói tin giả mạo;
TCP Syn Flood Defence Module Web App-DDoS Defence Module Black-List White-List DDoS-Defence System
Hình 2.2 Thành phần TCP Syn Flood Defence
2.3.1. Mơ hình tổng thể và các thành phần cơ bản
Trong phần này, chúng tôi sẽ mô tả hệ thống DDoS-Defence được triển khai trong môi trường thực tế như thế nào. Từ đó, người đọc có thể hình dung ra một cách tổng thể giữa mơ hình vật lý và các chức năng logic của hệ thống DDoS-Defence.
Mơ hình đề xuất dựa trên ý tưởng là việc triển khai biện pháp phịng chống tấn cơng DDoS phải giảm thiểu được sự ảnh hưởng đến hoạt động của hệ thống được bảo vệ, ngay khi hệ thống DDoS-Defence xảy ra sự cố. Từ đó, phương pháp đề xuất hoạt động dựa trên nguyên lý cơ bản là theo dõi thụ động kết nối mạng để thu thập thông tin trạng thái và thiết lập một chính sách truy cập. Chính sách truy cập chỉ được thực hiện khi có tấn cơng DDoS xảy ra thơng qua việc gửi chính sách truy cập đến thiết bị mạng mà không trực tiếp ngăn chặn. Mơ hình triển khai như sau:
` ` Attacker Server Internet Tab Sniffer IF Black list White list User DDosDefence Auth-IF
Hình 2.3 Mơ hình hệ thống phát hiện và xử lý tấn công DDoS Syn Flood
Cách triển khai này cho phép hệ thống DDoS-Defence vẫn có thể phát hiện và phịng chống tấn công, trong khi không làm ảnh hưởng đến hoạt động của hệ thống cần bảo vệ. Thêm nữa, các thực hiện này cịn có ưu điểm là có thể tận dụng các chức năng ngăn chặn chuyên dụng trên các thiết bị mạng.
Trong mơ hình trên, hệ thống DDoS-Defence là một máy chủ chuyên dụng được cài đặt hệ điều hành Linux và được cài đặt các phần mềm để thực hiện chức năng phát hiện và phòng chống tấn cơng. Hệ thống này có hai giao diện: Một giao diện được sử dụng để thu thập thông tin trên giao diện kết nối Internet của Router biên của hệ thống (Sniffer IF) sử dụng thiết bị trích rút dữ liệu chun dụng (Network-Tap) nhằm khơng làm ảnh hưởng tới hoạt động của đối tượng cần bảo vệ; Giao diện thứ hai được sử dụng để tương tác với các thiết bị mạng/thiết bị bảo mật để thiết lập chính sách truy cập trên các thiết bị này.
Như đã phân tích ở trên, điểm khác biệt so với các biện pháp thơng thường là mơ hình này chỉ theo dõi và tương tác với các thiết bị mạng để thực hiện bảo vệ mà không xử lý trực tiếp luồng thông tin của hệ thống như các phương pháp khác (Inline). Việc thực hiện ngăn chặn tấn công thông qua cơ chế tương tác với các thiết bị mạng để chúng thực hiện ngăn chặn mà hệ thống DDoS-Defence không ngăn chặn trực tiếp. Ưu điểm của mơ hình này là có thể xử lý, giảm thiểu tấn công mà không ảnh hưởng tới hoạt động của đối tượng cần bảo vệ. Phần mềm cài đặt trên hệ thống phải có các chức năng:
Chức năng xây dựng danh sách các địa chỉ IP sạch (IP white-list);
Chức năng phát hiện tấn công TCP Syn Flood;
Chức năng phát hiện và loại bỏ gói tin giả mạo;
Chức năng xác thực địa chỉ IP nguồn.
2.3.2. Nguyên lý hoạt động cơ bản
Khi hệ thống hoạt động ở trạng thái bình thường (khơng bị tấn công), hệ thống DDoS- Defence sẽ theo dõi thụ động kết nối mạng để xây dựng danh sách các địa chỉ IP nguồn thường xuyên kết nối vào hệ thống (IP white-list). Danh sách IP white-list được xây dựng dựa vào các tiêu chí khác nhau để đảm bảo khơng để tin tặc không thể đưa các địa chỉ IP độc
hại vào danh sách này (chi tiết được trình bày trong mục 3.5.5). Khi có tấn cơng xảy ra, danh sách IP white-list sẽ được gửi đến các thiết bị mạng để cho phép IP trong danh sách này được ưu tiên kết nối vào hệ thống cần bảo vệ. Các IP không nằm trong IP white-list sẽ phải xác minh tính hợp lệ, trước khi cho kết nối vào hệ thống thông qua cơ chế xác minh địa chỉ IP nguồn. Khi đó, hệ thống DDoS-Defence sẽ đại diện máy chủ đang bị tấn cơng, gửi gói tin SYN, ACK về IP nguồn để xác minh. Nếu hệ thống DDoS-Defence nhận được gói tin ACK từ IP nguồn đó thì IP đó sẽ được đưa vào danh sách IP white-list (chi tiết tại mục 2.5.4). Để thực hiện chức năng phát hiện tấn công, hệ thống DDoS-Defence cũng thu thập thông tin về tần suất nhận được gói tin TCP có cờ trạng thái là Reset (đây là gói tin có đặc trưng riêng để phát hiện tấn công TCP Syn Flood). Một ngưỡng được thiết lập dựa vào tần suất gói tin Reset gửi đến hệ thống, ngưỡng này được sử dụng để phát hiện khi nào tấn công TCP Syn Flood xảy ra. Ngưỡng này cũng được cập nhật động theo trạng thái thực của hệ thống theo thời gian.
Khi phát hiện tấn cơng DDoS xảy ra (tần suất gửi các gói tin TCP Reset vượt quá ngưỡng) 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ệ. Các chức năng của hệ thống DDoS-Defence sẽ được trình bày cụ thể ở các phần dưới đây.
2.4. Phát hiện tấn công 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.
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