ĐỀ XUẤT GIẢI PHÁP PHÁT HIỆN VÀ GIẢM THIỂU TÁC HẠI TẤN CÔNG DDOS DỰA TRÊN KỸ THUẬT MẠNG CẤU HÌNH BỞI PHẦN MỀM SDN

Khoa Điện tử viễn thông

25/02/2020 15:21

| Lượt xem: 329

Trong bài báo này, chúng tôi đề xuất một giải pháp phát hiện và giảm thiểu tác hại tấn công DDoS dựa trên kỹ thuật mạng cấu hình bằng phần mềm SDN và chuẩn giao thức Openflow. Một số tham số thống kê được lựa chọn và thu thập định kỳ từ các flow entries trên OF switch dùng cho tính toán để phát hiện tấn công. Khi phát hiện có tấn công xảy ra, cơ chế điều khiển từ controller tới OF switch được sử dụng để lọc bỏ các gói tin nghi ngờ. Quá trình được thực hiện một cách tự động bằng phần mềm với thuật toán đơn giản, thực thi trực tuyến, chỉ sử dụng các tham số thống kê từ OF switch.

I. Đặt vấn đề
        Trên cơ sở huy động số lượng rất lớn máy tính cùng tham gia, tấn công từ chối dịch vụ phân tán (DDoS) [1,2] vẫn là một trong những mối đe dọa tới việc tổ chức và cung cấp dịch vụ trên Internet. Lợi dụng các điểm yếu, lỗ hổng bảo mật của các giao thức mạng, ngày càng xuất hiện nhiều công cụ phát tán mã độc, tuyển mộ zombies, xây dựng botnet và thực hiện tấn công DDoS nguy hiểm.
Trong nỗ lực ngăn chặn tấn công DDoS, đã có rất nhiều nhóm nghiên cứu quan tâm và đề xuất các giải pháp, các thuật toán phát hiện và giảm thiểu tác hại tấn công. Nguyên lý chung của các giải pháp phát hiện tấn công là sử dụng các thiết bị đo tham số lưu lượng mạng ở các vị trí khác nhau. Các tham số này được thu thập định kỳ và áp dụng các thuật toán khác nhau để phát hiện có hay không tấn công đang diễn ra. [3,4,5,6,7,8,9] Khi xác định có tấn công diễn ra, một số giải pháp đưa ra biện pháp lọc bỏ lưu lượng tấn công nhằm bảo vệ máy chủ, dịch vụ.
Phương pháp phát hiện tấn công có thể chia thành 3 nhóm chính: dựa vào dấu hiệu tấn công, dựa vào đặc tính thống kê và khai phá dữ liệu. Theo phương pháp dựa vào dấu hiệu tấn công, các đặc tính lưu lượng của các loại tấn công khác nhau được lưu lại trong cơ sở dữ liệu và được dùng để so sánh với các tham số lưu lượng. Nếu có sự tương đồng giữa tham số lưu lượng và dấu hiệu đã lưu thì hệ thống xác định có tấn công xảy ra như giải pháp đề xuất bởi Gil và Poleto [3] hoặc Thomas và nnk. [4]. Nhược điểm của phương pháp này là khó có thể phát hiện các tấn công phương thức mới, cơ sở dữ liệu ngày càng cồng kềnh, thời gian xử lý lâu. Phương pháp khai phá dữ liệu được thực hiện trên cơ sở áp dụng các giải thuật trí tuệ nhân tạo, tính toán mềm, máy học... Các giải pháp thuộc nhóm này chủ yếu được triển khai phân tán để ngăn chặn một máy tính trở thành zombie, tham gia vào botnet như NetShield [5].
Ở nhóm phương pháp thống kê, các giải pháp thực hiện thống kê theo thời gian đặc tính lưu lượng của các máy chủ, dịch vụ. Tấn công được phát hiện dựa trên sự thay đổi đột ngột hoặc có các biến động bất thường giữa tham số lưu lượng ở thời điểm hiện tại so với các giá trị thống kê. Mức độ chính xác và hiệu quả của giải pháp phụ thuộc vào tham số sử dụng và thuật toán xác định sự biến động tham số lưu lượng. Chen và nnk. [6] áp dụng thuật toán tổng tích lũy CUSUM nhằm loại bỏ phát hiện nhầm do biến động ngẫu nhiên nhưng độ trễ phát hiện cao. Giải pháp D-WARD [7] có khả năng phát hiện với độ chính xác cao dựa trên giám sát lưu lượng cả 2 hướng nhưng đòi hỏi năng lực tính toán của hệ thống lớn. Peng và nnk. [8] đề xuất giải pháp phát hiện tấn công dựa trên sự giám sát tỷ lệ gia tăng địa chỉ IP nguồn mới áp dụng thuật toán tổng tích lũy CUSUM. Giải pháp của Cheng và nnk. [9] áp dụng thuật toán dự đoán tuyến tính trên các thuộc tính chính của lưu lượng tấn công DDoS như sự gia tăng lưu lượng đột biến, tính bất đối xứng giữa các flow hai chiều, sự phân bố địa chỉ IP. Nhược điểm cơ bản của các giải pháp thuộc nhóm thống kê là đòi hỏi phải có bộ thu thập tham số lưu lượng. Một số áp dụng các thuật toán phức tạp, đòi hỏi tài nguyên tính toán lớn nên khó có thể áp dụng trực tuyến trên hệ thống mạng.
        Trong bài báo này, chúng tôi đề xuất một giải pháp mới theo phương pháp thống kê dựa trên nền tảng kỹ thuật mạng cấu hình bởi phần mềm SDN trong đó tham số lưu lượng được trích xuất từ các flow entries cài đặt trên Openflow switch. Giải pháp tận dụng được thế mạnh của kiến trúc mạng SDN, không cần thiết bị thu thập tham số lưu lượng riêng biệt. Ngoài ra, cơ chế SDN còn cho phép hệ thống tự động lọc bỏ lưu lượng tấn công khi nó được phát hiện mà không cần sự can thiệp cấu hình thiết bị như kiến trúc mạng truyền thống.
        Phần tiếp theo của bài báo được cấu trúc như sau: Mục 2 mô tả kiến trúc SDN và giao thức Openflow; mục 3, 4, 5 trình bày kiến trúc hệ thống, các tham số thống kê và các trạng thái hoạt động của hệ thống; Kết luận và hướng phát triển tiếp theo được trình bày trong mục 6.

