Tổng quan nghiên cứu

Trong kỷ nguyên bùng nổ của mạng máy tính toàn cầu với lưu lượng băng thông đạt mức từ 10 Gbps đến hàng trăm Gbps, các hiểm họa an ninh mạng như virus, worm, malware và tấn công xâm nhập ngày càng trở nên tinh vi. Hệ thống phát hiện xâm nhập mạng đóng vai trò then chốt trong việc giám sát, phân tích chuyên sâu vào từng gói tin để nhận diện các dấu hiệu mã độc. Tuy nhiên, khi cơ sở dữ liệu luật của các hệ thống an ninh như Snort vượt mốc 16.000 quy tắc phức tạp, các giải pháp phát hiện xâm nhập dựa trên phần mềm truyền thống gặp phải nút thắt cổ chai nghiêm trọng, chỉ duy trì tốc độ xử lý ở mức vài trăm Mbps và không thể đáp ứng đường truyền thực tế.

Nghiên cứu tập trung giải quyết bài toán thiết kế và hiện thực module xử lý nội dung phần thân gói dữ liệu trên nền tảng phần cứng khả trình FPGA. Mục tiêu trọng tâm là xây dựng một kiến trúc máy so trùng đa mẫu khả cấu hình, đạt thông lượng xử lý mức Gigabit trên giây và hỗ trợ toàn diện các dạng quy tắc tĩnh và động trong tập luật Snort. Đề tài được triển khai trong giai đoạn từ tháng 7 năm 2012 đến tháng 6 năm 2013 tại Trường Đại học Bách Khoa, Đại học Quốc gia Thành phố Hồ Chí Minh, thực nghiệm trực tiếp trên nền tảng phần cứng NetFPGA trang bị chip Xilinx Virtex-II Pro 50 hoạt động ở xung nhịp 125 MHz.

Ý nghĩa khoa học và thực tiễn của công trình thể hiện qua việc tối ưu hóa vượt trội hiệu năng phần cứng. Kiến trúc đề xuất hỗ trợ kiểm tra đồng thời hơn 8.000 mẫu tĩnh với tập ký tự lên đến 115 KB, đồng thời giảm thiểu tới 42% số lượng bảng tra LUT và 32% số lượng Flip-Flop so với các phương pháp máy trạng thái truyền thống, mở ra giải pháp bảo mật phần cứng tốc độ cao và linh hoạt.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu ứng dụng và tích hợp hai nền tảng lý thuyết tính toán quan trọng nhằm tối ưu hóa quá trình xử lý song song trên phần cứng:

Thứ nhất, lý thuyết băm Cuckoo Hashing do Pagh và Rodler phát triển năm 2004 được ứng dụng để so trùng tập mẫu tĩnh. Thuật toán sử dụng hai hàm băm kết hợp với hai bảng tra độc lập, cho phép giải quyết xung đột bằng cơ chế thế chỗ động, đảm bảo thời gian tra cứu hằng số O(1) trong mọi trường hợp kiểm tra dữ liệu. Để tăng tính phân tán và tối ưu cho xử lý đường ống trên FPGA, giải thuật băm Shift-Add-Xor được tích hợp trực tiếp vào từng tầng xử lý.

Thứ hai, lý thuyết máy trạng thái hữu hạn không đơn định được sử dụng làm mô hình toán học cốt lõi cho việc nhận dạng các biểu thức chính quy phức tạp. Khác với máy trạng thái đơn định vốn dễ bị bùng nổ số lượng trạng thái khi biểu diễn các tập luật đa dạng, kiến trúc máy trạng thái không đơn định cho phép nhiều trạng thái cùng kích hoạt đồng thời tại một chu kỳ xung nhịp, tận dụng tối đa khả năng xử lý song song của các phần tử logic trên vi mạch FPGA.

Các khái niệm then chốt xuyên suốt đề tài bao gồm kiểm tra gói tin chuyên sâu, máy so trùng mẫu tĩnh dựa trên bộ nhớ khối, máy so trùng biểu thức chính quy, khối lặp ràng buộc và cơ chế chia sẻ mẫu con tiền tố, trung tố, hậu tố.

Phương pháp nghiên cứu

