Khóa luận Triển khai các hệ thống d-Wardtheo mô hình mạng các node hàng xóm

Tài liệu Khóa luận Triển khai các hệ thống d-Wardtheo mô hình mạng các node hàng xóm: 1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Phạm Đức Duy TRIỂN KHAI CÁC HỆ THỐNG D-WARD THEO MÔ HÌNH MẠNG CÁC NODE HÀNG XÓM KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Mạng và truyền thông máy tính i LỜI CẢM ƠN Để hoàn thành khóa luận này, trước hết em xin bày tỏ lòng biết ơn sâu sắc tới thầy Đoàn Minh Phương. Thầy đã tận tình hướng dẫn, giúp đỡ, và tạo điều kiện rất tốt cho em trong suốt quá trình làm khóa luận. Đồng thời em xin cảm ơn các thầy giáo, cô giáo trong Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội đã truyền đạt cho em nhiều kiến thức bổ ích trong suốt thời gian học tập tại trường. Cuối cùng, em xin cảm ơn tất cả bạn bè, gia đình và người thân đã giúp đỡ, động viên em rất nhiều để em có thể hoàn thành tốt khóa luận. Hà Nội, ngày 21 tháng 5 năm 2010 Sinh viên Phạm Đức Duy ii TÓM TẮT NỘI DUNG Các cuộc tấn công tấn công từ chối dịch vụ (DDoS) gây ra một đe dọa rất lớn tới mạng Internet. Chúng lấy sức mạnh của một ...