II. Kiến trúc mạng SDN và giao thức Openflow
        Kiến trúc mạng điều khiển bằng phần mềm (SDN - Software Defined Networking) [10] được hình thành dựa trên sự phân tách mặt phẳng điều khiển ra khỏi mặt phẳng dữ liệu so với kiến trúc mạng truyền thống. Điều đó cho phép mặt phẳng điều khiển có thể giám sát tập trung toàn bộ hệ thống mạng, thực thi các chính sách điều khiển, cấu hình hệ thống mạng một cách mềm dẻo. Hình 1 trình bày kiến trúc hệ thống mạng dựa trên nền tảng SDN/Openflow trong đó mặt phẳng điều khiển được tách khỏi thiết bị mạng (OF switch) và thực thi bằng phần mềm chạy trên bộ điều khiển mạng (Controller). Bộ điều khiển thực hiện giám sát, cấu hình các chính sách điều khiển tới các OF switches thông qua chuẩn giao thức OpenFlow [11] và thực thi trên các flow entries được cài đặt trong các flow tables có trong OF switches.


Hình 1. Cấu trúc OF switch trong kiến trúc mạng SDN [11]

 
Các gói tin được SDN xử lý theo flow. Mỗi khi OF switch nhận được một gói tin, nó kiểm tra xem gói tin đó có thuộc vào (matching) một flow entry đã có trong flow table hay không. Nếu tìm thấy, gói tin được xử lý bằng các chính sách đã được thiết lập cho flow entry tương ứng. Nếu không thấy, gói tin được chuyển tới controller, tại đó, các ứng dụng chạy trên controller sẽ quyết định chính sách xử lý gói tin và thực hiện chính sách đó bằng cách cài đặt một flow entry mới tương ứng tới OF switch. Bên cạnh các thông tin nhận dạng flow, mỗi flow entry còn có các bộ đếm dùng để thống kê thuộc tính các gói tin của flow như số gói tin, tổng dung lượng v.v...
Kiến trúc mạng SDN cung cấp cơ chế điều khiển mềm dẻo, cho phép các phần mềm chạy trên controller có thể đưa ra các chính sách xử lý gói tin linh hoạt, phù hợp với yêu cầu kiến trúc mạng thế hệ mới như kiến trúc mạng ảo, định vị tài nguyên động, v.v...

III. Kiến trúc hệ thống


Hình 2. Cấu trúc hệ thống phát hiện và giảm thiểu tác hại tấn công DDoS dựa trên SDN