Nghiên cứu sử dụng nguồn dữ liệu thực nghiệm toàn diện từ cơ sở dữ liệu luật Snort phiên bản 2.9 với tổng cộng 16.737 quy tắc, bao gồm 8.523 luật được kích hoạt mặc định, 14.360 luật giao thức TCP và 2.162 luật giao thức UDP.

Phương pháp chọn mẫu được thực hiện theo kỹ thuật phân tầng logic: toàn bộ tập luật được phân tích cú pháp và phân loại thành 7 nhóm cấu trúc đặc trưng, trong đó có 6.453 luật chỉ chứa một mẫu tĩnh, 3.375 luật chứa một mẫu tĩnh kết hợp biểu thức chính quy, và 5.745 luật đòi hỏi sự phối hợp đa mẫu kèm ràng buộc vị trí không gian như khoảng cách, độ sâu và độ lệch.

Lý do lựa chọn phương pháp đồng thiết kế phần cứng và phần mềm xuất phát từ yêu cầu tự động hóa và tối ưu hóa tài nguyên. Nhóm tác giả phát triển một bộ công cụ phân tích và tổng hợp luật trên máy chủ để tự động chuyển đổi các biểu thức chính quy thành mã phần cứng Verilog RTL và trích xuất dữ liệu khởi tạo cho bộ nhớ khối on-chip. Quá trình kiểm chứng được tiến hành 2 giai đoạn: mô phỏng hành vi chức năng bằng công cụ phần mềm chuyên dụng và nạp cấu hình thực tế lên bo mạch phần cứng NetFPGA kết nối qua 4 cổng Gigabit Ethernet trong chu kỳ nghiên cứu kéo dài 12 tháng.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình phân tích thực nghiệm và tổng hợp mạch trên chip Xilinx Virtex-II Pro 50 mang lại 4 kết quả mang tính đột phá:

Khả năng mở rộng vượt trội của khối so trùng mẫu tĩnh: Bằng việc phân chia kiến trúc thành 16 module Cuckoo độc lập cho các chuỗi từ 1 đến 16 byte kết hợp danh sách liên kết cho chuỗi dài, hệ thống đã nạp thành công hơn 8.000 mẫu tĩnh với tổng kích thước tập ký tự đạt 115 KB vào bộ nhớ nội, đảm bảo thời gian phát hiện dấu hiệu xâm nhập chỉ trong 1 chu kỳ xung nhịp.

Tiết kiệm tài nguyên phần cứng cho mẫu động: Phương pháp chia sẻ các mẫu con trung tố và hậu tố giữa các bộ so trùng biểu thức chính quy kết hợp tận dụng các thanh ghi dịch SRL16 giúp giảm đến 42% số phần tử LUT và 32% số phần tử Flip-Flop so với kiến trúc Sidhu-Prasanna truyền thống.

Xử lý hoàn chỉnh các ràng buộc đa mẫu: 59% số quy tắc trong Snort có chứa các tham số không gian phức tạp như offset, depth, distance, within và tùy chọn không phân biệt chữ hoa chữ thường nocase được xử lý chính xác tuyệt đối nhờ module kết hợp mẫu mà không gây suy giảm tốc độ đường truyền.

Duy trì thông lượng thực tế ở mức Gbps: Hệ thống vận hành ổn định tại tần số xung nhịp chuẩn 125 MHz trên bo mạch NetFPGA, xử lý mượt mà luồng dữ liệu 8-bit trên mỗi chu kỳ, đáp ứng đầy đủ tốc độ truyền dẫn thực tế 1 Gbps trên toàn bộ 4 cổng mạng vật lý.

Thảo luận kết quả

Hiệu năng ấn tượng của hệ thống bắt nguồn từ việc khai thác triệt để tính chất phân bố chiều dài chuỗi trong an ninh mạng. Trong thực tế, dữ liệu phân tích tập luật chỉ ra rằng hơn 85% mẫu tĩnh có chiều dài dao động từ 1 đến 16 byte, cho phép thiết kế tập trung 16 khối Cuckoo chuyên biệt với tài nguyên bộ nhớ khối tối thiểu thay vì lãng phí diện tích vi mạch cho các chuỗi dài không phổ biến.

