Luận án Các giải pháp phát hiện và giảm thiểu tấn công DDOS cho mạng điều khiển bằng phần mềm

MỤC LỤC

Lời cam đoan .i

Lời cảm ơn . ii

MỤC LỤC . iii

DANH MỤC CÁC THUẬT NGỮ VÀ VIẾT TẮT . v

DANH MỤC CÁC KÝ HIỆU . viii

DANH MỤC CÁC BẢNG . x

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ .xi

MỞ ĐẦU . 1

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT . 19

1.1. Tổng quan về mạng điều khiển bằng phần mềm SDN . 19

1.1.1. Kiến trúc của SDN . 19

1.1.2. So sánh với kiến trúc mạng truyền thống . 20

1.1.3. Chế độ hoạt động của mạng SDN . 21

1.2. Giao thức OpenFlow . 22

1.2.1. Giới thiệu chung . 22

1.2.2. Thiết bị chuyển mạch OpenFlow . 24

1.2.3. Bộ điều khiển OpenFlow . 26

1.2.4. Các bản tin OpenFlow . 27

1.3. Tấn công từ chối dịch vụ DDoS . 27

1.3.1. Giới thiệu chung . 27

1.3.2. Phân loại tấn công từ chối dịch vụ . 29

1.3.3. Các phương pháp giảm thiểu tấn công DDoS . 31

1.4. Cơ sở lý thuyết về học máy . 33

1.4.1. Quá trình hoạt động của các thuật toán học máy . 34

1.4.2. Thuật toán K-Nearest-Neighbor . 39

1.4.3. Học sâu và thuật toán DNN . 41

1.5. Kết luận. 46

CHƯƠNG 2. NHẬN DẠNG VÀ ĐO LƯỜNG MỘT SỐ TÁC ĐỘNG CỦA TẤN

CÔNG DDOS VỚI KIẾN TRÚC SDN. 47

2.1. Giới thiệu . 47

2.2. Xây dựng mô hình thực nghiệm . 49

2.2.1. Các thành phần của mô hình thực nghiệm . 49

2.2.2. Thông số cấu hình mô hình thử nghiệm . 51

2.3. Các tác động của tấn công DDoS lên kiến trúc mạng SDN . 53

2.3.1. Tác động của tấn công DDoS lên bộ điều khiển SDN . 53

2.3.2. Tác động của tấn công DDoS lên thiết bị chuyển mạch SDN . 60

2.3.3. Tác động của tấn công lưu lượng lên kết nối giữa thiết bị điều khiển và thiết bị

chuyển mạch . 64

2.4. Kết luận. 65

CHƯƠNG 3. ĐỀ XUẤT GIẢI PHÁP PHÁT HIỆN TẤN CÔNG DDOS TRONG

MẠNG SDN . 66

3.1. Giải pháp tổng thể ngăn chặn tấn công DDoS . 66

3.2. Giái pháp phát hiện tấn công DDoS . 68

iv

3.3. Khối phát hiện dữ liệu bất thường sử dụng thuật toán học máy trong mạng SDN 71

3.3.1. Lựa chọn thuật toán học máy . 71

3.3.2. Áp dụng thuật LoF vào khối phát hiện bất thường . 72

3.4. Khối phân loại và phát hiện tấn công DDoS cụ thể . 74

3.4.1. Khối phân loại dữ liệu . 74

3.4.2. Khối phát hiện loại tấn công cụ thể . 74

3.5. Tập dữ liệu và các đặc trưng dữ liệu . 75

3.5.1. Bộ dữ liệu tấn công CAIDA . 76

3.5.2. Bộ dữ liệu DDoSDB . 78

3.5.3. Bộ dữ liệu tự đo đạc và tạo bởi phần mềm Bonesi . 80

3.5.4. Lựa chọn đặc trưng cho các thuật toán học máy . 81

3.6. Thực hiện thử nghiệm và đánh giá giải pháp . 82

3.6.1. Mô hình thử nghiệm . 82

3.6.2. Kết quả thử nghiệm phát hiện bất thường . 83

3.6.3. Kết quả thử nghiệm phát hiện tấn công DDoS cụ thể . 85

3.7. Kết luận. 87

CHƯƠNG 4. ĐỀ XUẤT GIẢI PHÁP GIẢM THIỂU TẤN CÔNG DDoS TRONG

MẠNG ISP SỬ DỤNG THUẬT TOÁN HỌC MÁY . 88

4.1. Giới thiệu . 88

4.2. Đề xuất giải pháp giảm thiểu tấn công DDoS . 89

4.3. Cửa sổ thời gian giám sát thích ứng . 91

4.4. Đánh giá hiệu năng . 95

4.4.1. Xây dựng mô hình thực nghiệm và thiết lập các tham số . 95

4.4.2. Kết quả thực nghiệm. 95

4.5. Kết luận. 100

CHƯƠNG 5. GIẢM THIỂU TẤN CÔNG DDOS VỚI GIẢI PHÁP CO GIÃN TÀI

NGUYÊN MẶT PHẲNG ĐIỀU KHIỂN SDN . 101