Cấu trúc hệ thống phát hiện và ngăn chặn tấn công DDoS dựa trên SDN được mô tả như trong hình 1. OF switch được sử dụng để kết nối trực tiếp các máy chủ dịch vụ cần bảo vệ với mạng lõi. Các OF switch được điều khiển bởi 1 controller thông qua giao diện theo chuẩn Openflow. Trên controller, một ứng dụng bảo mật thực thi như một proxy làm nhiệm vụ thu thập tham số thống kê từ OF switch, chuyển các tham số này tới máy chủ bảo mật (security server) – nơi thực hiện tính toán, phát hiện tấn công và ra quyết định gửi trở lại OF switch các thông điệp lọc bỏ lưu lượng tấn công mỗi khi phát hiện được. Security server lưu trữ các thuộc tính lưu lượng tương ứng của các máy chủ/dịch vụ trên cơ sở dữ liệu phục vụ cho thống kê, tính toán phát hiện.
Đối tượng cần bảo vệ là một máy chủ (server) hoặc là một dịch vụ cụ thể trên 1 máy chủ. Nếu đối tượng cần bảo vệ là  máy chủ, nó được xác định thông qua địa chỉ IP đích của các flow entries. Khi đối tượng cần bảo vệ là một dịch vụ cụ thể, nó được xác định thông qua địa chỉ IP đích và số hiệu cổng đích tương ứng với dịch vụ đó.

IV. Các tham số thống kê và chỉ số thống kê
Dựa trên nền tảng của kỹ thuật mạng SDN, các tham số sử dụng cho tính toán phát hiện tấn công được lựa chọn là các giá trị thống kê lấy từ các bộ đếm của các flow entries có trong OF switch. Các OF switch được cấu hình theo nguyên tắc: Nếu đối tượng bảo vệ là một máy chủ, mỗi flow được xác định bởi 3 tham số: địa chỉ IP nguồn, địa chỉ IP đích và số hiệu cổng nguồn. Khi đối tượng bảo vệ là một dịch vụ chạy trên một máy chủ, mỗi flow được xác định thêm bởi tham số thứ tư là số hiệu cổng đích. Sau mỗi chu kỳ T xác định trước, ứng dụng proxy chạy trên controller ra lệnh thống kê tới OF switch. Dựa vào trạng thái hiện thời của các flow entries, OF switch sẽ trả về ba tham số thống kê bao gồm:
- SAN (Source Address Number): Số địa chỉ IP nguồn đang thực hiện trao đổi dữ liệu với máy chủ/dịch vụ.
- SPN (Source Port Number): Tổng số cổng được mở trên tất cả các địa chỉ IP nguồn đang thực hiện trao đổi dữ liệu với máy chủ/dịch vụ.
- PN (Packet Number): Số gói tin của mỗi flow.
Mỗi khi có được giá trị của các tham số thống kê, security server thực hiện tính toán 2 chỉ số thống kê cho mỗi máy chủ/dịch vụ, đó là:
- SPA (Source-port number Per Address): Tỷ lệ số cổng trung bình được mở trên mỗi địa chỉ IP nguồn. Do đặc thù tính chất dịch vụ của từng máy chủ cụ thể, tham số này của mỗi máy chủ/dịch vụ sẽ có giá trị khác nhau. Chúng ta lấy thống kê chỉ số này trong các điều kiện hoạt động bình thường của mỗi máy chủ/dịch vụ và so sánh với tham số tức thời của chính máy chủ/dịch vụ đó để phát hiện có tấn công diễn ra hay không. Chỉ số này sẽ giúp hệ thống phát hiện tấn công HTTP flood, loại hình tấn công DDoS phổ biến nhất hiện nay [9], khi các agent cố gắng tạo ra nhiều http request bằng cách mở nhiều sockets tới máy chủ. Mỗi socket được thực hiện bằng cách sử dụng một số hiệu cổng nguồn riêng. Vì vậy, khi có tấn công xảy ra, chỉ số SPA của máy chủ/dịch vụ tăng lên nhanh chóng và sự thay đổi ấy có thể sử dụng làm dấu hiệu phát hiện tấn công.
- PNF (Packet Number per Flow): Tỷ lệ số gói tin trung bình trên mỗi flow. Cũng giống SPA, mỗi máy chủ/dịch vụ sẽ có chỉ số PNF trung bình khác nhau. Ví dụ đối với dịch vụ web thông thường, mỗi flow thường chỉ có một vài packet, mỗi packet tương ứng với một http request; trong khi đó dịch vụ video streaming hoặc ftp thường có số gói tin trong một flow là rất lớn. Do có tính chất riêng như vậy, khi có tấn công xảy ra, giá trị chỉ số PNF thường biến động so với giá trị trung bình thống kê khi ở trạng thái bình thường. Sự biến động này có thể dùng làm dấu hiệu phát hiện tấn công.

