Chương 1 GIỚI THIỆU ĐÈ TÀI 1.1 Tính cấp thiết của đề tài - _ Trong thời đại ngày nay, mang máy tinh đã phát triển với quy mô rat rộng trên toàn thé giới va VỚI tốc độ ngày càng nhanh. ĐI kèm với sự phát triển đó là sự đa dạng về các phương pháp tân công trên mạng. Chắng hạn như virus, spam, malwares, cũng như các hành vi độc hại khác. Không những thé các loại tân công này ngày một nguy hiểm, tinh vi hơn và các hậu quả do chúng gây ra ngày càng nghiêm trọng hơn.
Do đó, các phương pháp phòng chống là cần thiết hơn bao giờ hết. Tuy nhiên, do sự đa dạng trong hình thức tân công, các mẫu độc hại có thể xuất hiện tại bất cứ vị trí nào trong các gói tin, bài toán đặt ra là cần có một giải pháp có khả năng thâm nhập sâu vào toàn bộ nội dung của gói tin và so sánh với các dâu hiệu tan công năm trong một cơ sở dữ liệu được chọn lọc, tập hợp sẵn, để có thể báo động được các loại tan công một cách chính xác và hiệu quả hơn. Từ đó nảy sinh ra nhu cầu sử dụng hệ thống phát hiện xâm nhập mạng NIDS (Network Intrusion Detection System). - Do quy mô mạng ngày càng lớn, tốc độ mang máy tính hiện nay đã lên tới hàng chục Gbps và sẽ còn cao hơn nữa trong tương lai.
Do đó giải pháp NIDS trên phần mềm chỉ đạt được tốc độ vài trăm Mbps sẽ không thể xử lý và đáp ứng kịp tốc độ truyền dữ liệu. Thêm vào đó, các giải pháp phan mém không thé hoạt động hiệu quả với số lượng các luật và yêu câu về tài nguyên bộ nhớ có thể sẽ rất lớn. Vì vậy các giải pháp phần cứng (hardware) cho bài toán này là cần thiết và tat yêu. Với các đặc điểm thuận lợi thuộc về bản chất của mình thì việc hiện thực NIDS trên phân cứng đang là một lĩnh vực nghiên cứu ứng dụng rat mới mẻ và có nhiều tiềm năng phát triển trên thé giới.
- Do tính linh hoạt và mạnh mẽ trong khả nang biểu diễn các dạng tấn công, mã độc, các hệ thống NIDS mã nguồn mở chang han nhu SNORT va Bro tan dung cac biểu thức chính quy để biéu diễn các mẫu tân công trong tập dữ liệu của mình. Biéu thức chính quy cũng trở thành sự lựa chọn của các sản phẩm NIDS thương mại, chăng hạn TippingPoint X505 của hãng 3Com, một số thiết bị an ninh mang cua Cisco như Cisco IDS 4250, 4235. Bên cạnh đó, không chỉ giới hạn trong ứng dụng NIDS, các biểu thức chính quy còn được dùng trong các chương trình diệt virus (clamav), các bộ lọc tầng 7hệ thống, được tích hợp sẵn trong môi trường dòng lệnh và ứng dụng của các hệ điều hành Linux,. - Mac dù đã có nhiều cải tiến cho các phương pháp và giải thuật so trùng biểu thức chính quy trên phan mềm.
Tuy nhiên vơi sự gia tăng nhanh chóng vé số lượng và độ phức tạp của các biểu thức chính quy cũng như yêu cau ngày càng cao trong việc đáp ứng tốc độ | đường truyền mạng lên đến hàng Gigabit/s, việc giải quyết bài toán biểu thức chính quy trên các các bộ xử lý phục vụ mục đích chung (General Purpose Processor) tỏ ra không hiệu qua. Các nghiên cứu gần đây bat đầu tập trung vào việc xử lý các biéu thức chính quy trên các 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 là khả năng tái lập trình và khả năng xử lý song song. Do bản chất của bài toán tìm kiếm các mẫu tân công vốn có sự thay đổi và cập nhật thường xuyên, khả năng tái lập trình cho phép giảm đáng ké chi phi để triển khai hệ thống.
Bên cạnh đó với việc cho phép hiện thực các mạch logic có khả năng hoạt động một cách độc lập ở tốc độ cao, việc đáp ứng yêu cau tốc độ lên đến hang Gbps là hoàn toàn khả thi. - Với những ly do trên nhóm quyết định thực hiện đề tài này với mục tiêu xây dựng một hệ thống xử lý các mẫu tan công dựa trên biểu thức chính quy phục vụ cho hệ thống an ninh phát hiện xâm nhập mạng. Hệ thống sẽ được triển khai trên chip khả lập trình FPGA và cần phải đảm bảo các yêu cau về độ tin cậy, tính khả mở và tốc độ cao.2 Đôi tượng và mục tiêu nghiên cứu của đề tài - - Nghiên cứu khả năng hiện thực hệ thống so trùng biểu thức chính quy cho hệ thống an ninh mạng và củ thể ở đây là hệ thống phát hiện xâm nhập mạng. - _ Nghiên cứu các giải thuật so trùng biéu thức chính quy đã va dang được sử dụng từ đó lựa chọn ra giải thuật phù hợp dé có thể triển khai trên phần cứng kha lập trình FPGA.
- Ap dụng giải thuật vào bài toán cụ thé là tập luật biểu thức chính quy PCRE của chương trình phát hiện 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 và triển khai thé thong trên chip FPGA.Hệ thống phải khả mở, có khả năng triển khai và ứng dụng thực tế đạt tốc độ cao. - Do tính cập nhật liên tục của các tập mã độc, đề tài cũng nhắm đến việc xây dựng một công cụ tự động (software tool chain) cho phép dễ dang cập nhật và triển khai hệ thống.3 Tình hình nghiên cứu của đề tài Trên thế giới việc hiện thực so trùng biéu thức chính quy trên phan cứng đã và dang được nghiên cứu khá rộng rãi. Một trong những cách hiện thực hữu hiệu nhất trên các thiết bị FPGAs là sử dung mô hình máy trạng thái hữu hạn FSM (Finite State Machine). Việc triển khai trên FSM được chia thành hai cách tiếp cận chính là máy trạng thái đơn định Deterministic Finite Automata (DFA) và máy trạng thái không đơn định (Non-deterministic Finite Automata).
Năm 1982, Floyd va Ullman lần đầu tiên đưa ra mô hình NFA hiện thực trên các mang logic khả lập trình PLAs (Programmable Logic Arrays) [2] làm nền tảng cho các phương pháp hiện thực sau này. Họ chỉ ra rang khi chuyền đổi trực tiếp từ NFA sang mạch tích hop IC (Integrated Circuit), một máy N trạng thái cần không quá O(N) diện tích mạch. Năm 2001, Sidhu và Prasanna đề xuất các khối logic hiện thực NFA cơ bản cho các toán tử Concatenation (. Clark va Schimmel sử dụng giải pháp pre-decoding dé chia sẻ bộ so sánh ký tự (character comparator) va do đó đã giảm được khá nhiễu tài nguyên phân cứng [4].
Hai phương pháp này trở thành nguyên mẫu cho nhiều nghiên cứu sau này [5].7]- Năm 2008, Yang [8] đưa ra một kiến trúc mới cho việc biểu diễn NFA trên chip FPGA. Trong kiến trúc này các flipflop được đặt sau các mạch logic thay vì đặt trước như cua Sidhu va Prasanna. Nhờ đó thời gian so trùng ký tự có thể overlap lên thời gian chuyên trạng thái và kết quả là mạch đồng bộ được sinh ra sẽ có thể hoạt động ở tần số cao hơn. So với phương pháp NFA, thì các nghiên cứu cho phương pháp DFA ít được quan tâm hơn.
Năm 2003, Moscola [9] sử dung DFA để xử lý một số phan của biểu thức chính quy. Thiết kế của họ được hiện thực trên hệ thống FPX (Field programmable Port Extender). Họ hiện thực 21 biểu thức chính quy và đạt được tốc độ 1. Với thiết kế này ho đã giảm được đáng ké số lượng trạng thái yêu cầu của DFA.
Gần đây, nhóm nghiên cứu của học viện Kyushu [11] giới thiệu một thiết kế dạng lai ghép kết hợp giữa NFA va DFA. Họ sử dụng mô hình kiến trúc DFA để xử lý các chuỗi kí tự liên tục và các ký tự độc lập trong biêu thức chính quy, trong khi đó tận dụng các thanh ghi dịch và các kiến trúc NFA để xử lý các toán tử phức tạp. Đối với việc áp dụng cho bài toán của các biểu thức chính quy dựa theo cú pháp PERL (PCRE). Năm 2007, trong bài báo [12], Abhishek Mitra và các đồng sự đưa ra một phương pháp hiện thực NFA trên phan cứng băng cách chuyển đổi các PCRE (Perl-Compatible Regular Expression — loại biéu thức chính qui tương thích với ngôn ngữ Perl) opcodes được tạo ra bởi trình biên dịch PCRE từ tập luật của SNORT thành ngôn ngữ VHDL, tương tự cách hoạt động của cô máy PCRE dựa trên phần mềm.
Bài báo [5] đưa ra tất cả các khối PCRE cơ bản phục vụ cho việc xây dựng một câu trúc NFA phân cấp, đồng thời cũng đề nghị phương pháp hiện thực cho các khối lặp bắt buộc. Trong [13], Cheng-Hung Lin cùng nhóm nghiên cứu của mình đưa ra ý tưởng chia sẻ các prefix, infix và suffix. Các NFA có các infix và suffix chung nhiều nhất sẽ được gom lại một nhóm. Tuy nhiên, giải pháp này không được ứng dụng trong các nghiên cứu sau này.
Nam 2007, [1] Christopher áp dụng D2FA cho tập mẫu PCRE, bằng việc áp ung thiết kế pipline và việc nhân lên nhiều mạch logic để so trùng hệ thống của ông đạt được tốc độ lên đến 10Gbps. Tuy nhiên phương pháp này chỉ áp dụng được cho một số lượng nhỏ các PCRE. Trong nước, tính tới thời điểm thực hiện đề tài, vẫn chưa có công bố khoa học chính thức của các nhóm khác về đề tài nghiên cứu này.4 Hệ thong NIDS trên chip FPGA Hình 1.1 mô tả các thành phan chủ yếu của hệ thống NIDS trên chip FPGA. Các gói tin đến hệ thống sẽ được đưa qua một FIFO đệm, module Packet Collecter sẽ đọc nội dung của FIFO va truyền cho module Packet Decoder.
Packet Decoder phân tách các trường Header và Payload của gói tin gửi cho các module xử lý tương ứng. Kết quả xử lý sẽ được tổng hợp lại bởi module Management. “ NIDS N Events Packet Classification (Header Processing) i > Header | | Incoming Packet Alert Packet Packet Management | Collector Decoder 9 FIFO Payload | | ` „- Content Processing (PCRE matching) Events `- ⁄ Hình 1-1 Mô hình hệt hồng NIDS trên phần cứng FPGA Trong mô hình này hệ thống xử lý biéu thức chính quy thực hiện việc tìm kếm trong payload của gói tin các dấu hiệu tấn công, mã độc từ đó đưa ra cảnh báo kip thời. Hiện thực module so trùng nội dung gói tin biểu diễn bang biểu thức chính quy tận dung cơ chế xử lý song song của các thiết bi phần cứng là một trong những giải pháp góp phan nâng cao hiệu suất của toàn bộ hệ thống phát hiện xâm nhập mạng.
Chương 2 TỎNG QUAN HỆ THÓNG NIDS VÀ BIÊU THỨC CHÍNH QUY 2.1 Hệ thong phát hiện xâm nhập mạng (NIDS): 2.