5.1. Giới thiệu . 101

5.1.1 Giới thiệu về Container . 102

5.1.2. Giới thiệu về Kubernetes . 103

5.2. Mô hình đề xuất . 105

5.2.1 Giải pháp tự động mở rộng mặt phẳng điều khiển dựa trên Kubernetes . 105

5.2.2. Mô hình chuyển dịch thiết bị điều khiển tự động . 106

5.2.3. Thuật toán thích ứng cho thiết bị điều khiển dựa trên luồng mới NACAT . 108

5.3. Kết quả đánh giá . 109

5.3.1. Thiết lập mô hình thử nghiệm . 109

5.3.2. Đánh giá kết quả thử nghiệm . 111

5.4. Kết luận. 112

KẾT LUẬN CHUNG . 113

DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN . 117

TÀI LIỆU THAM KHẢO . 118

pdf142 trang | Chia sẻ: vietdoc2 | Ngày: 28/11/2023 | Lượt xem: 231 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận án Các giải pháp phát hiện và giảm thiểu tấn công DDOS cho mạng điều khiển bằng phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g một cách độc lập theo từng gói tin đến. Các quy tắc chuyển tiếp được lưu trữ trong bảng luồng dữ liệu, được triển khai với TCAM. TCAM tiêu tốn nhiều năng lượng, đắt tiền và có giới hạn về không gian lưu trữ nên nghiên cứu cũng đi sâu phân tích bảng luồng dữ liệu này. 51 Nhóm các máy chủ nạn nhân được sử dụng để quan sát hậu quả của các cuộc tấn công DDoS dưới góc nhìn của người dùng cũng như để thu thập dữ liệu tấn công đi qua mạng SDN. Mô-đun thu thập và phân tích dữ liệu thực hiện thu thập các thông tin khác nhau thông qua năm điểm đo tại các vị trí của mạng được đánh số như trong Hình 2.3: (1) đo lưu lượng truy cập đến bộ chuyển mạch SDN, (2) đo bảng luồng dữ liệu, (3) đo lưu lượng OpenFlow giữa bộ chuyển mạch và bộ điều khiển, (4) đo xử lý dữ liệu trong bộ điều khiển và (5) đo lưu lượng truy cập đi ra khỏi mạng SDN chuyển đến nhóm máy chủ. Mặc dù khái niệm SDN đã được nghiên cứu trong nhiều năm, các công cụ phân tích để kiểm tra các gói OpenFlow vẫn còn hạn chế. Nghiên cứu sinh đã phát triển các công cụ phân tích dựa trên Scapy [104] để trích xuất thông tin quan trọng từ các tệp dữ liệu để nghiên cứu chi tiết. Các tham số được trích xuất là số luồng yêu cầu mới trên mỗi giây, băng thông, số quy tắc được cài đặt vào thiết bị chuyển mạch SDN mỗi giây, kích thước bảng luồng dữ liệu và độ trễ xử lý luồng. Để đảm bảo tính chính xác của các phép đo, tất cả các thành phần trong mô hình thử nghiệm đã được đồng bộ hóa về thời gian với giao thức NTP. 2.2.2. Thông số cấu hình mô hình thử nghiệm Quá trình cài đặt luồng trong SDN được thực hiện thường xuyên và tự động theo mô hình thực tế của mạng. Khi mạng có sự thay đổi thì luồng cũng được cập nhật theo. Tuy nhiên, nó cũng bộc lộ lỗ hổng trước các cuộc tấn công DDoS như đã thảo luận ở phần trên. Phần này tập trung vào các cuộc tấn công dựa trên giao thức và dựa trên dung lượng, vì các cuộc tấn công lớp ứng dụng chủ yếu ảnh hưởng đến lớp bảy trong mô hình OSI và không có tác động lớn lên hệ thống SDN. Không làm mất tính tổng quát, TCP-SYN flood và ICMP/UDP flood được chọn là đại diện của hai hình thức tấn công nói trên vì các tấn công khác thuộc loại này đều gây ra các hành vi mạng giống nhau. Cấu hình và tham số thử nghiệm được mô tả trong Bảng 2.1. Mẫu lưu lượng tấn công thực cũng như các cuộc tấn công mô phỏng được tạo ra bằng cách sử dụng các phần mềm giả lập lưu lượng như TCPReplay hoặc BoNeSi hoặc bằng các thiết bị tạo lưu lượng phần cứng. Trong các thử nghiệm, mạng botnet thực hiện các cuộc tấn công tràn TCP-SYN và tràn ICMP tới nạn nhân nằm trong cụm máy chủ. Vì lưu lượng phải đi qua thiết bị chuyển mạch và bộ điều khiển SDN, nên có thể quan sát tác động của các cuộc tấn công lên các thành phần SDN. Để thực hiện các thử nghiệm nhằm đánh giá giới hạn của các thiết bị SDN, lưu lượng tấn công có số luồng tăng dần lên 20,000 luồng trên giây (fps) cho TCP-SYN và độ dài gói 1,400 bytes cho ICMP. Một luồng bao gồm các gói tin dữ liệu có các thông số giống nhau: {địa chỉ IP nguồn, địa chỉ IP đích, cổng nguồn, cổng đích}. Mỗi một luồng sẽ được thiết bị chuyển mạch và bộ điều khiển xử lý theo nguyên tắc được trình bày như ở bên trên, trong Hình 2.1. 52 Bảng 2.1 Cấu hình và tham số của mô hình thử nghiệm Bộ điều khiển POX, Ryu và Floodlight cài đặt trên máy chủ phần cứng: 6 Xeon(R) 2.53 GHz, 16 Cores, 32 GB RAM Thiết bị chuyển mạch SDN Thiết bị chuyển mạch phần mềm: OvS (v2.14.90) cài đặt trên máy chủ phần cứng: 6 Xeon(R) 2.67 GHz, 24 Cores, 64 GB RAM. Thiết bị chuyển mạch phần cứng: HPE Aruba 2920 24G – J9726A Nạn nhân Máy chủ có hiệu năng cao (6 Xeon (R) 2.67 GHz, 24 Cores, 64 GB RAM) Tạo lưu lượng Phần mềm Bonesi, TCPReplay (thiết bị phần cứng: Xeon(R) 3.70 GHz, 12 Cores, 16GB RAM) OpenFlow OpenFlow 1.0 và OpenFlow 1.3 Tấn công tràn SYN Tốc độ: 5,000 fps trong 10 giây cho tất cả các thiết bị điều khiển; 10,000 fps, 15,000 fps, 20,000 fps trong 10 giây cho Floodlight; Số lượng bots: 50,000 Tấn công tràn ICMP Băng thông: 56 Mbps – 900 Mbps Số lượng bots: 50,000 Kích thước dữ liệu: 1,400 bytes Các thông số đo đạc Thiết bị điều khiển: số yêu cầu đến (packet_in), luật gửi ra (flow_mod), trễ xử lý Thiết bị chuyển mạch: khối lượng dữ liệu đến, thông lượng, kích thước bảng luồng, độ trễ Hệ thống thử nghiệm đề xuất được xây dựng chung, có thể đánh giá cho các bộ điều khiển cũng như thiết bị chuyển mạch SDN khác nhau. Do tính phổ biến cũng như ứng dụng thực tế của các bộ điều khiển nên phần này lựa chọn một số bộ điều khiển và thiết bị chuyển mạch để đánh giá như sau: - POX: là một bộ điều khiển nguồn mở phổ biến, dựa trên Python. Bên cạnh NOX [105], POX được coi là một trong những bộ điều khiển SDN sớm nhất được phát triển và được sử dụng để phát triển và tạo dạng mẫu cho các ứng dụng mạng mới nhanh hơn. Nó được cài đặt sẵn trong một số công cụ phát triển mạng SDN, ví dụ như Mininet. - Ryu: cũng là một bộ điều khiển mã nguồn mở dựa trên Python được cộng đồng nghiên cứu và phát triển sử dụng rộng rãi trong thời gian gần đây. Nó hỗ trợ các API định nghĩa sẵn và thư viện toán học Python giúp cho việc sử dụng để tạo các ứng dụng điều khiển và quản lý mạng mới dễ dàng hơn, đặc biệt là các chức năng dựa trên học máy. - Floodlight: là một bộ điều khiển mã nguồn mở dựa trên Java. Kiến trúc của Floodlight thuận lợi cho các nhà phát triển vì nó có khả năng tương thích phần mềm và phát triển ứng dụng một cách dễ dàng, bao gồm REST API. Phát triển dựa trên Java là một công nghệ có thể mở rộng và thường là công nghệ lõi trong doanh nghiệp nên Floodlight là bộ điều khiển SDN mạnh mẽ và dễ sử dụng. Floodlight được tích hợp trong một số sản phẩm thương mại và mã nguồn mở được sử dụng rộng rãi trong ngành công nghiệp mạng, bao gồm cả OpenStack. 53 - OvS [106]: một bộ chuyển đổi SDN dựa trên phần mềm nổi tiếng được thiết kế để cho phép tự động hóa mạng quy mô lớn thông qua phần mở rộng có lập trình, trong khi vẫn hỗ trợ các giao thức và giao diện quản lý tiêu chuẩn. Trong điện toán đám mây, OvS là một thành phần quan trọng cho phép ảo hóa các chức năng mạng để tạo dịch vụ chuỗi chức năng (SFC). OpenStack [107] cũng đang chạy OvS để cung cấp các dịch vụ mạng ảo hóa. - Aruba 2920 [108]: là một thiết bị chuyển mạch thương mại lớp 3 do Aruba, công ty HP Enterprise sản xuất. Aruba 2920 là bộ chuyển mạch hỗ trợ SDN chạy giao thức OpenFlow 1.0 và 1.3 với 24 cổng, trong đó có bốn cổng 10Gbps. Mặc dù Aruba có thể lưu trữ tới 2048 tuyến đường IPv4 trong bảng định tuyến của mình, nhưng không có tài liệu nào cho biết về số lượng luồng OpenFlow mà bảng lưu lượng của nó có thể chứa. Trong nghiên cứu này, nghiên cứu sinh chọn Aruba làm thiết bị chuyển mạch phần cứng để so sánh hiệu năng của nó với các giải pháp phần mềm được sử dụng rộng rãi như OvS. 2.3. Các tác động của tấn công DDoS lên kiến trúc mạng SDN 2.3.1. Tác động của tấn công DDoS lên bộ điều khiển SDN Phần này trình bày các thử nghiệm và kết quả đánh giá tác động của các cuộc tấn công DDoS lên bộ điều khiển SDN. 2.3.1.1. Tác động của tấn công giao thức lên bộ điều khiển SDN Trước tiên, thực hiện một cuộc tấn công TCP-SYN với tốc độ 5,000 fps (hoặc tương đương với 3.04 Mbps) trong 10 giây vào máy chủ qua mạng SDN. Vì địa chỉ cổng và địa chỉ IP giả mạo là duy nhất nên mỗi bản tin TCP-SYN được SDN coi là một luồng mới. Các luồng mới này tiêu thụ cả tài nguyên của bộ chuyển mạch để tra cứu bảng luồng cũng như bộ điều khiển để xử lý gói tin packet_in như đã được trình bày ở phần đầu của Chương 2. Hình 2.4a hiển thị số lượng tích lũy của luồng đến, là số gói packet_in và số lượng quy tắc luồng được mang trong các gói flow_mods đo tại POX, Ryu và Floodlight. Độ dốc của các đường cong trong Hình 2.4a biểu thị tốc độ đầu vào cũng như tốc độ xử lý của bộ điều khiển. Nếu độ dốc đầu vào và đầu ra trùng nhau, bộ điều khiển có khả năng xử lý tất cả các truy vấn luồng đầu vào, nếu không thì bộ điều khiển bị quá tải. Điều này có thể được mô tả rõ ràng hơn trong Hình 2.4b, biểu thị tốc độ xử lý của từng bộ điều khiển so với các truy vấn đến. Có thể thấy, trong khi Floodlight có thể đáp ứng tốt số lượng truy vấn ở mức 5,000 fps thì POX và Ryu đã quá tải và chỉ có thể xử lý tối đa 1,200 fps và 2,400 fps tương ứng. Mặt khác, Ryu chạy OpenFlow 1.3 (OF1.3) hoạt động kém hơn so với chạy OpenFlow 1.0 (OF1.0), chỉ có thể xử lý khoảng 1,000 fps. Trong khi đó, Floodlight với OpenFlow 1.3 vẫn có thể thích ứng với cùng thông lượng như OpenFlow 1.0. Sự phát triển của giao thức OpenFlow từ 1.0 đến 1.3 đã thúc đẩy sự ra đời của các tính năng mới như nhiều bảng luồng, so khớp OXM để mở rộng tính linh hoạt của việc so khớp, cơ chế thay đổi vai trò để có khả năng mở rộng, hỗ trợ QoS và nhiều bản tin OpenFlow mới [109]. Những thay đổi này làm tăng thêm độ phức tạp trong bộ điều khiển SDN, điều này có lẽ làm giảm hiệu năng xử lý như minh họa trong Hình 2.4. Về tác động của tấn công TCP-SYN flood đối với thiết bị chuyển mạch SDN, Hình 2.4c hiển thị số lượng tích lũy đường đi được lưu trữ trong thiết bị chuyển mạch. Như 54 được hiển thị, số lượng đường đi tăng tỷ lệ thuận với số lượng quy tắc trong các bản tin flow-mods mà thiết bị chuyển mạch nhận được từ bộ điều khiển được biểu thị trong Hình 2.4a. Điều này cho thấy rằng tất cả các thiết bị chuyển mạch có thể tiếp nhận, xử lý và cài đặt luồng mới vào bảng luồng, thắt nút cổ chai trong trường hợp này là bộ điều khiển. (a) Số lượng tích lũy của luồng đến và số luồng ra tại bộ điều khiển (b) Số luồng đến và ra trên mỗi giây (c) Kích thước bảng luồng (d) Độ trễ xử lý trong bộ điều khiển Hình. 2.4 Hiệu năng của bộ điều khiển SDN trong trường hợp 5,000 luồng TCP-SYN đến trong một giây Trong Hình 2.4d, các ô hình hộp trình bày số liệu thống kê về độ trễ xử lý trong bộ điều khiển. Trễ xử lý được tính là khoảng thời gian giữa khi packet_in đến và flow_mods được gửi đi. Trong biểu đồ này, các đường giới hạn ở cả hai đầu chiếm 5 và 95 phần trăm và các điểm ngoài hình tròn đại diện cho các giá trị độ trễ tối thiểu hoặc tối đa, cũng là phần đầu tiên (Q1/25 phần trăm) và thứ ba (Q3/75 phần trăm) phần tư được hiển thị ở cả hai đầu của hộp trung tâm. Có thể thấy, do quá tải ở bộ điều khiển, độ trễ xử lý trung bình của POX, Ryu OF1.0, Ryu OF1.3 lần lượt là 15, 6 và 20 giây, trong khi Floodlight OF1.0 và OF1.3 hoàn toàn không có độ trễ nào vì Floodlight có thể hoạt động tốt ở tốc độ 5,000 fps. 55 (a) Tổng tích lũy số luồng vào và ra (10,000 fps) (b) Độ trễ tại bộ điều khiển và OvS (10,000 fps) (c) Tổng tích lũy số luồng vào và ra (15,000 fps) (d) Độ trễ tại bộ điều khiển và OvS (15,000 fps) (e) Tổng tích lũy số luồng vào và ra (20,000 fps) (f) Độ trễ tại bộ điều khiển và OvS (20,000 fps) Hình. 2.5 Hiệu năng của bộ điều khiển Floodlight khi tấn công TCP-SYN ở tốc độ 10,000fps, 15,000fps và 20,000fps 56 Để xem xét giới hạn xử lý của Floodlight và OvS, tiếp tục tăng tốc độ tấn công lên 10,000 fps, 15,000 fps và 20,000 fps, tương đương với 6.08 Mbps, 9.12 Mbps và 12.16 Mbps tương ứng. Kết hợp kích thước bảng luồng lưu lượng, số lượng tích lũy gói tin đến packet_in và gói tin ra flow_mod (Hình 2.5a, 2.5c, 2.5e) trong cùng một hình trong từng trường hợp để dễ dàng so sánh và đánh giá hiệu năng của thiết bị chuyển mạch (xem phần 2.3.2) cũng như bộ điều khiển. Các ô trong Hình 2.5b, 2.5d, 2.5f biểu thị độ trễ xử lý của Floodlight và độ trễ gói dữ liệu tương ứng của nó đi qua OvS, được đo bằng chênh lệch giữa thời gian gửi ra và thời gian đến của gói. Tổng kết lại, tấn công TCP-SYN có hại cho bộ điều khiển, mặc dù lưu lượng tấn công là rất nhỏ. Ở tốc độ 10,000 fps như trong Hình 2.5a, Floodlight với OpenFlow 1.0 có thể đáp ứng tốt lượng truy vấn đến, vì số lượng quy tắc gửi đi (đại diện là OF1.0 flow_mod trong các hình) khớp với số lượng gói yêu cầu packet_in đến. Theo đó, độ trễ của gói dữ liệu tại OvS (OvS với OF1.0) là rất thấp như trong Hình 2.5b. Mặt khác, hiệu năng của Floodlight chạy OpenFlow 1.3 bắt đầu giảm khi kết thúc thử nghiệm (Hình 2.5a), điều này phản ánh sự biến động của độ trễ xử lý trong Hình 2.5b (Floodlight với OF1.3). Hơn nữa, độ trễ gói tại thiết bị chuyển mạch trở nên tồi tệ hơn so với độ trễ xử lý của bộ điều khiển với độ trễ gói trung bình tăng lên vào khoảng 0.72 giây như trong Hình 2.5b (OvS với OF1.3). Do đó, cần lưu ý rằng khi tỷ lệ tấn công đạt đến một mức nhất định, OvS cũng bị ảnh hưởng và góp phần làm suy giảm dịch vụ. Lý do làm tăng độ trễ gói tại thiết bị chuyển mạch SDN sẽ được thảo luận sau trong phần 2.3.2. Hiện tượng tương tự rõ ràng hơn khi tốc độ tấn công tăng lên. Ở tốc độ 15,000 fps như trong Hình 2.5c và 2.5d, Floodlight với OpenFlow 1.0 vẫn có thể hoạt động tốt, trong khi Floodlight với OpenFlow 1.3 kém hơn hẳn. Mặt khác, các đường cong biểu thị các flow_mod gửi đi và số lượng các mục trong bảng không trùng nhau, cho thấy rằng OvS không thể xử lý một số lượng rất lớn các gói flow_mod gửi đến. Hậu quả là độ trễ gói tăng lên trong mặt phẳng dữ liệu (Hình 2.5d). Trong trường hợp thử nghiệm cuối cùng (Hình 2.5e và 2.5f), ngay cả Floodlight với OpenFlow 1.0 cũng không thể chịu được một lượng lớn 20,000 luồng yêu cầu mới mỗi giây. Bảng 2.2 Mức sử dụng tài nguyên tối đa của bộ điều khiển SDN Thiết bị điều khiển POX Ryu Floodlight Dữ liệu đến (fps) 5,000 5,000 5,000 20,000 Tài nguyên CPU 100% 100% 212% 470% Tài nguyên bộ nhớ 0.1% 0.1% 2.4% 3.7% Bảng 2.2 cho biết mức sử dụng tài nguyên cao nhất của bộ điều khiển SDN trong các tình huống thử nghiệm đã nói ở trên. Vì POX và Ryu là các bộ điều khiển đơn luồng, nên trong các tình huống tải cao, cả hai đỉnh của chúng có thể đạt mức sử dụng CPU 100% (CPU 1 lõi). Ngược lại, Floodlight sử dụng tài nguyên tăng tỷ lệ thuận với lưu lượng tải. Mức sử dụng CPU của nó ở 5,000 và 20,000 fps lần lượt là 212% (mức sử dụng CPU 3 lõi) và 470% (mức sử dụng CPU 5 lõi). Kết quả cho thấy rằng Floodlight có khả năng mở rộng và mạnh mẽ hơn so với các bộ điều khiển khác nhờ triển khai đa luồng. Tóm lại, trong các cuộc tấn công dựa trên giao thức, nếu tốc độ tấn công đủ lớn, thì cả bộ điều khiển và bộ chuyển mạch SDN đều bị ảnh hưởng. Bộ điều khiển bị quá 57 tải do xử lý một số lượng lớn yêu cầu luồng mới. Mặt khác, bộ chuyển mạch không thể xử lý một số lượng lớn gói tin flow_mod được gửi bởi bộ điều khiển, dẫn đến việc chuyển tiếp các gói dữ liệu từ đầu vào đến đầu ra của nó bị chậm trễ. 2.3.1.2. Tác động của tấn công dung lượng lên bộ điều khiển SDN Trong thử nghiệm tiếp theo, tràn ICMP được sử dụng để đánh giá tác động của các cuộc tấn công dựa trên dung lượng đối với bộ điều khiển SDN. Mục đích chính của một cuộc tấn công dựa trên dung lượng là làm bão hòa kết nối của nạn nhân bằng cách gửi một lượng lớn lưu lượng truy cập đến máy chủ nạn nhân. Do đó, trong mô hình chuyển tiếp dựa trên đích thông thường, các cuộc tấn công ICMP như một cuộc tấn công theo dung lượng điển hình chỉ có tác động tiêu cực lên các đường dẫn dữ liệu chứ không ảnh hưởng đến mặt phẳng điều khiển, không phụ thuộc vào số lượng luồng mới mang lưu lượng ICMP. Trong SDN, gói ICMP được bộ điều khiển xử lý luồng như gói TCP, nhưng gói ICMP có kích thước tải trọng lớn hơn, do đó có thể gây ra tác động khác cho bộ điều khiển SDN. Để kiểm chứng, thực hiện kịch bản tấn công với 5,000 ICMP pps, tương đương tốc độ 56 Mbps trong 10 giây. Tương tự như kịch bản tấn công TCP-SYN được mô tả bên trên trong Hình 2.6b và mỗi gói ICMP là một luồng và có tải trọng 1,400 bytes. Như có thể thấy trong Hình 2.6a, tốc độ của gói packet_in đến Ryu OF1.0, POX OF1.0 và Ryu OF1.3 lần lượt khoảng 2,000, 600 và 1,000 fps, thấp hơn đáng kể so với tốc độ lưu lượng ICMP ở đầu vào của OvS là 5,000 fps. Mặt khác, trong trường hợp TCP-SYN (Hình 2.4b), các bộ điều khiển đều nhận được số luồng tương đương nhau (5,000 luồng mỗi giây). Như vậy, do bị mất gói tại OvS nên chỉ một phần nhỏ trong tổng số 5,000 yêu cầu luồng mới có thể gửi đến Ryu và POX. Trong khi đó, tốc độ gói packet_in đến Floodlight khớp với tốc độ của các luồng ICMP mới trong hệ thống. (a) Các luồng vào và ra trên một giây (b) Tổng tích lũy số luồng Hình 2.6 Các tác động của tấn công tràn ICMP lên bộ điều khiển SDN Nguyên nhân của việc này là do cơ chế điều khiển luồng của TCP [110] đã điều chỉnh tốc độ gửi theo khả năng của bộ điều khiển. Giao thức OpenFlow sử dụng TCP để trao đổi các gói tin giữa bộ điều khiển và bộ chuyển mạch SDN. Cơ chế điều khiển luồng TCP sử dụng cửa sổ nhận RWND để đảm bảo rằng bên gửi không gửi quá khả năng xử lý của bên nhận [111]. Mặt khác, do một số thiết bị chuyển mạch SDN như 58 OvS và Aruba không hỗ trợ bộ đệm bên trong, nên bộ chuyển mạch phải gửi các toàn bộ nội dung gói ICMP đóng gói trong gói packet_in lên bộ điều khiển. Hình 2.7 Kích thước cửa sổ nhận TCP của bộ điều khiển SDN khi tấn công tràn ICMP xảy ra Hình 2.7 là biểu đồ giá trị cửa sổ TCP, nó cho biết bộ điều khiển nhận và xử lý dữ liệu như thế nào. RWND là kích thước của bộ đệm nhận, trong khi giá trị Bytes in flight là lượng dữ liệu chưa được xác nhận mà người gửi đã gửi đi. Bytes in flight sẽ luôn nhỏ hơn hoặc bằng RWND [112]. Theo biểu đồ, RWND của POX và Ryu liên tục dao động và giảm xuống 0 là do các bộ điều khiển này không thể xử lý kịp lưu lượng đến, làm cho bộ đệm bị đầy, dẫn đến mất gói tại OvS. Trong trường hợp của Floodlight, đường phẳng của RWND cho thấy khả năng xử lý tốt của bộ điều khiển này. Các kết quả này cho thấy các cuộc tấn công dựa trên dung lượng trong SDN nguy hiểm hơn so với mô hình mạng thông thường vì chúng không chỉ làm bão hòa các đường dẫn dữ liệu mà còn có tác động tiêu cực trực tiếp đến bộ điều khiển. Hơn nữa, DDoS dựa trên dung lượng thậm chí có thể nguy hiểm hơn các cuộc tấn công dựa trên giao thức trong SDN. Ví dụ, kẻ tấn công có thể sử dụng một số lượng lớn botnet để gửi các gói ICMP/UDP kích thước lớn đến một địa chỉ IP ngẫu nhiên nằm trong mạng SDN đích. Thay vì tấn công đích, điều này sẽ khiến bộ đệm và tài nguyên tính toán của bộ điều khiển SDN cạn kiệt, do đó ảnh hưởng đến toàn bộ mạng. Tác động tiêu cực này có xảy ra ngay cả trong trường hợp lưu lượng ICMP tấn công ở tốc độ thấp, ví dụ như 56 Mbps, tốc độ này chưa ảnh hưởng gì đến băng thông của các kết nối. 2.3.1.3. Ảnh hưởng của việc triển khai các thuật toán mới lên hiệu năng bộ điều khiển Bộ điều khiển SDN thường được trang bị các thuật toán mới để bổ sung thêm chức năng. Ví dụ như các thuật toán phát hiện và giảm thiểu tấn công được đề xuất ở các chương tiếp theo. Bên cạnh những lợi ích, các chức năng bổ sung này ảnh hưởng lên tài nguyên của bộ điều khiển, dẫn đến suy giảm hiệu năng. Trong phần này, nghiên cứu sinh đánh giá hiệu năng của bộ điều khiển SDN khi các chức năng mới được triển khai. 59 (a) Số luồng vào và ra trên một giây (b) Tổng tích lũy số luồng Hình 2.8 Hiệu năng của bộ điều khiển Ryu, POX sau khi tích hợp thuật toán thông minh Hình 2.9 So sánh hiệu năng của bộ điều khiển khi tích hợp LoF và DNN Để đánh giá hiệu năng của thiết bị điều khiển khi tích hợp chức năng mới, đặc biệt là chức năng bảo mật mạng theo mục tiêu nghiên cứu của luận án, nghiên cứu sinh triển khai tích hợp lên bộ điều khiển thuật toán học máy LoF và DNN phát hiện phần mềm độc hại dựa trên thuật toán tạo miền (DGA) [113]. LoF đại diện cho các thuật toán học máy nhẹ, đơn giản, được đề xuất dùng để phát hiện bất thường trong thời gian thực ở phần sau. DNN dại diện cho thuật toán học máy phức tạp, được đề xuất dùng phát hiện tấn công DDoS cụ thể. Nghiên cứu sinh lựa chọn hai thuật toán này đại diện để thực hiện đánh giá. Nghiên cứu sinh cũng chọn hai bộ điều khiển Python nổi tiếng là POX và Ryu cho thử nghiệm này vì các bộ điều khiển dựa trên Python thường phù hợp hơn khi triển khai các chức năng thông minh sử dụng học máy. Trong thử nghiệm này, mô hình học máy được thực hiện trên một tập hợp đầu vào được trích xuất từ các gói packet_in trong mỗi giây để phát hiện phần mềm độc hại từ lưu lượng truy cập đến, được tạo ở tốc độ 2,000 fps. Hiệu năng của bộ điều khiển được đánh giá bằng cách so sánh tốc độ flow_mod gửi ra trong trường hợp chạy thuật toán DNN, LoF với trường hợp không chạy thuật toán. Như được hiển thị trong Hình 2.8a, việc thêm một chức năng thông minh làm giảm khả năng xử lý của cả POX và Ryu 60 tương ứng khoảng 200 và 300 fps so với các trường hợp thông thường. Kết quả tích lũy như trong Hình 2.8b cho một cái nhìn rõ ràng hơn về sự suy giảm hiệu năng này. Hình 2.9 là kết quả so sánh hiệu năng của bộ điều khiển Ryu khi tích hợp LoF và DNN. Kết quả cho thấy thuật toán LoF đơn giản nên bộ điều khiển ít bị ảnh hưởng hơn thuật toán phức tạp DNN. Khả năng xử lý của bộ điều khi tích hợp LoF cũng gần như không thay đổi so với bình thường. Như vậy, khi tích hợp tác thuật toán thông minh vào bộ điều khiển SDN ít nhiều sẽ ảnh hưởng đến khả năng xử lý của chúng. Tùy theo độ phức tạp của thuật toán tích hợp mà việc ảnh hưởng sẽ nhiều hay ít. Do đó, trong các trường hợp, cần cân bằng giữa việc triển khai thuật toán mới trong bộ điều khiển và hiệu năng của chúng. Các kết quả đánh giá tác động của tấn công DDoS lên bộ điều khiển trên cho thấy Floodlight vượt trội hơn so với POX và Ryu. Đó là do Floodlight là bộ điều khiển dựa trên Java hỗ trợ đa luồng. Trong khi đó, POX và Ryu sử dụng Python, ngôn ngữ kịch bản chỉ hỗ trợ tốt cho một luồng, do đó hạn chế khả năng mở rộng hiệu năng của nó. Mặc dù nhu cầu thiết kế bộ điều khiển hiệu năng cao là rất quan trọng vì bộ điều khiển chịu trách nhiệm quản lý toàn bộ mạng, nhưng Floodlight và các bộ điều khiển hiệu năng cao khác (ví dụ: NOX, ONOS, Beacon,...) rất khó triển khai các ứng dụng dựa trên học máy. Ngược lại, các bộ điều khiển dựa trên Python (POX và Ryu) linh hoạt hơn khi dễ dàng sử dụng các nền tảng và thư viện học máy. Trên thực tế, nhiều nhà nghiên cứu, những người đã phát triển phương pháp phòng thủ dựa trên học máy chống lại các cuộc tấn công DDoS trong mạng SDN, đã sử dụng POX và Ryu [6, 7]. 2.3.2. Tác động của tấn công DDoS lên thiết bị chuyển mạch SDN Phần này trình bày tác động của các cuộc tấn công DDoS đối với các thiết bị chuyển mạch SDN, bao gồm cả phần mềm và phần cứng. 2.3.2.1. Tìm kiếm và cập nhật bảng luồng thông tin Hình 2.5 đã chỉ ra rằng OvS phát sinh độ trễ gói tin đáng kể. Đó là do quá trình xử lý gói tin flow_mod để thêm các mục mới trong bảng luồng không theo kịp tốc độ gửi đến của gói tin flow_mod. Phần này sẽ giải thích chi tiết hơn vấn đề này. Hình 2.5c và 2.5e cho thấy việc thêm các luồng mới vào bảng luồng OvS sẽ tốn kém hơn so với việc tạo các quy tắc mới trong Floodlight. Vì đường cong giá trị tổng tích lũy số lần gửi gói tin flow_mod dốc hơn so với đường cong tổng tích lũy số mục mới được thêm vào bảng luồng. Kết quả cho thấy, trong một máy vật lý có 6 Xeon, 2,67 GHz, 24 lõi (thông số trong Bảng 2.1), OvS đã đạt đến giới hạn xử lý khoảng 10,000 quy tắc mỗi giây. Nếu tốc độ đến của các flow_mod cao hơn ngưỡng này, OvS bắt đầu xử lý không kịp bộ điều khiển. Sự suy giảm hiệu năng tại OvS là do tình trạng cạnh tranh (race condition) trong thiết bị chuyển mạch. Vấn đề này lần đầu tiên được giải quyết bởi các tác giả trong [114] nhưng không được giải thích rõ ràng. Phần này sẽ phân tích chi tiết hơn thông qua các thử nghiệm mới được phát triển. Tình trạng tranh chấp xảy ra khi các bản tin flow_mod đến từ bộ điều khiển và các gói dữ liệu đến OvS tranh chấp để truy cập đồng thời vào bảng luồng thông tin. Một là để cập nhật các mục trong bảng luồng, hai là truy cập bảng để tra cứu tìm đường đi. OvS đã triển khai cơ chế khóa 61 ofproto_mutex để xử lý vấn đề này. Tuy nhiên, nó vẫn làm giảm hiệu năng xử lý của OvS nếu số truy cập bảng luồng thông tin đủ cao. Để minh họa rõ ràng hơn, Hình 2.10 mô tả tốc độ vào và ra của các gói TCP-SYN trong OvS. Trong các thử nghiệm, tấn công tràn TCP-SYN kéo dài trong 10 giây với tốc độ đến lần lượt là 10,000 pps và 15,000 pps, tương đương với 10,000 fps và 15,000 fps gói packet_in. Bộ điều khiển được sử dụng trong thí nghiệm này là Floodlight. Trong cả hai trường hợp, trong quá trình tấn công, tốc độ gói gửi đi thấp hơn tốc độ gói tin đến. Khi cuộc tấn công dừng lại, tốc độ gói gửi đi tăng đáng kể. Điều này có thể được giải thích như sau. Trong quá trình tấn công, các gói TCP-SYN đến làm cho thiết bị chuyển mạch bắt đầu gửi các luồng yêu cầu mới tới bộ điều khiển. Đến lượt mình, bộ điều khiển sẽ cài đặt các quy tắc mới bằng cách gửi các bản tin flow_mod cho OvS, từ đó gây ra tình trạng cạnh tranh đã nói ở trên giữa các gói TCP đến và bản tin flow_mod tại bộ chuyển mạch. Khi kết thúc cuộc tấn công, vì không còn

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

  • pdfluan_an_cac_giai_phap_phat_hien_va_giam_thieu_tan_cong_ddos.pdf
  • pdfThong tin dua len mang EN.pdf
  • pdfThong tin dua len mang.pdf
  • pdfTom tat luan an.pdf
  • pdfTrich yeu luan an.pdf
Tài liệu liên quan