V. Các trạng thái hoạt động của hệ thống
        Hệ thống được tổ chức hoạt động như một dịch vụ phát hiện và ngăn chặn tấn công cho các máy chủ/dịch vụ. Nó duy trì một hệ quản trị cơ sở dữ liệu để quản lý các máy chủ/dịch vụ mà nó theo dõi và các chỉ số thống kê tương ứng theo thời gian. Mỗi máy chủ được đăng ký bởi một địa chỉ IP và các cổng dịch vụ mà máy chủ đó được mở. Điều này giúp cho hệ thống ngăn chặn được các gói tin tấn công dạng port scan ngay từ thiết bị mạng SDN bằng cơ chế lọc bỏ các gói tin có địa chỉ cổng đích không được đăng ký.
        Hệ thống hoạt động theo 3 trạng thái cơ bản: Giám sát (Bình thường), Nghi ngờ và Thực hiện ngăn chặn (thông qua lọc bỏ lưu lượng).
 


Hình 3. Sơ đồ chuyển tiếp trạng thái của hệ thống

        Ở trạng thái Giám sát, định kỳ sau mỗi chu kỳ thời gian T (ví dụ sau mỗi khoảng thời gian T=5 phút), thông qua cơ chế SDN hệ thống thu thập 3 giá trị thống kê như trình bày ở trên và tính toán hai chỉ số tức thời SPA và PNF. Dựa vào giá trị tức thời và giá trị trung bình tích lũy lưu trong cơ sở dữ liệu, hệ thống tính ra giá trị chuẩn hóa cho hai chỉ số như sau:

SPACUM và PNFCUM là các giá trị trung bình tích lũy được tính toán thống kê trung bình và lưu trữ trong cơ sở dữ liệu. Nếu không phát hiện có tấn công, các giá trị trung bình tích lũy mới được tính bằng trung bình cộng giữa giá trị trung bình tích lũy cũ và giá trị tức thời. Nếu phát hiện có tấn công xảy ra, giá trị trung bình tích lũy cũ được giữ nguyên.
Khi đang ở trạng thái Giám sát, để phát hiện có tấn công xảy ra hay không, hệ thống so sánh giá trị tức thời chuẩn hóa với một giá trị ngưỡng phát hiện KD. Nếu một trong hai giá trị tham số chuẩn hóa đạt hoặc vượt ngưỡng KD, hệ thống cho rằng tấn công đã xảy ra và chuyển sang trạng thái Nghi ngờ. Nếu cả hai giá trị tham số chuẩn nhỏ hơn KD, không có tấn công xảy ra và hệ thống tiếp tục Giám sát sau mỗi chu kỳ T.
        Khi chuyển sang trạng thái Nghi ngờ, hệ thống thực hiện thống kê chi tiết đối với từng địa chỉ IP nguồn có các flow gửi tới máy chủ/dịch vụ nghi ngờ bị tấn công bao gồm số cổng nguồn được mở SP và số gói tin trung bình trên mỗi flow PN được gửi từ địa chỉ IP nguồn tương ứng. Các giá trị này được so sánh với giá trị trung bình tích lũy tương ứng theo hệ số lọc bỏ KF để xác định địa chỉ IP đó có là nguồn lưu lượng tấn công hay không. Nếu SP >= SPACUM * KF hoặc PN >= PNFCUM*KF : lưu lượng xuất phát từ địa chỉ IP đang xét là lưu lượng tấn công.  Ngược lại địa chỉ IP đang xét là địa chỉ lành tính. Hệ số KF được chọn tùy theo đặc điểm riêng của từng máy chủ/dịch vụ đảm bảo tỷ lệ phát hiện (Detection Rate) cao nhưng vẫn giới hạn tỷ lệ dương tính sai (FPR – False Positive Rate) ở mức thấp.
        Sau khi xử lý phân loại lưu lượng theo địa chỉ IP nguồn, nếu phát hiện được nguồn tấn công, hệ thống chuyển sang trạng thái Thực hiện ngăn chặn. Bản chất của quá trình này là security server yêu cầu controller gửi bản tin tới OF switch hủy toàn bộ các gói tin đến từ các địa chỉ IP nghi ngờ. Nếu không phát hiện ra nguồn tấn công nào, hệ thống quay trở về trạng thái Giám sát.