Khi đối sánh với các phương pháp dịch và so sánh của Baker hay kiến trúc máy trạng thái biến thể Aho-Corasick trước đây, phương pháp băm Cuckoo trong đề tài vượt trội về mật độ lưu trữ ký tự trên một đơn vị bộ nhớ. Đồng thời, khối nhận dạng toán tử lặp ràng buộc sử dụng bộ đếm đồng bộ đã giải quyết triệt để vấn đề bùng nổ tài nguyên logic thường gặp trong các mô hình NFA cổ điển.

Dữ liệu phân tích thực nghiệm có thể được trình bày một cách trực quan thông qua biểu đồ cột thể hiện sự phân bổ chiều dài chuỗi theo 7 nhóm luật và bảng so sánh chi tiết số lượng LUT, Flip-Flop và BlockRAM tiêu thụ giữa các kiến trúc trước và sau khi áp dụng kỹ thuật chia sẻ chuỗi con. Những minh chứng định lượng này khẳng định tính khả thi của việc thương mại hóa giải pháp trên các dòng chip FPGA thế hệ mới.

Đề xuất và khuyến nghị

Nâng cấp thông lượng vi mạch: Chuyển đổi và tổng hợp thiết kế sang các thế hệ FPGA cao cấp hơn như Xilinx Kintex-7, Virtex-7 hoặc UltraScale để nâng xung nhịp hoạt động lên 300-400 MHz và mở rộng độ rộng bus dữ liệu lên 64-bit hoặc 128-bit, hướng tới mục tiêu đạt thông lượng 10 Gbps đến 40 Gbps trong lộ trình 6 đến 12 tháng, thực hiện bởi các nhóm nghiên cứu kiến trúc máy tính và bảo mật mạng.

Tối ưu hóa thuật toán băm Cuckoo: Nghiên cứu tích hợp cơ chế băm Cuckoo đa luồng 4 nhánh kết hợp bộ nhớ đệm thông minh nhằm nâng tỷ lệ lấp đầy bảng tra lên trên 90% và tiết kiệm thêm 20% đến 30% dung lượng BlockRAM trong thời gian 3 đến 6 tháng, do các kỹ sư vi mạch phụ trách.

Phát triển tính năng tái cấu hình động: Hoàn thiện công cụ biên dịch luật để hỗ trợ tính năng tái cấu hình một phần trong lúc hệ thống đang vận hành mà không cần ngắt kết nối mạng, hoàn thành trong vòng 9 tháng bởi các chuyên gia phần mềm nhúng và bảo mật.

Chuẩn hóa giao tiếp hệ thống công nghiệp: Tích hợp chuẩn giao tiếp AXI-4 Stream và PCIe Gen 3/4 để nhúng module xử lý thân gói tin vào các thiết bị tường lửa thế hệ mới và hệ thống UTM thương mại với độ trễ xử lý dưới 5 microsecond, thực hiện trong 12 tháng bởi các doanh nghiệp giải pháp phần cứng an ninh mạng.

Đối tượng nên tham khảo luận văn

Kỹ sư thiết kế phần cứng và vi mạch FPGA: Nắm vững phương pháp hiện thực các giải thuật băm phức tạp và máy trạng thái NFA tối ưu trên phần cứng, áp dụng trực tiếp cho các dự án xử lý tín hiệu số và tăng tốc phần cứng mạng.

Chuyên gia phân tích và kiến trúc sư an ninh mạng: Hiểu rõ cơ chế hoạt động tầng vật lý của hệ thống phát hiện xâm nhập, từ đó tối ưu hóa việc biên soạn tập luật Snort và xây dựng các chính sách phòng thủ chuyên sâu cho trung tâm điều hành an ninh SOC.

Học viên cao học và nghiên cứu sinh ngành Khoa học máy tính: Tiếp cận tài liệu tham khảo chuẩn mực về phương pháp kết hợp phần cứng và phần mềm, quy trình kiểm chứng hệ thống trên nền tảng phần cứng thực nghiệm NetFPGA.

Doanh nghiệp sản xuất thiết bị mạng: Khai thác kiến trúc bản quyền khả cấu hình để phát triển các dòng sản phẩm thiết bị phát hiện và ngăn chặn xâm nhập mạng chuyên dụng mang thương hiệu nội địa với hiệu năng cao và chi phí hợp lý.