pdf57 trang | Chia sẻ: haohao | Lượt xem: 1041 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Triển khai các hệ thống d-Wardtheo mô hình mạng các node hàng xóm, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Phạm Đức Duy TRIỂN KHAI CÁC HỆ THỐNG D-WARD THEO MÔ HÌNH MẠNG CÁC NODE HÀNG XÓM KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Mạng và truyền thông máy tính i LỜI CẢM ƠN Để hoàn thành khóa luận này, trước hết em xin bày tỏ lòng biết ơn sâu sắc tới thầy Đoàn Minh Phương. Thầy đã tận tình hướng dẫn, giúp đỡ, và tạo điều kiện rất tốt cho em trong suốt quá trình làm khóa luận. Đồng thời em xin cảm ơn các thầy giáo, cô giáo trong Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội đã truyền đạt cho em nhiều kiến thức bổ ích trong suốt thời gian học tập tại trường. Cuối cùng, em xin cảm ơn tất cả bạn bè, gia đình và người thân đã giúp đỡ, động viên em rất nhiều để em có thể hoàn thành tốt khóa luận. Hà Nội, ngày 21 tháng 5 năm 2010 Sinh viên Phạm Đức Duy ii TÓM TẮT NỘI DUNG Các cuộc tấn công tấn công từ chối dịch vụ (DDoS) gây ra một đe dọa rất lớn tới mạng Internet. Chúng lấy sức mạnh của một lượng lớn các máy được kết nối vào mạng Internet để tiêu thụ một vài tài nguyên tại máy nạn nhân và từ chối dịch vụ tới các máy khách hợp lệ, vì chúng thường gây ra sự tắc nghẽn mạng trên đường từ nguồn đến đích, do vậy làm giảm sự hoạt động của mạng Internet. Chính vì vậy nảy sinh việc xây dựng các hệ thống phòng thủ DdoS để phát hiện và ngăn chặn các cuộc tấn công DDoS. Hệ thống D-WARD được biết đến một hệ thống phòng thủ DdoS source-end rất hiệu quả, nhưng hệ thống D-WARD có nhược điểm là chỉ phát hiện và ngăn chặn được các cuộc tấn công đi ra từ mạng nguồn mà D-WARD được triển khai. Bởi vậy, việc triển khai các hệ thống D-WARD theo mô hình mạng các node hàng xóm với mục đích để cho các hệ thống D-WARD trong mạng trao đổi thông tin với nhau, nhằm tăng hiệu quả của việc phát hiện và ngăn chặn các cuộc tấn công DdoS. Luận văn đã cài đặt và kiểm chứng hiệu quả của việc triển khai các hệ thống D- WARD theo mô hình mạng các node hàng xóm đồng thời đưa ra một cải tiến đối với việc triển khai để nâng cao hiệu quả của việc ngăn chặn các cuộc tấn công DDoS. iii MỤC LỤC LỜI MỞ ĐẦU........................................................................................................1 Chương 1. Giới thiệu ...........................................................................................2 1.1. Giới thiệu.................................................................................................2 1.2. Sơ lược về từ chối dịch vụ và từ chối dịch vụ phân tán ..........................2 1.2.1. Sơ lược về từ chối dịch vụ (DoS).....................................................2 1.2.2. Sơ lược về từ chối dịch vụ phân tán (DDoS) ...................................3 1.3. Sơ lược về sự phòng thủ DDoS ...............................................................4 1.3.1. Các thách thức phòng thủ DDoS......................................................4 1.3.1.1. Các thách thức kỹ thuật .............................................................4 1.3.1.2. Các thách thức xã hội ................................................................4 1.3.2. Mục đích của phòng thủ DDoS ........................................................4 1.3.3. Các giải pháp phòng thủ ...................................................................5 1.3.4. Các điểm phòng thủ..........................................................................5 1.3.4.1. Phòng thủ tự trị..........................................................................5 1.3.4.2. Phòng thủ phân tán....................................................................9 1.4. D-WARD được đặt ở đâu? ......................................................................9 Tổng kết ........................................................................................................10 Chương 2. D-WARD...........................................................................................11 2.1. Sơ lược về D-WARD..............................................................................11 2.2. Các thuật ngữ ........................................................................................11 2.3. Dấu hiệu tấn công .................................................................................12 2.4. Kiến trúc ................................................................................................13 2.5. Thành phần theo dõi..............................................................................14 2.5.1. Các đặc điểm và sự phân loại luồng...............................................15 2.5.2 Các đặc điểm kết nối và sự phân loại kết nối..................................17 2.5.3. Phân loại gói tin đầu tiên................................................................22 2.6. Thành phần giới hạn .............................................................................25 2.6.1. Giảm theo luật số mũ......................................................................26 2.6.2 Tăng tuyến tính................................................................................26 iv 2.6.3 Tăng theo hàm số mũ ......................................................................27 2.7. Thành phần quản lý truyền thông .........................................................28 Ưu điểm của D-WARD .................................................................................28 Nhược điểm của D-WARD ...........................................................................28 Tổng kết ........................................................................................................29 Chương 3. Cơ sở lý thuyết của kiến trúc triển khai và mở rộng D-WARD..30 D-WARD 1.0.................................................................................................30 D-WARD 2.0.................................................................................................30 D-WARD 3.0.................................................................................................32 D-WARD 3.1.................................................................................................32 3.1. Kiến trúc thực thi của D-WARD 3.1......................................................33 3.2. Thành phần theo dõi..............................................................................33 3.2.1. Bảng băm luồng..............................................................................33 3.2.2 Bảng băm kết nối.............................................................................35 3.2.3 Thu thập thông tin gói tin ................................................................36 3.2.4 Phân loại luồng và kết nối ...............................................................36 3.3 Thành phần giới hạn ..............................................................................38 3.4 Thành phần quản lý truyền thông ..........................................................38 3.4.1 Tiến trình quản lý truyền thông.......................................................39 3.4.2 Các mẫu máy ...................................................................................39 3.5 Bắt truyền thông(traffic-sniffing) ...........................................................40 3.6 Triển khai các hệ thống D-WARD trên mạng các node hàng xóm ........40 Tổng kết ........................................................................................................42 Chương 4. Cài đặt và kết quả thu được............................................................43 4.1. Cài đặt thực nghiệm ..............................................................................43 4.1.1. Mô hình thực thi .............................................................................43 4.1.2. Biên dịch và chạy D-WARD..........................................................43 4.2 Kết quả ...................................................................................................45 v 4.3 Đánh giá về việc triển khai mở rộng......................................................46 Tổng kết ........................................................................................................47 Chương 5 Kết luận..............................................................................................48 TÀI LIỆU THAM KHẢO..................................................................................49  vi BẢNG TỪ VIẾT TẮT STT Từ viết tắt Từ hoặc cụm từ 1 DoS Denial-of-Service (từ chối dịch vụ phân tán) 2 DDoS Distributed Denial-of-Service (từ chối dịch vụ phân tán) 3 DNS Domain Name Service (Dịch vụ tên miền) 4 D-WARD DDoS Network Attack Recognition and Defense (Phòng thủ và nhận diện tấn công mạng DDoS) 6 HTTP Hypetext Transfer Protocol (giao thức truyền siêu văn bản) 9 ICMP Internet Control Message Protocol (Giao thức thông điệp điều khiển Internet) 10 IP Internet Protol (giao thức mạng) 11 NTP Network Time Protocol (Giao thức thời gian mạng) 12 TCP Transmission Control Protocol (Giao thức điều khiển truyền vận) 13 UDP User Datagram Protocol 14 VoIP Voice over Internet Protocol (truyền giọng nói qua giao thức mạng) vii DANH MỤC HÌNH ẢNH Hình 1. Trường hợp tấn công từ chối dịch vụ - DoS..............................................2 Hình 2. Trường hợp tấn công từ chối dịch vụ phân tán – DdoS.............................3 Hình 3. Các điểm phòng thủ ...................................................................................6 Hình 4. phòng thủ Victim-End ...............................................................................7 Hình 5. Phòng thủ mạng trung gian........................................................................8 Hình 6. Phòng thủ source-end ................................................................................9 Hình 7: Luồng và kết nối ......................................................................................12 Hình 8. Kiến trúc D-WARD.................................................................................14 Hình 9: Máy trạng thái hữu hạn DNS...................................................................19 Hình 10: Máy trạng thái hữu hạn NTP .................................................................20 Hình 11: Máy trạng thái hữu hạn luồng dữ liệu ...................................................22 Hình 12: Một kết nối TCP mới được khởi tạo trong cuộc tấn công.....................23 Hình 13: Các giá trị giới hạn và sự phân loại cho một luồng mẫu .......................27 Hình 14. Kiến trúc thực thi của D-WARD 3.1 .....................................................33 Hình 15. Bảng bản ghi luồng................................................................................34 Hình 16. Bản ghi bảng băm luồng giới hạn..........................................................38 Hình 17. Mô hình mạng và bảng địa chỉ hàng xóm .............................................42 Hình 18. Mô hình thực thi ....................................................................................43 Hình 19: File debug/class.txt ................................................................................45 Hình 20: File rlstats.txt .........................................................................................45 Hình 21:File conn.txt ............................................................................................46 1 LỜI MỞ ĐẦU Các cuộc tấn công từ chối dịch vụ phân tán (DDoS) là một vấn đề nghiêm trọng và thách thức tới mạng Internet. Việc này yêu cầu ít nỗ lực ở phía kẻ tấn công, vì một lượng lớn các máy móc tham gia vào cuộc tấn công, và các công cụ cũng như các mã kịch bản tự động cho việc khai thác và tấn công có thể dễ dàng được tải về từ mạng và triển khai. Nói cách khác, việc ngăn chặn tấn công là vô cùng khó khăn do một lượng lớn máy móc tham gia tấn công, việc sử dụng lừa đảo địa chỉ nguồn và sự giống nhau giữa truyền thông hợp lệ và tấn công. Nhiều hệ thống phòng thủ được thiết kế trong các viện nghiên cứu và các hiệp hội thương mại để chống lại các cuộc tấn công DDoS, nhưng vấn đề vẫn hầu như chưa được giải quyết. Luận văn này sẽ giới thiệu hệ thống phòng thủ DDoS source-end được gọi là D-WARD và sự triển khai các hệ thống D-WARD theo mô hình mạng các node hàng xóm. D-WARD ngăn chặn các cuộc tấn công đi ra từ các mạng được triển khai. Sự phòng thủ source-end không là giải pháp hoàn toàn với các cuộc tấn công DDoS, vì các mạng không được triển khai vẫn thực hiện các cuộc tấn công thành công, nhưng D-WARD có thể tìm ra và ngăn chặn đáng kể các cuộc tấn công DdoS khi nó được cài đặt. Nhược điểm của hệ thống D-WARD là các hệ thống D-WARD không liên lạc được với nhau. Và trong luận văn này sẽ thảo luận về việc triển khai các hệ thống D-WARD theo mô hình mạng các node hàng xóm. Khóa luận gồm có 4 chương. Chương 1: Giới thiệu sơ lược về tấn công từ chối dịch vụ(DoS) và tấn công từ chối dịch vụ phân tán(DDoS), đồng thời cũng giới thiệu về phòng thủ DDoS: các thách thức phòng thủ, mục đích phòng thủ, giải pháp, điểm phòng thủ và phòng thủ phân tán. Chương 2: Khóa luận giới thiệu về D-WARD: kiến trúc, các thành phần của D- WARD và sự triển khai các thành phần đó. Chương 3: Khóa luận đề cập đến việc mở rộng D-WARD: giới thiệu các phiên bản của D-WARD, sự triển khai trên mạng các node hàng xóm. Chương 4: Cài đặt và kết quả đạt được khi triển khai trên mạng các node hàng xóm. Chương 5: Phần kết luận. 2 Chương 1. Giới thiệu 1.1. Giới thiệu Hệ thống phòng thủ DDoS là một lĩnh vực nghiên cứu rất được quan tâm nhưng cũng rất phức tạp. Sự thực thi một hệ thống phòng thủ liên quan đến nhiều vấn đề khác nhau. Chương này của khóa luận sẽ chỉ ra kiến thức cơ bản mà liên quan đến phòng thủ DDoS. Đầu tiên, khóa luận sẽ thảo luận về từ chối dịch vụ và rồi luận văn đề cập tới từ chối dịch vụ phân tán. Cuối cùng, luận văn sẽ nói về sự phòng thủ DDoS. 1.2. Sơ lược về từ chối dịch vụ và từ chối dịch vụ phân tán 1.2.1. Sơ lược về từ chối dịch vụ (DoS) Các cuộc tấn công từ chối dịch vụ (DoS) dùng một lượng lớn các gói tin để làm gián đoạn việc phục vụ của máy nạn nhân với các máy khách hợp lệ. Máy nạn nhân thường là một máy chủ phục vụ, sẽ phải dùng nhiều thời gian và hầu hết các tài nguyên để xử lý các yêu cầu DoS,được chỉ rõ trong hình 1. Như một kết quả, các máy khách thực sự của máy nạn nhân sẽ khó khăn trong việc truy cập hay không thể truy cập tới các dịch vụ của máy nạn nhân. Ngoài ra, ngay cả khi máy nạn nhân thực thi thành công sau cuộc tấn công, các người dùng thường chọn các nhà cung cấp dịch vụ khác vì sự quấy rối trước đó. Hiệu ứng này có thể thấy được trong vài trang mà hỗ trợ các giao dịch thời gian thực như mua vé tàu, chuyển khoản hay mua cố phiếu. Vì những nguyên nhân này, các máy nạn nhân sẽ mất sự tin tưởng của khách hàng và giảm lợi nhuận sau các cuộc tấn công DoS. Hình 1. Trường hợp tấn công từ chối dịch vụ - DoS 3 1.2.2. Sơ lược về từ chối dịch vụ phân tán (DDoS) Các cuộc tấn công từ chối dịch vụ phân tán đơn giản là các cuộc tấn công từ chối dịch vụ nhưng được thực hiện từ nhiều máy móc bị phá hoại (agent). Mỗi khi kẻ tấn công có thể điều khiển các agent, tất cả các máy mọc được tiến hành đồng thời và bắt đầu phát sinh lượng lớn gói tin có thể tới máy nạn nhân, được chỉ rõ trong hình 2. Lượng agent càng lớn,các tài nguyên của máy nạn nhân càng nhanh cạn kiệt và quá tải. Bởi vậy, để thiết kế một hệ thống phòng thủ tốt, chúng ta phải hoàn toàn hiểu về các đặc điểm của cuộc tấn công DDoS. Đầu tiên, các agent luôn sử dụng việc lừa đảo địa chỉ IP nguồn trong các cuộc tấn công DDoS. Kẻ tấn công giả mạo thông tin trong trường địa chỉ IP nguồn trong các tiêu đề gói tin tấn công. Do vậy, thật khó cho các máy nạn nhân nếu chúng muốn lần vết các máy agent. Bên cạnh đó, việc ẩn địa chỉ của các máy agent cho phép kẻ tấn công sử dụng lại chúng cho các cuộc tấn công trong tương lai. Vì vậy, bất kỳ loại truyền thông nào cũng có thể được sử dụng để thực hiện một cuộc tấn công từ chối dịch vụ thành công. Kẻ tấn công nhắm tới phát sinh các gói tin giống như hợp lệ để thực hiện cuộc tấn công, nên việc phân loại giữa truyền thông hợp lệ và truyền thông tấn công yêu cầu xây dựng các bảng dữ liệu thống kê để rút ra ngữ nghĩa phiên giao dịch. Hình 2. Trường hợp tấn công từ chối dịch vụ phân tán – DdoS 4 1.3. Sơ lược về sự phòng thủ DDoS 1.3.1. Các thách thức phòng thủ DDoS Các thách thức cho việc thiết kế các hệ phòng thủ DDoS chia thành hai loại: các thách thức kỹ thuật và các thách thức xã hội. Các thách thức kỹ thuật bao quanh các vấn đề liên quan tới các giao thức Internet hiện tại và các đặc điểm của DDoS. Các thách thức xã hội, nói theo cách khác, hầu như liên quan tới cách mà một giải pháp kỹ thuật thành công sẽ được giới thiệu tới người dùng Internet, và được chấp nhận và được triển khai diện rộng bởi những người dùng này. 1.3.1.1. Các thách thức kỹ thuật Bản chất phân tán của các cuộc tấn công DDoS và dung các mẫu truyền thông hợp lệ và sự lừa đảo IP tương ứng với các thách thức kỹ thuật chính để thiết kế các hệ thống phòng thủ DDoS hiệu quả. Danh sách dưới đây tổng hợp các thách thức kỹ thuật cho phòng thủ DDoS: • Cần thiết cho một sự đáp trả phân tán tại nhiều điểm trong mạng Internet. • Sự thiếu thông tin tấn công chi tiết. • Sự thiếu các tiêu chuẩn cho hệ thống phòng thủ. • Sự khó khăn trong kiểm thử ở mức lớn. 1.3.1.2. Các thách thức xã hội Nhiều hệ thống phòng thủ DdoS yêu cầu các kiểu triển khai nào đó để thu được hiệu quả. Các kiểu này chia thành các loại sau: • Triển khai hoàn toàn. • Triển khai kề nhau. • Triển khai mức lớn, diện rộng. • Triển khai hoàn toàn tại các vị trí xác định trong mạng Internet. • Sự điều chỉnh của các giao thức Internet được triển khai diện rộng, như TCP, UDP hay HTTP. • Tất cả các máy khách (hợp lệ) của phòng thủ triển khai mục tiêu được bảo vệ. 1.3.2. Mục đích của phòng thủ DDoS 5 Mục đích chính của phòng thủ DDoS là cung cấp dịch vụ tốt tới các máy khách hợp lệ của máy nạn nhân trong cuộc tấn công, vì vậy hủy bỏ hiệu ứng từ chối dịch vụ. Múc đích thứ hai là làm giảm bớt hiệu ứng của cuộc tấn công tới máy nạn nhân vì thế các tài nguyên của nó có thể dành cho các máy khách hợp lệ hay được giữ gìn. Cuối cùng, thuộc tính tấn công sẽ như một cản trở lớn tới các sự cố DDoS, vì vậy các kẻ tấn công có thể đối mặt với rủi ro phát hiện và trừng phạt. 1.3.3. Các giải pháp phòng thủ Các giải pháp phòng thủ DDoS có thể được chia thành ba loại: các giải pháp ngăn ngừa, giải pháp chọn lọc tự nhiên và giải pháp đáp lại. Các giải pháp ngăn ngừa: Giới thiệu sự thay đổi trong các giao thức Internet,các chương trình và các host, để vá các tổn thương đang tồn tại và giảm sự xâm nhập và lợi dụng. Mục đích của chúng ngăn chặn các cuộc tấn công vào tổn thương, và cản trở các cố gắng của kẻ tấn công để đạt được một lực lượng agent lớn. Các giải pháp chọn lọc tự nhiên: Mở rộng các tài nguyên của máy nạn nhân, cho phép nó phục vụ cả các yêu cầu hợp lệ và có ác ý trong cuộc tấn công, vì vậy hủy bỏ hiệu ứng từ chối dịch vụ. Sự mở rộng này đạt được một cách tĩnh – bằng việc mua thêm các tài nguyên, hay tự động – bằng cách kiếm được các tài nguyên từ việc nhường cho một bộ máy chủ công cộng phân tán và tái tạo lại dịch vụ mục tiêu. Hiệu quả của các giải pháp chọn lọc tự nhiên giới hạn trong các trường hợp các tài nguyên được mở rộng lớn hơn lượng tấn công, nhưng kẻ tấn công có thể dễ dàng thu thập hàng trăm, hàng ngàn máy agent, do vậy các giải pháp chọn lọc tự nhiên hầu như không cung cấp một giải pháp hoàn toàn cho vấn đề DDoS. Các giải pháp đáp lại: Phát hiện sự xảy ra tấn công và đáp lại nó(“chiến đấu lại”) bằng điều khiển các luồng tấn công, hay có gắng định vị các máy agent và gọi ra các hành động cần thiết. 1.3.4. Các điểm phòng thủ Một hệ thống phòng thủ DDoS có thể được triển khai như một hệ thống tự trị(đơn điểm) hay như một hệ thống phân tán. Các hệt thống tự trị bao gồm một node phòng thủ đơn lẻ để theo dõi cuộc tấn công và đưa ra các đáp lại. Các hệ thống phân tán bao gồm nhiều node phòng thủ(thường cùng chức năng) được triển khai tại nhiều vị trí và được tổ chức trong một mạng. 1.3.4.1. Phòng thủ tự trị 6 Các luồng tấn công DDoS phát sinh từ các máy tấn công phân tán, được chuyển bởi các bộ định tuyến hạt nhân và đồng quy tại mạng máy nạn nhân. Chúng ta theo dõi tiến trình này như một sự tác động của ba loại mạng: mạng nguồn chứa các máy tấn công, mạng trung gian chuyển tiếp truyền thông tấn công tới máy nạn nhân, và mạng nạn nhân chứa mục tiêu, được thể hiện rõ trong hình 3. Mỗi mạng có thể chứa các hệ thống phòng thủ DDoS. Hình 3. Các điểm phòng thủ 1.3.4.1.1. Phòng thủ Victim-End Đa số các hệ thống phòng thủ DDoS được thiết kế cho sự triển khai victim-end, hình 4 thể hiện sự triển khai phòng thủ victim-end. Thật dễ hiểu vì máy nạn nhân chịu tổn thương nhất từ một cuộc tấn công DDoS. Một hệ thống phòng thủ DDoS victim- end dễ dàng phát hiện vì nó theo dõi máy nạn nhân gần. Tuy nhiên, khoảng đáp lại bị giới hạn. Hệ thống phòng thủ nằm trên đường đi của toàn bộ lực lượng tấn công, và có thể bị vượt ngưỡng bởi một lượng lớn truyền thông. Một thách thức khác mà hệ thống victim-end phải đối mặt là khả năng xử lý và lưu trữ. Để mà phân biệt các luồng hợp lệ với các luồng tấn công, hệ thống của bạn cần lưu một lượng lớn các mẫu và sức mạnh tính toán để kiểm tra và lưu trữ các đặc điểm của từng luồng. 7 Hình 4. phòng thủ Victim-End 1.3.4.1.2. Phòng thủ mạng trung gian Chúng ta biết rằng sự nguy hiểm của một cuộc tấn công DDoS với các tài nguyên mạng là rất lớn. Vì vậy, chúng ta muốn di chuyển sự phòng thủ xa hơn máy nạn nhân, vào mạng trung gian, hình 5 thể hiện sự triển khai phòng thủ ở mạng trung gian. Một hệ thống phòng thủ mạng trung gian, thường cài đặt tại một bộ định tuyến hạt nhân, phát hiện cuộc tấn công thông qua theo dõi các bất thường tại bộ định tuyến này. Vì các bộ định tuyến hạt nhân xử lý lượng lớn, chúng hầu như giám sát tất cả. Các bộ định tuyến hạt nhân không thể có khả năng giữ các đặc điểm của các gói tin đi qua trên nền tảng mỗi đích. Giải pháp này không phổ biến vì chúng ta cần một lượng lớn chi phí và bảo đảm chắc chắn về các kết quả hiệu quả khi chúng ta tăng sự phức tạp của bộ định tuyến hạt nhân. 8 Hình 5. Phòng thủ mạng trung gian 1.3.4.1.3. Phòng thủ source-end Phòng thủ DDoS được đặt xa hơn máy nạn nhân tới nguồn, rút ngắn khả năng phát hiện,hình 6 thể hiện phòng thủ source-end. Một hệ thống phòng thủ source-end không thể dễ dàng theo dõi hiệu ứng của truyền thông đi tới máy nạn nhân. Hơn nữa, vì nó có thể giám sát chỉ một phần nhỏ của cuộc tấn công, hệ thống phòng thủ có những khó khăn trong việc phát hiện các bất thường. Nói cách khác, tính hiệu quả của sự đáp lại tăng với trạng thái gần nguồn. Vì phương pháp này có lượng thấp hơn, nó có thể cho phép nhiều xử lý hơn để phát hiện và phân loại. Ngoài ra, với sự thiếu của sự tập hợp có thể giúp cho việc phân chia giữa truyền thông hợp lệ và truyền thông tấn công trong cuộc tấn công. Giải pháp này có thể phát hiện và ngăn chăn tốt hơn và nhanh hơn, nên giảm tối thiểu nguy hiểm gây ra. Tuy nhiên, khó khăn để triển khai ở mức lớn, và khó khăn khác chính là xác định giữa truyền thông hợp lệ và truyền thông tấn công để mà loại bỏ các gói tin truyền thông tấn công. 9 Hình 6. Phòng thủ source-end 1.3.4.2. Phòng thủ phân tán Các hệ thống phân tán của phòng thủ DDoS bao gồm các hành động của các hệ thống phòng thủ victim-end, source-end và đôi khi của phòng thủ mạng trung gian. Phòng thủ victim-end phát hiện tấn công và phân phối cảnh báo tới thành viên khác mà hợp tác để chặn các luồng tấn công. Mục đích là cài đặt các tài nguyên gần các nguồn có thể, vì vậy giảm tối thiểu nguy hiểm. Các hệ thống phân tán gần như là giải pháp thích hợp cho việc xử lý DDoS. Tuy nhiên, chúng là giải pháp cơ sở - chúng trải qua nhiều mạng và quản lý nhiều miền và thực hiện cam kết của nhiều người tham gia Internet. Do vậy các hệ thống khó khăn trong triển khai và duy trì. Hơn nữa, sự yêu cầu kết hợp của phòng thủ là khó mà đạt được do việc quản lý phân tán mạng Internet và sự hoạt động tự trị của các miền. Việc an toàn và xác thực các kênh truyền thông cũng chịu một giá cao nếu lượng tham gia là lớn. 1.4. D-WARD được đặt ở đâu? 10 D-WARD là một hệ thống phòng thủ DdoS source-end. Nó được thiết kế để thực hiện cả hai như một hệ thống tự trị và như một phần của phòng thủ phân tán. Như một hệ thống tự trị, nó phát hiện một khoảng rộng các cuộc tấn công và điều khiển chúng, điều khiển là được lựa chọn, vì vậy cho phép các máy khách hợp lệ nhận được các dịch vụ tốt từ máy nạn nhân trong cuộc tấn công. Như một phần của phòng thủ phân tán, D-WARD có thể nhận một cảnh báo tấn công và hướng dẫn giới hạn, và đưa ra một đáp lại tự động,hiệu quả và có lựa chon. Nhưng D-WARD không phải là một giải pháp hoàn toàn với các cuộc tấn công DdoS, nó đẩy mạnh an ninh mạng Internet. Tổng kết Chương 1 của khóa luận đã chỉ cho các bạn thấy rằng từ chối dịch vụ phân tán (DDoS) là các cuộc tấn công đơn giản. Chúng thu thập các tài nguyên của một lượng agent để làm tràn máy nạn nhân. Khó khăn trong việc xử lý các cuộc tấn công DdoS một cách chính xác. Vì chúng lạm dụng các giao thức hợp lệ để thực hiện từ chối dịch vụ, nó vô cùng khó khăn để phân chia truyền thông tấn công với truyền thông hợp lệ; việc này cản trở cả việc phát hiện và đáp lại. Thêm đó, cũng chỉ cho các bạn thấy được các thách thức trong việc thiết kế một sự phòng thủ hiệu quả. Các giải pháp phòng thủ nhắm đến việc ngăn chặn các cuộc tấn công từ chối dịch vụ (các giải pháp ngăn chặn), để cho phép máy nạn nhân tồn tại trong cuộc tấn công ma không từ chối dịch vụ tới các máy khách hợp lệ(các giải pháp chọn lọc tự nhiên). Và các giải pháp ngăn chặn, giải pháp chọn lọc tự nhiên không thể hoàn toàn xử lý các cuộc tấn công DdoS. Các giải pháp đáp lại chỉ ra các hứa hẹn cho việc hoàn thành các hoạt động của các giải pháp ngăn chặn và chọn lọc tự nhiên. Ngoài ra, cũng đưa ra cái nhìn tổng thể về việc lựa chọn cài đặt hệ thống phòng thủ DDoS tại đâu để thu được hiệu quả nhất: source-end, mạng trung gian hay victim- end. 11 Chương 2. D-WARD 2.1. Sơ lược về D-WARD D-WARD ( DDoS Network Attack Recognition and Defense) là một hệ thống phòng thủ DDoS mà được triển khai ở source-end. Nó có hai mục đích chính: • Phát hiện các cuộc tấn công DDoS đi ra và dừng chúng bằng điều khiển truyền thông đi ra tới máy nạn nhân. • Cung cấp dịch vụ tốt tới các giao dịch hợp lệ giữa mạng triển khai và máy nạn nhân trong khi cuộc tấn công đang diễn ra. D-WARD có thể hoạt động hoặc như một hệ thống tự trị, hoặc là một người tham gia trong một hệ thống bảo vệ phân tán. Trong sự hoạt động tự trị, D-WARD tìm ra các cuộc tấn công và đáp lại tới chúng không truyền thông với bất kỳ thực thể khác. Trong sự hoạt động hợp tác phân tán, D-WARD làm tăng sự dò tìm của nó bằng nhận các cảnh bảo tấn công từ các người tham gia khác. D-WARD cũng có thể chấp nhận và công nhận một vài sự đáp lại được yêu cầu từ máy khác. D-WARD là hệ thống phòng thủ source-end, nên nó được cài đặt tại bộ định tuyến nguồn và sự hoạt động của nó dường là một gateway giữa mạng được triển khai và phần còn lại của mạng Internet. Do vậy D-WARD chỉ kiểm soát truyền thông đi ra từ mạng của nó. Bất kỳ truyền thông hình thành trong các miền khác được đưa đến cho D-WARD thì không được kiểm soát. 2.2. Các thuật ngữ Khi chúng ta nghiên cứu về D-WARD, chúng ta phải hiểu các thuật ngữ liên quan tới D-WARD như luồng, kết nối, “bộ địa chỉ kiểm soát”,… Đầu tiên, D-WARD được cấu hình với một bộ các địa chỉ cục bộ mà truyền thông đi ra được nó kiểm soát – bộ địa chỉ kiểm soát của nó. Bộ này nhận diện, ví dụ, tất cả các máy trong mạng stub hay tất cả khách hàng của một ISP. Chúng ta giả thiết D-WARD có thể nhận diện bộ địa chỉ kiểm soát, hoặc thông qua vài giao thức hay thông qua cấu hình bằng tay. D-WARD theo dõi tất cả truyền thông giữa bộ địa chỉ kiểm soát của nó và phần còn lại của Internet, dựa vào luồng và kết nối. Luồng được xác định như toàn bộ truyền thông giữa bộ địa chỉ kiểm soát và một host bên ngoài (i.e..,một địa chỉ IP bên ngoài). Một kết nối được định nghĩa như toàn truyền thông giữa một cặp địa chỉ IP và 12 số cổng, nơi một địa chỉ thuộc vào bộ địa chỉ kiểm soát và địa chỉ kia là một địa chỉ bên ngoài. Hình 7 sẽ minh họa khái niệm của một lưu lượng và một kết nối. Hình 7: Luồng và kết nối D-WARD áp dụng bộ lọc lối vào với truyền thông đi ra, để chống lại sự lừa đảo ngẫu nhiên. D-WARD có khả năng điều khiển các cuộc tấn công mà dùng lừa đảo subnet. 2.3. Dấu hiệu tấn công D-WARD theo dõi trạng thái lưu lượng và kết nối và phân loại lưu lượng hay kết nối hoàn chỉnh như hợp lệ hay tấn công. D-WARD tìm các tấn công DDoS đi ra bởi giám sát truyền thông hai chiều giữa mạng nguồn và phần còn lại của mạng Internet. Hệ thống tìm kiếm các dị thường dưới đây trong truyền thông tự động có thể là dấu hiệu của một cuộc tấn công DDoS: Host bên ngoài không đáp lại: Tỷ lệ gửi tín hiệu mang tính tấn công đi đôi với tỷ lệ đáp lại thấp. Sự dị thường này có quan hệ tới các truyền thông hai chiều mà cho phép một mẫu yêu cầu/đáp lại như TCP, một vài loại truyền thông ICMP, truyền thông DNS, truyền thông NTP,..Trong các truyền thông này, một bên gửi một hay vài gói tin tới bên khác, và chờ một trả lời (hoặc xác nhận của sự nhận được hay một sự đáp lại) trước khi gửi một vài gói tin. Bằng việc tìm ra các host bên ngoài không đáp lại, D-WARD thực sự tập trung vào tìm ra sự nảy sinh của hiệu ứng từ chối dịch vụ. Việc này là một dấu hiệu tấn công rất tin cậy, như một người tấn công phải tạo ra hiệu ứng từ chối dịch vụ để gây ra nguy hiểm tới máy nạn nhân. Nói cách khác, cặp phát 13 hiện ra từ chối dịch vụ có thể đưa đến sự tìm ra “sau sự thật”(after-the-fact), một khi nguy hiểm đã xảy ra. Sẽ tốt hơn nếu việc tìm ra có thể được biểu diễn ở các bước ban đầu của cuộc tấn công, vì thế giữ gìn được nhiều tài nguyên của máy nạn nhân. Dạng của lừa đảo IP: D-WARD triển khai bộ lọc lối vào và xóa bỏ, ở mọi thời điểm, các gói tin đi ra mà không mang các địa chỉ cục bộ. Thêm vào đó, D-WARD giám sát số lượng các kết nối đồng thời giữa mạng nguồn và từng host bên ngoài. Các host bên ngoài này mà tiến hành một số lượng lớn kết nối khả nghi với máy nạn nhân dường như là một phần của một cuộc tấn công lừa đảo subnet ( nơi mà máy do thám lừa đảo các địa chỉ cục bộ tới mạng con của nó). Hình thức này của việc tìm ra lừa đảo IP không hoàn toàn chính xác, vì có thể xảy ra khi một máy đích trở nên quá phổ biến để nhiều host cục bộ bắt đầu các kết nối hợp lệ với nó (do vậy hình thành một hiệu ứng “giả đám đông” (“flash crowd”)). Một khi cuộc tấn công được tìm ra, D-WARD đáp lại bằng tỷ lệ giới hạn tổng luồng đi ra từ mạng nguồn tới máy nạn nhân, và vì thế giảm bớt lượng truyền thông lớn của máy nạn nhân. Như một sự đáp lại đầy đủ, tỷ lệ giới hạn được chọn thay cho bộ lọc. D-WARD có thể tự điều chỉnh với các gói tin thuộc các luồng và kết nối nhận được. Sự khác nhau của các kết nối hợp lệ với tấn công là một vấn đề rất khó trong phòng thủ DdoS, D-WARD biểu diễn sự khác nhau trong hai cách: Nó giám sát các kết nối ở mọi lúc, và dùng các mẫu kết nối hợp lệ để tìm ra các kết nối hợp lệ. Mỗi khi tìm ra, các kết nối này được ghi vào trong Danh sách kết nối hợp lệ (Legitimate Connection List). Khi cuộc tấn công được tìm ra, các gói tin thuộc các kết nối trong Danh sách kết nối hợp lệ dường như hợp lệ, và không phải chịu tỷ lệ giới hạn. Vì tình trạng kết nối được đánh giá lại theo định kỳ, các kết nối có ác ý mà được ghi vào Danh sách kết nối hợp lệ. Chúng sẽ nhanh chóng tìm ra và được xóa khỏi danh sách. Trong cuộc tấn công, D-WARD dùng một bộ các mẫu để đánh giá tính hợp lệ của các gói tin đang bắt đầu các kết nối mới. Những gói này này mà trải qua cuộc kiểm tra tùy theo tỷ lệ giới hạn. Kỹ thuật này tăng cơ hội của việc tạo ra các kết nối thành công trong cuộc tấn công, trong khi giới hạn lượng nguy hiểm mà một kẻ tấn công lén lút có thể làm (một kẻ tấn công mà có thể phát sinh các gói tin mà vượt qua cuộc kiểm tra hợp lệ). 2.4. Kiến trúc 14 D-WARD là một hệ thống phản hồi ngược tự điều chỉnh. Nó bao gồm các thành phần theo dõi, giới hạn và kiểm soát truyền thông. Thành phần kiểm soát truyền thông phải là một phần của router nguồn, trong khi thành phần theo dõi và giới hạn có thể là một phần của một bộ độc lập mà tác động qua lại với router nguồn để các thống kê truyền thông và cài đặt các quy tắc giới hạn. Hình 8 miêu tả kiến trúc D-WARD. Hình 8. Kiến trúc D-WARD Thành phần theo dõi giám sát tất cả mọi gói tin đi qua bộ định truyến nguồn và thu thập thống kê về truyền thông hai chiều giữa bộ địa chỉ kiểm soát và phần còn lại của Internet, ghi lại luồng và kết nối. Việc giám sát này có thể được thực hiện, ví dụ như, bằng cách bắt truyền thông ở các giao diện của bộ định tuyến nguồn. Một cách định kỳ, các thống kê được so sánh với các mẫu của truyền thông hợp lệ, và các luồng và kết nối được phân chia. Kết quả phân chia được đưa tới thành phần giới hạn, để điều chỉnh các quy tắc giới hạn. Cả Danh sách kết nối hợp lệ và các quy tắc giới hạn truyền tới thành phần kiểm soát truyền thông, để làm cho các giới hạn có hiệu lực và bảo đảm việc chuyển tiếp của các gói tin hợp lệ. Các mức giới hạn phải chịu điểu chỉnh các luồng truyền thông liên kết và tác động tới sự theo dõi trong tương lai, kết thúc các vòng lặp hồi quy. 2.5. Thành phần theo dõi 15 Thành phần theo dõi thu thập các thống kê và giám sát chúng ở mức luồng và kết nối. Các thống kê luồng được lưu trong Bảng luồng (Flow Table) trong khi các thống kê kết nối được lưu trong Bảng kết nối (Connection Table). Vì các cuộc tấn công vùng chứa tạm thời (spooles) có thể phát sinh một lượng lớn bản ghi trong bảng này, kích cỡ bảng là giới hạn để tránh sự dư thừa trong sử dụng bộ nhớ. Để cung cấp tất cả các thông tin thích hợp trong các bảng có kích cỡ giới hạn,thành phần theo dõi xóa các bảng: (1) xóa bỏ một cách định kỳ các bản ghi đã cũ, và (2) nếu tràn, xóa bỏ các bản ghi mà xem như ít được dùng hơn các bản ghi khác. Thành phần theo dõi phân chia một cách định kỳ các luồng và kết nối. Phân chia luồng được dùng để tìm ra sự xảy ra của một cuộc tấn công DDoS, trong khi phân chia kết nối được dùng để nhận ra các kết nối hợp lệ để mà nhận được dịch vụ tốt trong trường hợp luồng kết hợp trở nên bị giới hạn. Sơ lược kết nối tiếp tục được thực hiện (ngược lại với sơ lược trức tiếp mỗi khi cuộc tấn công được tìm ra). Lợi thế của phương pháp này là Bảng kết nối hợp lệ đã sẵn sàng tồn tại khi cuộc tấn công xảy ra. D-WARD dùng kiến thức này để duy trì cung cấp dịch vụ tốt tới các kết nối trong bảng, do vậy chúng không chịu nguy hiểm bởi cuộc tấn công. Nếu D-WARD dùng sơ lược trực tiếp, một thời gian trễ sẽ tồn tại giữa tín hiệu phát hiện tấn công và sự cư trú của bảng kết nối hợp lệ. Trong thời gian này, truyền thông kết nối hợp lệ sẽ nguy hiểm bởi các cuộc tấn công. 2.5.1. Các đặc điểm và sự phân loại luồng Mỗi gói tin đi ra và đi vào đều đổi sang một bản ghi trong Bảng luồng. Vì vậy,một luồng đi ra có thể bao gồm hỗn hợp của nhiều giao thức giao vận và các chương trình, các bản ghi luồng bao gồm vài trường dành cho việc xác định các đặc điểm giao thức. D-WARD hiện tại phân chia các đặc điểm thành 3 loại giao vận với luồng: TCP, UDP, và ICMP. Các đặc điểm nào sẽ được gán cho giao thức giao vận phụ thuộc vào các mẫu luồng hợp lệ. Sự phân chia luồng được thực hiện trong mỗi Khoảng theo dõi luồng (giây). Trong sự phân chia, D-WARD so sánh các đặc điểm luồng cho mỗi trường giao thức với các mẫu luồng hợp lệ tương ứng. Mỗi luồng sẽ được phân chia: Tấn công nếu ít nhất một trường của các đặc điểm không khớp với mẫu tương ứng. Khả nghi nếu các đặc điểm hay tất cả các trường khớp với các mẫu tương ứng, nhưng luồng được phân loại là tấn công gần đây. 16 Bình thường nếu các đặc điểm hay tất cả các trường khớp với các mẫu tương ứng và luồng không bị phân loại là tấn công gần đây. Mỗi khi cuộc tấn công lắng xuống, luồng đầu tiên sẽ được phân chia là khả nghi trong thời gian tuân theo (Compliance Period) giây. Sự phân loại khả nghi kéo theo việc tăng chậm, cẩn thận của mức giới hạn. Nếu cuộc tấn công lặp lại trước thời gian tuân theo hết hạn, luồng sẽ lại bị phân loại là tấn công. Nếu không, luồng sẽ được phân loại là bình thường. Sự khác biệt giữa luồng khả nghi và bình thường là giảm tối thiểu nguy hiểm từ các cuộc tấn công lặp lại. Các cuộc tấn công lặp lại với một khoảng ngắn hơn thời gian tuân theo sẽ chỉ đạt được lực lượng đầy đủ của chúng trong lần vi phạm đầu tiên. Các mẫu dưới đây được dùng trong việc phân loại luồng. Mẫu luồng TCP hợp lệ: Một phần lớn của giao vận trong Internet (khoảng 90%) là giao vận TCP. Giao vận TCP dùng một cơ chế truyền thông 2 chiều để thu được sự phân phối tin cậy. Trong một phiên TCP, luồng dữ liệu từ host nguồn tới host đích được điều khiển bởi luồng xác nhận (acknowledgment) theo chiều ngược lại. Nếu luồng xác nhận giảm, đây là được cân nhắc như dấu hiệu của tắc nghẽn và tỷ lệ gửi nhanh chóng giảm. Vì thế, truyền thông TCP bình thường có thể được mô hình hóa bởi tỷ lệ số gói tin gửi tới và nhận từ một đích đến chỉ định. Theo ý tưởng, tỷ lệ này sẽ là 1, nhưng sự tắc nghẽn mạng và sự thi hành TCP khác dùng khoảng trễ và các xác nhận có lựa chọn đẩy tới nó dẫn tới giá trị hơi cao hơn. Mẫu TCP hợp lệ của D-WARD định nghĩa TCP rto là tỷ lệ lớn nhất cho phép của số lượng gói tin gửi và nhận trong luồng. Luồng được phân loại như là một luồng tấn công nếu tỷ lệ gói tin của nó là trên ngưỡng cho phép. Tỷ lệ gói tin được theo dõi là được dàn xếp trước sự phân loại để tránh nhiễu trong các phép đo. Truyền thông kết nối hợp lệ không phải chịu mức giới hạn và vì vậy không ảnh hưởng bởi giá trị thời gian tuân theo. D-WARD dùng 3 cho giá trị TCP rto Mẫu luồng ICMP hợp lệ: Các tin nhắn ICMP được dùng như các tin nhắn điều khiển ngoài luồng để báo cáo vài lỗi mạng hay để giúp đỡ việc sửa chữa mạng. Không may,chúng được dùng thành công cho các cuộc tấn công khác nhau. Giao thức ICMP chỉ định nhiều loại tin nhắn khác nhau. Trong lúc hoạt động bình thường, các tin nhắn “timestamp”, “information request”, và “echo” phải đi kèm với đáp lại tương ứng. Dùng sự theo dõi này, mẫu luồng ICMP bình thường định nghĩa ICMPrto như là tỷ lệ cho phép lớn nhất của số lượng echo, timestamp, và information request và đáp lại các gói tin được gửi và nhận trong luồng. Tần số của các tin nhắn ICMP khác, như không 17 tìm thấy host đích(destination unreachable), source quench, redirect,… được kỳ vọng là rất nhỏ để một mức giới hạn được điều khiển có thể dùng để điều khiển một phần giao vận. Mẫu luồng UDP hợp lệ: Giao thức UDP được dùng để phân phối thông điệp không tin cậy và trong đời thường không yêu cầu các gói tin ngược cho hoạt động đúng của nó. Nhiều ứng dụng dùng UDP phát sinh một mức tương đối không đổi gói tin, nhưng mức lớn nhất phụ thuộc lớn vào ứng dụng tầng dưới. Thêm vào đó, các người dùng có thể viết ứng dụng dùng giao vận UDP, mà xa hơn là cản trở định nghĩa của các mẫu giao vận UDP. D-WARD định nghĩa một mẫu luồng UDP hợp lệ rất rộng lớn, có gắng để phát hiện chỉ các cuộc tấn công UDP mà dùng nhiều subnet spoofing hay gửi ở một tỷ lệ rất cao. Một giải pháp thay thế là xây dựng một mẫu luồng hợp lệ cho mỗi chương trình mà dùng UDP, và phát hiện các cuộc tấn công khi giao vận UDP lạ được theo dõi. Giải pháp này được dùng một phần cho các mẫu kết nối UDP hợp lệ. Nó sẽ gần như phát hiện nhiều cuộc tấn công dựa vào UDP, nhưng nó đắt tiền đến mức không thể mua được như nhiều đặc điểm hơn được lưu trữ. Thêm vào đó, vì nhiều người có thể định nghĩa các ứng dụng UDP mới, các mẫu sẽ phải cập nhật định kỳ. Các máy khách nhận luồng dữ liệu có thể cài đặt các quy tắc tường lửa để chỉ cho phép giao vận UDP đi về trong các kết nối được kiến tạo bởi client. Mẫu luồng UDP hợp lệ được xác định theo 2 ngưỡng: nconn – giới hạn trên của lượng kết nối được phép trên mỗi máy đích, và pconn – giới hạn dưới của số lượng gói tin được phép trên mỗi kết nối. Các ngưỡng giúp nhận ra một cuộc tấn công UDP thông qua các kết nối lừa đảo, phát hiện sự cố của nhiều kết nối với rất ít gói tin trên mỗi kết nối. Mẫu phân loại một luồng như một cuộc tấn công khi cả 2 ngưỡng nay bị vi phạm. 2.5.2 Các đặc điểm kết nối và sự phân loại kết nối Mỗi gói tin đi ra và đi vào đều đổi sang một bản ghi trong Bảng kết nối. Mỗi kết nối có thể chỉ mang giao vận từ một giao thức và một ứng dụng. Các mẫu kết nối hợp lệ xác định các nội dung đặc điểm. Sự phân loại kết nối được thực hiện mỗi khoảng theo dõi kết nối (giây). Trong phân loại, D-WARD so sánh các đặc điểm kết nối với các mẫu kết nối hợp lệ tương ứng. Một kết nối sẽ được phân loại: Tốt nếu các đặc điểm của nó khớp với mẫu tương ứng. Xấu nếu các đặc điểm của nó không khớp với mẫu tương ứng. Nhất thời nếu không đủ dữ liệu để thực hiện phân loại. 18 Các kết nối tốt nhận dịch vụ tốt được bảo đảm trong thời kỳ mức giới hạn, trong khi các kết nối xấu và nhất thời phải cạnh tranh với mức giới hạn băng thông. Sự khác nhau trong việc xử lý các kết nối xấu và nhất thời chỉ có trong việc xử lý bản ghi bảng kết nối. Các bản ghi kết nối xấu không bao giờ hết hạn,trong khi các bản ghi kết nối nhất thời hết hạn sau một khoảng ngắn thời gian. Giống các mẫu luồng hợp lệ, chúng ta cũng xây dựng các mẫu kết nối hợp lệ. Có ba mẫu chính mà D-WARD dùng: Mẫu kết nối TCP hợp lệ: Các mẫu kết nối TCP hợp lệ của D-WARD giống với mô hình luồng TCP hợp lệ của nó. Nó sử dụng cùng giá trị TCPrto – tỷ lệ cho phép lớn nhất của số lượng gói tin gửi và nhận trong kết nối. Kết nối được phân loại là tốt nếu tỷ lệ gói tin của nó dưới ngưỡng. Tỷ lệ gói tin được theo dõi được dàn xếp trước khi phân loại để tránh nhiễu trong các phép đo. Mẫu kết nối ICMP hợp lệ: D-WARD không triển khai các mẫu kết nối ICMP hợp lệ. giao vận ICMP ít có ý nghĩa kết nối – nó ít khi được phát ra để chuẩn đoán các vấn đề mạng, bao hàm rất ít các nhóm gói tin, và bao gồm 1 phần rất nhỏ của tổng giao vận Internet. Các mẫu kết nối ICMP hợp lệ được dùng ít với giao vận ICMP hợp lệ,ngắn gọn, chúng sẽ nhanh chóng hoàn thành sau khi làm cho có giá trị. Nói cách khác, có thể loại bỏ giao vận ICMP hợp lệ trong lúc một cuộc tấn công sẽ không gây nguy hiểm lớn tới các máy khách hợp lệ. Mẫu kết nối UDP hợp lệ: D-WARD xây dựng các mẫu với mỗi ứng dụng cho giao vận UDP. Chúng ta xác định các mục chính của ứng dụng mà dùng UDP là: 1. Dịch vụ tên miền (Domain Name Service-DNS) 2. Giao thức thời gian mạng (Network Time Protocol – NTP) 3. Luồng đa phương tiện (multimedia streaming) 4. Nói chuyện qua mạng(VoIP) 5. Các trò chơi nhiều người chơi Internet 6. Hệ thống file mạng (Network File System – NFS) 7. Các ứng dụng chat Chúng ta so sánh các mục được chọn với các đặc điểm từ trang web của Hội hợp tác phân tích dữ liệu Internet (CAIDA) chỉ ra 25 ứng dụng hàng đầu (không quan tâm tới giao thức giao vận tầng dưới). Chỉ có ít ứng dụng UDP trong top 25 này vì UDP 19 chiếm một phần nhỏ của tất cả giao vận mạng (khoảng 3%). Tất cả đều trong danh sách các ứng dụng UDP được chọn của chúng ta. Với mỗi ứng dụng dựa vào UDP, D-WARD thiết kế các mẫu thích hợp dưới đây nhưng trong phạm vi của khóa luận, chúng ta chỉ miêu tả ba mẫu cần thiết: Dịch vụ tên miền (DNS): DNS có thể được thực thi trên TCP hoặc UDP, nhưng UDP là phổ biến hơn. Dưới sự hoạt động bình thường, giao vận kết nối DNS sẽ đưa ra tỷ lệ 1:1 của các gói tin gửi đi tới các gói tin nhận được. Nếu gói tin đáp ứng mất, máy khách DNS lặp lại yêu cầu của nó tới máy chủ khác trước khi cố thử cùng máy chủ. Khoảng truyền lại là giữa 2 đến 5 giây, và kích cỡ thông điệp là 46 tới 512 byte ( không bao gồm tiêu đề của UDP và IP). Các gói tin DNS được nhận ra dựa vào trường ứng dụng trong tiêu đề IP mà mang giá trị 17, và dựa vào một cổng số 53 trong tiêu đề UDP. Các gói tin yêu cầu và đáp ứng được nhận ra dựa vào bit đầu tiên của byte thứ 3 trong tiêu đề DNS, là 0 cho gói tin yêu cầu, 1 cho gói tin đáp ứng. Một mẫu kết nối DNS hợp lệ được xác định bởi máy trạng thái hữu hạn trong hình 9. Kết nối bắt đầu từ NO_STATE. Khi một yêu cầu DNS được gửi tới host bên ngoài, kết nối đi tới trạng tái DNS_REQ và khi một trả lời được nhận, kết nối đi tới trạng thái DNS_REP. Kết nối có thể chứa nhiều yêu cầu lặp chỉ nếu tần số của chúng thấp hơn DNS_EXPIRY,mà được thiết lập 1 giây. Bất kỳ vi phạm mẫu mang kết nối tới trạng thái ERROR, mà dẫn tới sự phân loại xấu. Hình 9: Máy trạng thái hữu hạn DNS Giao thức thời gian mạng (NTP). Trong NTP, có ba phương thức hay mẫu liên kết chính trong một hệ thống có thể đồng bộ với các host khác: chế độ máy khách, chế độ máy khách đa phát hay phát tỏa, va chế độ hoạt động đối xứng. Trong chế độ máy 20 khách, một host thăm dò một hay nhiều host để nhận được thời gian hiện tại, và xử lý các đáp lại là nhận được. Trong chế độ đa phát và phát tỏa,một host không thăm dò. Thay vào đó, nó nghe các gói tin NTP mà phát tỏa hay đa phát qua mạng cục bộ. Trong chế độ hoạt động đối xứng, một host thăm dò các host khác và đáp ứng lại các thăm dò từ các host này. Thêm vào đó, các host giữ thông tin liên quan tới thời gian về các host mà chúng truyền thông với. Do đó, có ba mẫu kết nối UDP có thể cho NTP. Dưới sự hoạt động bình thường, giao vận kết nối NTP sẽ đưa ra tỷ lệ 1:1 của các gói tin gửi đi với gói tin nhận được. Nếu các gói tin đáp ứng bị mất, máy khách NTP lặp lại các yêu cầu của nó tới máy chủ khác trước khi cố thử cùng máy chủ. Khoảng thăm dò trong dải từ 64 tới 1024 giây. Kích cỡ thông điệp từ 44 tới 56 byte. D-WARD chỉ thiết kế và thực thi các mẫu kết nối máy khách NTP. Một mẫu kết nối NTP hợp lệ được định nghĩa bởi một máy trạng thái hữa hạn thể hiện trong hình 10. Kết nối bắt đầu từ NO_STATE. Khi một yêu cầu NTP được gửi tới một host bên ngoài, kết nối sẽ chuyển sang trạng thái NTP_SENT, và khi một đáp ứng nhận được, kết nối đi tới trạng thái NTP_REC. Kết nối có thể chứa nhiều yêu cầu lặp lại chỉ nếu tần số của chúng thấp hơn NTP_EXPIRY, được thiết lập cho 60 giây. Bất kỳ vi phạm mẫu đưa kết nối tới trạng thái ERROR, mà dẫn tới phân loại xấu. Hình 10: Máy trạng thái hữu hạn NTP Luồng đa phương tiện: Các chương trình ứng dụng phổ biến nhất dùng luồng audio và video là RealPlayer, Windows Media Player, Quick-time và luồng mp3 shoutcast. Quicktime và RealPlayer dùng giao thức giao vận thời gian thực (Real-time Transport Protocol – RTP) trên UDP cho việc phân phối dữ liệu và giao thức luồng thời gian thực (Realtime Streaming Protocol – RTSP) trên TCP cho việc điều khiển. 21 Windows Media Player dùng giao thức Microsoft Media Server (MMS) – giao thức luồng mạng độc quyền của Microsoft trên TCP và UDP mà bao gồm cả hai việc phân phối dữ liệu và các cơ chế điều khiển. D-WARD chỉ cung cấp các mẫu cho các ứng dụng luồng đa phương tiện mà dùng RTP và RTSP. Luồng dữ liệu được gửi từ máy chủ tới máy khách trong phần nhỏ, tương ứng với các gói tin RTP đặt cách nhau, kích cỡ khoảng từ 12 đến 72 byte. Cứ vài gói tin RTP nhận được, máy khách gửi một gói tin RTP trở lại máy chủ. Giao vận RTSP được gửi thông qua TCP ở thời điểm bắt đầu phiên và mỗi khoảng 1 tới 2 giây để phân phối các thông báo về điều kiện phiên. D- WARD mô hình các kết nối luồng media hợp lệ bằng sự tương quan trạng thái của giao vận kết nối RTP và RTSP, và bằng dùng một máy trạng thái hữu hạn luồng media thể hiện ở hình 11. Khi một gói tin RTP được gửi hay nhận, D-WARD kiểm tra để thấy kết nối RTSP liên quan tồn tại. Kết nối RTSP được định vị bằng việc tìm một kết nối với cùng máy nguồn và địa chỉ IP đích như kết nối RTP, và số cổng bên ngoài là 554, là số cổng của RTSP. Nếu kết nối RTSP tồn tại và không quá cũ(nó được kích hoạt trong RTSP_ACTIVE giây cuối cùng, hiện tại thiết lập giá trị 5), kết nối RTP đi tới trạng thái STREAMing. Nếu không nó đi tới trạng thái ERROR. Khi phân loại kết nối được thực hiện, các kết nối RTP trong trạng thái STREAMING cũng sẽ được kiểm tra tỷ lệ cao của gói tin RTP gửi đi so với nhận lại. Nếu tỷ lệ này thấp hơn RTPrto ( hiện tại thiết lập là 20), kết nối RTP sẽ được phân loại là tốt. Nếu tỷ lệ cao hơn RTPrto hay kết nối trong trạng thái ERROR, nó sẽ được phân loại là xấu. Bằng việc thực hiện kiểm tra trực tiếp, chúng ta quan sát được các máy chủ luồng media sẽ tiếp tục phát sinh giao vận RTP hướng về máy khách trong trường hợp thiếu các gói RTP và RTCP ngược ( có thể xảy ra trong trường hợp tấn công DdoS). Như vậy trạng thái được bắt bởi D-WARD là không hợp lệ, và kết nối sẽ được phân loại là xấu. 22 Hình 11: Máy trạng thái hữu hạn luồng dữ liệu 2.5.3. Phân loại gói tin đầu tiên Một vấn đề khó khăn mà D-WARD đối mặt trong việc phân loại kết nối là vấn đề phân loại kết nối dựa vào gói tin đi ra đầu tiên. Vấn đề xảy ra khi một kết nối cố gắng bắt đầu trong cuộc tấn công. Gói tin đi ra đầu tiên được thấy bởi D-WARD không thể được công nhận là hợp lệ, do các mẫu kết nối hợp lệ yêu cầu nhiều dữ liệu hơn để thực hiện phân loại. Vì thế kết nối này sẽ được xem như là nhất thời và truyền thông của nó sẽ chịu mức giới hạn. Trong mức giới hạn, các gói tin đầu tiên sẽ thua trong việc cạnh tranh chống lại truyền thông tấn công, và sẽ bị loại bỏ. Việc loại bỏ các gói tin đầu tiên trong một kết nối có thể có thể gây ra chán trong việc thiết lập kết nối (nhất là trường hợp kết nối TCP) và kết quả là dịch vụ tồi tới các kết nối mới trong cuộc tấn công. Hậu quả như thế là không có truyền thông kết nối mới được phép truyền qua trong cuộc tấn công. Ví dụ dưới đây, miêu tả trong hình 12, minh họa sự khốc liệt của việc phân loại gói tin đầu tiên: Một thiết lập kết nối TCP trong khi một cuộc tấn công phát tràn SYN TCP. 23 Hình 12: Một kết nối TCP mới được khởi tạo trong cuộc tấn công Mạng nguồn NetS được bảo vệ bởi D-WARD. Một phát tràn SYN TCP dùng lừa đảo subnet được phát sinh từ host phá rối A tới máy nạn nhân V. D-WARD phát hiện ra cuộc tấn công này và đặt một mức giới hạn trong luồng đi ra từ NetS tới V. Các máy khách hợp lệ C1 và C2 trước đã kiến tạo kết nối tới V, và những kết nối này được nhận biết như hợp lệ và được bảo vệ từ mức giới hạn. Trong cuộc tấn công,máy khách hợp lệ C3 cố gắng kết nối tới máy nạn nhân V. D-WARD theo dõi vô số gói tin của cuộc tấn công SYN TCP và một gói tin SYN TCP hợp lệ. Không có thông tin trong gói tin mà kẻ tấn công ko thể lừa đảo. Chỉ có sự khác nhau giữa hai gói tin loại này là cách đối xử trong tương lai: máy khách hợp lệ sẽ hoàn thành quá trình bắt tay ba bước và tiếp tục phát sinh truyền thông trong kết nối, trong khi kẻ tấn công không thể. Bởi vậy, hai loại gói tin này không thể phân biệt được bởi D-WARD. Cả một kết nối hợp lệ lẫn cả tất cả các kết nối tấn công sẽ được phân loại như là nhất thời và sẽ phải chịu mức giới hạn. Trong mức giới hạn, truyền thông tấn công hầu như chiến thắng, kết quả gói tin TCP SYN hợp lệ bị loại bỏ. Vấn đề này thực sự dữ dội hơn thế, vì không chỉ các gói tin đầu tiên mà tất cả các gói tin trong các kết nối mới sẽ hầu như bị loại bỏ cho tới khi Khoảng theo dõi kết nối hết hạn và kết nối được làm cho có hiệu lực. Có vài chiến lược để cải thiện tình huống này: Áp dụng triển khai cookie SYN TCP bởi máy nạn nhân: Tấn công phát tràn SYN TCP có thể được xử lý thành công ở tỷ lệ rất cao bằng việc dùng các cookie SYN TCP. Giải pháp này xử lý vấn đề kết nối half-open bằng thay thế tình trạng máy chủ bới thông tin mã hóa. Các cookie SYN là chọn lựa riêng biệt của dãy số khởi tạo TCP 24 bởi máy chủ. Trong sự đáp ứng lại một gói tin SYN TCP, máy chủ chọn dãy số khởi tạo của nó như là một hàm của: thời gian khi yêu cầu nhận được,kích cỡ segment lớn nhất của máy chủ(MSS), một hàm bí mật được lựa chọn bởi máy chủ của địa chỉ IP máy khách và số cổng, địa chỉ IP máy chủ và số cổng, và thời gian. Lựa chọn này của dãy số tuân theo với các yêu cầu cơ bản của TCP mà các dãy số tăng chậm; dãy số khởi tạo của máy chủ tăng hơi nhanh hơn dãy số khởi tạo của máy khách. Một máy chủ gửi một SYN ACK với một dãy số khởi tạo được chọn, nhưng không lưu thành một bản ghi trong hàng đợi kết nối của nó. Khi máy chủ nhận một ACK hoàn thành quá trình bắt tay ba bước, nó kiểm tra hàm bí mật làm việc trong thời gian gần đây, và rồi xây dựng lại mục hàng đợi kết nối từ MSS được mã hóa. D-WARD có thể giả định việc dùng cookie của SYN TCP bởi máy nạn nhân và luôn chuyển các gói SYN TCP. Không may, nhiều host không triển khai cookie SYN TCP, vì vậy D-WARD sẽ bị hỏng để bảo vệ các host từ cuộc tấn công phát tràn SYN TCP. Do đó, giải pháp này không giải quyết vấn đề các gói tin đi ra sau trong kết nối này có thể đến trước khi kết nối hợp lệ. Các gói tin này sẽ phải chịu mức giới hạn và có thể bị loại bỏ. Các kết nối Proxy TCP: D-WARD có thể lựa chọn để xử lý các cuộc tấn công SYN TCP bằng cách chính nó triển khai cookie SYN TCP và thực hiện quá trình bắt tay ba bước thay cho máy nạn nhân. Giải pháp này được đưa ra bởi nhiều hệ thống phòng thủ. Một hệ thống phòng thủ phân ra các gói tin SYN TCP và các trả lời, thay cho máy chủ, dùng cookie SYN TCP. Mỗi khi máy khách hoàn thành quá trình bắt tay ba bước,hệ thống phòng thủ kết nối TCP SYN tới máy chủ và biểu diễn như máy khách để hoàn thành thiết lập kết nối. Vấn đề nảy sinh vì mỗi bên phải chọn một dãy số khởi tạo trong gói tin của mình. Do vậy,dãy số khởi tạo của máy chủ được chọn đầu tiên bởi hệ thống phòng thủ (trong tên máy chủ) sẽ không khớp với dãy số khởi tạo được chọn bởi máy chủ. Hệ thống phòng thủ không thể thay đổi thông tin dãy số của mỗi bên. Với 2 lựa chọn: (1) proxy hoàn thành kết nối, viết lại các dãy số thích hợp, hay (2) loại bỏ kết nối bằng việc gửi một gói tin RST tới máy khách, nhớ rằng nó hợp lệ để thử lại các gói tin SYN TCP của nó được cho phép đến máy chủ trực tiếp. Vì cố thử một kết nối phải được khởi tạo bằng chương trình, một kết nối loại bỏ là một lựa chọn xấu. Do đó, phần lớn các hệ thống phòng thủ chọn để proxy hoàn thành kết nối TCP. Lựa chọn này sẽ đặt gánh nặng lớn cho D-WARD từ đó nó sẽ phải giữ nhiều trạng thái kết nối hơn và điều chỉnh mỗi gói tin của các kết nối hợp lệ trong cuộc tấn công. 25 Đưa vào các điều chỉnh tới TCP để chỉ rõ ISN mong muốn. Một giải pháp có thể để proxy chỉ thực hiện quá trình bắt tay ba bước và không hoàn thành kết nối sẽ bổ sung một lựa chọn mới tới giao thức TCP – ISN mong muốn. Lựa chọn này sẽ được dùng bởi hệ thống phòng thủ trong gói tin SYN TCP nối lại, yêu cầu máy chủ lựa chọn một giá trị cụ thể dãy số khởi tạo của nó. Sự điều chỉnh này sẽ yêu cầu giai thức TCP thay đổi ở tất cả máy chủ trong mạng nguồn và sẽ mở đầu nhiều vấn đề an ninh. Lặp lại các kết nối half-open. D-WARD có thể khởi tạo chuyển tất cả các gói SYN TCP, nhưng giữ vết của các kết nối half-open. Nếu chúng không hoàn thành trong một khoảng thời gian cố định, D-WARD có thể phát ra một gói RST tới máy chủ,giải phóng tài nguyên của nó. Giải pháp này cũng được đưa ra bởi nhiều hệ thống phòng thủ. Hạn chế của nó là D-WARD sẽ phải giữ trạng thái của các kết nối half- open, do đó chính nó trở thành một nạn nhân tiềm tàng của các cuộc tấn công từ chối dịch vụ. Gạt bỏ ngẫu nhiên các gói tin lừa đảo. Kỹ thuật dự đoán giá trị cho rằng hệ thống phòng thủ có thể biết hay dự đoán đúng một khoảng giá trị hợp lệ cho các trường tiêu đề của TCP hay IP trong các gói tin kết nối đầu tiên (Khoảng giá trị tiên đoán). Chức năng dự đoán phải đủ chính xác để mà các gói tin hợp lệ sẽ luôn được tìm ra và làm cho có hiệu lực. Khoảng giá trị dự đoán phải tương đối nhỏ để các gói tin mà các giá trị tiêu đề lừa đảo ngẫu nhiên có một khả năng thấp để làm cho có hiệu lực như hợp lệ. D-WARD dùng kỹ thuật dự đoán giá trị để chấp nhận các gói tin hợp lệ ở khởi đầu kết nối TCP. Một kẻ tấn công lén lút vẫn có thể học được khoảng giá trị dự đoán và lừa đảo thích hợp các gói tin của họ để bảo đảm rằng họ sẽ được nhận ra như là hợp lệ. Để chống lại việc này, D-WARD đưa ra mức giới hạn gói tin sớm không đổi riêng biệt mà ghép vào các gói tin mà khớp với khoảng giá trị dự báo. Kết quả toàn bộ là truyền thông của các máy khách hợp lệ sẽ nhận dịch vụ tốt trong một cuộc tấn công phát tràn SYN TCP lén lút. Vì truyền thông tấn công lén lút vẫn phải chịu mức giới hạn với mức giới hạn gói tin sớm, kẻ tấn công không thể lạm dụng kỹ thuật dự đoán giá trị để thực hiện các cuộc tấn công thành công. Vì vậy, kỹ thuật dự đoán giá trị cải thiện đáng kể trạng thái trong trường hợp tấn công spoofed ngẫu nhiên, và không làm nó tồi hơn trong trường hợp tấn công lén lút. 2.6. Thành phần giới hạn Thành phần mức giới hạn điều chỉnh giá trị giới hạn mọi Khoảng theo dõi luồng. Nó đảm nhận phân loại các kết quả từ thành phần theo dõi và lịch sử trạng thái luồng 26 từ thành phần quản lý truyền thông và đưa ra một giá trị giới hạn cho mỗi luồng hoạt động. Lịch sử trạng thái luồng được biểu lộ qua hai thước đo: lượng byte của luồng truyền thông được chuyển tới máy nạn nhân - Bsent, và lượng byte của luồng truyền thông bị loại bỏ do mức giới hạn - Bdropped. Cả hai giá trị được đo trong Khoảng theo dõi luồng. Chúng cùng nhau định nghĩa Hệ số tuân theo luồng – một đơn vị đo một luồng tuân theo một mức giới hạn phải chịu như thế nào. Hệ số tuân theo luồng được tính toán như sau: Hệ số tuân theo luồng có giá trị trong khoảng từ 0 đến 1, giá trị cao xác định việc tuân theo cao với mức giới hạn phải chịu. 2.6.1. Giảm theo luật số mũ Khi luồng được phân loại như một luồng tấn công trong lần đầu tiên sau một khoảng lầu bình thường, mức của nó bị giới hạn một phần mức gửi đi vi pham. Độ lớn của phần được chỉ rõ bởi tham số cấu hình fdec. Sự phân loại của một luồng như một cuộc tấn công giới hạn mức giới hạn hơn nữa, áp dụng giảm theo luật số mũ dựa vào công thức: Mà rl là mức giới hạn hiện tai. Hệ số tuân theo luồng – fcf – miêu tả mức độ cư xử xấu của luồng, và định nghĩa sự giới hạn của mức giới hạn. Các luồng có cư xử tệ (fcf<=1) là giới hạn nhanh chóng tới mức rất thấp,sự giới hạn này dần dần cho các luồng tốt hơn(fcf ~ 1). Mức giới hạn thấp nhất có thể phải chịu được định nghĩa bởi tham số cấu hình MinRate, vì vậy ít nhất một gói tin có thể đến đích và gây nên việc phục hồi lại. 2.6.2 Tăng tuyến tính Khi tín hiệu phát hiện tấn công trở thành âm, luồng liên kêts sẽ bị phân loại như là khả nghi, ở điểm nào đó cơ chế khôi phục được gây nên. Quá trình khôi phục lại được chia thành khôi phục lại chậm và khôi phục lại nhanh. Trong quá trình khôi phục 27 lại châm,một luồng bị trừng phạt cho việc bị phân loại như một luồng tấn công bởi tăng tuyến tinh trong mức cho phép dựa vào công thức: Tốc độ khôi phục được xác định bởi tham số rateinc và thời gian của quá trình khôi phục chậm được xác định bởi khoảng tuân theo. 2.6.3 Tăng theo hàm số mũ Khi luồng được phân loại là bình thường, quá trình khôi phục nhanh được tạo nên. Trong quá trình khôi phục nhanh, tỷ lệ tăng theo hàm số mũ dựa vào công thức: Tốc độ khôi phục được xác định bởi tham số finc , và tỷ lệ tăng được giới hạn bởi tham số cấu hình MaxRate. Ngay khi mức giới hạn trở nên lớn hơn MaxRate, quá trình khôi phục đã kết thúc, và mức giới hạn được xóa bỏ. Hình 13 miêu tả các giá trị giới hạn và các kết quả phân loại cho một luồng mẫu Hình 13: Các giá trị giới hạn và sự phân loại cho một luồng mẫu 28 2.7. Thành phần quản lý truyền thông Thành phần quản lý truyền thông nhận thông tin giới hạn luồng định kỳ từ thành phần giới hạn (mọi Khoảng theo dõi luồng) và thông tin phân loại kết nối từ thành phần theo dõi (mọi Khoảng theo dõi kết nối). Nó dùng thông tin này để đưa ra một quyết định có chuyển tiếp hay loại bỏ từng gói tin đi ra theo cách sau: • Nếu gói tin thuộc một luồng không bị giới hạn, chuyển tiếp nó, hoặc • Nếu gói tin thuộc một luồng tốt, chuyển tiếp nó, hoặc • Nếu gói tin là TCP và dãy số của nó khớp với giá trị dự đoán và Mức giới hạn gói tin sớm cho luồng không bị hết, chuyển tiếp nó, hoặc • Nếu mức giới hạn luồng không bị hết, chuyển tiếp gói tin, hoặc • Loại bỏ gói tin Ưu điểm của D-WARD • D-WARD là một hệ thống phòng thủ DdoS được triển khai ở mạng source- end. • D-WARD được cài đặt tại bộ định tuyến nguồn để phụ vụ như một gateway giữa mạng được triển khai( mạng nguồn) và phần còn lại của Internet. • D-WARD là một hệ thống phản hồi ngược tự cấu hình, nên D-WARD có thể tự động cấu hình không cần việc cấu hình bằng tay của người quản trị. • D-WARD phát hiện và ngăn cản một cách rất hiệu quả các cuộc tấn công đi ra từ các mạng được triển khai. • D-WARD cung cấp dịch vụ tốt tới các giao dịch hợp lệ giữa mạng được triển khai và máy nạn nhân trong khi cuộc tấn công đang diễn ra. • D-WARD có thể hợp nhất nó với các cơ chế phòng thủ khác ( như COSSACK hay DefCOM) để cung cấp sự đáp ứng có lựa chọn. Nhược điểm của D-WARD • D-WARD chỉ phát hiện và ngăn chặn các cuộc tấn công bắt nguồn từ mạng được triển khai, do vậy các mạng không được triển khai thì vẫn thực hiện thành công cuộc tấn công. 29 • Các hệ thống được triển khai trong mạng không truyền thông với nhau để tạo nên sự hiệu quả trong việc phát hiện và ngăn cản các cuộc tấn công trong mạng. • D-WARD chỉ phát hiện và ngăn chặn được các cuộc tấn công phát sinh từ mạng nguồn mà nó được triển khai nên yêu cầu triển khai ở mức lớn(bao phủ phần lớn các mạng nguồn) thì mới đạt được hiệu quả mong muốn. Tổng kết Trong chương 2 này, khóa luận đã giới thiệu chi tiết về chức năng và kiến trúc của hệ thống phòng thủ D-WARD. Khóa luận cũng cho biết chức năng của từng thành phần và mối quan hệ lẫn nhau giữa các thành phần D-WARD để xây dựng một hệ thống phòng thủ DDoS hiệu quả mà cho phép phát hiện và ngăn chặn các cuộc tấn công DDoS đi ra từ mạng nguồn đồng thời cung cấp dịch vụ tốt cho các giao dịch hợp lệ giữa mạng được triển khai và máy nạn nhân trong khi cuộc tấn công đang diễn ra. 30 Chương 3. Cơ sở lý thuyết của kiến trúc triển khai và mở rộng D-WARD D-WARD được thực thi trong một bộ định tuyến Linux hoặc là trong một bộ định tuyến IXP. Nhưng trong khóa luận này, chúng ta chỉ đề cập đến sự thực thi của hệ thống D-WARD trên bộ định tuyến Linux bao gồm 2 phần: mức người dùng của thành phần giám sát và giới hạn, mức nhân của thành phần quản lý truyền thông. Việc phân chia chức năng giữa người dùng và mức nhân xuất hiện sau hai phiên bản trước của D- WARD được điều chỉnh để đạt được việc thực hiện tốt hơn và dễ dàng triển khai hơn. D-WARD 1.0 D-WARD 1.0 được thực thi hoàn toàn ở mức người dùng. Do thành phần quản lý truyền thông cần truy cập trực tiếp các gói tin bằng bộ định tuyến để thực hiện quyết định chuyển tiếp hay loại bỏ, các gói tin cần bắt trong lúc chúng đi qua nhân và được sao chép tới mức người dùng. Việc này được thực hiện dung chức năng IP_queue trong nhân Linux và sự xếp hàng gói tin userspace. Netfilter cung cấp một cơ chế cho việc đưa các gói tin đi ra ngăn xếp cho việc xếp hàng với userspace, rồi nhận các gói tin này trở lại nhân với một quyết định chỉ rõ với các gói tin (ACCEPT hay DROP). Những gói tin này có thể được điều chỉnh trong userspace trước được đẩy trở lại nhân. Với mỗi giao thức được hỗ trợ, một module nhân được gọi là bộ xử lý hàng đợi có thể đăng ký với netfilter để thực hiện các cơ chế của truyền gói tin từ và tới userspace. Bộ xử lý hàng đợi chuẩn cho Ipv4 là ip_queue. Nó cung cấp như một module thực nghiệm với nhân 2.4, và dùng một socket Netlink cho truyền thông nhân/userspace. Mỗi khi được xử lý (được xem xét và/hay được điều chỉnh), các gói tin trả loại khoảng nhân với quyết định: NF_ACCEPT để chấp nhận gói tin hay NF_DROP để âm thầm xóa bỏ gói tin. Thông tin chi tiết về chức năng IP_queue có thể thu được bằng cách xem các trang hướng dẫn libipq. IP_queue cung cấp tất cả chức năng cần thiết cho thành phần quản lý truyền thông. Tuy nhiên, sao chép các gói tin(tiêu đề và dữ liệu) để userspace thêm một phần đầu lớn để trở thành tới hạn như mức gói tin tăng lên. D-WARD 1.0 có thể xử lý tới hơn 1000 gói tin mỗi giây, vì vậy ngăn cấm các kiểm tra tấn công D-WARD thực tế. Quyết định đưa ra là di chuyển chức năng quản lý truyền thông vào khoảng nhân. D-WARD 2.0 31 D-WARD 2.0 thực thi thành phần quản lý truyền thông trong nhân và thành phần theo dõi và giới hạn ở mức người dùng. Truyền thông giữa hai phần đạt được bằng việc dùng các lệnh gọi hệ thống. Thành phần giới hạn được thực thi như một nhân có thể tải được. Ở mức nhân, việc bắt gói tin đạt được bằng việc dùng netfilter hooks. Netfilter là một nền tảng cho việc packet mangling, ngoài giao diện socket Berkeley bình thường. Mỗi giao thức xử lý gói tin (như Ipv4 hay Ipv6) định nghĩa là các “hook” mà là các điểm hoàn toàn xác định trong sự giao nhau của một gói tin của ngăn xếp giao thức đó. Để một gói tin đạt được mỗi điểm này, giao thức sẽ gọi nền tẳng netfilter với số lượng gói tin và hook. Các module nhân có thể đăng ký để nhận các hook của các điểm này. Khi một gói tin được truyền tới nền tảng netfilter (với việc chạm trán một trong các hook), netfilter kiểm tra thấy nếu ai đó đã đăng ký cho giao thức đó và hook. Nếu như vậy, mỗi mudule nhân được đăng ký làm cho một thay đổi tới kiểm tra (và có thể biến đổi) gói tin theo thứ tự mà chúng đã đăng ký hook. Lúc xử lý, module nhân có thể loại bỏ gói tin (trả về NF_DROP tới nền tảng), cho phép nó truyền qua (trả lại NF_ACCEPT), cho biết netfilter quên về gói tin (trả về NF_STOLEN), hỏi netfilter để xếp hàng gói tin cho userspace (trả về NF_QUEUE) hay lặp lại hook này (trả về NF_REPEAT). Một phần của chức năng này được dùng trong D-WARD 1.0 thông qua các quy tắc iptables để phân các gói tin ra và gửi chúng tới userspace. Các module mức người dùng (thành phần theo dõi và giới hạn) phân phối Danh sách kết nối hợp lệ và Các quy tắc giới hạn tới nhân bằng dùng các lệnh hệ thống mới thêm vào. Module theo dõi nhận các đặc điểm gói tin bằng một mã điều chỉnh tcpdump. Tcpdump dùng Bộ lọc gói tin Berkeley (Berkeley Packet Filter) và thư viện pcap để bắt tiêu đề (và một phần nội dung) của các gói tin khớp với phép lọc đưa ra. Thành phần theo dõi điều chỉnh mã để thông tin không được in nhưng thay vào đó được truyền vào hàm xử lý các đặc điểm. D-WARD 2.0 có thể xử lý mức gói tin cao (hơn 10000 gói tin trên giây) nhưng nó có các giới hạn sau. Tiện ích libpcap sao chép tiêu đề gói tin (và nội dung) trên cơ sở từng gói tin. Việc này chịu phí tổn điều khiển mà trở nên tới hạn nếu mức gói tin tăng lên. Mức gói tin cao hơn 1000 gói tin, libpcap không thể bắt thông tin trong tất cả các gói tin truyền qua. Trong khi D-WARD vẫn hoạt động, đây có khả năng mà việc mất mát thông tin sẽ bao gồm thông tin gói tin hợp lệ và ảnh hưởng tới việc thực thi D- WARD. Giới hạn khác là dễ dàng triển khai. Vì D-WARD 2.0 thêm các lệnh gọi hệ thống mới tới nhân Linux, nó yêu cầu điều chỉnh nhân cho việc triển khai – một cam 32 kết khó khăn mà có thể rất dài và phức tạp. Ngoài ra, việc thêm các lệnh gọi hệ thống mới hay điều chỉnh của một cái cũ là lỗ hổng an ninh trong nhân Linux và bị cấm trong vài phiên bản. D-WARD 3.0 D-WARD 3.0 thực thi thành phần quản lý truyền thông bên trong nhân và thành phần theo dõi và thành phần giới hạn ở mức người dùng, giống D-WARD 2.0. Tuy nhiên, truyền thông giữa hai phần đạt được bằng dùng các lệnh ioctl. Việc này cho phép truyền thông hai chiều dễ dàng giữa người dùng và các tiến trình nhân và một quá trình thiết lập liền mạch. Thiết lập yêu cầu rằng hai thiết bị được tạo ra: Thiết bị dward dùng cho truyền thông hai chiều giữa thành phần theo dõi và thành phần giới hạn ở một bên, và thành phần quản lý truyền thông ở bên kia, và Thiết bị sniff dùng cho đánh hơi (sniff) thông tin gói tin và phân phối nó tới thành phần theo dõi. Các tiến trình nhân thu thập thông tin cần thiết và lưu nó, trong khi các thành phần theo dõi và giới hạn thực thi các lời gọi ioctl để kéo về thông tin này khi cần. Phần sau sẽ cung cấp miêu tả chi tiết về kiến trúc này. Thêm tiêu chuẩn gói tin đang đánh hơi đặc chế cho phép thu thập các đặc điểm một cách hiệu quả và sao chép tới userspace, do vậy cung cấp hỗ trợ cho mức gói tin cao. D-WARD 3.1 D-WARD 3.1 thêm hai phương tiện quan trọng mà tác động đến sự thực thi hệ thống: Dự đoán dãy số khởi tạo. Các phiên bản 1.0, 2.0 và 3.0 không bao gồm kỹ thuật dự đoán giá trị. Các phiên bản đó loại bỏ các gói tin kết nối mới trong cuộc tấn công, và sự thực thi của chúng phụ thuộc trực tiếp vào tần số của các khởi tạo kết nối và độ dài kết nối. Để giải quyết vấn đề này, kỹ thuật dự đoán dãy số khởi tạo được phát triển và thực thi trong D-WARD 3.1, đây là phiên bản hiện tại của tiêu chuẩn D-WARD. Các mẫu kết nối UDP hợp lệ. Các mẫu kết nối UDP hợp lệ được thực thi chỉ trong D-WARD 3.1. Các phiên bản sớm hơn có thể gây ra thêm nguy hiểm trong truyền thông UDP hợp lệ. 33 3.1. Kiến trúc thực thi của D-WARD 3.1 Kiến trúc của việc thực thi D-WARD 3.1 được thể hiện trong hình 14 . Các hình oval với đường thẳng miêu tả các tiến trình song song trong D-WARD. Các hình oval với đường nét đứt miêu tả các thiết bị tạo ra truyền thông giữa các tiến trình người dùng và nhân. Các đường nét đứt nhanh với mũi tên minh họa các lời gọi ioctl để thuận tiện cho trao đổi giữa tiến trình người dùng và tiến trình nhân thông qua thiết bị được tạo. Các hình vuông nhỏ ở dưới các hình oval miêu tả các tiến trình nhân chỉ ra thứ tự mà các tiến trình đó được đăng ký nghe hook netfilter chuyển tiếp. Vì vậy, các gói tin truyền qua (và được xử lý) đầu tiên bởi module gst và cuối cùng bởi module rl. Hình chữ nhật nét đứt chỉ ra nhóm các tiến trình và dữ liệu với ba thành phần D- WARD : theo dõi, giới hạn và quản lý truyền thông. Hình 14. Kiến trúc thực thi của D-WARD 3.1 3.2. Thành phần theo dõi Thành phần theo dõi lưu các đặc điểm luồng và kết nối trong các bảng băm, cho việc truy cập nhanh. 3.2.1. Bảng băm luồng 34 Bảng băm luồng được đánh chỉ mục bởi địa chỉ IP của máy đích bên ngoài và bao gồm các trường sau: • lượng gói tin gửi đi và nhận cho từng giao thức (TCP, ICMP, UDP, khác và tổng). • lượng byte gửi đi và nhận cho từng giao thức (TCP, ICMP, UDP, khác và tổng). • lượng byte bị loại bỏ. • tỷ lệ gói tin TCP smoothed ( lượng gửi đi chia cho lượng gói tin nhận được). • tỷ lệ gói tin ICMP smoothed (lượng gửi đi chia cho lượng gói tin nhận được). • khoảng thời gian của lần reset sau cùng. • khoảng thời gian của hoạt động sau cùng (một gói tin được gửi hay nhận). • sự phân loại luồng. • lượng kết nối hợp lệ của giao thức UDP. • giá trị cực tiểu của truyền thông không có hiệu lực với từng gói tin (chỉ cho TCP và ICMP) trong cửa sổ cho trước. • lượng phân loại khả nghi liên tiếp gần đây. Các trường này được miêu tả trong hình 15 (các trường được tô đậm không được biểu diễn trong cấu trúc, e.g,., bộ đếm kết nối kích hoạt chỉ cho các đặc điểm UDP) Hình 15. Bảng bản ghi luồng 35 3.2.2 Bảng băm kết nối Bảng băm kết nối được đánh chỉ số bằng khóa bao gồm các địa chỉ IP và các cổng của các host cục bộ và bên ngoài. Một bản ghi bảng kết nối bao gồm các trường sau: • Lượng gói tin gửi đi và nhận được • Lượng byte gửi đi và nhận được • Giao thức kết nối (TCP,UDP,ICMP hay khác ) • Khoảng thời gian của lần reset sau cùng • Khoảng thời gian của hoạt động sau cùng( một gói tin gửi đi hay nhận được) • Phân loại kết nối • Tình trạng ứng dụng ( cho kết nối UDP) • Sự kết thúc tình trạng ứng dụng • cờ hiệu biểu thị đây là một kết nối mới Vì kích cỡ bảng băm nhỏ hơn nhiều lượng thực thể có thể, một vài thực thể sẽ xung đột trong quá trình chèn. Các bảng băm dùng băm kép (double hashing) để giảm xác suất xung đột. Băm kép dùng hai hàm: h1(x) và h2(x) để tính toán chỉ mục cho một khóa x cho trước. Chỉ mục đầu tiên sẽ được truy cập để tính toán : index = h1(x). Nếu xung đột xảy ra, các chỉ mục sau được tính toán như index =h1(x) + trial *h2(x), ở đây trial biểu thị lượng xung đột được bắt gặp cho đến bây giờ. Ý tưởng của giải pháp này là nếu hai mục băm ra cùng giá trị của h1, chúng sẽ có các giá trị khác nhau của h2 . Các chỉ mục băm luồng được tính toán dùng các hàm băm sau: Các chỉ mục băm kết nối được tính toán dùng các hàm băm sau: 36 Để tránh một tìm kiếm rộng cho mục trong các bảng băm (hay cho khe trống để chèn mục) lượng thử được giới hạn tới ba. Nếu sau ba lần thử một mục (hay khe trống) không tìm thấy, tìm kiếm (hay chèn thêm) bị hủy bỏ. Sự tối ưu này tăng hiệu quả một cách đáng kể trong khi không gây ra mất mát thông tin lớn. Do vậy các truy cập băm xảy ra khi mỗi gói tin truyền qua, giảm tổng phí truy cập băm cải thiện thực thi lớn. Việc tràn băm được kiểm tra ở thời gian chèn bản ghi. Nếu bảng băm gần đầy (90%), một thao tác xóa khẩn cấp sẽ được gọi để làm trống khoảng không cho bản ghi mới. Trong thao tác xóa khẩn cấp, mỗi bản ghi được xem xét để quyết định nó có thể bị xóa không. Nếu, sau lần truyền đầu tiên, việc chiếm giữ bảng băm không giảm dưới Rehash_load_factor_high(đây là một tham số cấu hình, thường thiết lập ở 75%), các việc truyền sau được khởi tạo bằng tiêu chuẩn lỏng lẻo cho việc xóa bản ghi. Tiêu chuẩn sau được dùng để quyết định một bản ghi có bị xóa không: • Cho một bản ghi luồng: xóa bản ghi nếu lượng gói tin gửi đi ít hơn SP và lượng byte gửi đi nhỏ hơn SB. SP và SB là nhân gấp đôi trong mỗi lần truyền qua. • Cho một bản ghi kết nối: Xóa bản ghi nếu lượng gói tin gửi đi ít hơn SP và lượng byte gửi di nhỏ hơn SB và kết nối được phân loại là nhất thời. SP và SB được nhân gấp đôi trong mỗi lần truyền qua. Vì nhiều lý do thực hiện, không băm lại được chấp nhận, và việc cấp phát bộ nhớ động được triển khai chỉ khi cần thiết. 3.2.3 Thu thập thông tin gói tin Tiến trình get_packet_info yêu cầu liên tục thông tin gói tin từ module nhân gst. Tuy nhiên, vì nhiều lý do thực hiện, tác động của việc sao chép dữ liệu giữa nhân và userspace được giảm đến mức tối thiểu. Bởi vậy, thông tin gói tin chỉ được sao chép khi bộ nhớ đệm của nhân hơn 1/3 đầy hay sau khi một lượng yêu cầu sao chép (một giá trị của 1000 được chọn theo kinh nghiệm) bị từ chối. Khi get_packet_info nhận dữ liệu gói tin, nó phân tích thông tin trong từng gói tin và cập nhật các thực thể tương ứng trong bảng băm luồng và kết nối. 3.2.4 Phân loại luồng và kết nối Hàm process phân loại định kỳ các luồng và các kết nối và gọi hàm giới hạn để quyết định các mức giới hạn thích hợp. Một luồng sẽ được phân loại như một tấn công nếu ít nhất một trong những điều kiện sau là thỏa mãn: 37 • Tỷ lệ TCP smoothed của nó lớn hơn TCPrto • Tỷ lệ ICMP smoothed của nó lớn hơn ICMPrto • Lượng kết nối UDP lớn hơn nconn và tỷ lệ lượng gói tin UDP gửi đi trên lượng kết nối UDP là thấp hơn pconn. • Việc phát hiện phần còn lại không có hiệu lực được dùng và giá trị cực tiểu của truyền thông TCP không có hiệu lực lớn hơn không. • Việc phát hiện phần còn lại không có hiệu lực được dùng và giá trị cực tiểu của truyền thông ICMP không có hiệu lực là lớn hơn không. Nếu không điều kiện nào thỏa mãn,luồng sẽ được phân loại là khả nghi nếu lượng phân loại tuân theo liên tiếp của nó thấp hơn khoảng tuân theo hay lượng byte bị loại bỏ lớn hơn không. Nếu khác,luồng sẽ được phân loại là bình thường. Một kết nối sẽ được phân loại là nhất thời nếu (1) là một kết nối TCP và ít hơn 3 gói tin được gửi từ thiết lập của nó, hay (2) là một kết nối ICMP và ít hơn 2 gói tin được gửi từ thiết lập của nó, hay (3) là một kết nối UDP và không có các mẫu mức chương trình. Một kết nối sẽ được phân loại là tốt nếu chính xác một trong những điều kiện sau thỏa mãn: • Là một kết nối TCP và tỷ suất TCP của nó( tỷ lệ của lượng gói tin được gửi đi và lượng gói tin nhận được) lớn hơn TCPrto • Là một kết nối ICMP và tỷ suất ICMP của nó lớn hơn ICMPrto . Chú ý rằng các kết nối ICMP hợp lệ sẽ được dùng cho việc phát hiện phần còn lại không có hiệu lực nhưng sẽ không được chèn vào Danh sách kết nối hợp lệ. • Là kết nối UDP và có mẫu mức chương trình và trong tình trạng có hiệu lực (không lỗi). Nếu khác, một kết nối sẽ được phân loại là tồi. Tất cả các kết nối TCP và UDP được phân loại là hợp lệ được chèn vào Danh sách kết nối hợp lệ để phân phối tới module nhân rl thông qua lời gọi ioctl. Sau khi các kết nối được phân loại,gói tin kết nối và các đặc điểm byte được đặt lại. Kết nối hơn nữa được kiểm tra tình trạng không hoạt động bằng việc so sánh khoảng thời gian hoạt động cuối cùng của nó với Khoảng kết nối tốt không hoạt động(Good_Inactive_Period) cho các kết nối tốt, hay Khoảng kết nối nhất thời không hoạt động(Transient_Inactive_Period) cho các kết nối nhất thời. Các kết nối tồi không 38 được kiểm tra tình trạng không hoạt động vì chúng cuối cùng sẽ được phân loại là tốt( và tóm lại sau đó không hoạt động) mỗi khi chúng dừng tham gia trong cuộc tấn công. Các kết nối không hoạt động sẽ bị xóa. 3.3 Thành phần giới hạn Thành phần giới hạn được gọi từ hàm process, sau đó các luồng và kết nối được phân loại. Nó thu được thông tin loại bỏ luồng từ module rl dùng lời gọi ioctl và xác định các mức giới hạn luồng thích hợp. Các luồng giới hạn được chèn vào Bảng băm mức giới hạn mà được đánh chỉ mục bởi địa chỉ IP của máy đích bên ngoài và chỉ bao gồm thông tin về mức giới hạn hiện tại. Thành phần của bảng này được phân phối tới module rl dùng các lời gọi ioctl. Sau khi mức giới hạn được xác định, gói tin luồng và các đặc điểm byte được đặt lại. Một luồng hơn nữa được kiểm tra tình trạng không hoạt động bằng việc so sánh khoảng thời gian hoạt động sau cùng với Khoảng thời gian luồng không hoạt động(Flow_Inactive_Period) cho các luồng bình thường. Thông tin các luồng tấn công và khả nghi không được kiểm tra tình trạng không hoạt động vì chúng cuối cùng sẽ được phân loại là bình thường sau khi xảy ra không hoạt động. Các luồng không hoạt động sẽ bị xóa. 3.4 Thành phần quản lý truyền thông Tiến trình quản lý truyền thông được thực thi với module rl, dùng netfilter hooks. Module rl lưu thông tin về các luồng giới hạn trong bảng băm luồng giới hạn và thông tin về các kết nối tốt trong bảng băm kết nối tốt của nó. Các bảng băm này được tổ chức giống như các bảng luồng và kết nối trong thành phần theo dõi. Một bản ghi băm luồng bị giới hạn được miêu tả trong hình 16 và bao gồm các trường sau: Hình 16. Bản ghi bảng băm luồng giới hạn • Lượng byte được gửi • Lượng byte gửi đi trong các kết nối tốt • Lượng byte gửi đi vì chúng khớp với khoảng dãy số dự đoán 39 • Lượng byte bị loại bỏ • Mức giới hạn hiện tại • Tải truyền thông tốt được ước lượng 3.4.1 Tiến trình quản lý truyền thông Quản lý truyền thông được thực thi với từng gói tin đi ra theo cách sau: • Nếu gói tin spoofed ngẫu nhiên (địa chỉ của nó không trong Bộ địa chỉ quản lý), loại bỏ nó. • Nếu luồng liên kết không trong Bảng băm luồng giới hạn, chuyển tiếp gói tin. • Nếu luồng liên kết trong Bảng băm kết nối tốt, chuyển tiếp gói tin và cập nhật sent good bytes trong bản ghi luồng liên kết trong Bảng băm luồng giới hạn. • Nếu gói tin là TCP, nó khớp với khoảng dãy số dự đoán và tổng sent predicted bytes,và độ dài gói tin không lớn hơn Mức giới hạn gói tin sớm, chuyển tiếp gói tin và cập nhật sent predicted bytes. • Nếu tổng sent bytes và độ dài gói tin không lớn hơn mức giới hạn và vẫn đủ khoảng trống cho đánh giá tải truyền thông tốt với mức giới hạn, chuyển tiếp gói tin và cập nhật sent bytes. Việc đánh giá tải truyền thông tốt được tính toán là giá trị cực đại của sent good bytes trong luồng liên kết, mũ của thời gian. 3.4.2 Các mẫu máy D-WARD thực hiện dự đoán khoảng dãy số cho các kết nối TCP. Để dự đoán khoảng dãy số, một mẫu được xây dựng cho từng địa chỉ từ bộ địa chỉ quản lý. Mẫu này bao gồm thông tin dãy số từ hai kết nối TCP được kiến tạo gần đây – s1 và s2, tương ứng với khoảng thời gian của chúng t1 và t2 và phân loại máy móc. Việc phân loại được thực thi bằng cách tính toán một dự đoán : sp = predict(s1,t1,t2) và sp phòng s2 cho các mẫu hệ điều hành khác nhau. Mẫu Windows OS biểu thị dãy số phụ thuộc là: Nếu sp là trong WIN_ERROR_MARGIN từ s2 , máy móc được phân loại là Windows. Mẫu Windows chính xác hơn mẫu Linux, vì vậy phân loại này được thực thi đầu tiên. Mẫu Linux OS biểu thị dãy số phụ thuộc là : 40 Nếu sp trong LIN_ERROR_MARGIN từ s2, máy móc được phân loại là Linux. Nếu máy mọc không qua kiểm tra Windows hay Linux OS, máy móc được phân loại là “khác”, và không dự đoán nào được thực hiện. Tiến trình thừa nhận cho các gói tin TCP trong giới hạn là giống với tiến trình thừa nhận cho phân loại máy móc. Thông tin dãy số gần đây( s1 và s2) được cập nhật chỉ từ các kết nối được chèn vào bảng băm kết nối tốt. 3.5 Bắt truyền thông(traffic-sniffing) Traffic-sniffing được thực thi trong module gst, dùng netfilter hooks. Module gst đơn giản thu thập một lượng byte định rõ từ gói tin (header và dữ liệu) và lưu chúng trong một bộ đệm. Nếu bộ đệm tràn, các gói tin sau sẽ được truyền qua không thu thập thông tin. 3.6 Triển khai các hệ thống D-WARD trên mạng các node hàng xóm 3.6.1 Vấn đề đặt ra Trong khi khiển khai hệ thống D-WARD chúng ta nhận thấy rằng các hệ thống D-WARD không truyền thông với nhau, do vậy các hệ thống D-WARD chỉ phát hiện và ngăn chặn các cuộc tấn công đi ta từ mạng nguồn mà hệ thống D-WARD được triển khai. Vì hệ thống D-WARD là hệ thống phòng thủ DDoS source-end nên các bộ định tuyến mà D-WARD được cài đặt và triển khai trên đường đi từ mạng nguồn đến mạng đích sẽ không thực hiện việc phân loại để phát hiện và ngăn chặn các cuộc tấn công tới máy nạn nhân. Giả thiết của vấn đề đặt ra là: Hệ thống D-WARD sử dụng mức TCPrto, ICMPrto,….(số kết nối tối đa cho phép) tương ứng với các giao thức tầng giao vận được sử dụng để xác định phân loại luồng và kết nối từ mạng nguồn đến máy nạn nhân. Nếu một luồng và kết nối vượt ngưỡng thì được phân loại là tấn công, nếu không thì luồng và kết nối được phân loại không phải là tấn công và được truyền tới máy nạn nhân. Nhưng do cuộc tấn công DDoS là một cuộc tấn công phân tán và sử dụng một lượng lớn máy agent thuộc nhiều mạng khác nhau nên máy nạn nhân vẫn phải chịu khả năng tấn công do chịu một lượng lớn các yêu cầu. Để giải quyết vấn đề này, chúng ta sẽ xây dựng các hệ thống D-WARD theo mô hình mạng các node hàng xóm. Và các hệ thống D-WARD này sẽ truyền thông với nhau về các thông tin về luồng từ một mạng nguồn tới một đích cho trước. 41 3.6.2 Ý tưởng giải quyết vấn đề Ý tưởng là khi bộ định tuyến trên đường đi từ mạng nguồn đến mạng đích có lưu một bảng các node hàng xóm gồm địa chỉ IP của bộ định tuyến hàng xóm của nó và một số nguyên R (là số bước đi từ bộ định tuyến trung gian đó đến bộ định tuyến của mạng nguồn). Các địa chỉ IP của các bộ định tuyến hàng xóm có thể có một vài node hàng xóm ở xa. Khi bộ định tuyến này nhận được gói tin từ mạng nguồn gửi đến mạng đích, bộ định tuyến sẽ đọc được địa chỉ IP nguồn và đích của gói tin thông qua chương trình get_packet_info.c trong hệ thống D-WARD. Dựa vào địa chỉ IP nguồn, IP đích và bảng các hàng xóm, bộ định tuyến sẽ gửi yêu cầu tới bộ định tuyến của mạng nguồn để yêu cầu bộ định tuyến của mạng nguồn, khi nhận được yêu cầu bộ định tuyến của mạng nguồn gửi cho tỷ số xác xuất của luồng đó. Khi nhận được các tỷ số mà các bộ định tuyến ở mạng nguồn gửi trả lại thì bộ định tuyến sẽ tổng kết tỷ số để phân loại luồng đó có phải là tấn công không, nếu tấn công thì sẽ tiến hành đưa ra các mức giới hạn với luồng đó để ngăn chặn cuộc tấn công. Để thực hiện được tốt thì ta sẽ cho các bộ định tuyến gửi các yêu cầu thu thập tỷ số xác suất này lặp lại sau một khoảng thời gian tuân theo(compliance time). 3.6.3 Cơ sở thực hiện • Khi gói tin đi qua bộ định tuyến thì bộ định tuyến sẽ đóng vai trò máy khách gửi yêu cầu tới bộ định tuyến của mạng nguồn ( đóng vai trò máy chủ), cả hai chạy theo giao thức TCP. Máy khách gửi yêu cầu là địa chỉ IP của máy nạn nhân và R tương ứng với máy chủ. Bộ định tuyến sẽ lưu bảng các node hàng xóm trước. • Khi máy chủ nhận được yêu cầu từ phía máy khách, máy chủ sẽ gửi tỷ lệ xác suất ratio của luồng phát sinh từ mạng nguồn đến máy nạn nhân. Máy chủ sử dụng hàm trong D-WARD. • Khi máy khách nhận được trả lời từ phía máy khách thì máy khách sẽ tổng hợp lại các tỷ lệ xác suất nhận được từ các mạng nguồn khác nhau có luồng tới máy nạn nhân. Và máy khách sẽ tính toán tỷ lệ xác suất một cách hợp lý theo công thức ratio = (ratio1 + ratio2 + ……. + ration)/n Ở đây, ratio là tỷ lệ xác suất tổng hợp. ratio1, ratio2, …., ration là tỷ lệ xác suất tương ứng với các mạng nguồn 1, 2,….,n. 42 Hình 17. Mô hình mạng và bảng địa chỉ hàng xóm Tổng kết Chương 3 này cung cấp thông tin về các phiên bản của D-WARD và kiến trúc triển khai của D-WARD 3.1, cũng như kiến trúc triển khai các thành phần của D- WARD 3.1. Ngoài ra, chương này cũng miêu tả cấu trúc của bảng băm luồng, bảng băm kết nối,….để hiểu hơn cơ chế hoạt động của D-WARD. 43 Chương 4. Cài đặt và kết quả thu được 4.1. Cài đặt thực nghiệm 4.1.1. Mô hình thực thi Hình 18. Mô hình thực thi 4.1.2. Biên dịch và chạy D-WARD Chúng ta sẽ biên dịch và chạy D-WARD tại tương ứng với hình 14. Đầu tiên, chúng ta có thể tải mã nguồn của D-WARD với phiên bản mới nhất tại trang . Rồi, chúng ta giải nén mã nguồn trước khi biên dịch nó. Hệ điều hành được dùng ở đây để biên dịch mã nguồn là Redhat 8.0(nhân 2.4.18) vì mã nguồn này dùng thư viện lập trình của nhân 2.4. Trong hệ điều hành này, chúng ta phải cài đặt trình biên dịch gcc và môi trường của J2SE(JDK,JRE) cho mục đích biên dịch. Mã nguồn D-WARD bao gồm module ứng dụng và nhân. Module ứng dụng sẽ thực thi việc phát hiện các cuộc tấn công và tính toán các mức giới hạn trong khi module nhân sẽ tiến hành quản lý truyền thông. Sau khi building mã nguồn, bạn có thể tìm thấy hai module “gst.o” và “rl.o” mà có thể được tải tới module nhân. Module 44 “rl.o” sẽ thiết lập các mức giới hạn tới truyền thông đi ra, và với module “gst.o” chúng ta có thể bắt các gói tin trên đường truyền và phân tích thông tin tiêu đề. Biên dịch D-WARD như thế nào? Chúng ta quan tâm về hai file “makefile” và “kernel/makefile”. Chúng ta có thể thay đổi file cấu hình một cách hiệu quả trong hai file “prefix.config” và “dward.config” Thực thi ba dòng lệnh trong thư mục dward make depend make make install Tạo một thiết vị D-WARD Chạy hai dòng lệnh sau: mknod /dev/dward c 146 0 mknod /dev/dward c 147 0 Cài đặt module nhân Chạy hai dòng lệnh sau: insmod kernel/gst.o plen=20 insmod kernel/rl.o drop=1 mark=255 LOCAL_ADDRESS=x.x.x.x LOCAL_MASK=y (với x.x.x.x là địa chỉ cục bộ và y là mask cục bộ của mạng) Chạy D-WARD như thế nào? Sau khi chúng ta hoàn thành quá trình biên dịch, chúng ta có thể chạy chương trình D-WARD. Các tài liệu về D-WARD có thể đọc được bằng câu lệnh man sử dụng lệnh “man dward” trong môi trường dòng lệnh. Cú pháp: 45 4.2 Kết quả Thí nghiệm của chỉ được thực hiện với 2 loại tấn công là ICMP và TCP. Và sau đây là một số kết quả thu được: • Kết quả của thí nghiệm với gói tin ICMP và TCP o Một số hình ảnh về file debug và stats Hình 19: File debug/class.txt File class.txt lưu lại các phân loại luồng và kết nối của hệ thống bao gồm: địa chỉ IP nguồn: cổng nguồn, IP đích: cổng đích, số gói tin gửi, số gói tin trả lời, phân loại luồng/kết nối. Hình 20: File rlstats.txt File rlstats.txt là file lưu lại giá trị giới hạn băng thông cho một luồng. Ở hình trên đó là luồng tới host đích 10.0.0.254. o Với gói tin TCP: 46 Hình 21:File conn.txt File conn.txt ghi lại thông tin như các kết nối được đưa vào bảng băm kết nối. Và chúng sẽ bị reset ngay sau khi chúng được phân loại. Cũng tương tự như ICMP chúng ta cũng các file phân loại kết nối, thống kê giới hạn băng thông ở trong các thư mục debug và stats. Chúng lần lượt là những file: class.txt, rlstats.txt, stats.txt… 4.3 Đánh giá về việc triển khai mở rộng Ưu điểm: Hệ thống khắc phục được điểm yếu của D-WARD khi triển khai một cách riêng lẻ. Đó là kết hợp khả năng đánh giá phân loại từ các router nguồn triển khai D-WARD khác. Cuối cùng có thể đưa ra được một phân loại chính xác hơn cho luồng và kết nối đi ra từ hệ thống của mình. Hiệu năng của hệ thống sẽ được tăng lên rõ rệt. Trong một mạng có thể xảy ra cùng lúc nhiều host cùng truy cập vào một dịch vụ nào đó trên mạng nhưng chưa chắc đó là luồng tấn công. Nếu không kết hợp để đánh giá thông qua server cơ sở dữ liệu thì rất có thể D-WARD sẽ giới hạn băng thông và ngăn cản truy cập tới dịch vụ đó. Điều này làm giảm hiệu năng của hệ thống. Nhưng khi triển khai mô hình này, nó sẽ giải quyết vấn đề nêu trên một cách tốt hơn. 47 Hạn chế: Yêu cầu sự hợp tác của nhiều nhà quản lý router nguồn. Điều này thường rất khó đạt được vì mỗi nơi đều sử dụng những chính sách về bảo mật và phòng chống tấn công khác nhau. Tổng kết Chương 4 của khóa luận đã cho chúng ta biết cách để biên dịch và chạy D- WARD, và việc cài đặt thực nghiệm việc kết nối các hệ thống D-WARD theo mô hình mạng các node ngang hàng, kết quả thu được của việc cài đặt. Đồng thời chương này cũng đưa ra những đánh giá về việc cài đặt thực nghiệm đó. 48 Chương 5 Kết luận Theo thống kê thường niên về tội phạm công nghệ cao của FBI năm 2009 (2009 CSI/FBI Computer Crime and Security Survey) thì số lượng các cuộc tấn công DDoS đang có chiều hướng gia tang từ 21% năm 2008 lên tới 29% vào năm 2009. Các hệ thống của các cơ quan hành chính, tổ chức kinh tế cần phải hoạt động một cách thường xuyên và chịu áp lực lớn từ việc truy cập của người dùng, sẽ là mục tiêu của các cuộc tấn công DdoS. Do vậy trong khóa luận này, chúng ta đã chỉ ra các vấn đề liên quan việc triển khai hệ thống phòng chống DdoS source-end là D-WARD và mở rộng triển khai các hệ thống D-WARD theo mô hình mạng các node ngang hàng. Khóa luận cung cấp một cái nhìn tổng quan trong phòng chống tấn công từ chối dịch vụ, và tấn công từ chối dịch vụ phân tán. Đó là hiệu quả của việc triển khai hệ thống phòng chống tại nguồn là rẻ và khả năng phát hiện và ngăn chặn các cuộc tấn công đi ra từ mạng nguồn là cao hơn hẳn. Việc triển khai D-WARD giúp cho nhanh chóng phát hiện và ngăn chăn một cuộc tấn công ngay khi cuộc tấn công được kẻ tấn công nhen nhóm. Chúng ta đã đưa ra một số kịch bản để kiểm tra hệ thống gần giống với thực tế và thu được một số kết quả cũng như thống kê của các kịch bản đó. Cuối cùng, chúng ta đã thảo luận về việc triển khai các hệ thống D-WARD theo mô hình mạng các node ngang hàng. Bằng cách cho các hệ thống D-WARD truyền thông với nhau để thực hiện việc tính toán và phân loại luồng một cách chính xác để việc phân loại trở nên hiệu quả hơn. Tuy đã có nhiều cố gắng nhưng khóa luận vẫn còn gặp phải nhiều vấn đề chưa giải quyết được. Chính vì vậy, trong tương lai, chúng tôi sẽ cố gắng để có thể triển khai một hệ thống hoàn thiện, thử nghiệm và đánh giá kỹ lưỡng hơn việc triển khai các hệ thống D-WARD theo mô hình mạng các node hàng xóm trên thực tế. 49 TÀI LIỆU THAM KHẢO [1] Document in Linux Redhat 8.0 kernel 2.4.18 [2]Denial of service attack [3] D-WARD, DDoS and Three Network Administrative Domains [4] Jelena Mikovic, D-WARD: Source-end Defence Against Distributed Denial- of-Service Attacks, Ph.D. Thesis. [5] Jelena Mikovic, G.Prier and P.Reiher, Attacking DdoS at the source, Proceedings of ICNP 2002, Paris – Prance, November 2002. [6] Jelena Mikovic, G.Prier and P.Reiher, A Taxonomy of DdoS Attacks and DdoS Defense Mechanisms – UCLA CSD Technical Report no. 020018. [7] Jelena Mikovic, G.Prier and P.Reiher, Source Router Approach to DdoS Defense – UCLA CSD Technical Report no. 010042. [8]Jelena Mirkovic, Sven Dietrich, David Dittrich, Peter Reiher. Internet Denial of Service: Attack and Defense Mechanism. Prentice Hall PTR, December 30, 2004. [9] Katerina Argyraki, David R.Cheriton. Active Internet Traffic Filtering: Real- Time Response to Denial of Service Attacks. [10] K.Park and H. Lee. On the Effectiveness of Route-Based Packet Filtering for Distributed DoS Attack Prevention in Power-Law Internets. In Proceedings of ACM SIGCOMM 2001, August 2001. [11] SYN cookies

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN- TRIỂN KHAI CÁC HỆ THỐNG D-WARDTHEO MÔ HÌNH MẠNG CÁC NODE HÀNG XÓM.pdf
Tài liệu liên quan