Luậ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

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 đó.

pdf57 trang | Chia sẻ: lylyngoc | Lượt xem: 2430 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luậ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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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