Phát hiện lọc bỏ nhanh các gói tin giả mạo trong tấn công mạng TCP SYN Flood
Tấn công từ chối dịch vụ phân tán (DDoS) theo hình thức gửi tràn ngập gói khởi tạo kết nối (gói tin SYN)
là một trong những dạng tấn công mạng rất nguy hiểm và khó phòng-chống. Bởi vì với dạng tấn công này, tin tặc cố
tình gửi gói tin khởi tạo kết nối giả mạo địa chỉ nguồn mà đảm bảo các trường thông tin như của gói tin khởi tạo bình
thường. Đã có nhiều kết quả nghiên cứu và giải pháp đề xuất về việc phát hiện và lọc bỏ những gói tin giả mạo này,
nhưng phần lớn các xử lý yêu cầu nhiều tài nguyên hệ thống để xử lý, do đó hiệu quả sẽ bị ảnh hưởng nhiều khi luồng
tấn công DDoS lớn. Trong nghiên cứu này, chúng tôi đề xuất một thuật toán phát hiện và lọc bỏ nhanh các gói tin giả
mạo mà sử dụng rất ít tài nguyên hệ thống và đạt tỷ lệ phát hiện rất cao.
Tóm tắt nội dung tài liệu: Phát hiện lọc bỏ nhanh các gói tin giả mạo trong tấn công mạng TCP SYN Flood
![Phát hiện lọc bỏ nhanh các gói tin giả mạo trong tấn công mạng TCP SYN Flood Phát hiện lọc bỏ nhanh các gói tin giả mạo trong tấn công mạng TCP SYN Flood](https://s1.tailieubachkhoa.net/rl6k7x3q9zfh00j8/thumb/2021/12/02/phat-hien-loc-bo-nhanh-cac-goi-tin-gia-mao-trong-tan-cong-ma_EJYBcN2BqH.jpg)
Các công trình nghiên cứu phát triển Công nghệ Thông tin và Truyền thông Phát hiện lọc bỏ nhanh các gói tin giả mạo trong tấn công mạng TCP SYN Flood Trần Mạnh Thắng, Nguyễn Khanh Văn Viện Công nghệ Thông tin và Truyền thông, Trường Đại học Bách khoa Hà Nội E-mail: thang197@gmail.com, vannk@soict.hust.edu.vn Tác giả liên hệ: Trần Mạnh Thắng Ngày nhận: 29/05/2017, ngày sửa chữa: 05/07/2017, ngày duyệt đăng: 01/09/2017 Tóm tắt: Tấn công từ chối dịch vụ phân tán (DDoS) theo hình thức gửi tràn ngập gói khởi tạo kết nối (gói tin SYN) là một trong những dạng tấn công mạng rất nguy hiểm và khó phòng-chống. Bởi vì với dạng tấn công này, tin tặc cố tình gửi gói tin khởi tạo kết nối giả mạo địa chỉ nguồn mà đảm bảo các trường thông tin như của gói tin khởi tạo bình thường. Đã có nhiều kết quả nghiên cứu và giải pháp đề xuất về việc phát hiện và lọc bỏ những gói tin giả mạo này, nhưng phần lớn các xử lý yêu cầu nhiều tài nguyên hệ thống để xử lý, do đó hiệu quả sẽ bị ảnh hưởng nhiều khi luồng tấn công DDoS lớn. Trong nghiên cứu này, chúng tôi đề xuất một thuật toán phát hiện và lọc bỏ nhanh các gói tin giả mạo mà sử dụng rất ít tài nguyên hệ thống và đạt tỷ lệ phát hiện rất cao. Từ khóa: Tấn công từ chối dịch vụ phân tán, tấn công SYN Flood. Title: A Method for Fast Filtering SYN Flood Spoof Source in DDoS Attack Abstract: A distributed denial-of-service attack characterized by flood SYN packets is one of network attacks to make the information system unavailable. This attack becomes more dangerous and difficult to prevent and defend when attackers try to send flood SYN packets with spoof sources. Especially, the packets have the information field as that of normal SYN packets. Most of current methods require a training phase to build normal parameters, which will be used in the detection phase to detect spoof packets. In this research, we propose a method that can detect and filter spoof packets quickly without using the training phase. This method requires very few resources and the detection rate is very high. Keywords: DDoS, TCP SYN Flood. I. GIỚI THIỆU Tổng quan về tấn công TCP SYN Flood. Tấn công từ chối dịch vụ (DoS: Denial-of-Service) là dạng tấn công mạng phổ biến và nguy hiểm bậc nhất. Trong đó, kẻ tấn công muốn làm cho hệ thống bị quá tải và không thể phục vụ các yêu cầu hợp lệ do cạn kiệt tài nguyên (năng lực tính toán, bộ nhớ, v.v.). Tấn công từ chối dịch phân tán (DDoS: Distributed DoS) là dạng đặc biệt của tấn công DoS. Khi sử dụng DDoS, tin tặc tìm cách xây dựng mạng botnet (một số lượng lớn các máy tính trên mạng bị điều khiển bởi một máy chủ điều khiển C&C) để thực hiện tấn công DDoS thay vì chỉ thực hiện tấn công từ một máy như dạng tấn công DoS thông thường. Mạng botnet được xây dựng bằng nhiều hình thức khác nhau. Một hình thức phổ biến là tin tặc tạo ra các mã độc và cho lây lan trên môi trường mạng. Mỗi máy tính bị nhiễm mã độc sẽ trở thành thành viên của mạng botnet (bot) và chịu sự điều khiển của máy chủ C&C để thực hiện các cuộc tấn công DDoS. Có nhiều hình thức tấn công DDoS khác nhau, như sau. Ping Flood: Dạng tấn công DDoS bằng cách gửi tràn ngập gói tin ICMP hoặc UDP có kích thước lớn. Teardrop: Dạng tấn công DDoS bằng cách gửi tràn ngập các gói tin phân mảnh có offset trùng nhau hoặc ngắt quãng là phía máy nhận gói tin không thể xử lý được gây làm treo hệ thống. TCP Syn Flood: Đối với dạng tấn công này, tin tặc gửi tràn ngập gói tin SYN nhưng giả mạo địa chỉ IP nguồn [1] thông qua mạng botnet (sau đây gọi là gói tin giả mạo) là một trong những hình thức tấn công khó phòng, chống nhất. Do tin tặc cố tình tạo ra các gói tin giả mạo có các trường thông tin như gói tin bình thường nên máy chủ nạn nhân không thể phân biệt được các gói tin giả mạo này nên nhanh chóng bị cạn kiệt tài nguyên. Đối với dạng tấn công TCP SYN Flood, tin tặc khai thác điểm yếu của giao thức phổ biến TCP (giao thức giao vận trong kiến thúc TCP/IP của Internet) để tấn công DDoS. 33 Các công trình nghiên cứu phát triển Công nghệ Thông tin và Truyền thông Cụ thể, trong quá trình bắt tay 3 bước (3-way handshake sub-protocol) gói tin SYN được sử dụng để khởi tạo một kết nối TCP. Các gói tin này sẽ được gửi tràn ngập tới máy chủ với địa chỉ IP nguồn giả mạo. Máy chủ phải dành tài nguyên để phục vụ các kết nối đối với các gói tin giả mạo, dẫn tới cạn kiệt tài nguyên. Ý tưởng cơ bản của giải pháp. Các gói tin giả mạo cũng không khác gì bình thường nếu xét riêng từng gói tin. Tuy nhiên, chúng tôi cho rằng, 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 ta quan sát cả 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 giải 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. Trong nghiên cứu này, chúng tôi phát hiện ra rằng khi 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ị IPD (trường Identification trong IP Header [2]) sẽ tăng lên 1 đơn vị. Điều này có nghĩa khi quan sát ở phía máy chủ thì ta sẽ nhận được chuỗi các gói tin có giá trị PID tăng liên tục, nếu chúng gửi đi từ một máy. Chúng tôi mô tả cụ thể tính chất này tại mục III-1. Trong một bài báo trước [3], chúng tôi đã đề xuất phương pháp dùng thuật toán DBSCAN để nhóm các gói tin SYN có địa chỉ IP khác nhau nhưng có giá trị PID tăng dần vào một cụm giá trị liên tục (Cluster). Với mỗi cụm1, chúng tôi xác định được giá trị trường PID của gói tin tấn công tiếp tục nếu có (Expected PID - EPID) sẽ thuộc về cụm này. Đối với phương pháp này, chúng tôi phải thực hiện quá trình máy học (training phase) để tìm ra các cụm và giá trị EPID cho mỗi cụm. Trong bài báo này, chúng tôi đề xuất một phương án mới cho phép tìm ra các gói tin có giá trị PID tăng liên tục với cơ chế thuật toán hoàn toàn khác (không dựa trên quá trình máy học như trước đây), trực tiếp phát hiện ra các gói tin tấn công dựa vào quan sát về PID nói trên (và một số quan sát khác) và một cấu trúc dữ liệu tổ chức đặc biệt để lưu trữ và đối sánh thông tin. Phương pháp này cũng cho phép tự loại bỏ các gói tin ngay khi phát hiện gói đầu tiên trong chuỗi gói tin giả mạo gửi đến hệ thống, cũng như cho phép những gói tin thực kết nối đến hệ thống trước khi xảy ra quá trình TCP retransmission - những ưu điểm mới so với phương án trước. Bài báo có cấu trúc như sau: Mục I giới thiệu tổng quan về tấn công TCP SYN Flood và ý tưởng cơ bản của giải pháp đề xuất. Mục II giới thiệu tổng quan lĩnh vực về các nghiên cứu có liên quan. Mục III đưa ra các cơ sở lý thuyết 1Điều kiện để tạo thành một cụm là khi hệ thống nhận được 03 gói tin có PID tăng liên tục, nhưng có địa chỉ IP khác nhau. Các gói tin nằm trong cụm được coi là các gói tin giả mạo gửi đến hệ thống từ cùng một máy tấn công và do đó, gói tin tiếp theo có giá trị PID trùng với EPID sẽ được cho là gói tin giả mạo tiếp theo gửi từ cùng máy tấn công này. Hình 1. Phân loại phương pháp phòng chống tấn công DDoS. của phương pháp đề xuất. Mục IV trình bày về cơ chế thuật toán loại bỏ nhanh gói tin giả mạo. Mục V đưa ra kết quả đánh giá thực nghiệm. Mục VI đưa ra kết luật và hướng phát triển tiếp theo. II. TỔNG QUAN LĨNH VỰC Theo nghiên cứu tổng quan về tấn công DDoS trong [4], về cơ bản các giải pháp phòng-chống DDoS có thể phân loại theo hai yếu tố: vị trí triển khai giải pháp và thời điểm xử lý tấn công DDoS. Cách phân loại này được thể hiện bằng sơ đồ ở Hình 12. Với yếu tố đầu, ta có thể thấy có hai lớp giải pháp: (A1) lớp các giải pháp phòng chống cho các dạng tấn công nhằm vào các tầng giao vận hoặc thấp hơn trong mô hình OSI [5]; (A2) lớp các giải pháp phòng chống cho các dạng tấn công nhằm vào tầng ứng dụng. Với yếu tố thứ hai, ta có thể phân loại thành các lớp giải pháp nhằm vào ba giai đoạn phân biệt: giai đoạn trước khi xảy ra tấn công (phát hiện nguy cơ), giai đoạn đang xảy ra tấn công (phát hiện sự kiện) và giai đoạn sau khi bị tấn công (khắc phục hậu quả và truy cứu). Nhóm giải pháp (A1) nói trên lại có thể phân loại thành bốn nhóm: Nhóm giải pháp áp dụng ở gần nguồn tấn công (source-based); Nhóm áp dụng ở phía đối tượng được bảo vệ (destination-based); Nhóm áp dụng ở hạ tầng mạng trung gian (network-based) và Nhóm giải pháp kết hợp (hybrid). Nhóm (A2) được chia làm hai nhóm: nhóm giải pháp áp dụng phía đối tượng được bảo vệ và nhóm giải pháp kết hợp. Trong bài báo này, chúng tôi tập trung nghiên cứu phương pháp phòng-chống tấn công thường được gọi là SYN Flood đã đề cập, trong đó các gói tin SYN đều mang địa chỉ IP 2Trong sơ đồ này, chúng tôi sử dụng thuật ngữ tiếng Anh để bạn đọc tiện đối chiếu với tài liệu quốc tế. 34 Tập V-2, Số 18 (38), 12/2017 nguồn giả mạo. Giải pháp của chúng tôi thuộc dạng cho đối tượng được bảo vệ (destination-based) trong lớp (A1) nói trên. Sau đây, chúng tôi sẽ đi sâu phân tích một số nghiên cứu liên quan như sau. Cơ chế IP Traceback [6, 7]: Phương pháp này đề xuất cơ chế truy vết kẻ tấn công dựa trên việc lưu lại thông tin về đường đi từ nguồn đến đích (trong trường thông tin Packet Identification của gói tin) ứng với mỗi địa chỉ IP nguồn. Dựa vào thông tin đường đi này (con đường phổ biến kết nối từ một IP nguồn nào đó) người ta có thể phát hiện ra các gói tin giả mạo: gói tin giả mạo là gói tin có thông tin đường đi không khớp với xu hướng phổ biến đã phát hiện trước đó (đối với một địa chỉ IP nguồn). Tuy nhiên, phương pháp này có hạn chế lớn là yêu cầu các trạm router trung gian phải hỗ trợ cơ chế đánh dấu đường đi nên rất khó triển khai trong thực tế. Phương pháp Management Information Base (MIB) [8–10]: Phương pháp này kết hợp các thông tin có trong mỗi gói tin và thông tin định tuyến để phát hiện tấn công DDoS. Phương pháp này đề xuất so sánh thông tin trong mỗi gói ICMP, TCP, UDP (khi tấn công có thể đang xảy ra) với những thông tin tương ứng đã được phân tích và lưu trữ trong khi chưa xảy ra tấn công để tìm ra những gói tin có thông tin khác thường. Các cơ chế Packet marking and filtering (Đánh dấu và lọc bỏ gói tin): Một nghiên cứu đề xuất cơ chế History- based IP filtering [11], trong đó người ta lưu lại thông tin các địa chỉ IP nguồn thường xuyên kết nối vào hệ thống khi tấn công DDoS chưa xảy ra; trong tấn công, các địa chỉ IP đã lưu lại này sẽ được kết nối vào hệ thống, còn lại sẽ bị lọc bỏ. Phương pháp Hop-count filtering [12] thì chú ý ghi nhận thông tin hop-count tương ứng với mỗi IP nguồn (qua các gói tin được lưu lại khi tấn công DDoS chưa xảy ra). Khi tấn công DDoS xảy ra, các gói tin có thông tin hop-count khác nhiều với thông tin đã lưu trước đó ứng với địa chỉ IP nguồn tương ứng sẽ được coi là giả mạo và bị lọc bỏ. Phương pháp Path Identifier [13] đề xuất lưu trữ giá trị được coi là đặc trưng đường đi (PI) của mỗi gói tin khi đi từ nguồn đến đích ứng với mỗi địa chỉ nguồn. Các gói tin đi cùng đường đến đích sẽ có thông tin PI thường giống nhau, và qua đó sẽ được sử dụng để lọc bỏ tất cả các gói tin giả mạo có cùng đường đi với một gói tin giả mạo đã phát hiện trước đó. Một tiếp cận lý thú khác dựa trên ý tưởng loại bỏ các gói tin dựa trên mức độ tắc nghẽn, trong đó Packetscore [14], một cơ chế điển hình, đề xuất thiết lập mức độ ưu tiên cho mỗi gói tin dựa vào thuật toán Detecting-Differentiating- Discarding routers (3D-R) sử dụng độ đo Bayes (Bayesian- theoretic metric). Từ đó, người ta thiết lập cơ chế lọc bỏ các gói tin có mức ưu tiên thấp khi tấn công DDoS xảy ra (gây tắc nghẽn tại các router kề cận). Hình 2. IP Header. III. CƠ SỞ LÝ THUYẾT 1. Packet Identification và tính chất tăng dần Trường thông tin Identification 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. Tuy nhiên, qua quan sát thực tế thì khi hệ thống hoạt động ở trạng thái bình thường, nếu 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ị IPD sẽ tăng lên 1 đơn vị. Nguyên lý này cũng được áp dụng trong phương pháp Idle scan [15] để kiểm tra một cổng mở trên một máy chủ hay không khi máy tính kiểm tra không thể gửi trực tiếp gói tin đến máy chủ cần kiểm tra mà phải thông qua một máy tính khác ở trạng thái Idle. Để có thêm sở cứ cho tính chất chúng tôi phát hiện ở trên, chúng tôi kiểm thử lại tính chất trên đối với tập dữ liệu chuẩn DARPA Intrusion Detection Evaluation [16] 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 [17–19] để đá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. Kết quả chúng tôi phát hiện: tấn công DDoS từ địa chỉ nguồn 202.77.162.213 đến địa chỉ 172.16.115.20 qua ứng dụng Telnet có giá trị PID tăng liên tục từ giá trị 11484. 2. Thủ tục bắt tay TCP handshake và tấn công tràn ngập TCP SYN Flood TCP (Transmission Control Protocol) [20] 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 2 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, máy khách (client) gửi một gói tin SYN để máy chủ (server) 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 máy khách, đồng thời trong phản hồi đó, máy chủ cũng gửi lại gói tin SYN 35 Các công trình nghiên cứu phát triển Công nghệ Thông tin và Truyền thông Hình 3. TCP handshakes. để yêu cầu khởi tạo kết nối với phía máy khách. Bước cuối cùng trong quá trình khởi tạo kết nối là máy khách 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. Theo cơ chế TCP retransmission [20] của nguyên lý hoạt động của giao thức TCP, trong khoảng thời gian nhất định (time out), sau khi máy khách gửi gói tin SYN để yêu cầu khởi tạo kết nối tới máy chủ, mà nó không nhận được gói tin xác nhận ACK từ phía máy chủ, thì máy khách sẽ gửi lại gói tin SYN khác để tiếp tục yêu cầu kết nối. Từ nguyên lý khởi tạo kết nối của giao thức TCP ở trên, chúng ta có thể thấy được một điểm yếu rõ ràng: 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 hề kiểm tra tính trung thực của gói tin SYN gửi đến. 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 nguyên để 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. IV. CƠ CHẾ THUẬT TOÁN LỌC BỎ NHANH GÓI TIN GIẢ MẠO Trong mục này, chúng tôi sẽ trình bày chi tiết về đề xuất mới của chúng tôi, cơ chế lọc bỏ gói tin tấn công dựa trên việc phát hiện các chuỗi gói tin PID tăng liên tục (nhưng lại có ... nh giá về giải phápnày trên góc độ lý thuyết. Ta hãy phân tích về hoạt động của thuật toán PID- Filter. Giả sử một máy tính (máy bị điều khiển để tấn công DDoS – máy bot) tạo và gửi một chuỗi gói tin SYN tấn công ký hiệu là P0, P1, P2, P3, với dãy giá trị PID tăng dần. Khoảng thời gian T được đặt đủ dài hơn khoảng thời gian giữa hai gói tin P0 và P3đến đích (máy chủ bị tấn công). Nếu như đường truyền tốt và không có gì đặc biệt xảy ra thì chuỗi gói tin sẽ đến đúng theo thứ tự ban đầu, chúng sẽ lần lượt được cập nhật địa chỉ IP vào bảng I1, giá trị PID của P0 vào bảng B0 (chỉ mình P0 tại bước 4), và vào B1 (P1, P2, trở đi tại bước 2). Tuy nhiên, khi nhận được P2, chuỗi gói tin tấn công bị nhận diện nên các địa chỉ IP tương ứng bị loại bỏ khỏi bảng I1, đồng thời PID của P0 được loại bỏ trên B0, các PID của các gói P1 và tiếp theo cũng bị loại bỏ trên B1, ngoại trừ của gói tin cuối cùng (Pi) Hình 5. Mô hình hệ thống triển khai xử lý tấn công DDoS. Thuật toán 1: Thuật toán phương pháp đề xuất for mỗi gói tin mới P(i) If (SrcIP[P(i)] thuộc I0) Cho phép P(i); else if (SrcIP[P(i)] thuộc I1) Thêm SrcIP[P(i)] vào I0 Loại SrcIP[P(i)] khỏi I1) //Thực hiện bước 1 trong PID-Filter else if (PID(x − 1)[P(i)] thuộc B0) Thêm PID(x)[P(i)] vào B1 //Thực hiện bước 2 trong PID-Filter else if (PID(x − 1)[P(i)] thuộc B1) Cập nhật B1[PID(x−1)[P(i)]] = B1[PID(x)[P(i)]] Cảnh báo PID(x − 1)[P(i)] và PID(x − 2)[P(i)] //Thực hiện bước 3 trong PID-Filter else if (PID(x − 2)[P(i)] thuộc B0) Cập nhật B1[PID(x−1)[P(i)]] = B1[PID(x)[P(i)]] Cảnh báo PID(x − 1)[P(i)] and PID(x − 2)[P(i)] //Thực hiện bước 4 trong PID-Filter else Thêm PID(x)[P(i)] vào B0 end end Khi tấn công DDoS xảy ra danh sách địa chỉ IP trong White-List sẽ được gửi đến máy chủ hoặc thiết bị mạng để thực hiện chính sách khóa các địa chỉ IP không nằm trong White-List này. Danh sách địa chỉ IP trong White-List cũng liên tục cập nhật thông qua thuật toán của chúng tôi. Cụ thể ở đây là các địa chỉ IP trong I0 sẽ được đưa vào White- List. Trong mô hình trên, phương pháp của chúng tôi được cài đặt trên máy chủ DDoS Defence. Máy chủ 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 chuyên dụng (Network-Tap) nhằm không làm ảnh hưởng tới hoạt động của hệ thống được bảo vệ. Giao diện thứ hai được sử dụng để gửi danh sách IP trong White-list đến máy chủ hoặc thiết bị mạng. 4. Phân tích thuật toán Sau đây, chúng tôi đưa ra một phân tích đánh giá về giải pháp này trên góc độ lý thuyết. Ta hãy phân tích về hoạt động của thuật toán PID-Filter. Giả sử một máy tính (máy bị điều khiển để tấn công DDoS - máy bot) tạo và gửi một chuỗi gói tin SYN tấn công ký hiệu là P0, P1, P2, P3, . . ., với dãy giá trị PID tăng dần. Khoảng thời gian δT được đặt đủ dài hơn khoảng thời gian giữa hai gói tin P0 và P3 đến đích (máy chủ bị tấn công). Nếu như đường truyền tốt và không có gì đặc biệt xảy ra thì chuỗi gói tin sẽ đến đúng theo thứ tự ban đầu, chúng sẽ lần lượt được cập nhật địa chỉ IP vào bảng I1, giá trị PID của P0 vào bảng B0 (chỉ mình P0 tại bước 4), và vào B1 (P1, P2, trở đi tại bước 2). Tuy nhiên, khi nhận được P2, chuỗi gói tin tấn công bị nhận diện nên các địa chỉ IP tương ứng bị loại bỏ khỏi bảng I1, đồng thời PID của P0 được loại bỏ trên B0, các PID của các gói P1 và tiếp theo cũng bị loại bỏ trên B1, ngoại trừ của gói tin cuối cùng (Pi) được lưu ở đây để tiếp tục phát hiện những gói tin tấn công tiếp theo sau này cùng một chuỗi đó (Pi+1, . . .). Chúng ta xét tiếp trường hợp có những trục trặc (do kết nối mạng đang có tắc nghẽn hoặc sự cố trên đường truyền), 38 Tập V-2, Số 18 (38), 12/2017 trật tự gói tin đến có thể thay đổi hoặc có gói tin thất lạc. Nếu máy chủ nhận được dãy các gói tin P0, P1, P3, hay P0, P2, P3 (tức là chỉ 1 gói bị thất lạc) thì chuỗi tấn công vẫn có thể bị phát hiện, tuy nhiên nếu có 2 gói tin thất lạc trở lên trong số 4 gói đầu thì sẽ không phát hiện được. Đây có thể coi là điểm yếu còn tồn tại của thuật toán, cần được cải tiến nâng cao trong tương lai. Khi mỗi gói tin lẻ không phát hiện thuộc dãy tăng nào (hoặc là bị sót như trường hợp cặp P0, P1, rồi P2, P3 bị thất lạc hoặc đến rất muộn) có thời gian tồn tại vượt δT thì các thông tin tương ứng sẽ bị loại khỏi B0, B1 và I1 nhưng địa chỉ IP sẽ được cập nhật vào I0 - danh sách các IP được coi là sạch trong hiện tại3. Sau đây chúng tôi phân tích về các lỗi nhầm lẫn có thể xảy ra do ngẫu nhiên. Xác suất một gói tin giả mạo có thể may mắn được chấp nhận (tức là báo âm tính nhầm - False Negative) vì có địa chỉ IP tình cờ trùng khớp với địa chỉ nào đó trong I0 là p0 = |I0 | /232. Xác suất một gói tin giả mạo có địa chỉ IP được đưa vào I0 vì tình cờ trùng khớp địa chỉ nào đó trong I1 (tức là được coi là tốt theo cơ chế TCP retransmission - False Nagative) là p1 = |I1 | /232. Xác suất một gói tin tốt có giá trị PID tình cờ lớn hơn 1 so với một giá trị trong B0 (tức là báo dương tính nhầm - False Positive) là p2 = |B0 | /216. Các xác suất nói trên có thể được ước lượng như sau. Giả sử tại một thời điểm đang diễn ra tấn công, có N máy tấn công và M máy khách hàng tốt đang tìm cách kết nối đến máy chủ. Nếu giả định rằng số lượng các trục trặc về truyền tin trên mạng (gói tin thất lạc hoặc đi vòng lâu hơn nhiều) là đủ nhỏ thì ta dễ thấy: |I0 | ≈ M , |I1 | ≤ M + 3N , |B0 | ≈ N và |B1 | ≤ 2N . Các ước lượng về |I1 |, |B0 | và |B1 | có được là do theo phân tích ở trên về quá trình hoạt động của PID-Filter dễ thấy tại mỗi thời điểm chỉ có từ 2 đến 3 gói tin của cùng một chuỗi tăng (phát đi từ một máy bot) được ghi nhận trong I1. Bảng I minh họa cho các phân tích và ước lượng trên. Con số máy tham gia tấn công được giả định từ cấp độ qui mô trung bình (từ 1.000 đến 2.000) đến rất cao (lớn hơn 10.000), dựa trên các báo cáo về qui mô các tấn công SYN thường thấy. Có thể thấy rằng các xác suất lỗi bỏ sót (âm tính sai) đều rất nhỏ, trong khi xác suất lỗi báo nhầm tấn công (dương tính sai) có thể lớn đáng kể khi qui mô số máy tấn công là lớn cỡ 10.000 trở lên. V. ĐÁNH GIÁ THỰC NGHIỆM BAN ĐẦU Trong triển khai cài đặt, hiện nay chúng tôi lựa chọn giá trị δT ≈ 1–2 ms, cho phép có thể theo dõi được chuỗi gói 3Chỉ là sạch trong phạm vi cơ chế đề xuất của chúng tôi. Bên cạnh đó, các vành đai kiểm soát khác của Firewall vẫn có thể kiểm soát nhưng danh sách IP sạch khác, hoạt động độc lập. Bảng I QUI MÔ TẤN CÔNG GIẢ ĐỊNH VÀ XÁC SUẤT LỖI Giá trị giả định Xác suất nhận được M N |I1 | |B1 | P0 P1 P2 1.000 1.000 4.000 2.000 2, 3E-07 0, 93E-06 1,5% 1.500 2.000 7.500 4.000 3, 5E-07 1, 74E-06 3% 2.000 4.000 14.000 8.000 4, 7E-07 3, 25E-06 6% 2.500 8.000 26.500 16.000 5, 8E-07 6, 17E-06 12% 3.000 16.000 51.000 32.000 7, 0E-07 11, 8E-06 24% tin tăng PID phát từ một máy bot có băng thông tấn công vào cỡ chỉ 1 Mb, tức là được coi vào loại nhỏ nhất đáng kể (nếu băng thông tấn công nhỏ hơn nữa ta có thể coi là quá bé nên không cần quan tâm nữa). Các bảng lưu trữ được cài đặt bằng cấu trúc dữ liệu mảng bản ghi đơn giản. Theo những nghiên cứu mà chúng tôi đề cập ở mục II, thì những nghiên cứu này không sử dụng một dữ liệu mẫu chung nào để đánh giá thực nghiệm. Tập dữ liệu kiểm thử DARPA của Viện MIT có dữ liệu kiểm thử cho một số dạng tấn công Dos/DDoS, tuy nhiên tập dữ liệu này lại không có dữ liệu kiểm thử cho dạng tấn công SYN Flood mặc dù có đề cập tới [16]. Do đó, trong nghiên cứu này, chúng tôi sử dụng dữ liệu thử nghiệm do chúng tôi tự thu thập được từ một cuộc tấn công SYN Flood trên môi trường thực với 336.671 gói tin được ghi nhận (thời điểm chúng tôi lấy mẫu hệ thống đã quá tải và dừng hoạt động tại con số nói trên). Theo đánh giá chuyên gia, có thể coi toàn bộ gói tin mà chúng tôi thu thập được là gói tin giả mạo, số lượng gói tin thực nếu có thì chiếm tỷ lệ rất nhỏ, không đáng kể. Mỗi gói tin thu được, chúng tôi thu thập những thông tin: thời gian đến của gói tin (timestamp), địa chỉ IP nguồn (Src IP), cờ trạng thái kết nối (flag) và giá trị PID. Kết quả thực nghiệm được đưa ra trong Bảng II, bao gồm các giá trị sau: Số lượng gói tin trong mẫu thử nghiệm (#Packets), số lượng gói tin giả mạo phát hiện được (#Detected Packets), số lượng các chuỗi có PID tăng dần được tạo ra (#PID-Groups) và tỷ lệ (Rate) các gói tin giả mạo phát hiện. Các kết quả đều cho thấy tỉ lệ phát hiện được là rất cao. VI. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong bài báo này, chúng tôi đã đề xuất một cơ chế thuật toán mới để phát hiện và lọc bỏ những gói tin giả mạo sử dụng trong tấn công DDoS dạng SYN Flood mà không phải thực hiện các bước chuẩn bị gián tiếp tốn kém như quá trình học mẫu thường được sử dụng phổ biến (chúng tôi cũng đã sử dụng trước đây [3]). 39 Các công trình nghiên cứu phát triển Công nghệ Thông tin và Truyền thông Bảng II KẾT QUẢ THỰC NGHIỆM #Packets #Detected #PIDGroups Rate Packets 100.000 92.954 17.043 92,95% 150.000 139.189 25.479 92,79% 200.000 185.634 33.980 92,81% 250.000 232.061 42.574 92,82% 300.000 278.444 50.959 92,81% 336.671 312.583 57.179 92,84% Các đánh giá trên các phương diện phân tích lý thuyết cũng như thực nghiệm cho thấy giải pháp của chúng tôi là rất khả quan khi qui mô số máy tấn công là không quá lớn (nhỏ hơn 10.000 máy). Phương pháp xử lý các gói tin cho phép đạt tốc độ rất nhanh, đáp ứng đòi hỏi đặc biệt của việc chống tấn công DDoS. Khi số máy tấn công là rất lớn, tỷ lệ báo dương tính nhầm có thể tăng cao (trên 10% trở lên), làm ảnh hưởng đáng kể tới việc kết nối của các máy khách hàng tốt. Cơ chế kiểm soát của chúng tôi cũng dựa trên giả định là tỷ suất truyền tin trục trặc hay thất lạc (phía bên ngoài máy chủ) là đủ thấp. Một tồn tại khác là chúng tôi chưa đề xuất được phương án đặc thù cho lưu trữ và tìm kiếm nhanh các thông tin trên các bảng I0, I1, B0 và B1. Khi qui mô tấn công rất lớn, không gian lưu trữ mỗi bảng và thời gian tìm kiếm thông tin trên mỗi bảng sẽ lớn, thời gian xử lý có thể trở nên chậm đáng kể. Trong các nghiên cứu tiếp theo, chúng tôi sẽ tiếp tục đề xuất thuật toán nâng cao để khắc phục các lỗi bỏ sót đã phân tích (mục IV-3) cũng như xây dựng các phương pháp đặc thù, hiệu quả hơn cho lưu trữ và xử lý thông tin trên các bảng I0, I1, B0 và B1 để tối ưu hơn nữa các yếu tố hiệu năng (thu gọn không gian lưu trữ và giảm tốc độ xử lý thông tin trên mỗi bảng). LỜI CẢM ƠN Chúng tôi xin cảm ơn sự hỗ trợ của Cục An toàn Thông tin của Bộ Thông tin và Truyền thông, thông qua Nhiệm vụ Khoa học Công nghệ cấp Quốc gia: “Nghiên cứu, xây dựng Khung tham chiếu về an toàn thông tin phục vụ chính phủ điện tử”, mã số KC.01.07/16-20. TÀI LIỆU THAM KHẢO [1] C. C. Center, “TCP SYN flooding and IP spoofing attacks,” CERT Advisory CA-96-21, Sep. 1996. [2] Internet Engineering Task Force, “Internet protocol,” Stan- dard RFC 791, 1981. [3] T. M. Thang and V. K. Nguyen, “Synflood Spoof Source DDoS Attack Defence Based on Packet ID Anomaly Detection-PIDAD,” in Information Science and Applications (ICISA). Springer, 2016, pp. 739–751. [4] S. T. Zargar, J. Joshi, and D. Tipper, “A survey of defense mechanisms against distributed denial of service (DDoS) flooding attacks,” IEEE Communications Surveys & Tuto- rials, vol. 15, no. 4, pp. 2046–2069, 2013. [5] H. Zimmermann, “OSI reference model–The ISO model of architecture for open systems interconnection,” IEEE Transactions on Communications, vol. 28, no. 4, pp. 425– 432, 1980. [6] A. John and T. Sivakumar, “DDoS: Survey of traceback methods,” International Journal of Recent Trends in Engi- neering, vol. 1, no. 2, pp. 241–245, 2009. [7] A. C. Snoeren, “Hash-based IP traceback,” in In Proceedings of the ACM SIGCOMM. Citeseer, Aug. 2001, pp. 3–14. [8] J. B. Cabrera, L. Lewis, X. Qin, W. Lee, R. K. Pras- anth, B. Ravichandran, and R. K. Mehra, “Proactive de- tection of distributed denial of service attacks using mib traffic variables-a feasibility study,” in Proceedings of the IEEE/IFIP International Symposium on Integrated Network Management. IEEE, 2001, pp. 609–622. [9] R. Jalili, F. Imani-Mehr, M. Amini, and H. Shahriari, “Detection of distributed denial of service attacks using statistical pre-processor and unsupervised neural networks,” Information Security Practice and Experience, pp. 192–203, 2005. [10] M. Li, J. Liu, and D. Long, “Probability Principle of a Reliable Approach to Detect Signs of DDOS Flood Attacks.” in Proceedings of the Parallel and Distributed Computing: Applications and Technologies. Springer, 2004, pp. 596– 599. [11] T. Peng, C. Leckie, and K. Ramamohanarao, “Protection from distributed denial of service attacks using history- based IP filtering,” in Proceedings of the IEEE International Conference on Communications (ICC’03), vol. 1. IEEE, 2003, pp. 482–486. [12] H. Wang, C. Jin, and K. G. Shin, “Defense against spoofed IP traffic using hop-count filtering,” IEEE/ACM Transactions on Networking (ToN), vol. 15, no. 1, pp. 40–53, 2007. [13] A. Yaar, A. Perrig, and D. Song, “Pi: A path identification mechanism to defend against DDoS attacks,” in Proceedings of the Symposium on Security and Privacy. IEEE, 2003, pp. 93–107. [14] Y. Kim, W. C. Lau, M. C. Chuah, and H. J. Chao, “Pack- etScore: a statistics-based packet filtering scheme against distributed denial-of-service attacks,” IEEE Transactions on Dependable and Secure Computing, vol. 3, no. 2, pp. 141– 155, 2006. [15] F. Almeida, “idlescan (ip.id portscanner),” 1999. [16] R. Lippmann, J. W. Haines, D. J. Fried, J. Korba, and K. Das, “The 1999 darpa off-line intrusion detection evaluation,” Computer Networks, vol. 34, no. 4, pp. 579–595, 2000. [17] U. Akyazi and A. S. Uyar, “Distributed detection of DDoS attacks during the intermediate phase through mobile agents,” Computing and Informatics, vol. 31, no. 4, pp. 759– 778, 2012. [18] W.-H. Chen, S.-H. Hsu, and H.-P. Shen, “Application of SVM and ANN for intrusion detection,” Computers & Op- erations Research, vol. 32, no. 10, pp. 2617–2634, 2005. [19] M. Panda and M. R. Patra, “Network intrusion detection us- ing naive bayes,” International Journal of Computer Science and Network Security, vol. 7, no. 12, pp. 258–263, 2007. [20] Internet Engineering Task Force, “Transmission control pro- tocol,” Standard RFC 793, 1981. 40 Tập V-2, Số 18 (38), 12/2017 Trần Mạnh Thắng sinh năm 1982, làm việc tại Cục An toàn thông tin - Bộ Thông tin và Truyền thông. Hiện nay, ông là nghiên cứu sinh năm thứ ba tại Bộ môn Công nghệ Phần mềm, Viện Công nghệ Thông tin và Truyền thông, Trường Đại học Bách khoa Hà Nội. Hướng nghiên cứu của ông là phòng, chống tấn công từ chối dịch vụ. Nguyễn Khanh Văn sinh năm 1970 tại Hà Nội. Ông tốt nghiệp Trường Đại học Bách khoa Hà Nội năm 1992. Ông nhận bằng Thạc sĩ, năm 2000, tại Trường Đại học Wollogong, Úc và nhận bằng Tiến sĩ, năm 2006, tại Trường Đại học California - Davis, Hoa kỳ. Hiện nay, ông đang công tác tại Viện Công nghệ Thông tin và Truyền thông, Trường Đại học Bách khoa Hà Nội. Hướng nghiên cứu chính của ông là tính toán phân tán, mô hình mạng mới và thuật toán, mạng máy tính và an toàn thông tin. 41
File đính kèm:
phat_hien_loc_bo_nhanh_cac_goi_tin_gia_mao_trong_tan_cong_ma.pdf