Câu hỏi thường gặp

Tại sao luận văn lại kết hợp Cuckoo Hashing cho mẫu tĩnh và NFA cho mẫu động thay vì dùng chung một mô hình?

Mẫu tĩnh đòi hỏi tốc độ tra cứu tức thời với mật độ lưu trữ cao, điều mà Cuckoo Hashing đáp ứng hoàn hảo với thời gian hằng số O(1) qua bộ nhớ khối. Ngược lại, mẫu động chứa các biểu thức chính quy phức tạp cần khả năng xử lý nhiều nhánh rẽ đồng thời, do đó mô hình NFA song song trên phần cứng là lựa chọn tối ưu nhất.

Cơ chế chia sẻ trung tố và hậu tố trong máy trạng thái NFA giúp tiết kiệm tài nguyên như thế nào?

Thay vì tạo các chuỗi trạng thái lặp lại cho từng biểu thức riêng biệt, hệ thống tách các đoạn ký tự trùng nhau ra một khối chung và kết nối bằng thanh ghi dịch cấu hình SRL16, giúp giảm trực tiếp tới 42% LUT và 32% Flip-Flop trên chip FPGA.

Hệ thống xử lý các mẫu tĩnh dài hơn 16 byte bằng cách nào mà không làm tăng số lượng khối Cuckoo?

Các mẫu tĩnh có độ dài vượt quá 16 byte được giải thuật tự động phân đoạn thành các chuỗi con từ 1 đến 16 byte. Hệ thống sử dụng một bảng bộ nhớ liên kết T4 và tập thanh ghi đếm để theo dõi thứ tự xuất hiện liên tiếp của các đoạn mà không cần mở rộng phần cứng.

Kiến trúc này có thể xử lý các gói tin bị phân mảnh hoặc thay đổi thứ tự trên đường truyền mạng không?

Module Payload Processor trong đề tài tập trung vào việc quét nội dung gói tin sau khi đã được phân tích. Nhiệm vụ tái hợp luồng và gom các gói tin phân mảnh được đảm nhiệm bởi các khối tiền xử lý và bộ đệm trước khi đưa dữ liệu vào bus 8-bit của máy so trùng.

Làm thế nào để hệ thống cập nhật khi cơ sở dữ liệu luật Snort xuất hiện các mẫu tấn công mới?

Bộ công cụ phần mềm tự động phân tích và biên dịch luật sẽ quét tập luật mới, sinh ra các bảng nội dung bộ nhớ cập nhật và file cấu hình phần cứng mới, cho phép nạp lại dữ liệu vào các khối BlockRAM hoặc nạp lại bitstream lên FPGA nhanh chóng.

Kết luận

Đề tài đã thiết kế và hiện thực thành công kiến trúc xử lý nội dung gói tin hoàn chỉnh cho hệ thống phát hiện xâm nhập mạng trên phần cứng FPGA, đáp ứng toàn diện các ràng buộc cú pháp của tập luật Snort.

Giải pháp kết hợp thuật toán băm Cuckoo cho hơn 8.000 mẫu tĩnh giúp đảm bảo tốc độ tra cứu hằng số O(1) với kích thước tập ký tự lên đến 115 KB trong không gian bộ nhớ tối ưu.

Đề xuất sáng tạo về kỹ thuật chia sẻ mẫu con trung tố và hậu tố trên máy trạng thái NFA đã cắt giảm vượt bậc 42% LUT và 32% Flip-Flop, giải quyết triệt để nút thắt tài nguyên logic.

Hệ thống được kiểm chứng hoạt động chính xác ở tần số 125 MHz, đạt thông lượng xử lý mức Gigabit trên giây trên nền tảng phần cứng thực nghiệm NetFPGA.

Kết quả nghiên cứu mở ra hướng đi thực tiễn trong việc phát triển các thiết bị an ninh mạng băng thông cao; các nhà phát triển và đơn vị bảo mật có thể áp dụng ngay khung kiến trúc này để nâng cấp hạ tầng giám sát an toàn thông tin chuyên dụng.