1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu, thiết kế và hiện thực một hệ thống xử lý biểu thức chính quy trên fpga cho hệ thống an ninh mạng internet b

50 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 2,35 MB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH BÁO CÁO TỔNG KẾT KẾT QUẢ ĐỀ TÀI KH-CN CẤP TRƯỜNG Tên đề tài: NGHIÊN CỨU, THIẾT KẾ VÀ HIỆN THỰC MỘT HỆ THỐNG XỬ LÝ BIỂU THỨC CHÍNH QUY TRÊN FPGA CHO HỆ THỐNG AN NINH MẠNG INTERNET Mã số đề tài: T-KHMT-2011-28 Thời gian thực hiện: 3/2011 - 3/ 2012 Chủ nhiệm đề tài: TS Trần Ngọc Thịnh Thành phố Hồ Chí Minh, tháng năm 2012 Danh sách cán tham gia thực đề tài TS Trần Ngọc Thịnh - Bộ môn Kỹ Thuật Máy Tính – Khoa KH&KT MT – Đại học Bách Khoa Thành phố Hồ Chí Minh KS Trần Trung Hiếu - Bộ mơn Kỹ Thuật Máy Tính – Khoa KH&KT MT – Đại học Bách Khoa Thành phố Hồ Chí Minh KS Nguyễn Hịa Hưng - Bộ mơn Kỹ Thuật Máy Tính – Khoa KH&KT MT – Đại học Bách Khoa Thành phố Hồ Chí Minh Mục lục Chương GIỚI THIỆU ĐỀ TÀI 1.1 Tính cấp thiết đề tài 1.2 Đối tượng mục tiêu nghiên cứu đề tài 1.3 Tình hình nghiên cứu đề tài 1.4 Hệ thống NIDS chip FPGA Chương TỔNG QUAN HỆ THỐNG NIDS VÀ BIỂU THỨC CHÍNH QUY 2.1 Hệ thống phát xâm nhập mạng (NIDS): 2.1.1 Giới thiệu hệ thống NIDS 2.1.2 Phần mềm phát xâm nhập mạng SNORT 2.2 Biểu thức quy 2.2.1 Giới thiệu biểu thức quy 2.2.2 Biểu thức quy dựa ngơn ngữ Perl (PCRE) 2.3 Các phương pháp xử lý biểu thức quy 2.3.1 Dùng NFA để biểu diễn biểu thức quy Chương THIẾT KẾ PHẦN CỨNG 12 3.1 Kiến trúc tổng thể hệ thống 12 3.2 Giới thiệu module hệ thống 13 3.2.1 Module giao tiếp đầu 13 3.2.2 Module Detect Engine 14 3.2.3 Module giao tiếp cuối (PostInterface) 19 Chương THIẾT KẾ PHẦN MỀM 20 4.1 Mô tả phần mềm 20 4.2 Trích xuất PCRE 20 4.3 Định dạng PCRE xây dựng cấu trúc cú pháp 22 i 4.3.1 Định dạng PCRE 22 4.3.2 Xây dựng cú pháp 22 4.4 Xây dựng cấu trúc NFA 23 4.5 Ánh xạ NFA sang mơ hình ghép nối khối logic 24 4.5.1 Xây dựng khối Start Block, State Block End Block 24 4.5.2 Xây dựng khối CRB 25 4.5.3 Xây dựng khối BCCM 25 4.6 Tự động sinh code Verilog 26 Chương HIỆN THỰC HỆ THỐNG 27 5.1 NetFPGA Platform 27 5.1.1 Giới thiệu NetFPGA 27 5.1.2 Cấu trúc project NetFPGA 28 5.2 Kết thực hệ thống 28 5.2.1 Kết tổng hợp 28 5.2.2 Thiết lập môi trường thử nghiệm 30 5.2.3 Kết thử nghiệm 31 5.3 So sánh với kiến trúc so trùng khác 33 Chương TỔNG KẾT 35 6.1 Kết đạt 35 6.2 Hướng phát triển 36 6.3 Cơng trình cơng bố liên quan 36 TÀI LIỆU THAM KHẢO 37 PHỤ LỤC 39 A Các mở rộng tập PCRE 39 B Thống kê tập luật phần mềm phát xâm nhập mạng SNORT 41 ii Mục lục hình Hình 1-1 Mơ hình hệt hống NIDS phần cứng FPGA Hình 2-1 Vị trí hệ thống NIDS mơi trường mạng Hình 2-2 Mơ hình tổng quan kiến trúc SNORT Hình 2-3 Một luật SNORT Hình 2-4 Một máy trạng thái chấp nhận chuỗi „nice‟ Hình 2-5 DFA chấp nhận tất chuỗi bit chứa bit Hình 2-6 NFA chấp nhận chuỗi bit kết thúc 00 hay 0110 Hình 2-7 NFA chấp nhận ký tự đơn Hình 2-8 Kết nối hai biểu thức quy Hình 2-9 Luật luân phiên hai biểu thức quy 10 Hình 2-10 NFA biểu diễn * chấp nhận chuỗi gồm chuỗi rỗng 10 Hình 2-11 NFA biểu diễn ? chấp nhận không hay chuỗi đầu vào 10 Hình 2-12 NFA biểu diễn + chấp nhận số dương chuỗi đầu vào 10 Hình 2-13 NFA biểu diễn ((a*b)(c|d)) xây dựng theo quy tắc 11 Hình 3-1 Kiến trúc tổng quan máy so trùng biểu thức quy 12 Hình 3-2 Cấu trúc nhóm so trung biểu thức quy (REMG) 12 Hình 3-3 Cấu trúc Module giao tiếp đầu 13 Hình 3-4 Định dạng entry FIFO 13 Hình 3-5 Dạng sóng đầu module giao tiếp đầu 14 Hình 3-6 Mơ hình khối logic bản: a State Block; b Start Block; c End Block 15 Hình 3-7 Mơ hình tổng qt khối “^(a|b)c*$” 16 Hình 3-8 Kiến trúc khối CRB cho thức quy “(ab+c){2,10}” 16 Hình 3-9 Khối CRB cho biểu thức quy “/(mip){2,10}/” 17 Hình 3-10 BlockMemory chia sẻ PCRE #1: “/ab /” PCRE #2: “/a[^ab]/” 18 Hình 3-11 Cấu trúc Module giao tiếp cuối 19 Hình 4-1 Lược đồ hoạt động công cụ phần mềm 20 Hình 4-2 Cây cú pháp cho PCRE: “/a*[xyz](c|d)*(mip){2,10}\x3F/” sinh từ cơng cụ 23 Hình 4-3 Cấu trúc NFA sinh từ cú pháp (a) sau thực rút gọn (b) 23 iii Hình 4-4 Sơ đồ giải thuật thực việc ghép nối khối logic 24 Hình 4-5 Các bước xây dựng SubRegex Unit CouCom Unit từ chuỗi "/mip/,2,10" 25 Hình 5-1 Board NetFPGA nhìn trực diện 27 Hình 5-2 Mơi trường kiểm nghiệm hệ thống 30 Hình 5-3 Mơi trường kiểm nghiệm hệ thống 31 Hình 5-4 Biểu đồ tỷ lệ gói ứng với liệu cơng gói ngắn(200 ~ 400 bytes/packet) 32 Hình 5-5 Biểu đồ tỷ lệ gói với liệu cơng gói dài (1200 ~ 1400 bytes/packet) 32 iv Mục lục bảng Bảng 3.1 Các toán tử khối logic thực tương ứng 14 Bảng 3.2 Các thông số module đếm so sánh 17 Bảng 4.1 Bảng mô tả toán tử PCRE hỗ trợ 21 Bảng 5.1 Kết phân tích xây dựng phần mềm 29 Bảng 5.2 Thống kê kết tổng hợp ISE 10.1 29 Bảng 5.3 Bảng so sánh độ hiệu kiến trúc so trùng biểu thức quy khác 34 v Chương GIỚI THIỆU ĐỀ TÀI 1.1 Tính cấp thiết đề tài - Trong thời đại ngày nay, mạng máy tính phát triển với quy mơ rộng tồn giới với tốc độ ngày nhanh Đi kèm với phát triển đa dạng phương pháp công mạng Chẳng hạn virus, spam, malwares, hành vi độc hại khác Không loại công ngày nguy hiểm, tinh vi hậu chúng gây ngày nghiêm trọng Do đó, phương pháp phịng chống cần thiết hết - Có nhiều phương pháp triển khai áp dụng hệ thống mã hóa, tường lửa (firewall), anti-virus Tuy nhiên, đa dạng hình thức cơng, mẫu độc hại xuất vị trí gói tin, tốn đặt cần có giải pháp có khả thâm nhập sâu vào tồn nội dung gói tin so sánh với dấu hiệu công nằm sở liệu chọn lọc, tập hợp sẵn, để báo động loại công cách xác hiệu Từ nảy sinh nhu cầu sử dụng hệ thống phát xâm nhập mạng NIDS (Network Intrusion Detection System) - Do quy mơ mạng ngày lớn, tốc độ mạng máy tính lên tới hàng chục Gbps cịn cao tương lai Do giải pháp NIDS phần mềm đạt tốc độ vài trăm Mbps xử lý đáp ứng kịp tốc độ truyền liệu Thêm vào đó, giải pháp phần mềm hoạt động hiệu với số lượng luật yêu cầu tài ngun nhớ lớn Vì giải pháp phần cứng (hardware) cho toán cần thiết tất yếu Với đặc điểm thuận lợi thuộc chất việc thực NIDS phần cứng lĩnh vực nghiên cứu ứng dụng mẻ có nhiều tiềm phát triển giới - Do tính linh hoạt mạnh mẽ khả biểu diễn dạng công, mã độc, hệ thống NIDS mã nguồn mở chẳng hạn SNORT Bro tận dụng biểu thức quy để biểu diễn mẩu công tập liệu Biểu thức quy trở thành lựa chọn sản phẩm NIDS thương mại, chẳng hạn TippingPoint X505 hãng 3Com, số thiết bị an ninh mạng Cisco Cisco IDS 4250, 4235 Bên cạnh đó, khơng giới hạn ứng dụng NIDS, biểu thức quy cịn dùng chương trình diệt virus (clamav), lọc tầng hệ thống, tích hợp sẵn mơi trường dịng lệnh ứng dụng hệ điều hành Linux, … - Mặc dù có nhiều cải tiến cho phương pháp giải thuật so trùng biểu thức quy phần mềm Tuy nhiên vơi gia tăng nhanh chóng số lượng độ phức tạp biểu thức quy yêu cầu ngày cao việc đáp ứng tốc độ đường truyền mạng lên đến hàng Gigabit/s, việc giải tốn biểu thức quy các xử lý phục vụ mục đích chung (General Purpose Processor) tỏ không hiệu Các nghiên cứu gần bắt đầu tập trung vào việc xử lý biểu thức quy phần cứng khả lập trình (FPGA, ASIC, PLD,… ) - Chip khả lập trình FPGA (Field Programable Gate Array) có hai ưu điểm quan trọng khả tái lập trình khả xử lý song song Do chất tốn tìm kiếm mẫu cơng vốn có thay đổi cập nhật thường xuyên, khả tái lập trình cho phép giảm đáng kể chi phí để triển khai hệ thống Bên cạnh với việc cho phép thực mạch logic có khả hoạt động cách độc lập tốc độ cao, việc đáp ứng yêu cầu tốc độ lên đến hàng Gbps hoàn tồn khả thi - Với ly nhóm định thực đề tài với mục tiêu xây dựng hệ thống xử lý mẫu cơng dựa biểu thức quy phục vụ cho hệ thống an ninh phát xâm nhập mạng Hệ thống triển khai chip khả lập trình FPGA cần phải đảm bảo yêu cầu độ tin cậy, tính khả mở tốc độ cao 1.2 Đối tượng mục tiêu nghiên cứu đề tài - - Nghiên cứu khả thực hệ thống so trùng biểu thức quy cho hệ thống an ninh mạng củ thể hệ thống phát xâm nhập mạng Nghiên cứu giải thuật so trùng biểu thức quy sử dụng từ lựa chọn giải thuật phù hợp để triển khai phần cứng khả lập trình FPGA Áp dụng giải thuật vào tốn cụ thể tập luật biểu thức quy PCRE chương trình phát xâm nhập mã nguồn mở Snort từ tiến hành cải tiến, tối ưu giải thuật triển khai thệ thống chip FPGA.Hệ thống phải khả mở, có khả triển khai ứng dụng thực tế đạt tốc độ cao Do tính cập nhật liên tục tập mã độc, đề tài nhắm đến việc xây dựng công cụ tự động (software tool chain) cho phép dễ dàng cập nhật triển khai hệ thống 1.3 Tình hình nghiên cứu đề tài Trên giới việc thực so trùng biểu thức quy phần cứng nghiên cứu rộng rãi Một cách thực hữu hiệu thiết bị FPGAs sử dụng mơ hình máy trạng thái hữu hạn FSM (Finite State Machine) Việc triển khai FSM chia thành hai cách tiếp cận máy trạng thái đơn định Deterministic Finite Automata (DFA) máy trạng thái không đơn định (Non-deterministic Finite Automata) Năm 1982, Floyd Ullman lần đưa mô hình NFA thực mảng logic khả lập trình PLAs (Programmable Logic Arrays) [2] làm tảng cho phương pháp thực sau Họ chuyển đổi trực tiếp từ NFA sang mạch tích hợp IC (Integrated Circuit), máy N trạng thái cần khơng q O(N) diện tích mạch Năm 2001, Sidhu Prasanna đề xuất khối logic thực NFA cho toán tử Concatenation (.) , Kleene-Star (*), Union (|) FPGAs [3] Clark Schimmel sử dụng giải pháp pre-decoding để chia sẻ so sánh ký tự (character comparator) giảm nhiều tài nguyên phần cứng [4] Hai phương pháp trở thành nguyên mẫu cho nhiều nghiên cứu sau [5],[6],[7] Năm 2008, Yang [8] đưa kiến trúc cho việc biểu diễn NFA chip FPGA Trong kiến trúc flipflop đặt sau mạch logic thay đặt trước Sidhu Prasanna Nhờ thời gian so trùng ký tự overlap lên thời gian chuyển trạng thái kết mạch đồng sinh hoạt động tần số cao So với phương pháp NFA, nghiên cứu cho phương pháp DFA quan tâm Năm 2003, Moscola [9] sử dụng DFA để xử lý số phần biểu thức quy Thiết kế họ thực hệ thống FPX (Field programmable Port Extender) Họ thực 21 biểu thức quy đạt tốc độ 1.18Gbps Kumar [10] đưa số chỉnh sửa cho phương pháp DFA truyền thống đề xuất mơ hình DFA với độ trễ ngõ nhập (Delayed Input DFA – D2FA) Với thiết kế họ giảm đáng kể số lượng trạng thái yêu cầu DFA Gần đây, nhóm nghiên cứu học viện Kyushu [11] giới thiệu thiết kế dạng lai ghép kết hợp NFA DFA Họ sử dụng mô hình kiến trúc DFA để xử lý chuỗi kí tự liên tục ký tự độc lập biểu thức quy, tận dụng ghi dịch kiến trúc NFA để xử lý toán tử phức tạp Đối với việc áp dụng cho tốn biểu thức quy dựa theo cú pháp PERL (PCRE) Năm 2007, báo [12], Abhishek Mitra đồng đưa phương pháp thực NFA phần cứng cách chuyển đổi PCRE (Perl-Compatible Regular Expression – loại biểu thức qui tương thích với ngơn ngữ Perl) opcodes tạo trình biên dịch PCRE từ tập luật SNORT thành ngôn ngữ VHDL, tương tự cách hoạt động cỗ máy PCRE dựa phần mềm Bài báo [5] đưa tất khối PCRE phục vụ cho việc xây dựng cấu trúc NFA phân cấp, đồng thời đề nghị phương pháp thực cho khối lặp bắt buộc Trong [13], Cheng-Hung Lin nhóm nghiên cứu đưa ý tưởng chia sẻ prefix, infix suffix Các NFA có infix suffix chung nhiều gom lại nhóm Tuy nhiên, giải pháp không ứng dụng nghiên cứu sau Năm 2007, [1] Christopher áp dụng D2FA cho tập mẫu PCRE , việc áp ụng thiết kế pipline việc nhân lên nhiều mạch logic để so trùng hệ thống ông đạt tốc độ lên đến 10Gbps Tuy nhiên phương pháp áp dụng cho số lượng nhỏ PCRE Trong nước, tính tới thời điểm thực đề tài, chưa có cơng bố khoa học thức nhóm khác đề tài nghiên cứu khơng có luật trùng lắp với nhau, phải sử dụng tất tốn tử mà cơng cụ phần mềm hỗ trợ Một chương trình viết Java tiến hành phân tích, xây dựng mơ hình máy trạng thái NFA tương ứng, sau chuyển sang mơ hình phần cứng phù hợp, cuối sinh code Verilog để sẵn sàng cho việc tổng hợp lập trình FPGA Như trình bày trên, kiến trúc máy so trùng biểu thức quy sử dụng mơ hình máy trạng thái, kí tự chuyển trạng thái lưu trữ Block Memory, sau truy xuất trình thực thi Tuy nhiên việc sử dụng chung vùng nhớ RAM cho tất trạng thái hệ thống làm ảnh hưởng đến hiệu xuất so trùng kí tự, nhóm chia vùng nhớ kí tự thành phần phần tương ứng nhóm PCRE thuộc vào tập luật định REMG0 REMG1 REMG2 REMG3 REMG4 No of No of No of no of No of Ruler sets PCRE NFA Char State CRB 47 1116 44 583 22 IMAP 52 2838 84 1471 Backdoor 64 2566 118 1347 Backdoor 50 1778 66 920 19 Chat,fpt,pop3 43 1640 81 850 13 Sql, voip, webactive Bảng 5.1 Kết phân tích xây dựng phần mềm Bảng 5.1 thống kê kết trình phân tích xây dựng mơ hình máy so trùng biểu thức quy phần mềm 256 PCRE nhóm thành REMG với số lượng cụ thể pcre cột Tiếp theo, PCRE chuyển thành máy trạng thái NFA, tổng số trạng thái NFA trình bày cột Máy trạng thái NFA sau chuyển thành module phần cứng để lập trình FPGA, cột số Block State, cột số khối CRB Các kí tự chuyển trạng thái chuyển sang dạng bit lưu trữ Block Ram, cột số kí tự phân biệt hay chiều rộng RAM nhóm PCRE tương ứng Feature Slices Flipflops input LUTs BRAMs Maximum Clock Throughput Amount 3.517 5.330 6.730 17 Percentage 14% 11% 14% 7% 172 MHz 1.376 Gbps Bảng 5.2 Thống kê kết tổng hợp ISE 10.1 Kết thúc trình phân tích xây dựng module phần cứng, chương trình tự động sinh file verilog HDL biên dịch trực tiếp ISE 10.1 Các module Verilog mô sử dụng phần mềm isim Xilinx để đảm bảo module hoạt động chức 29 thiết kế Sau sử dụng phần mềm Xilinx Synthesis Technology (XST) để tiến hành tổng hợp trước đổ xuống board NetFPGA Bảng 5.2 bên kết tổng hợp XST máy so trùng biểu thức quy Kết cho thấy 256 PCRE chiếm 3517 Slices, kí tự chuyển trạng thái chiếm 17 BRAMs Kết phân tích thời gian tỏ khả quan, máy so trùng hoạt động mức xung clock 172 MHz Bởi lẽ chu kỳ xung clock, máy so trùng có khả xử lý kí tự tương đương với bit liệu, throughput hỗ trợ hệ thống đạt 1.3Gb/s 5.2.2 Thiết lập môi trường thử nghiệm NetFPGA board packet Incoming Packet Packet Collector payload Packet Decoder Alert Packet results Content Processing (PCRE matching) Management FIFO Hình 5-2 Mơi trường kiểm nghiệm hệ thống Hình 5.2 mơ tả mơ hình thử nghiệm hệ thống so trung biểu thức quy board NetFPGA Các Module phụ Packet Collector Packet Decoder thêm vào để nhận gói tin phân tách trường payload cho module so trùng PCRE Module Management nhận kết trả về, đóng gói gói UDP gửi máy chủ quản lý Như trình bày phần trên, luật VRT hoàn chỉnh phải đảm bảo so trùng xác nội dung phần header phần payload gói tin Tuy nhiên, với mục tiêu kiểm nghiệm chức so trung biểu thức quy, phần so trùng header hay phân loại header gói tin mặc định xem ln ln so khớp Do đó, trường hợp gói tin xem so trùng thành cơng với luật nội dung gói tin có chứa chuỗi so khớp với option PCRE định nghĩa thân luật Để đo đạc so sánh hiệu suất hệ thống với phần mềm phát xâm nhập mạng Snort, nhóm áp dụng mơ hình kết nối hình 5.3 Một máy đóng vai trị máy cơng sử dụng chương trình TCPReplay để phát lại gói tin độc hại chuẩn bị trước file pcap Trên máy server cài chương trình phát virus nguồn mở Snort phiên 2.9 Cả Server, NetFPGA Attacker nối chung vào HUB Khi nội dung công truyền vào môi trường mạng Attacker, NetFPGA Snort nhận gói tin xử lý Các kết thu máy Server máy admin phân tích so sánh để kiểm tra tính đắn tốc độ xử lý hệ thống 30 Experiment Environment IBM Server Snort 2.9 Admin ` NetFPGA Board NIDS System eth0 eth1 HUB ` Attacker TCPReplay Hình 5-3 Mơi trường kiểm nghiệm hệ thống 5.2.3 Kết thử nghiệm Ở nhóm thực hai đợt kiểm tra với file pcap chứa mã độc với tỷ lệ khác nhau: 25%, 50%, 75%, 100% mã độc Đợt đầu thực với gói tin có chiều dài ngắn từ 200-400 bytes, đợt hai thực với gói tin với chiều dài dài từ 1200-1400 bytes Các kết thực nghiệm thể hai hình 5.4 5.5 Do hạn chế phần mềm replay gói tin, tốc đối đa đạt cho gói tin ngắn ~500Mbs cịn gói tin dài ~850Mbps Trong hai trường hợp giải pháp so trùng biểu thức quy phần mềm vượt tốc độ 50Mbps mà khơng drop gói Tỉ lệ drop gói Snort tăng lên tốc độ replay tỉ lệ gói có chứa mã độc tăng Tại tốc độ replay 150Mbps, 50% gói tin bị drop phần mềm, số lên đến 90% tốc độ đạt 500Mbps Hệ thống so trùng FPGA đạt tốc độ tương đối ổn đinh cho tỉ lệ drop gói thấp nhiều so với phần mềm, khoảng 300Mbps khơng drop gói drop 50% tốc độ tối đa 31 Hình 5-4 Biểu đồ tỷ lệ gói ứng với liệu cơng gói ngắn(200 ~ 400 bytes/packet) Hình 5-5 Biểu đồ tỷ lệ gói với liệu cơng gói dài (1200 ~ 1400 bytes/packet) Nguyên nhân cho việc drop gói NetFPGA giải thích khối Management mơ hình thử nghiệm hình 5.2 Khối thực việc đóng gói kết trả từ máy so trùng biểu thức quy kết hợp với phần nội dung từ payload gói tin có chứa mã độc Do chưa áp dụng chế pipeline nên số lượng công lớn liên tục overhead gói UDP tăng lên khiến cho số gói tin bị bỏ 32 5.3 So sánh với kiến trúc so trùng khác Các hệ thống xử lý biểu thức quy trước chủ yếu tập trung vào xử lý toán tử Đối với toán tử lặp ràng buộc, kiến trúc trước sử dụng phương pháp lặp để thực Ví dụ biểu thức quy “ a{,5}”, tương đương với chuỗi có số ký tự a không vượt qua 3, thực lại thành “a?|aa|aaa|aaaa|aaaaa” Phương pháp đơn giản tốn nhiều tài nguyên (độ phức tạp tài nguên O(n)) để thực đặc biệt toán tử có số lần lặp lại lớn Kiến trúc đề xuất nhóm sử dụng khối CRB để xử lý tốn tử lặp ràng buộc, phương pháp tích kiêm nhiều tài ngun tốn tử có số lần lặp tương đối lớn (độ phức tạp tài nguên O(logn), nhiên có nhược điểm độ trễ cao khối đếm so sánh (CouCom) từ dẫn đến giảm tốc độ xử lý hệ thống Một ưu điểm khác hệ thống hỗ trợ cú pháp PCRE Thiết kế hỗ trợ hầu hết tốn tử PCRE ngoại trừ toán tử truy vấn ngược Toán tử vấn đề bỏ ngỏ nhiều nghiên cứu gần đân giớ, giải pháp đưa chưa thỏa mãn tính đầy đủ làm giảm tốc độ hệ thống Để so sánh với kiến trúc so trùng biểu thức quy trước đây, nhóm chọn 513 luật PCREs từ tập luật Snort chia làm nhóm REMG Các luật khơng chưa toán tử lặp ràng buộc bao gồm tốn tử biểu thức quy Kết thực so sánh dựa công thức tính độ hiệu (Performance Efficiency Metric –PEM) Ưu điểm công thức xét đến hai yếu tố quan trọng: tốc độ liệu (throughput) mạch tài nguyên tiêu tốn để thực mạch Cơng thức sử dụng rộng rãi nhiều nghiên cứu để so sánh hiệu suất thiết kế phần cứng khả lập trình (FPGA, ASIC) Throughput Gbps Area Per Character Throughput (Gbps) = MemorySize (Bytes) # LogicCells + 12 # Characters 𝐏𝐄𝐌 = Bảng 5.3 bên so sánh độ hiệu kiến trúc so trùng biểu thức quy tảng khác Độ hiệu tài nguyên tính dựa số lượng phần tử khả lập trình cần thiết để thực ký tự so trùng, tốc độ xử lý liệu hệ thống tính dựa tần số khả hoạt động độ rộng bus liệu Ở thiết kế có khả xử lý ký tự cho chuy kỳ xung clock nên throughput lân tần số tối đa mạch Đối với biểu thức quy bản, khơng sử dụng khối khối đếm so sánh (CouCom) hệ thống so trùng nhóm đạt tần số 310Mhz tương đướng với throughput 2.48Gpbs Kết cho thấy hệ thống có độ hiệu cao thiết kế khác 33 FSM Device #Char Logic Memory cells (Kbit ) Throu- Area ghput per (Gbps) char PEM Proposed Method NFA Virtex2P-50 10,552 13,030 213 2.48 1.45 1.71 Bispo et al [8] NFA Virtex2 19,580 25,074 1.28 1.56 Barker et al [10] DFA Virtex4-100 16,715 6,794 6,000 1.4 4.17 0.34 Clark et al [4] NFA Virtex2-8000 17,537 29,281 1.67 1.2 Brodie et al [11] DFA Virtex 11,126 247,000 3,456 25 0.16 Bảng 5.3 Bảng so sánh độ hiệu kiến trúc so trùng biểu thức quy khác 34 Chương TỔNG KẾT 6.1 Kết đạt - Biểu thức quy đóng vai trò quan trọng hệ thống phát xâm nhập mạng tính mềm dẻo khả định nghĩa cách xác đầy đủ dấu hiệu công nguy hiểm Trong việc thực biểu thức quy phần mềm gặp phải khó khăn giới hạn tốc độ, việc thực máy so trùng biểu thức quy phần cứng FPGA mở hương tiếp cập giúp nâng cao hiệu suất toàn hệ thống phát xâm nhập mạng - Để đánh giá tính khả thi việc xử lý biểu thức quy FPGA Nhóm tìm hiểu đánh giá nhiều nghiên cứu giới chủ đề này, từ rút phương pháp tiếp cận phù hợp, sử dụng máy trạng thái NFA để biểu diễn biểu thức quy - Nhóm tiến hành nghiên cứu đặc trưng biểu thức quy nói chung biểu thức quy dựa ngơn ngữ PERL (PCRE) nói riêng PCRE vốn sử dụng phổ biến việc định nghĩa dấu hiệu công phần mềm phát xâm nhập mã nguồn mở Snort Từ tìm hiểu nhóm đề xuất thiết kế phù hợp để giải toán tử mở rộng PCRE - Thiết kế dựa khối logic cho phép linh hoạt xây dựng máy so trung biểu thức quy cho luật cụ thể Các máy so trùng hoạt động song song từ nâng cao hiệu suất hệ thống - Nhóm hồn thành phần mềm cho phép tự động xây dựng hệ thống từ tập biểu thức quy cho trước Phần mềm có khả tự động phân tích, dựa đặc điểm biểu thức mà xây dựng lên mơ hình ghép nối phần cứng phù hợp, sau sinh file Verilog cho phép tổng hợp thực hệ thống - Nhóm áp dụng thiết kế vào tập luật VRT Snort, lựa chọn số luật tiêu biểu để đánh giá hiệu thiết kế Kết tổng hợp sử dụng phần mềm kiểm tra phần cứng cho thấy hệ thống hoạt động xác có khả hỗ trợ tốc độ mạng lên đến 1.3 Gigagbit/s - Các so sánh mặt kiến trúc số nghiên cứu trước cho thấy hệ thống xử lý biểu thức quy nhóm đạt hiệu cao với tiêu chí kết hợp tốc độ xử lý tài nguyên tiêu tốn - Để đánh giá tính khả thi thiết kế ghép nối vào hệ thống phát xâm nhập mạng, nhóm tiến hành xây dựng mơ hình thử nghiệm kiểm tra với gói tin chứa mã độc mơi trường mạng thực Kết bước đầu cho thấy khả ứng dụng hệ thống so trùng 35 biểu thức quy chip FPGA Với tỉ lệ drop gói thấp băng thơng cao so với phần mềm Snort 6.2 Hướng phát triển - Kết nhóm xem phần tảng cho việc xử lý biểu thức quy FPGA, bước hoàn thiện tối ưu hệ thống Một số hướng để cải tiến hệ thống kể đến như: việc chia sẻ số phần (prefix, infix, subfix) biểu thức quy với để tối ưu tài nguyên phần cứng, việc thực phân hoạch áp dụng chế pipeline để nâng cao hiệu suất hệ thống - Bên cạnh hệ thống phát xâm nhập mạng, biểu thức quy cịn đóng vai trị quan trọng nhiều ứng dụng khác hệ thống đánh dấu html engine, hệ thống xác thực liệu, hệ thống tìm kiếm, chương trình chống virus, firewall,… Việc áp dụng hệ thống xử lý biểu thức quy FPGA cho ứng dụng giải pháp hữu hiệu để giúp tăng tốc trình xử lý 6.3 Cơng trình cơng bố liên quan - Hieu Tran Trung, Hung Nguyen Hoa, Thinh Tran Ngoc and Shigenori Tomiyama, Efficient Regular Expression Matching for Network Intrusion Detection System, in Proceedings of IEEE 3rd International Conference on Signal Processing Systems, August 27-28, 2011, Yantai, China, vol 3, pp 9-13 Tp.HCM, ngày tháng năm …… Phòng KHCN & QHQT Tp.HCM, ngày tháng năm… Chủ nhiệm đề tài (ký ghi rõ họ tên) 36 TÀI LIỆU THAM KHẢO A Các báo khoa học: [1] Christopher L Hayes and Yan Luo, ”DPICO: A High Speed Deep Packet Inspection Engine Using Compact Finite Automata,” in Proceeding of the 3rd ACM/IEEE Symposium on Architecture for networking and communications systems (ANCS07), pp 195-203, 2007 [2] R.W Floyd and J D Ullman, ”The Compilation of Regular Expressions into Integrated Circuits,” Journal of the ACM (JACM), vol 29, no 3, July 1982, pp 603-622 [3] R Sidhu, and V K Prasanna, ”Fast Regular Expression Matching Using FPGAs,” in Proceedings of the 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM‟01), pp 277-238, 2001 [4] C.R Clark and D.E Schimmel, "Scalable pattern matching for high speed networks", FCCM '04: Proceedings of the 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, 2004., April 2004, pp 249-257 [5] I Sourdis, J Bispo, J M P Cardoso, and S Vassiliadis, ”Regular expression matching for reconfigurable packet inspection,” in Proceedings of the IEEE nternational Conference on Field Programmable Technology (FPT‟06), 2006, pp 119-126 [6] C R Clark, and D E Schimmel, ”Scalable Parallel Pattern-Matching on High-Speed Networks,” in Proceedings of 12th IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM‟04), IEEE Computer Society Press, pp 249257, 2004 [7] B L Hutchings, R Franklin, and D Carver, ”Assisting Network Intrusion Detection with Reconfigurable Hardware,” in Proceeding of the 10th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM02), IEEE Computer Society, p 111, 2002 [8] Yi-Hua E Yang, W Jiang, and V K Prasanna,”Compact architecture for highthroughput regular expression matching on FPGA,” in Proceedings of the 4th ACM/IEEE Symposium on Architectures for Networking and Communications Systems, pp 227-238, 2008 [9] J.Moscolar J Lockwood, R.P Loui, and M Pachos, ”Implementation of a contentscanning module for an internet firewall,” in Filed-Programmable Custom Computing Machines (FCCM03) 11th Annual IEEE Symposium on, pp 31-38, 2003 [10] S Kumar, S Dharmapurikar, F Yu, P Crowley, and J Turner, ”Algorithms to accelerate multiple regular expressions matching for deep packet inspection,” In Proceedings 37 of the 2006 conference on Applications, technologies, architectures, and protocols for computer communications (SIGCOMM ‟06) [11] H Nakahara, T Sasao, and M Matsuura, ”A regular expression matching circuit based on a decomposed automaton,” in Proceedings of the 7th international conference on Reconfigurable computing: architectures, tools and applications (ARC‟11), pp 16-28, 2011 [12] Abhishek Mitra, Walid Najjar, and Laxmi Bhuyan, “Compiling PCRE to FPGA for accelerating SNORT IDS", ANCS '07: Proceedings of the 3rd ACM/IEEE Symposium on Architecture for networking and communications systems (New York, NY, USA), ACM, 2007, pp 127-136 [13] C.-H Lin, C.-T Huang, C.-P Jiang and S.-C Chang, “Optimization of Pattern Matching Circuits for Regular Expression on FPGA,” in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol 15, no 12, pp 1303-1310, Dec 2007 [14] M Faezipour, and M Nourani, “Constraint Repetition Inspection for Regular Expression on FPGA,” 16th IEEE Symposium on High Performance Interconnects, pp 111118, 2008 B Các trang web tài liệu khác [15] Snort NIDS/NIPS http://www.SNORT.org/ [16] http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form [17] http://www.garshol.priv.no/download/text/bnf.html#id1.2 38 PHỤ LỤC A Các mở rộng tập PCRE Các toán tử neo Các ký tự neo cho phép mơ tả cụ thể vị trí chuỗi cần tiềm kiếm chuỗi kiểm tra:  Ký tự ^: biểu thức quy so trùng nằm đầu gói tin hay đầu chuỗi  Ký tự $: biểu thức quy so trùng nằm cuối gói tin hay đầu chuỗi Các cờ Các cờ cho phép thay đổi hành vi kí tự tốn tử chuỗi PCRE cho trước Các cờ thông dụng cú pháp PCRE mô tả đây: Cờ s Mô tả so trùng tất ký tự m i ^, $ so trùng sau trước ký tự newline biểu thức quy khơng phân biệt hoa thường * Bảng Một số cờ thông dụng SNORT *- Kí tự „ „ khơng có s so trùng với ký tự khác kí tự newline („\n‟) Các lớp ký tự đặc trưng Các lớp ký tự định nghĩa hay nhiều ký tự bao cặp dấu ngoặc vng [] Các siêu ký tự đặc biệt có thề đính kèm lớp Lớp [abc] Mơ tả So trùng a b c, biểu diễn tương đương (a|b|c) [^abc] Lớp phủ định, so trùng tất cà ký tự ngoại trừ ký tự thuộc lớp So trùng tất ký tự nằm phạm vi liệt kê lớp [a-z] Bảng Các lớp đặc trưng PCRE Khi muốn so trùng ký tự chữ hoa chữ thường ta dùng biểu thức lớp thứ với kết hợp ký tự chữ hoa chữ thường.Ví dụ, [b-X] so trùng tất ký tự từ b đến x trường hợp chữ hoa chữ thường Các dãy ký tự số mô tả theo cú pháp này, ví dụ [4 – 8] so trùng hoặc hoặc 39 Bằng cách kết hợp lớp ta biểu diễn mộ mẩu cần tìm kiếm súc tích đọng so với cách truyền thống sử dụng toán tử thay („|‟) Chẳng hạn [b-h3-7Xy] tương đương với ((b|c|d|e|f|g|h)|(3|4|5|6|7)|X|y) Toán tử lặp ràng buộc Bên cạnh toán tử lượng tử (*, ? , +), để định nghĩa số lần lặp định mẩu cần kiểm tra, PCRE mở rơng thêm tốn tử lặp ràng buộc Trong tập rule cùa SNORT sử dụng bốn loại toán tử lặp liệt kê bảng bên Ngày có nhiều luật SNORT sử dụng tốn tử lặp ràng buộc để mô tả mẫu độc hại Theo thống kê, vào tháng 5/2003 có khoảng 65 rule sử dụng toán tử này, ba năm sau số lượng gia tăng lên 500 rule vào 4/2006, vượt mức 1500 rule năm 2007 Tốn tử Tên Mơ tả Regex{n} Exactly Biểu thức lặp lại xác n lần Regex{,n} AtMost Biểu thức lặp nhiều n lần Regex{n,} AtLeast Biểu thức lặp n lần Regex{n,m} Between Biểu thức lặp số lần khoảng từ n đến m Bảng Các loại toán tử lặp ràng buộc Dãy ký tự thoát Dãy ký tự thoát định nghĩa bắt đầu dấu \ theo sau hay nhiều định danh Dãy ký tự biểu diễn ký tự đơn bảng mã ASCII không thề in mở rộng hay siêu ký thự đặc biệt dành toán từ biều thức quy hay chí biểu diễn lớp ký tự cách súc tích Chuỗi kí tự \xFF sử dụng phổ biến tập luật SNORT Nó sử dụng để so trùng ký tự ASCII với mã định số hex FF Ví dụ \x38 so trùng ký tự „&‟ mã ASCII „&‟ 0x38 Ký hiệu Mô tả \xFF So trùng ký tự ASCII với mã định số hex FF \w So trùng tất cà ký tự chữ số, tương đương [a-zA-Z0-9] \d So trùng tất cà ký tự số, tương đương [0-9] \s So trùng ký tự khoảng trắng \r So trùng ký tự CR 40 \n So trùng ký tự LF \t So trùng tab \? So trùng ký tự sau ký tự \ Bảng Dãy ký tự thoát sử dụng SNORT Ký tự cịn dùng để so trùng ký tự đặc biệt, ký tự bị bỏ qua biểu thức, ví dụ dấu ngoặc đơn „(„ Bằng cách thêm „\‟ trước „(„ ký tự „(„ so trùng ký tự bình thường Ngồi ra, ta sử dụng ký tự lớp ký tự để định nghĩa lớp ký tự mới.Ví dụ, biểu thức [\d\s] so trùng tất ký tự số khoảng trắng, tương đương với biểu thức (\d|\s) Tham chiếu ngược Đây mở rộng bật PCRE so với biều thức quy thơng thường Một tham chiếu ngược chẳng hạn \1, \2 so trùng chuỗi ứng với kết lần so trùng trước dấu ngoặc Chẳng hạn (bin|tmip)\1 so trùng binbin tmiptmip không so trùng bintmip B Thống kê tập luật phần mềm phát xâm nhập mạng SNORT Để phát gói tin chưa mã độc, hay hành vi công mạng, SNORT dựa vào tập luật cung cấp Sourefire (Vunlnerabiity Research Team – VRT) VRT tập luật chuẩn hóa, chứng nhận cấp giấy phép Sourcefire Tập luật VRT cung cấp sở cho nhiều nghiên cứu thực hệ thống xâm nhập mạng giới Ở nhóm sử dụng tập luật VRT phát hành vào 10/2010 để tiến hành phân tích thực hệ thống Snort Rule Pcre Reduced Pcre 4531 2031 1747 Enable 4889 2521 2060 Disable 9420 4552 3807 Total Bảng Thống kê số lượng luật snort phiên 2.9 cập nhật ngày 10/2010 Cùng với gia tăng mẫu độc hại môi trường mạng thực tế, tập luật VRT không ngừng gia tăng số lượng Bảng 5.1 thống kê số lượng luật tập VRT cho phiên Snort 2.9 Theo có 9400 luật nói chung 4500 luật sử dụng PCRE nói riêng Bởi số lượng lớn nên việc sử dụng đồng thời luật gây áp lực lớn lên Snort, làm giảm hiệu xuất hệ thống phát xâm nhập Do đó, mặc định VRT kích hoạt 4531 luật, luật tập trung vào dấu hiệu công xuất phổ biến 41 3000 2500 2000 1500 1000 500 Hình Biểu đồ thống kê luật PCRE luật chung Snort 18 tập luật tiêu biểu Một luật PCRE sử dụng kết hợp với nhiều tùy chọn khác để định nghĩa mẫu cơng hồn chỉnh, có luật PCRE trùng Ở giai đoạn thử nghiệm, để tránh việc dư thừa q trình thực nhóm tiến hành lọc tất luật trùng nhau, bảng cho thấy có 1747 luật PCRE khác kích hoạt, 2060 luật PCRE khác toàn tập luật VRT Toán tử Số lượng Kết hợp 308.947 Lượng tử * 32.051 Thay | 13.531 Lượng tử ? 11.874 Lượng tử + 4.348 Lăp bắt buộc {} 2.645 Cờ bắt đầu ^ 1.425 Lăp bắt buộc {} Số lượng Chính xác {n} 771 Khoảng {n,m} 43 Ít {n,} 1.829 Nhiều {,n} Cờ Số lượng s 4.102 m 1.851 i 4.083 Bảng Bảng thống kê số lượng toán tử cờ luật PCRE Quan sát tập VRT, nhóm nhận thấy có 54 tập luật khác, tập đặc trưng cho dạng công cụ thể lưu trữ file riêng có tên mở rộng rulex Hình 5.3 thống kê số lượng luật nói chung luật có chứa option PCRE 18 tập luật phổ biến VRT 42 10000 1677 1000 100 10 550 66 60 29 67 45 13 20 35 Atleast 8 Exactly Hình Biểu dồ thống kế số lần lặp bắt buộc toán tử Atleast Exactly Bảng thống kê số lượng toán tử cở sử dụng toàn tập pcre VRT Trong tốn tử kết hợp chiếm số lượng lớn nhất, toán tử lượng tử thay Có thể dễ dàng thấy cờ “i” chiếm số lượng lớn luật pcre, (4.083 4552), điều lợi thực việc chia sẻ kí tự Bram Block Tốn tử lặp bắt buộc chiếm số lượng lớn, gần 2700 tốn tử, tập chung chủ yếu vào tốn tử lặp xác số lần định Hình thống kê tần suất lặp sử dụng toán tử lặp bắt buộc: lặt (Atleast) lặp xác (Exactly) Qua thấy lượng lớn tốn tử lặp sử dụng tần suất lặp lớn (1000 - 1200), điều cho phép việc sử dụng khối CRB để thực hiệu 43 ... ví dụ sau Một số ví dụ:  Biểu thức ab|cd so trùng chuỗi „ab‟, „cd‟  Biều thức ab* so trùng chuỗi „a‟, „ab‟, „abb‟, „abbb‟, „abbb b? ??  Biểu thức ab+ so trùng chuỗi „ab‟, „abbb‟, „abb…bb‟ không... mục tiêu nghiên cứu đề tài - - Nghiên cứu khả thực hệ thống so trùng biểu thức quy cho hệ thống an ninh mạng củ thể hệ thống phát xâm nhập mạng Nghiên cứu giải thuật so trùng biểu thức quy sử dụng... thiệu biểu thức quy 2.2.2 Biểu thức quy dựa ngơn ngữ Perl (PCRE) 2.3 Các phương pháp xử lý biểu thức quy 2.3.1 Dùng NFA để biểu diễn biểu thức quy Chương THIẾT KẾ

Ngày đăng: 28/01/2021, 22:42

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w