Giải pháp này có ưu điểm đơn giản, dễ thực hiện, không đòi hỏi nhiều tài nguyên tính toán và lưu trữ, có thể thực hiện trực tuyến với độ trễ xử lý thấp. Ngoài ra giải pháp này tận dụng được khả năng của kỹ thuật mạng SDN, lấy trực tiếp tham số thống kê của SDN để phân tích phát hiện mà không cần thiết bị thu thập ngoài. Hơn nữa cơ chế phát hiện dựa trên đặc điểm riêng về lưu lượng của từng server nên có độ tin cậy cao.

VI. Kết luận và hướng nghiên cứu tiếp theo
Dựa trên nguyên lý SDN, chúng tôi đề xuất giải pháp phát hiện và giảm thiểu tấn công DDoS hoạt động như một dịch vụ mạng. Hệ thống có thể tận dụng nguyên lý SDN để:
- Ngăn chặn tấn công quét cổng dịch vụ (scan port) ngay từ thiết bị mạng.
- Lấy trực tiếp các tham số thống kê flows làm tham số tính toán đầu vào cho giải pháp phát hiện tấn công DDoS.
- Áp dụng chính sách của các flow để thực hiện xóa bỏ, ngăn chặn các gói tin tấn công online.
Do sử dụng trực tiếp các tham số thống kê của SDN với thuật toán thống kê đơn giản, giải pháp đề xuất phát hiện và ngăn chặn tấn công DDoS dựa trên SDN đòi hỏi tài nguyên tính toán thấp, có thể thực hiện trực tuyến, phát hiện và ngăn chặn theo thời gian thực.
Để phát triển giải pháp, các nội dung nghiên cứu tiếp theo cần tập trung vào thực thi giải pháp trên testbed và khảo sát hiệu năng của hệ thống trên testbed với các botnet tấn công thời gian thực hoặc phân tích, đánh giá hiệu năng offline dựa trên các bộ dữ liệu lưu lượng tấn công DDoS.

VII. Tài liệu tham khảo
[1] Peng và nnk., “Survey of network-based defense mechanisms countering the DoS and DDoS problems”, ACM Computing Survey, 39, 2007, 3:1–3:42.
[2] Lin và nnk.,“A survey on solutions to distributed denial of service attacks”, Technical Report TR201. Department of Computer Science, State University of New York, Stony Brook, 2006, availabe onlie at http://www.ecsl.cs.sunysb.edu/tr/TR201.pdf.
[3] Gil và Poletto, “MULTOPS: a datastructure for bandwidth attack detection”, Proceedings of the 10th conference on USENIX Security Symposium, Volume10, Berkeley, CA, USA, August 3 2001, USENIX Association Berkeley, p.13-17.
[4] Thomas và nnk., “NetBouncer: Client-legitimacy-based highperformance DDoS filtering”, Proceedings of the 3rd DARPA Information Survivability Conference and Exposition, Washington, DC, 22-24 April 2003, pp. 111–113, IEEE CS, USA.
[5] Hwang, K., Dave, P., and Tanachaiwiwat, S., “NetShield: Protocol anomaly detection with datamining against DDoS attacks”, Proceedings of the 6th International Symposium on Recent Advances in Intrusion Detection, Pittsburgh, PA, September 2003, p. 8-10.
[6]. Chen, Y., Hwang, K., and Ku, “Distributed change-point detection of DDoS attacks over multiple network domains”, Proceedings of the IEEE International Symposium on Collaborative Technologi es and Systems,LasVegas,NV,14-17May, pp. 543–550. IEEE CS.
[7]. Mirkoviac, J., Prier, G., and Reiher, P., “Attacking DDoS at the source”, Proceedings of the 10th IEEE International Conference on Network Protocols, Paris, France, 12-15 November 2002, pp. 1092–1648. IEEE CS.
[8]. Peng, T., Leckie, C., and Ramamohanarao, K., “Detecting distributed denial of service attacks using source IP address monitoring”, Proceedings of the 3rd International IFIP-TC6 Networking Conference, Athens, Greece, 9-14 May 2004, pp. 771–782. Springerverlag.
[9]. Cheng, J., Yin, J., Wu, C., Zhang, B., and Li, Y. “DDoS attack detection method based on linear prediction model”. Proceedings of the 5th international conference on Emerging intelligent computing technology and applications,Ulsan,South Korea, 16-19 September 2009, pp. 1004–1013. SpringerVerlag.
[10] Thomas Nadeau, Ken Gray, “Software Defined Networks”, O’Reilly, 2013.
[11] N. McKeown, et al., “OpenFlow: enabling innovation in campus networks”, ACM SIGCOMM Computer Communication Review, vol. 38, no. 2, pp. 69-74, April 2008.


TIN LIÊN QUAN