Trong phương pháp phân tích và tong hợp luật, luận văn trình bày quy trìnhvà phát triển các công cụ cho phép tự động phân tích và xây dựng máy so trùngđa mẫu từ tập luật của hệ thống phá
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRAN TRUNG HIẾU
XỬ LÝ NỘI DUNG GÓI TIN CHO HỆ THÓNGPHÁT HIỆN XÂM NHAP MẠNG TREN FPGA
LUẬN VÁN THẠC SĨ
TP HO CHI MINH, tháng 6 năm 2013
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠITRUONG ĐẠI HỌC BACH KHOA —DHQG -HCMCán bộ hướng dẫn khoa học : TS Trần Ngọc Thịnh « «<<:Cán bộ chấm nhận xét 1: TS Lê Thành Sách - - s5 +sssszxzsx£Cán bộ cham nhận xét 2 : TS Nguyễn Minh Sơn -5-5-
Luận văn thạc sĩ được bảo vệ tai Truong Đại học Bách Khoa, ĐHQG Tp.HCM ngày 24 tháng 7 năm 2013
Thanh phan Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, hoc hàm, học vi của Hội dong châm bảo vệ luận văn thạc
Sách 5 TS Nguyễn Minh Sơn
-Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lýchuyên ngành sau khi luận văn đã được sửa chữa (nêu có).CHỦ TỊCH HỘI ĐÔNG TRƯỞNG KHOA
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH Độc lập - Tự do - Hạnh phúc
KHOANHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Trần Trung Hiếu MSHV: 11076025
Ngày tháng, năm sinh: 02/10/1988 Noi sinh: Hà Nội
Chuyên ngành: Khoa học máy tính Maso: 604801I TÊN ĐÈ TÀI:
XỬ LÝ NỘI DUNG GÓI TIN CHO HE THONG PHÁT HIỆN XÂM NHẬP
MẠNG TREN FGPA
Il NHIEM VU VA NOI DUNG:
e Tìm hiểu và dé xuất phương pháp so trùng mẫu cho tập quy luật của hệ thống
phát hiện xâm nhập mạng.
e Thiết kế và hiện thực hệ thông xử lý nội dung phan thân gói dữ liệu trên phan
cứng FPGA.
° Xây dựng công cụ hỗ trợ việc tự động hóa xây dựng hệ thống xử lý nội dung
phân thân gói dữ liệu.
Ill NGÀY GIAO NHIEM VU: 02/07/2012IV NGÀY HOÀN THÀNH NHIEM VU: 21/06/2013
Trang 4Loi cam on
Đầu tiên, tôi xin gửi lời cám ơn chân thành tới Thay hướng dẫn của tôi TS.Trần Ngọc Thịnh Trong suốt qua trình thực hiện luận văn, Thay đã luôn quantâm theo sát và hỗ trợ tôi Những lời động viên và hướng dẫn tận tình của Thaylà nguồn động lực lớn nhất cho tôi hoàn thành luận văn này.
Tôi cũng xin gửi lời cắm ơn đến anh Trần Huy Vũ, một người bạn đã độngviên và hé trợ tôi rất nhiều trong thời gian học tập và nghiên cứu tại trường Bêncạnh đó tôi cũng xin gửi lời cám ơn đến các bạn học viên cao học khóa 2011,
các em sinh viên khóa 2007, 2008 làm thực tập và luận văn trên NetFPGA
platform, về những hỗ trợ và chia sẻ trong suốt quá trình tôi thực hiện luận văn
Trang 5Tóm tắt luận vănSự phát triển mạnh mẽ của mạng máy tính toàn cau và những yêu cau ngàycàng cao trong các dịch vụ mạng đã tạo điều kiện hoạt động cho nhiều hiểm họavề an ninh mạng như xâm nhập mạng, sâu máy tính, virus, spam Điều này chothấy, vai trò của một hệ thống an ninh mạng mạnh mẽ là cần thiết hơn bao 210hết Hệ thống phát hiện xâm nhập mang (NIDS) là một giải pháp an ninh có théđáp ứng yêu câu trên Đối với NIDS, các giải thuật và tác vụ so trùng đa mẫuđược xem là nên tảng thiết yếu Tuy nhiên đây cũng là nguyên nhân gây giảmhiệu suất của hệ thống khi mà số lượng và độ phức tạp của các tập quy luật ngàycảng tăng cao Gần đây nhiều nghiên cứu tập trung vào việc hiện thực tác vụ sotrùng mẫu này xuống phần cứng.
Luận văn trình bày việc thiết kế, xây dựng và hiện thực một máy so trùng đamẫu dựa trên nền tảng FPGA cho việc xử lý nội dung phân thân gói dữ liệu củahệ thong NIDS Máy so trùng này có thé làm việc ở tốc độ Gbps và hỗ trợ dayđủ các dạng luật khác nhau của phần mém phát hiện xâm nhập mang mã nguồnmở Snort Nội dung của luận văn có thé được phân làm hai phan chính: kiến trúcphan cứng kha cau hình và phương pháp phân tích và tổng hợp luật.
Kiến trúc phần cứng khả cau hình trình bày thiết kế và hiện thực máy so trùngđa mẫu trên chip FPGA bao gồm việc so trùng mẫu tĩnh, so trùng mẫu động vàkết hợp các ràng buộc đa mẫu dé hỗ trợ một luật NIDS hoàn chỉnh Đối với sotrùng mẫu tĩnh, luận văn áp dụng phương pháp Cuckoo Hashing Kết quả thửnghiệm cho thấy độ hiệu quả về tài nguyên trong kiến trúc này với việc hỗ trợđược hơn 8000 mẫu tĩnh với kích thước tập ký tự lên đến 115K Đối với so trùngmẫu động, luận văn áp dụng phương pháp máy trạng thái không đơn định Bêncạnh kiến trúc truyền thống, luận văn dé xuất phương pháp mới dé chia sẻ mẫucon infix, suffix giữa các mau động với nhau, qua đó tăng độ hiệu dụng về tàinguyên phần cứng Thử nghiệm cho thấy, thiết kế này tiết kiệm lên đến 42%LUT và 32%FFs so với phương pháp truyền thống.
Trong phương pháp phân tích và tong hợp luật, luận văn trình bày quy trìnhvà phát triển các công cụ cho phép tự động phân tích và xây dựng máy so trùngđa mẫu từ tập luật của hệ thống phát hiện xâm nhập mạng.
Kiến trúc phần cứng được kiểm tra với tập quy luật của Snort Các bước kiểmtra được thực hiện thành công cả trên phần mém với công cu mô phỏng củaXilinx và trên phần cứng với nên tảng phát triển ứng dụng mạng NetFPGA.
I
Trang 6Widespread development of the internet and increasing demand on networkservices have made computer network more vulnerable to many threats, such asintrusions, worms, viruses and spam Therefore, the role of network securitysystem has become more and more crucial Network intrusion detection system(NIDS) is one such system that monitors network traffic and detects intrusionsand malicious activities Multi-pattern matching is a critical mechanism in NIDSand has been considered as a bottleneck of software-based NIDS as the numberand complexity of signature have recently increased In order to speed up thisprocess, recent researches have focused on hardware-based pattern matchingengine.
This thesis provides a FPGA-based multi-pattern matching engine for supportpacket payload inspection on NIDS The engine can work at Gbps throughputand completely support Snort NIDS signature set The thesis contributions aremainly made up from two parts: Reconfigurable hardware, and pattern analyzerand complier.
The reconfigurable hardware provides hardware architecture for multi-patternmatching on FPGA which includes matching static patterns, matching dynamicpatterns, and combining these matching results for a complete NIDS signature.For matching static patterns, the thesis proposed to use Cuckoo Hashingapproaches Experimental static matching engine could support more than 8000patterns with character size of 115K The thesis utilizes Non-deterministic FiniteAutomata for matching dynamic patterns and provides novel technique forsharing common infix, suffix across pattern set The technique improveshardware utilization of dynamic pattern matching engine Required hardwareresources of matching engine have been reduced up to 42% LUTs and 32%FFscompared to traditional approaches.
The pattern analyzer and complier provide an automatic and fullyconfigurable approach to analyze NIDS signature set and construct multi-patternmatching engine.
The proposed multi-pattern matching architecture has been evaluated usingSnort NIDS signature set Experimental system has been verified on softwareusing Xilinx simulation tool and deployed on NetFPGA platform.
Trang 7Lời cam đoan
Tôi xin cam đoan rằng, ngoài những tài liệu tham khảo và các tài liệu khácnhư đã chú thích nguồn gốc đính kèm thì toàn bộ nội dung trong báo cáo này đềulà kết quả nghiên cứu của chính tôi và do tôi tự soạn thảo.
Nếu có bắt cứ sai phạm nào so với lời cam kết, tôi xin chịu các hình thức xử
lý theo quy định.
Tran Trung Hiéu
IV
Trang 8MỤC LỤC
LOT CÁM O'N vesesssssssssseessesessssseesseesnsseeseeesssseesseeessusseeseeesssseeseeesssseeseeeessuueeseeesssuseeneeesssaes I
TOM TAT LUAN 0/9077 I]
ABSTRACT - nan HH nha ng ng gang nàn Hư Ha Ha nga kg kh ngan HH Ha in xen nh II
LỜI CAM DOAN cecceekisriHHHHHHHHH Hari IV
00/40/0127 V
1098809.) VilMUC LUC BANG 0003137 IXCHƯƠNG 1 GIỚI THIỆU -es-secesceseesseesersseessersreesrrss 1
1.1 Tính cấp thiết của đề tài - QC HH n0 00 0301 10 0 05 0n Sg 11.2 Phát biểu vấn đề - - - c0 1.0 03000804 00 00804 0 55 00803598 21.3 DOng ZOp Cla IUAN 0 8 31.4 Cau tric JUAN 0 06 3
CHƯƠNG 2 KIEN THỨC NEN TẢNG -5ccc+eerrreere 4
2.1 Hệ thống phát hiện xâm nhập mạng - S911 111113533555555 4
2.1.1 SNOrt IDS oo ồ 4
2.2 SO trUNG MAU cccsceccsecescecssccesscesssseecesceessccesssceescecessccessceeaceceeseeceseceeeseeeaseeseaeens 52.3 Tổng quan các nghiên cứu trước đây - - HH5 551 11 re 62.3.1 Phương pháp so trùng mẫu tĨnh - c + Sex tk x1 SH HH HH Hy Hy nh 62.3.2 Phương pháp so trùng mẫu biểu thức chính QUY ¿- 5c ++xc+c+ecseeeeces 82.3.3 Vấn đề xử lý các ràng buộc kết hợp da mẫu - -¿- - EkS* Sky r 8
2.4 Phương pháp băm CUCKOO - - SG nọ HH BS 92.5 Phương pháp máy trạng thái - - SH mm 102.5.1 Máy trạng thái đơn định ác cà HH ng ng rên 112.5.2 Máy trạng thái không đơn định -cc L0 00000111 S SH HH TH nen re, 11
3.2 Xử lý nội dung gói dữ liệu trên phần cứng -. - - - c ScceSSsSSssssssssssss 213.2.1 Phân tích và tổng hợp luật - 52 52+ +23 +22 E22 E+2E£zEEsEsrEkrktrrerrerrrrrrerree 22
Trang 93.2.2 KiGN trUc PHAN 16 “ -1-ŸÍAẰÍẰC 23
CHUONG 4 HIEN THỰC MODULE PHAN CỨNG -cseccs- 25
4.1 Static Pattern Matching Module - -c co SG n1 n9 0 254.1.1 Cuckoo Pattern Matching Unit (CPIMMÙ) S22 21111 xxx, 254.1.2 Long Pattern Matching - - - c c c HH và 28
4.2 Dynamic Pattern Matching Unit - - co HH 1n S10 29
4.2.1 Module giao ti€p 8 31
4.2.2 Module Detect Engine 0n 32
4.2.3 Module giao tiếp cuối (Postln†erfaCe) - -. - c c1 11.11 kg Hư 38
4.3 Pattern Combine Modulle - - cọ 086 38
CHUONG 5 PHAN TÍCH VÀ XỬ LÝ TẬP LUẬTT -s‹ s¿ 44
5.1 Compile Static Pattern - -c con HT HS 9098005: 108908 9 086 45
5,1.1 Xử lý các mẫu ngắn -¿- -:- L1 k1 k1 S1 SỰ TT T HT TT HH TH TH TH HH 465.1.2 Phân đoạn mẫu và xử lý mẫu dài ¿- ¿+ ¿+ + S2 SE 511 Y Hynrryưệt 47
5.2 Dynamic pattern CompiÏerr - - -c cọ n9 100.0009089 086 47
5.2.1 Tiền xử ly va trích xuất tập chia sẽ infix ccccscesscssssesssessessesssessssesseeseeesseesees 475.2.2 Xây dựng kiến trúc máy trạng thái NFA -c Sàn S Sky, 49
5.2.3 Ánh xạ sang kiến trúc phần CỨng -¿- - +: tt E SE SE 1kg Hy triệt 52
CHƯƠNG 6 DANH GIÁ VÀ KIỂM NGHIỆM HỆ THỐNG 58
6.1 Đánh giá kiến trúc so trùng MAU tĩnh se stkrseerssersseerssers 586.2 Đánh giá kiến trúc so trùng mẫu động Ác SH se eres 62
6.3 Thử nghiệm hệ thống - - - LG c G0909 000 0 S80 80950 65
CHƯƠNG7 TONG KẾT ccccc5ccccceeeeeesesrrrrrrrie 68
7.1 (CN nh 687.2 Dinh hurGing 82 (0 0n 68
TÀI LIEU THAM KHẢO -<©5-ceess+r+rrressrtrrrrrrtrrrrrsrrrrrrrred 69
VI
Trang 10MỤC LUC HINH
HÌNH 1-1 CẤU TRÚC CHÍNH CUA NIDS ccccccsescsscsescscsesscscscsscscscsscscscsecscscsesscsssesscssessesscscsesscsssesssetssseeeesees 2HÌNH 2-1 TRIỂN KHAI NIDS TRONG HỆ THỐNG MẠNG 2-5-1 SE E12 EEE1217113211111111 1111 4HÌNH 2-2 CÁCH THỨC CHEN VÀO BANG T1 T2 SỬ DUNG CUCKOO HASHING 52525255552 9HÌNH 2-3 MOT MAY TRẠNG THÁI CHAP NHẬN CHUỖI “NICE” - 2 2© 2+EEESEEEEEEEEEEEEerrrrk 10HÌNH 2-4 DFA CHAP NHAN TẤT CẢ CÁC CHUỖI BIT CHUA ÍT NHẤT 2 BIT 1 -2-22+s+r+rzred 11HÌNH 2-5 NFA CHAP NHẬN CÁC CHUOI BIT KẾT THÚC BỞI 00 HAY 0110 -2¿+ce+xe+xerErrere 11HÌNH 2-6 NFA CHAP NHẬN MOT KÝ TỰ ĐƠN - S21 1 E1 12111111111111111151111 1111111111111 1e 12HÌNH 2-7 KẾT NOI HAI BIỂU THỨC CHÍNH QUY CON 52- 2 E2EEEEE2E2712131112111111121 1111k 12HÌNH 2-8 LUẬT LUAN PHIEN HAI BIỂU THỨC CHÍNH QUY 2-52 SE2EE2EEE2EEEE3217127121121 21 1cxe, 12
HÌNH 2-9 NFA BIỂU DIỄN * CHAP NHẬN MỘT CHUOI BAT KỲ GỒM CẢ CHUỖI RỖNG 13
HÌNH 2-10 NFA BIỂU DIEN ?CHẤP NHẬN KHÔNG HAY CHỈ MỘT CHUỖI ĐẦU VÀO 13
HÌNH 2-11 NFA BIỂU DIEN + CHAP NHẬN MOT SỐ DƯƠNG CHUỖI ĐẦU VÀO ccccerere 13HÌNH 2-12 NFA BIỂU DIỄN ((A*B)(C|D)) DUOC XÂY DỰNG THEO CÁC QUY TAC CƠ BẢN 13
HÌNH 3-5 QUY TRINH TONG QUAT PHAN TÍCH XỬ LÝ LUẬT VÀ XÂY DỰNG HỆ THỐNG 23
HÌNH 3-6 MÔ HÌNH TONG QUAT KIẾN TRÚC PHAN CỨNG CHO MODULE PAYLOAD PROCESSOR 24
HÌNH 3-7 MINH HỌA KIẾN TRÚC MAY TRẠNG THAI NEA ĐỂ SO TRÙNG MẪU DONG ““A*(B/C)DS’ 24
HÌNH 4-1 KIẾN TRÚC TONG QUAT HỆ THỐNG XỬ LY PHAN THAN GÓI DỮ LIỆU -5 +: 25
HÌNH 4-2 SƠ ĐỒ TONG QUÁT CPMU - 522112 121521211111215211111111111111111111E 1111111111 26HÌNH 4-3 BANG PHAN BO CHIEU DAI MẪU TĨNH ỨNG VỚI CÁC NHÓM! LUẬT 2 2-++:s+xe2 26HÌNH 4-4 KIẾN TRÚC MODULE CUCKOO - ¿252 SE2EEEEEEEE9EEEEEEEEE 1231115237115 111111 1111511 cxE 27HÌNH 4-5 KIẾN TRÚC LIÊN KET CÁC CHUỖI TRONG LONG PATTERN MATCHING 2-5252 28HÌNH 4-6 KIẾN TRÚC TONG QUAN MAY SO TRÙNG BIỂU THỨC CHÍNH QUY -2-c-cccccccee 30HÌNH 4-7 CẤU TRÚC NHÓM SO TRUNG BIỂU THỨC CHÍNH QUY (REMM) - 52562 ccsEcvsesreresed 30HÌNH 4-8 CẤU TRÚC CUA MODULE GIAO TIẾP ĐẦU - SE 2222 E115E12111211212111111 11115111111 re 31HÌNH 4-9 ĐỊNH DANG MOT ENTRY TRONG FIFO ¿22525222 SE SE EEEEEEEEEEEEEEEEEEEEErkrrrree 31HÌNH 4-10 DẠNG SÓNG ĐẦU RA CUA MODULE GIAO TIẾP ĐẦU ¿ 5-5-5222 E+EEE‡E2EEErErErrrkred 32HÌNH 4-11 MÔ HÌNH CÁC KHOI LOGIC CƠ BẢN: A STATE BLOCK; B START BLOCK; C END BLOCK 33HÌNH 4-12 MÔ HÌNH TONG QUAT KHOI “A(A |B)C *'$”” 5 St St 1E 11511111 11111111111111 511111 Erxee 33HÌNH 4-13 KIẾN TRÚC KHOI CRB CHO THỨC CHÍNH QUY “(AB+C){2, 10)” << cscs+k+kE2EzEererrees 34HÌNH 4-14 KIẾN TRÚC KHOI CRB.A, TONG QUAT B, KHOI AT LEAST C, EXACTLY & BETWEEN D, AT
Trang 11HÌNH 4-16 HAI CHE ĐỘ HOAT DONG CUA LOGIC CELL - ¿2 52 S22E+E2EE£E+E+EEE£E+EEEEEErEererrsrerree 36HÌNH 4-17 Vi DỤ CHIA SẺ INFIX GIỮA HAI PATTERN EATING VA EARNING 25-c2c+cscscescee 36HÌNH 4-18 MÔ TẢ MACH SO TRÙNG CHO MẪU “AB[^AB]XB” -c 5c St E E11 11 111111111111111xEEEerreeg 37HÌNH 4-19 CẤU TRÚC CUA MODULE GIAO TIẾP CUỐI ¿2-2-5252 2E+E2EE£E£ESEEEEEEEEEEEEEEEeErkrrrree 38HÌNH 4-20 KIẾN TRÚC PHAN LOALI - :-:- ¿5252922 SE2E9E5E1EEE15E5211151111111115 1111511115111 11 1x T.cre 39HÌNH 4-21 KIẾN TRÚC XỬ LÝ CÁC NHÓM! LUẬTT - ¿2 5256292 EEE1E5EEEE115E5212151111 11111111 re 39HÌNH 4-22 KIẾN TRÚC CONTRAIN VERIFY UNIT 5-5255 S2 SE E925 12311515231151521211511 1115111111 re 40HÌNH 4-23 KIEN TRÚC XỬ LÝ LUẬT KẾT HỢP NHIỀU MẪU TĨNH NOI TIẾP 2 2+ z+xe+xe+xe+e 42HÌNH 5-1 SƠ ĐỒ HOAT ĐỘNG PHAN MEM PHAN TÍCH VÀ XỬ LÝ LUẬT - ¿2552 22s+c+zscszea 45HÌNH 5-2 GIẢI THUẬT THÊM MỚI MẪU NGẮN - 2c t1 1221211211111111111111111 11111 re 46HÌNH 5-3 GIẢI THUAT PHAN DOAN CHUỖI DÀI - 25252 E2 SE 1 12212111121111111.11.11 11.1111 47HÌNH 5-4TRINH TỰ XỬ LY CUA BƯỚC TONG HỢP MẪU ĐỘNG - 25c tt 11 1111 xe 49
HÌNH 5-5 CAY CÚ PHAP CHO PCRE: “/A*[XYZ](C |D)*(MIP)4{2,10}\X3F/7 - Ă S5 SkSkskcskcskrske 51
HÌNH 5-6 CẤU TRÚC NFA SINH RA TỪ CÂY CÚ PHÁP - ¿©2- 525223915 EEEEE9EE212152111111111 7111k re 51HÌNH 5-7 CẤU TRÚC NFA SAU KHI RUT GỌN - SE SE 1 E121 191211211111111111111111 111111111111 cre 52HÌNH 5-8 CHIA SE PREFIX GIỮA HAI MẪU DONG A(D|BC)E VA ABCD ©22 222tr 52HÌNH 5-9 SƠ ĐỒ GIẢI THUẬT XÂY DỰNG KIẾN TRÚC RTLL - 2 2S SE +E+E+E£E£E+EEEEEErEererkrsrrrree 53HÌNH 5-10 CÁC BƯỚC XÂY DỰNG SUBREGEX UNIT VÀ COUNTCOMP UNIT TỪ CHUỖI "/MIP/,2,10" 55HÌNH 6-1 KẾT QUẢ XÂY DỰNG BẢNG TRA CỨU CHO TẬP MẪU PHÂN BIỆT CHỮ HOA CHỮ THƯỜNG 60HÌNH 6-2 KẾT QUA XÂY DỰNG BANG TRA CHO TẬP MẪU KHÔNG PHAN BIET CHỮ HOA CHỮ THƯỜNG
¬ _ 60
HÌNH 6-3 KẾT QUA SỬ DỤNG TÀI NGUYÊN VÀ TỐC ĐỘ XỬ LÝ CUA BA KIẾN TRÚC - 63HÌNH 6-4 MO PHONG KIỂM TRA CHỨC NĂNG HỆ THỐNG - 2E SE+E22E2 E2 1212111211211 xe, 66HÌNH 6-5 SƠ ĐỒ KẾT NOI MẠNG KIỂM TRA HỆ THONG THU’ NGHIỆM -52©ccccercrerrrred 66HÌNH 6-6 KẾT QUA TRA VỀ CẢNH BAO GÓI DỮ LIEU CO CHUA MÃ ĐỘC - 5c cccsrcrsrea 67HÌNH 6-7 KET QUA THU’ NGHIỆM TREN TRANG WEB - 5S 1 2 12111211 1111211 1111111111111 re 67
Vill
Trang 12MỤC LUC BANG
BANG 2-1 BANG CHUYỂN TRẠNG THAI CUA NFA TRONGHINH 2-5 sccscssssesscssesessecstsscssesssstsstseeseeeeens 12BANG 3-1 BANG THONG KẾ TAP LUAT SNORT PHIÊN BẢN 2.9.41 cccscsccsssssscsesssssesscscsesssssssseseesseesees 18BANG 3-2 BANG THONG KE TẬP LUAT SNORT PHAN THEO 7 NHÓM LUẬT - 2 2555552 21BANG 4-1 CAC TOÁN TỬ VÀ CAC KHOI LOGIC HIEN THỰC TƯƠNG UNG . 5- 5552 cs+csc<2 32BANG 4-2 CAC THONG SỐ TRONG MODULE DEM VA SO SÁNH G222 S* t2 221211211 EEerrkrea 34BANG 4-3 CẤU TRÚC DỮ LIEU PATTERN COMBINE UNIT 52 2 2E+E2EE£E+ESEEEEEESEEEEEErEerkrkrsrerree 40BANG 4-4 CÁC THONG TIN ĐI KÈM VỚI MẪU TĨNH ¿22 22t E2 EEE1212111111111111 11.11.1116 41BANG 5-1 CÁC CẤU HÌNH ĐƯỢC XỬ LÝ TRONG BƯỚC CLASSIFY AND FILTER RULE -. - 44BANG 5-2 CÁC CẤU HÌNH ĐƯỢC XỬ LÝ TRONG BƯỚC COMPILE STATIC PATTERN -5- 45BANG 5-3 BANG MÔ TẢ CÁC TOÁN TỬ PCRE ĐƯỢC HỖ TRỢ - 25c TH H2 111211111111 48BANG 5-4 BANG MÔ TA THUỘC TÍNH CAC KHOI START BLOCK, STATE BLOCK VÀ END BLOCK 54BANG 5-5 BANG MO TẢ CÁC THUỘC TÍNH CUA KHOI CRB cccsscsescsscsesscscsesscscscsssscsesecscsssssscssssseescesenees 54BANG 5-6 MOT PHAN BANG BRAM CHO CAC KÝ TU ĐƯỢC XÂY DỰNG TRONG CONG CỤ 57BANG 6-1 TÀI NGUYEN BLOCKRAMS SỬ DUNG BỞI MAY SO TRÙNG MAU TĨNH -. 5 s¿ 58BANG 6-2 THONG KE TÀI NGUYEN MAY SO TRÙNG MAU TINH TREN CHIP VIRTEX 2PRO 50 59BANG 6-3 SO LƯỢNG MẪU TĨNH VÀ SỐ LUONG KÝ TỰ TRONG TAP MAU THU NGHIỆM 59BANG 6-4 BANG SO SÁNH HIEU SUAT CUA CÁC PHƯƠNG PHAP SO TRÙNG MẪU TINH TREN FPGA 61BANG 6-5 BANG ĐÁNH GIÁ HIEU SUAT SỬ DUNG TÀI NGUYEN CUA MAY SO TRÙNG MAU DONG VỚI
CÁC KIẾN TRÚC KHAC NHAU ecccccscscsscscsssscscsssscscsscscscsecscscsescssscsecscsssscssscsesscscssecssscsecacecsesesscesass 62BANG 6-6 SO SANH VỚI CAC KET QUA NGHIÊN CỨU VE SO TRÙNG MAU DONG TRƯỚC ĐÂY 63BANG 6-7 BANG THONG KE TẬP LUAT THU’ NGHIEM cccccscscsscsssssscsesscsescsscscscsecscscssscssssecssscessessecens 65BANG 6-8 KET QUA TONG HOP c.ecsesscsssssssscsesscssesecssssesecsucsssansucsecsnsansessucansatsucsesansatsecstsansassscansansnesesaens 65
Trang 13Chương1 GIỚI THIẾU1.1 Tính cấp thiết của dé tài
Trong thời đại ngày nay, mạng máy tính đã phát triển với quy mô rất rộng trên toàn thếgiới và 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ươngpháp tân công trên mang Chang hạn như virus, spam, malwares, cũng như các hành vi độc hạikhác Không những thé các loại tan công này ngày một nguy hiểm, tinh vi hơn và các hậu quado 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ầnthiết hơn bao giờ hết
Có nhiều phương pháp được triển khai áp dụng như các hệ thống mã hóa, tường lửa(firewall), anti-virus Tuy nhiên, do sự đa dạng trong hình thức tan công, các mẫu độc hại cóthé xuất hiện tại bat cứ vi trí nào trong các gói dữ liệu, bài toán đặt ra là cần có một giải phápcó khả năng thâm nhập sâu vào toàn bộ nội dung của gói dữ liệu và so sánh với các dấu hiệutan cong nam trong một cơ sở dữ liệu được chon lọc, tập hợp săn, để có thể báo động được cácloại tân 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 độ mạng 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, các giải pháp NIDS trên phần mềm chi đạ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 vao đó với kích
thước tập quy luật ngày càng tang, việc dam bảo độ ồn định và tính chính xác của hệ thống càng
trở lên khó khăn hơn Vi vậy các giải pháp phần cứng (hardware) cho bài toán này là can thiếtvà tat yêu Với các đặc điểm thuận lợi của mình thì việc hiện thực NIDS trên phân cứng đặcbiệt là các thiết bị phần cứng khả lập trình (Field Programable Gate Array- FPGA) đang là mộtlĩnh vực nghiên cứu ứng dụng rất mới mẻ và có nhiều tiềm năng phát triển trên thế giới
Nguyên tac hoạt động của hệ thong NIDS dựa trên hai cơ chế quan trọng là tập quy luậtđịnh nghĩa các dạng tan công và các giải thuật so trùng mẫu Hệ thống NIDS sẽ giám sát vàkiểm tra vào sâu bên trong nội dung gói dữ liệu, áp dụng các giải thuật so trùng mẫu để tìmkiếm dấu hiệu tan công được mô tả trong các quy luật được định nghĩa Mặc dù đã có nhiều cảitiên cho các phương pháp và giải thuật so trùng mẫu trên phần mềm Tuy nhiên vơi sự gia tăngnhanh chóng về số lượng và độ phức tạp của các luật cũng như yêu cầu 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 so trùng
mẫu trên các các bộ xử lý phục vụ mục đích chung (General Purpose Processor) tỏ ra không
Trang 14hiệu quả Các nghiên cứu gan đây bat dau tập trung vào các kiến trúc so trùng mẫu trên cácphan cứng khả lập trình (FPGA, ASIC, PLD, ) [1] [2] [3] [4]
Dé tài luận van tập trung vào bài toán xử lý nội dung phan thân gói dữ liệu cho hệ thống
phát hiện xâm nhập mạng Đây là một phần quan trong dong vai tro quyét dinh trong tốc độ vađộ chính xác của toàn bộ hệ thống.
1.2 Phát biểu vẫn đề
TEMAC Core| Packet Classification
Tae | | + + : ] | (Header Processor)
Events
EEEHeader data
Packet Collector Alert
and Decoder Rule Managment ¬
(Payload Processor)
Events
Network IntrusionDetection System
Hình 1-1 Cấu trúc chính cúa NIDS
FPGA
Hình 1-1 mô tả các thành phần chủ yếu của hệ thống NIDS trên phần cứng Lõi EthernetMac nhận ethernet frame từ mạng bên ngoài và chuyển cho module Packet Collector andDecoder Module này thực hiện đệm và giải mã dữ liệu thành các phần header và payload Phầnheader bao gồm các thông tin: giao thức, địa chỉ IP nguồn/đích, địa chỉ cổng nguồn/đích chuyểncho module xử lý phan dau gói dữ liệu (Header Processor) Phần payload gói dữ liệu đượcchuyên cho module xử lý phần thân gói dữ liệu (Payload Processor) Các module xử lý phầnđầu và phan thân gói dữ liệu thực hiện các thuật toán tim kiếm mẫu và trả kết quả về cho modulequản lý luật (Rule Management) Module này sẽ tổng hợp kết quả, dựa trên đặc tính của luật
mà sẽ đưa ra cảnh báo phù hợp.
Van dé quan tâm của luận van là xây dựng module xử lý phan thân gói dữ liệu (PayloadProcessor) cho hệ thông phát hiện xâm nhập mạng Nguyên tắc cơ bản của module này là thựchiện các thuật toán so trùng và tìm kiếm mẫu Do hiện thực hoàn toàn trên phần cứng (chipFPGA), khi thiết kế phải quan tâm đến van đề tiết kiệm tài nguyên, tính mềm dẻo và tốc độ xửlý Ngoài ra một vân đề cần quan tâm khác nữa là khả năng cập nhật linh động hệ thống với tập
luật mới.
Trang 151.3 Dong gop của luận van
Những đóng góp chính của luận văn như sau:
- _ Kiến trúc xử lý nội dung phan thân gói dữ liệu cho hệ thong phát hiện xâm nhập mạng
IEEE.
1.4 Câu trúc luận vănPhan tiếp theo của luận văn có câu trúc như sau:
Chương 2: Trinh bay các kiến thức nên tảng liên quan đến dé tài, bao gồm hệ thống phát
hiện xâm nhập mạng, các giải thuật so trùng mẫu và các kết quả nghiên cứu trước đây
Chương 3: Tổng quan về van đề xử lý nội dung phan thân gói dữ liệu cho hệ thống phát
hiện xâm nhập mạng Đặc điểm, câu trúc, và các công việc thực hiện của luận văn.Chương 4: Trình bày thiết kế kiến trúc phần cứng của module xử lý nội dung phan thân
gói dữ liệu.
Chương 5: Trình bày giải pháp, quy trình tổng hợp và phân tích luật, cho phép cập nhật vàxây dựng nhanh chóng hệ thống
Chương 6: Đánh giá và kiểm nghiệm hệ thống, bao gồm đánh giá các kiến trúc so trùng
mẫu, và kiểm nghiệm hệ thống trên board NetFPGA.Chương 7: Tổng kết các kết quả của luận văn và đề xuất hướng phát triển tiếp theo
Trang 16Chương2 Kiến thức nên tảng
2.1 Hệ thong phát hiện xâm nhập mang
Hệ thống phát hiện xâm nhập mạng (Network Intrusion Detection System - NIDS) là mộtgiải phápan ninh mạng được sử dụng pho biến ngày này Vai trò của NIDS trong hệ thống mang
là theo dõi các lưu lượng mạng vào ra hệ thống nhằm phát hiện ra các hành động độc hại, tancông hay mã độc và đưa ra cảnh báo kip thời Một điểm khác biệt quan trọng của hệ thống
NIDS so với hệ thống tường lửa (Firewall) thông thường là tường lửa chỉ đơn thuần dựa trênnội dung phan dau gói dữ liệu, trong khi đó NIDS phân tích và tìm kiếm sâu vào bên trong nộidung gói dữ liệu Hình 2-1 minh họa một triển khai của NIDS trong hệ thông mạng
INTER a`
- me
TTT
Hình 2-1 Triển khai NIDS trong hệ thống mang
Dé có thé phát hiện ra các tan công trong môi trường mang, NIDS dựa vào một tập các quyluật được định nghĩa trước Tập quy luật này chính là những mẫu dữ liệu (pattern) thu thập
được trong quá trình phân tích các hành động tan công, xâm nhập mạng trước đó Mỗi khi có
nội dung xuất hiện trên đường truyền mạng, NIDS sẽ thu thập phân tích vào sâu bên trong nộidung gói dữ liệu và tìm kiếm sự xuất hiện của các mẫu này Mỗi khi các điều kiện của một quy
luật được thỏa, NIDS sẽ đưa ra cảnh báo về hành vi độc hại phát hiện được
2.1.1 Snort IDS
SNORT là một phần mềm phát hiện xâm nhập mang mã nguồn mở được phát triển và cungcấp miễn phí bởi Sourcefile [5] Phiên bản đâu tiên của SNORT được Martin Roesch cũng là
Trang 17người sáng lập công ty Sourcefirecông bố vào năm 1998, từ đó đến nay SNORT không ngừngđược cải tiến và trở thành một trong những giải pháp bao mật được sử dung phổ biến nhất tronglĩnh vực an ninh mạng Ước tính có khoảng mười ngàn lượt download SNORT mỗi tháng từ
Website.
SNORT còn có thể dễ dàng được triển khai trên nhiều platform khác nhau chăng hạn như
Linux, Window, MacOS và Solaris Mặc dù chức năng chính của SNORT là phát hiện xâm
nhập mang, nhưng tùy theo mô hình triển khai nó cũng có thé được cau hình dé hoạt động nhưmột phân mềm chống xâm nhập mạng Ở cả hai chế độ, hoạt động của SNORT đều dựa trênhai nền tảng chính, tập cơ sở dữ liệu những luật (rules) được định nghĩa từ trước và các cơ chế
so trùng, xử lý chuỗi Khi phát hiện ra dấu hiệu tan công, tùy theo từng mức cau hình mà góidữ liệu có thé bị loại bỏ (drop), cho qua (pass) hay lưu trữ lại (log)
Cú pháp định nghĩa luật của SNORT cũng tương đối đơn giản, nhờ đó mà không chỉ nhữngngười phát triển SNORT ma cả những người bình thường cũng có thê tự thiết kế riêng cho minh
những tập luật phục vụ nhiều mục đích khác nhau Đi cùng với mỗi phiên bản của SNORT,
Sourcefile cung cấp miễn phí cho người sử dụng một tập luật hoàn chỉnh, tập luật này đượcphát triển trực tiếp bởi đội ngũ những chuyên gia bảo mật của SourceFile và được cập nhật
thường xuyên Không chỉ có ý nghĩa riêng cho hoạt động của SNORT, tập luật này con được
xem là cơ sở cho nhiều nghiên cứu trên thê giới về hiện thực hệ thống phát hiện xâm nhập mạng
trên phan cứng
2.2 So trùng mẫu
So trùng mẫu là một tác vụ cơ bản trong hệ thống phát hiện xâm nhập mạng.Tác vụ này cóthé hiểu là việc tìm kiếm sự xuất hiện của một hoặc nhiều mẫu được định nghĩa trước trongtrong một chuỗi liên tục các ký tự (byte) Mau ở đây có thể được mô tả đưới dạng một chuỗi cácký tu (byte) với chiều dài có định (mẫu tĩnh) hoặc chuỗi các ký tự xen kẽ với các siêu ký tự
(mẫu động).Mẫu động thường được biết đến với định dạng biểu thức chính quy (regular
expression).
Dưới đây là vi du của mẫu tinh va mẫu động
e Méau tĩnh (static pattern): Được mô tả dưới dạng một chuỗi byte với chiều dai cỗ
định.o Ví dụ:
"m"I81† F1 03 01 04 9B 81 F1 O0 1|" sẽ tương đương với
chuỗi byte “81F10301049B81F10001”
Trang 18= “sock”, “send” sẽ so trùng tat cả các chuỗi đầu vào có chứa “sock”,
send”
e Mau động (Dynamic/Regular Expression pattern): Biểu diễn của các mau này được
mô tả theo dang biểu thức chính quy, cho phép biểu diễn các chuỗi kí tự với độ daivà nội dung thay đổi
o Ví dụ: mẫu “/^.{4,9}cgi-bin/php” sẽ tương đương với tat cả cácchuỗi bat đầu băng 4-9 kí tự bất kỳ và kết thúc băng chuỗi “cgi-
bin/php”.
Bài toán so trùng mẫu có thé phân làm hai loại: so tring mau đơn (single-patern matching)và so trùng đa mẫu (multi-pattern matching) So trùng mẫu đơn chỉ đơn giản là tìm kiếm sựxuất hiện của từng mẫu độc lập trong chuỗi dữ liệu dau vào Trong khi so trùng đa mẫu đòi hỏisự kết hợp tìm kiếm của nhiều mẫu có quan hệ ràng buộc với nhau Tập quy luật của Snort IDSlà một ví dụ điển hình của bài toán tìm kiếm đa mẫu.Xét ví dụ một luật tìm kiém trong Snort
bên dưới.
content:"|00 00 00|"”";depth:3; content:"|CD C3 13|7";within:4;distance:1;
Luật trên phát hiện hoạt động của backdoor orifice 20006 — v1.1.5 trong môi trường mạng
và có thể hiểu như sau: tìm kiếm trong 3 byte dau tiên của gói dữ tin tep mẫu “|0 00 001”,bỏ qua một ký tự và tìm tiếp trong phạm vi 4 byte tiếp theo mẫu “|cb c3 13177
Đối với so trùng đa mẫu, bên cạnh việc tìm kiếm sự xuất hiện của từng mẫu đơn, đòi hỏiphải có lưu lại và kết hợp với trạng thái so trùng trước đó Việc so trùng đa mẫu là một bài toánphức tạp đặc biệt là xử lý trên phần cứng
Nội dung và đặc điểm của tập mẫu hệ thống phát hiện xâm nhập mạng sẽ được phân tíchcụ thé hơn ở chương sau Phan tiếp theo của chương nay sẽ giới thiệu một số các nghiên cứu
trước đây về so trùng mẫu trên phần cứng FPGA, sau đó đi sâu vào hai phương pháp được sửdụng trong luận văn này, so trùng mẫu tĩnh dùng Cuckoo hashing và so trùng mẫu động sử dụng
máy trạng thái không đơn định.
2.3 Tổng quan các nghiên cứu trước đây
2.3.1 Phương pháp so trùng mẫu tĩnhPhương pháp so trùng mẫu tĩnh trên FPGA có thé được chia làm ba dạng phô biến sau: Dịch
và so sánh, phương pháp máy trạng thái, và phương pháp hashing.
Dich và so sánh (shift-and-compare) [6] [3]: là phương pháp tiếp cận dễ dàng nhất và có tốcđộ cao nhất Phương pháp nay tận dụng tài nguyên LUT của chip FPGA dé lưu trữ các chuỗitĩnh và xây dựng các bộ so sánh Thiết kế pipeline được áp đụng dễ tăng tốc độ xử lý của thiết
Trang 19kế Trong [6], tác giả chia chuỗi tĩnh thành nhiều đoạn có độ dài k, mỗi đoạn tương ứng với mộttrạng thái pipeline Nhờ vậy hệ thống có thể xử lý & kí tự ngõ nhập mỗi chu kỳ xung clock.Trong [3], tác giả tái sử dụng k bộ so sánh chuỗi tĩnh cho dữ liệu ngõ nhập tại k vi trí offsetkhác nhau nhờ đó cũng có thể so trùng được & byte mỗi chu kỳ xung clock Các phương pháp
tiếp cận này tuy đạt được tốc độ cao nhưng đòi hỏi nhiều tài nguyên để hiện thực
Máy trạng thai (State machine) [1] [4] [2]: Trong [1], Hutching và các đồng sự chuyển mẫutĩnh thành dạng biểu thức chính quy, sau đó hiện thực sử dụng phương pháp máy trạng tháiNFA (Non-deterministic Finite Automata) Ưu điểm của biểu thức chính quy là có thể biéu diễnkết hợp nhiều mẫu fĩnh.Cũng giống như phương pháp dịch và so sánh, phương pháp nay sửdụng trực tiếp tài nguyên lập trình của FPGA (LUT và Flipflop) dé hiện thực.Một cách tiếp cậnkhác là hiệu chỉnh giải thuật Aho-Corasick [7| để hiện thực trên phần cứng hiệu suất cao [2].[4] Dé tránh xây dung một máy trạng thái phức tap cho một tập lớn các mẫu, Aldwairi và cácđồng sự chia tập mẫu thành các tập nhỏ hon dựa trên loại tan công [4] Các máy trạng thái chocác tập con này có thể chạy song song qua đó nâng cao hiệu suất của hệ thống Một cai tiến tiếptheo chia nhỏ máy trạng thái thành 8 máy chạy song song, với mỗi máy chỉ xử lý I bit [2].Phương pháp này khiến cho dung lượng bộ nhớ can thiết dé lưu trữ bang trạng thái giảm đi
đồng thời tăng hiệu tốc độ xử lý Nhìn chung phương pháp máy trạng dựa trên Aho-Corasick
sử dụng kết hợp các khối bộ nhớ onchip của FPGA với các tài nguyên lập trình Phương phápnày cho tốc độ tương đối cao và hỗ trợ khả năng cập nhật tập mẫu mới dễ dàng
Bam (Hashing): [8] [9] [10] phương pháp tiếp cận này đã được sử dụng khá pho bién trongcác ứng dụng bảo mật khác Tuy nhiên trong hệ thống NIDS, nó chỉ vừa được ứng dụng gần
đây, và kết quả đạt được khá tốt So với các phương pháp trên thì khả năng tiết kiệm phần cứng
là vượt trội, với tốc độ chấp nhận được.Trong [8], tác giả sử dụng hàm hash CRC hiện thực vớicông XOR cho các tập mẫu độ dài 3,4,5,6 bytes Các mẫu có độ dài lớn hơn được chia nhỏ vàtái sử dụng kết quả hash của các mẫu có độ dài ngắn hơn Giá trị hash của các chuỗi đầu vàođược sử dụng như dia chi dé tìm kiém chuỗi chính xác trong bộ nhớ Để hạn chế việc dư thừatrong không gian địa chỉ, tác giả dùng bộ nhớ thứ cấp để cất giữ nội dung chuỗi chính xác.Bài
báo [9] đề xuất phương pháp Bloom filter cho bài toán so trùng chuỗi tĩnh Y tưởng của phương
pháp này là thực hiện kiểm tra một chuỗi đầu vào có độ dài L kí tự có thuộc vào một tập tương
ứng L kí tự được quy định trước hay không.Chỉ khi chuỗi đầu vào thuộc vào tập mẫu này, một
bước phát hiện chính xác mới cần được thực hiện Một hướng tiễn cận khác sử dụng phươngpháp hash cuckoo được dé xuất trong [10], tác giả xây dựng khối so trùng độc lập cho các chuỗiđộ dài từ 1-16 Việc so trùng các chuỗi có độ dài lớn hơn được thực hiện băng cách tái sử dụngcác kết quả của chuỗi ngắn hơn sử dung phương pháp linked list Phương pháp nay cho hiệu
Trang 20quả về sử dụng bộ nhớ tốt nhất.Ngoài ra các tác giải còn đề xuất phương pháp cho phép cậpnhật động tập mẫu.
2.3.2 Phương pháp so trùng mẫu biểu thức chính quy
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 đã va đang đượcnghiên cứu khá rộng rãi Một cách hiện thực hữu hiệu nhất trên các thiết bi FPGAs là sử dụngmô hình máy trang thái hữu hạn FSM (Finite State Machine) Việc triển khai trên FSM đượcchia thành hai cách tiếp cận là máy trạng thái đơn định Deterministic Finite Automata (DFA)
và máy trạng thai không đơn định (Non-deterministic Finite Automata).
Năm 2001, Sidhu và Prasanna đề xuat các khối logic hiện thực NFA cơ bản cho các toán tử
Concatenation (.) , Kleene-Star (*), Union (I) trên FPGAs [11].Clark va Schimmel sử dụng giải
pháp pre-decoding dé chia sé bộ so sánh ky tự (character comparator) va do đó đã giảm đượckhá nhiều tài nguyên phan cứng [12] Hai phương pháp này trở thành nguyên mẫu cho nhiều
nghiên cứu sau nay [13] [14] [15].
Nam 2008, Yang [16] đưa ra một thay đổi cho việc biểu diễn NFA trên chip FPGA Trongkiến trúc này các Flipflop được đặt sau các mach logic thay vi đặt trước như của Sidhu va
Prasanna.Nhờ đó thời gian so trùng ký tự có thé chồng lấp lên thời gian chuyền trang 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 [17] sử dụng 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ực21 biểu thức chính quy và đạt được tốc độ 1.18Gbps.Kumar [18] đưa ra một số chỉnh sửa cho
phương pháp DFA truyền thống va dé xuất mô hình DFA với độ trễ ngõ nhập (Delayed Input
DFA — D2FA) Mục tiêu của phương pháp này là giảm số lượng các chuyển trạng thái dư thừa
do đó tiết kiệm được tài nguyên hệ thống
Gần đây, nhóm nghiên cứu của học viện Kyushu [14] giới thiệu một thiết kế dạng lai ghépkết hợp giữa NFA và DFA Họ sử dung mô hình kiến trúc DFA dé xử lý các chuỗi kí tự liêntụ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
2.3.3 Van đề xử lý các ràng buộc kết hợp đa mẫuMặc dù các phương pháp để so trùng các mẫu độc lập được nghiên cứu khá phổ biến,
nhưng giải pháp để xử lý kết hợp các mẫu để thỏa mãn các ràng buộc về vị trí và tính chất củamẫu thi không nhiều Trong [19], Baker và Prasana mở rộng phương pháp shift and compare
Trang 21để hỗ trợ các ràng buộc distance, within Họ tận dụng các bộ đếm và so sánh cho từng mẫu cụthé Việc xử lý ràng buộc nocase, distance, within không được nhac đến Một các tiếp cận khác
là sử dụng biểu thức chính quy dé thay thế cho các mẫu tinh kết hợp Trong [20], Clark vaSchimmel viết lại tập mẫu tĩnh có chứa ràng buộc và hiện thực băng phương pháp máy trạng
thái NFA Phương pháp này có thể xử lý triệt để các ràng buộc nhưng gặp phải điểm yêu chung
là tốn tài nguyên dẫn đến giảm khả năng mở rộng, không thích hợp cho việc hiện thực số lượnglớn mẫu tĩnh và khó cập nhật
2.4 Phương pháp băm CuckooCuckoo Hashing [21],dugc dé xuất bởi Pagh và Rodler năm 2004, là một giải thuật cho phéptìm kiểm chuỗi với thời gian tìm kiếm hang số Cuckoo Hashing sử dụng hai hàm hash với 2bảng lưu giá trị T1 và T2 Mỗi khi chèn một mẫu mới vào hệ thống, mẫu có thé năm l tronghai bảng T1 hoặc T2 nhưng không phải cả hai.Việc tìm kiếm mẫu luôn đòi hỏi tối đa 2 lần trabảng ngay cả trong trường hợp xấu nhất
Hình 2-2 mô tả cách thức dé chèn thêm một mẫu mới vào các bảng tra.Trong hình,mẫu ‘x’có thé chèn vào 2 vị trí của bảng T1 và T2.Nếu có ít nhất | trong 2 bảng còn trống thì x sẽ đượcchèn vào | trong 2 bảng đó (như hình a) Nếu không có bảng nào trống (như hình b), x sẽ chiếmchỗ của | giá trị trong | bảng, ở đây là ‘y’ trong T1, và y sẽ là giá trị bị “chiêm chỗ” Giá trị bị“chiếm chỗ” sẽ tiếp tục được chèn vào bảng T2 Quá trình chèn và “thay thế” diễn ra tiếp tụccho đến khi có chỗ để chèn vào trong bảng T1 hoặc T2
Hình 2-2 Cách thức chèn vào bảng T1 T2 sử dung Cuckoo Hashing
Giải thuật này có khả năng hiện thực trên phan cứng, nhờ vào tính chat đơn giản của việc
“chiếm chỗ” và “øh1 lại” tương đồng với việc Write dữ liệu ở chế độ Read First trong Block
Ram của FPGA.Một nghiên cứu sớm nhất vẻ hiện thực so trùng mẫu tĩnh dùng giải thuật
Cuckoo Hashing được dé xuất trong [22] Các tác giả thiết kế kiến trúc so trùng mẫu tinh sử
dụng phương pháp Cuckoo Hashinh với ham hash SAX (Shift-Add-Xor) Trong luận văn này,
kiến trúc so trùng mẫu tĩnh sẽ áp dụng thiết ké trong [22] với một số thay đổi dé phù hợp với
Trang 22tính chất mẫu trong tập quy luật của hệ thống phát hiện xâm nhập mạng.Chi tiết về thiết kế phầncứng sẽ được trình bày cụ thể trong chương 4.
2.5 Phương pháp máy trạng thái
Phương pháp máy trạng thái (Finite State Machine — FSM) là một khái niệm trừu tượng
toán học được dùng để thiết kế một chương trình máy tinh hay logic luận lý FSM thực chat là
một mô hình bao gồm một số lượng hữu han các trạng thái, sự chuyên trang thái giữa chúng
tương tự như một lưu đồ mô tả một hành động khi điều kiện đầu vào được thỏa.FSM có một bộ
nhớ nội hữu hạn và các ngõ ra tương đương như các giao diện người dùng.Hoạt động của FSM
có thé được mô tả như sau.FSM xuất phát tại một trạng thái (gọi là trạng thái bắt dau start state),
đi qua các trạng thái chuyên tiếp dựa vào các input đầu vào trước khi kết thúc tại một trạng tháinào đó Tuy nhiên, chỉ có một trạng thái nào đây được đánh dấu là kết thúc thành công của hoạtđộng (gọi là accept state) Nêu một FSM biểu diễn một chuỗi, ta nói FSM chấp nhận chuỗi đó
not_n not_i not_c not_e
Hình 2-3 Một máy trang thái chấp nhận chuỗi ‘nice’
FSM cung cấp hai cách tiếp cận là máy trang thái hữu han đơn định (Deterministic Finite
Automata — DFA) và máy trạng thái hữu hạn không đơn định (Non-deterministic FiniteAutomata).
Điểm khác biệt chính giữa hai cách tiếp cận của máy trạng thái hữu hạn nằm ở chỗ hàmchuyên trạng thái của chúng Hàm chuyên trạng thái của DFA trả về một kết quả là một trạng
thái đơn kế tiếp và hàm có chức năng tương tự ở NFA trả về một tập các trạng thái, có thé làmột tập rỗng Do đó, trong khi NFA cho phép nhiều hơn một trạng thái cùng tích cực tại một
thời điểm, DFA chỉ cho phép một trạng thái tích cực Do đó, thời gian chuyển trạng thái củaDFA ít hơn so với NFA, tuy nhiên DFA lại chịu sự bùng nỗ trạng thái hơn so với NFA Chính
những ưu khuyết điểm của từng mô hình này tạo nên những thuận lợi và khó khăn khi hiện thực
trên các thiết bị phân cứng
Trang 232.5.1 Máy trạng thái đơn định
Một máy trang thái hữu hạn đơn định (Deterministic Finite Automata — DFA) là một đồthị có hướng bao gồm các đỉnh biểu diễn trạng thái và các cạnh biểu diễn sự chuyển trạng thái.Một đỉnh được định nghĩa là start state và một hay nhiều đỉnh nào đó làfinal state hay accepting
state Sự chuyển trạng thái được biểu diễn bởi các mũi tên gọi là các cạnh ra.Tat cả các cạnhnảy được đánh nhãn bằng các ký tự đầu vào.DFA không cho phép hai cạnh ra của cùng một
trạng thái cố cùng một nhãn input Do đó, tại một thời điểm, chỉ có một trạng thái biểu diễn
trạng thái hiện tại.
Start do 1
`_⁄
Hình 2-4 DFA chấp nhận tất cả các chuỗi bit chứa ít nhất 2 bit 1
2.5.2 Máy trạng thái không đơn định
Một máy trang thái hữu hạn không đơn định (Non-deterministic Finite Automata — NFA)
là một DFA với một số tính năng mở rộng NFA cho phép nhiều hơn một trạng thái biểu diễntrạng thái hiện tại trong cùng một thời điểm Do đó, NFA cho phép các cạnh ra xuất phát từ mộttrang thái có cùng một nhãn Không giống như DFA, NFA cho phép các cạnh ra có thé khôngcó nhãn (không có ký tự đầu vào), các cạnh này gọi là chuyền trạng thái epsilon (e-transition)
(a `
AY
_` 0 q \ € >! a 922,
_ ` ` ZHình 2-5 NFA chấp nhận các chuỗi bit kết thúc bởi 00 hay 0110
Hình 2.10 chỉ ra 1 NFA tích cực khi nhận chuỗi bit kết thúc bởi “00” hoặc “0110” Lưu ý,trạng thái bắt đầu đo có 2 cạnh ra với cùng ký tự đầu vào là “0.Khi nhận ‘0’ với trạng thái hiệntại là go, NFA sẽ tích cực cả go và qi Khi g; tích cực g3 sẽ tự động chuyển sang trạng thái tíchcực do qi có cạnh ra e tới g3 Nếu ký tự vào tiếp theo là “0ˆ ga sẽ tích cực (kết thúc) Nêu ký tựvào tiếp theo là ‘1’ ga sẽ tích cực đồng thời tat trang thái tích cực của gz Lúc này, các trạng tháitích cực của NFA gồm có gova g2 Ký tự “1ˆ tiếp theo sẽ chuyển trạng thái tir g2 sang s, sau đó
ký tự “0” sẽ tích cực trang thai gz.
II
Trang 24Bang 2-1 Bảng chuyền trang thái của NFA trongHình 2-5
là 0 1qo _ {đo, is | do
qi q3 _ d2d2 _ _ dãdã _ d4 _
hơn Một NFA đơn giản nhất là NFA chấp nhận một ký tự đơn Các NFA lớn hơn sẽ
chứa đựng ít nhất một hay nhiều NFA nguyên tử này Hình 2-6m6 tả NFA nguyên tửvới một trạng thái bắt đầu và một trạng thái kết thúc
Hình 2-6 NFA chấp nhận một ký tự đơn.e Nguyên tắc thứ hai: dé kết nói hai biểu thức chính quy ta sử dụng luật trong hình bên
dưới Trong đó, mỗi hình chữ nhật nét đứt biéu diễn một NFA biểu diễn một biểu thức
Trang 25e _ Nguyên tắc thứ tư: các toán tử lượng tử của biểu thức chính quy (*,?,+) được biéu diễn
lần lượt theo các hình bên dưới dựa theo chức năng của toán tử
Bằng cách kết hợp các quy tắc đi từ cơ bản được trình bày trong phần này, hoàn toàn cóthê xây dựng một NFA biểu diễn một biểu thức chính quy phức tạp hơn Ta xét một ví dụ xâydựng NFA từ biểu thức chính quy sau “((z*b)(c|đ))” Trước tiên, ta xây dựng NFA chấp nhận
ký tự ‘a’ Sau đó áp dụng quy tắc thứ tư cho toán tử * ta xây dựng NFA cho z* và NFA này
được kết nỗi với NFA chấp nhận b Song song với thao tác trên, ta xây dựng NFA chấp nhận cvà đ rồi luân phiên chúng băng quy tắc thứ ba tạo thành NFA cho(c|đ) Cuối cùng kết nối
NFA(a*b) và NFA(c|d) ta được NFA kết quả mô tả ở hình 2.17
z `
© ragga eS
OC
Hinh 2-12 NFA biéu dién ((a*b)(c|d)) được xây dung theo các quy tắc cơ bản
Luận văn sẽ áp dụng phương pháp NFA trong việc so trùng mẫu động cho hệ thông pháthiện xâm nhập mang.Chi tiết về thiết kê, kiến trúc máy so trùng, phương pháp xây dựng và hiệnthực máy trạng thái sẽ được trình bày cụ thé hon trong chuong 4 va 5 cua luan van
2.6 NetFPGA PlatformNetFPGA là một platform phan cứng tái câu hình chi phí thấp chuyên dung cho mạng tốcđộ cao Trên board NetFPGA bao gồm các khối logic, bộ nhớ và các card Gigabit Ethernet đểtừ đó người sử dụng có thê xây dựng nên một switch, router hay một thiết bị an ninh mạng Bởi
13
Trang 26vì tồn bộ module truyén/ dinh tuyén gĩi dữ liệu được hiện thực trên phân cứng, hệ thống cĩ thểhỗ trợ các gĩi dữ liệu truyền ở tốc độ Gigabit với độ trễ xử lý (processing latency) chỉ trong vài
chu kỳ clock.
Ps |
° FPGAw/provided infrastructure Trời
@ « or © > © —L) —> >=
& <M ||GIrnLL {|| «| Field Programmable =o
— Th Gate Array (FPGA):
Co " X ¬D —_ = —_ > | = « > T @ @m = mm > = Virtex Il-Pro 50 ee
-> ->
S « „ZøL||šà[ —L User-defined 28 o
E <i) ||ư mT otwo
= Processing 2œ= |v => =^t* | Logic Pa
+ < >T@ 2®)
¬ <ml |lŠm|.[T 4 S =
2 FIFO †+
2 NetFPGA packet Control, PCI
platform buffers Interface —
i
Host ter | Linux OS - NetFPGA Kernel driver |
computer | User-defined software networking applications |
Hình 2-13 Kiến trúc NetFPGA
Hình 2-13 mơ tả sơ đỗ khối của NetFPGA NetFPGA platform bao gồm một chip XilinxFPGA lớn của họ Virtex2-Pro 50 hoạt động với tần số clock là 125 MHz Chức năng của chipnay được lập trình bởi người sử dụng Bên cạnh, NetFPGA cung cap một chip Xilinx FPGAnhỏ hon ho Spartan II được hiện thực như bộ điều khiển luận lý cho các card PCI đến các bộ
xu lý của máy chủ.
Hai SRAM ngoại 18 MBit của hãng Cyress được câu hình từ 512KB 36-bit word (tổng cộng2 * 512kB * 36 = 4.5 MB) và hoạt động đồng bộ với xung clock 125 MHz Một bank cuaSDRAM DDR2 ngoại hãng Micron được cau hình từ 16M 32-bit word (64 MB tổng cộng)
Một bộ nhớ cĩ băng thơng đạt 400 MWords một giây (tương đương 12800 Mb/s).
Bộ truyền nhận ngoại lớp vật lý của hãng Broadcom BCM5464SR Gb/s gửi gĩi dữ liệu quacác cable xoăn mức 5, 5e hay 6 NetFPGA cũng bao gồm hai bộ giao tiếp SATA cho phép nhiềuboard NetFPGA trong một hệ thống trao đổi dữ liệu trực tiếp mà khơng cần sử dụng PCI
Các đặc điểm kỹ thuật chính của NetFPGA:
e FPGA Chip: Xilinx Virtex II Pro 50
v 53,136 logic cellsv 4,176 Kbit block RAM
Trang 27v 738 Kbit distributed RAMv 2.x PowerPC cores
Y Fully programmable by the user
4 Gigabit Ethernet ports4.5 Mbytes SRAM (2 x 2.25 Mbytes; 36 x 512k)64 Mbytes SDRAM (32 x 16M)
Standard PCI interface
15
Trang 28Chương 3 Tổng quan xử lý phần thân gói dữ liệu cho
hệ thống NIDS
Chương này gồm 2 phan Phan dau tiên phân tích tập quy luận của phần mềm phát hiệnxâm nhập mạng mã nguồn mở Snort được sử dụng trong khuôn khổ luận văn này Phần haitrình bày tổng quan kiến trúc và nguyên tac hoạt động của hệ thống so trùng nội dung gói dữliệu trên phân cứng
3.1 Tập cơ sở dữ liệu mã độc của SnortCũng giống như virus, malware, hau hết các hoạt động tan công hay xâm nhập déu có cácdấu hiệu riêng để nhận biết.Dựa trên các dau hiệu này có thể định nghĩa ra các luật (rules) đặc
trưng mà dựa vào đó các công cụ phát hiện và chống xâm nhập mạng có thê phát hiện được các
hoạt động bat hợp pháp này Các dau hiệu này có thể là nội dung của các trường trong gói dữliệu hay các hành vi của traffic trong môi trường mang Cú pháp và định dạng các luật có thé
rât khác nhau tùy thuộc vào mục đích sử dụng và kiến trúc của các hệ thống.
Snort sử dụng hai định dạng luật dé mô tả các dâu hiệu tan công: dang binary và dạng plain
text.
e Dang binary: được viết và biên dịch thành các thư viên chia sẻ (.so, dll) cho phép
linh động trong việc phát hiện các dạng tân công mới mà kiến trúc hiện tại chưa hỗtrợ và bảo đảm tính riêng tư trong các nội dung cần tìm kiếm
e Dang plaintext: Các luật được viết dưới dạng mã ASCII va được tổ chức thành
từng tập luật (ruleset), mỗi tập luật tương ứng với một dạng tân công hay mã độc
nào đó, vi dụ như: ddos, exploits, worm, web-clients, backdoor,
Thế mạnh của Snort được thể hiện qua việc áp dụng hiệu quả các luật dạng plain text Với
cau trúc rõ ràng, định nghĩa súc tích, và khả năng mô tả một cách chính xác các dấu hiệu tan
công, những luật dạng này được sử dụng ngày càng pho biến Người dùng ở nhiều cap độ khácnhau, từ người dùng bình thường, nhà nghiên cứu, quan trị viên hệ thống mang cho đến cácchuyên gia bảo mật có thé tự xây dựng các tập luật bd sung dé phù hợp với mục đích của mình.Hình 3-1 minh họa một luật dạng plain text cua Snort dé phát hiện hoạt động của sâu Slammer
alert udp SEXTERNAL NET any -> S$HOME NET 1434 (content:"|04|"; content:"|81E1 03 01 04 9B 81 E1 0 1|”; content:"sock”"; content:"send";pere:"*.{4,9}cgi-bin/php"; sid:2003; )
Hình 3-1 Vi du một luật dang plain text trong Snort
Trang 293.1.1 Cau trúc luật của Snort
Cau trúc một luật trong Snort gồm 2 phan, phan mô tả thông tin phần dau gói dữ liệu (ruleheader) và phần mô tả các dấu hiệu trong phan thân gói dữ liệu (rule option)
Một rule header gồm 5 thông tin như sau:e Action: là phan qui định loại hành động nào được thực thi khi các dau hiệu của gói
dữ liệu được nhận dạng chính xác băng luật đó Thông thường, các hành động tạo
ra một cảnh báo hoặc log thông điệp hoặc kích hoạt một luật khác.
e Protocol: là phan qui định việc áp dụng luật cho các packet chi thuộc một giao thứccụ thé nào đó Ví dụ như IP, TCP, UDP
e Address: là phan dia chi nguồn và địa chỉ đích Các địa chỉ có thể là một máy đơn,nhiều máy hoặc của một mạng nào đó Trong hai phần địa chỉ trên thì một sẽ là địa
chỉ nguồn, một sẽ là địa chỉ đích và địa chỉ nào thuộc loại nào sẽ do phan Direction
“->” qui định.
e Port: xác định các công nguồn và đích của một gói dữ liệu mà trên đó luật được áp
dụng.e Direction: phân này sẽ chỉ ra dau là dia chỉ nguôn, đâu là địa chỉ dich.
e Thong tin chỉ số của luật:
©_ sid:2003
e Các mau tĩnh:
o confenf:"|04H”;o content:"I81 FI 03 01 04 9B 81 FI 0 II";o content:"sock";
o content:"send";
17
Trang 30e Mẫu biểu thức chính quy
©_ pcre:"^.{4,9}cgi-bin/php”;
Phan tiép theo sẽ giới thiệu hai loại mẫu được sử dụng trong Snort va sự két hop cua chúng
dé tao nén mot dau hiéu nhan biét hoan chinh.
3.1.2 Phan loai mau
Việc phát hiện các hành động tan công hay xâm nhập mang của Snort dựa chủ yếu vào việctìm kiếm sự xuất hiện của các mẫu trong phân thân gói dữ liệu Các mẫu này chính là nhữngmảnh thông tin thu thập được trong quá trình phân tích các hành động tấn công diễn ra truocđó Băng việc kết hợp các mẫu này với nhau, ta có thể xây dựng nên các luật hoàn chỉnh chophép phát hiện một cách chính xác sự tái diễn của các tan công này
Có hai dạng mẫu được sử dụng trong tập luật của Snort là mẫu tĩnh và mẫu biểu thức chínhquy (hay mẫu động) được biéu diễn qua các từ khóa tương ứng “content”, “pcre”
Bảng 3-1 Bảng thống kế tập luật Snort phiên bản 2.9.41Loại Số lượng | Mô tả
Rule sets 106 Sô tập luậtRules 16737 Tong số luậtDisable rules 13139 _ | SO luật mặc định tatEnable rules 8523 Sô luật mặc định mởRules TCP 14360 Số luật theo giao thức TCPRules UDP 2162 Số luật theo giao thức UDPRules ICMP 144 Số luật theo giao thức ICMPRules IP 71 Số luật theo giao thức IPpcre only 67 Số luật chi chữa mau độngcontent only 10663 Số luật chi chữa mau tinhboth pcre and content | 5745 Số luật két hợp mauno pattern 262 Số luật không sử dụng mẫu3.1.2.1 Mẫu tĩnh
Trong tập luật của Snort, mẫu tĩnh đóng vai trò quan trọng và chiếm một số lượng rất lớn
Một ưu điểm của mẫu tĩnh là tính đơn giản trong việc hiện thực giải thuật tìm kiếm Thời gian
tìm kiếm mẫu tĩnh thường là nhanh hơn rất nhiều so với mẫu động.Chính vì thế hầu như trongtat cả luật của Snort đều có sự tham gia của mẫu tĩnh
Mau tĩnh định nghĩa một chuỗi byte với chiều dài cô định và có thé được mô tả dưới dạngmột chuỗi các ký tự mã ASCII hoặc mã hex.Một mẫu tĩnh có thé là phân biệt chữ hoa và chữ
thường, hoặc không phân biệt chữ hoa và chữ thường (thông qua từ khóa nocase).Bén dưới là
một sô ví dụ mẫu tĩnh
Trang 31e Mau dạng số hex: content:”100 0C 00 52I”e Mau dạng mã ASCII: content:”application/ms-tnef”e Mau kết hợp và không phân biệt chữ khoa chữ thường: content:ZSEARCH /
NTTP/1.1|0D OA|Host|3A|”’; nocase
3.1.2.2 Mau dong
Mau động trong Snort được mô tả thông qua từ khóapcre Day là một biểu diễn dạng biểuthức chính quy được mở rộngtheo định dạng ngôn ngữ Perl Mẫu động có khả năng định nghĩacác dau hiệu có độ pho rong hon nhiều so với mau tinh Mét điểm mạnh của mẫu động là trongviệc chỗng lại các hình thức lan tránh trong tan công mạng Trong trường hợp này, kẻ tan côngcó tinh tạo ra các thay đổi trong nội dung gói dữ liệu chứa mã độc nhăm qua mặt hệ thống phát
hiện xâm nhập.
Biểu thức chính quy thực chat là một dạng ngôn ngữ hình thức với cú pháp được quy địnhdựa trên hai loại ký tự: các ký tự thông thường (bảng chữ cái, chữ số, ký tự trong bảng mã
ASCII, ) và các siêu ký tự (hay còn gọi là các toán tử).
Biểu thức chính quy được đặc trưng bởi 3 dạng toán tử chính là : toán tự gộp toán tử lựa
được định nghĩa qua một ví dụ sau.
Bên dưới là một số ví dụ của biểu thức chính quy:
e Biểu thức abled so trùng chuỗi ‘ab’, ‘cd’.e Biéu thức ab* so trùng chuỗi con ‘a’, ‘ab’, ‘abb’, ‘abbb’, ‘abbb b’.e Biểu thức ab+ so trùng chuỗi con ‘ab’, ‘abbb’, ‘abb bb’ không so trùng ‘a’.e Biểu thức ab? chi so trùng ‘a’ va ‘ab’
19
Trang 32Ngoài ra các biểu thức chính quy còn có thể được gom nhóm lại trong trường hợp muốn làm
tăng độ ưu tiên băng cặp dâu đóng mở ngoặc *()’ Chang hạn x(a?|b*)y chỉ so trùng xay, xy,
xby, xbby, xbb by.
3.1.3 Các ràng buộc va kết hop mẫuNhiều mẫu tĩnh và mẫu động có thể được kết hợp với nhau để mô tả một luật Trong Snort,
số luận chỉ chứa duy nhật một mẫu tĩnh hoặc mẫu động chỉ chiếm 39% Có 59% luật đòi hỏi sựkết hợp của nhiều hơn một mẫu, trong đó thì 25% kết hợp nhiêu mẫu tinh và 34% kết hợp vừamẫu tĩnh vừa mẫu động
Trong Snort, các ràng buộc về vị trí và kết hớp mẫu được mô tả thông qua các từ khóa:Depth, offset, distance, within Hình 3-3minh họa mỗi quan hệ giữa các ràng buộc này trong
việc so tring mâu.
e_ Offset: quy định Snort vị trí bắt đầu quá trình tìm kiếm mẫu tan công tính từ đầu
payload Một chuỗi tĩnh được quy định với giá tri Offset là 5, nghĩa là chỉ bắt đầu
tìm kiểm mẫu này sau 5 bytes đầu tiên của payload
e Depth: Yêu cau Snort chi tim kiém trong một khoảng cach nhất định, tính từ vị trí
“Offset” Depth có giá trị là 20, nghĩa là Snort chỉ tìm kiếm nội dung content đó
trong 20 byte đầu tiên từ vị trí Offset của nó
Ví du:alert tcp any any -> any 80 (content: "cgi-bin/phf"; offset:4; depth:20;)
¢ Within: Quy định khoảng cách tim kiếm mẫu tinh tinh từ vi trí trùng của mẫu tĩnhtrước đó Do tinh chất của within, option này nam trong luật có 2 mẫu trở lên, va
thường đi kèm với từ khóa distance.
e Distance: Quy định vi trí bat đầu tìm kiếm mẫu tĩnh tinh từ vi trí trùng của mẫu tĩnhtrước đó, từ khóa này cũng năm trong luật có 2 mẫu tĩnh trở lên
Ví dụ:alert tcp any any -> any any (content:"ABC"; content: "DEF"; distance: 1;)
Trang 33| ! | | |Start of End ofi” End of (+1) Start of (i+2)" End of
packet match match match packet
Hình 3-3 Mối liên quan của các option trong định nghĩa mẫu tinh
Qua phân tích tập quy luật của Snort, và dựa trên đặc điểm kết hop mẫu của Snort có thể
phân loại luật thành các loại như sau:
Loại 1: Luật chỉ chứa duy nhất một mẫu tĩnh.Loại 2: Luật chứa một mẫu tĩnh và mẫu động.Loại 3: Luật chứa nhiều mẫu tĩnh kết hợp ràng buộc về thứ tự.Loại 4: Luật loại 3 nhưng kết hợp với mẫu động
Loại 5: Luật chứa nhiều mẫu tĩnh kết hợp nhưng không ràng buộc về thứ tự.Loại 6: Luật loại 5 nhưng kết hợp với mẫu động
Loại 7: Luật chỉ chứa mẫu động
Bảng bên dưới thống kê tập luật Snort phân loại theo 7 nhóm luật
Bảng 3-2 Bảng thống kê tập luật Snort phân theo 7 nhóm luật
Rule Group | No rules No static pattern | No dynamic patternType | 6453 6453 0
Type 2 3375 3375 3396Type 3 2437 7331 0Type 4 1184 3986 1356Type 5 1773 5314 0Type 6 1186 3422 1221Type 7 67 0 95
3.2 Xử ly nội dung gói dữ liệu trên phan cứng
Mục tiêu của luận văn là xây dựng module xử lý phan thân gói dữ liệu (PayloadProcessor).Hình 3-4mô tả tổng quát giao tiếp dữ liệu của module Payload Processor.Bao gồm
các tín hiệu được mô tả như dưới đây.
21
Trang 34Giao tiếp với module Packet Collector and Decoder
e byte[7:0]: Byte dữ liệu phần payload
e byte_valid: Dang có df liệu trên bus byte.
° sop: byte dau tiên của gói dữ liệu
° op: byte cuối cùng của gói dữ liệu.e pReady: Phản hồi cho biết Payload Processor sẵn sàng xử lý dữ liệu
e ruleID[n:0]: chỉ số của luật phát hiện được
e rule_valid: dang có dt liệu trên bus ruleID
e mReady: Module Management sẵn sàng nhận dé liệu
\ byte_valid{ Ì rulelD N
Packet \ byte[7:0] rule_valid \
Collector Managementand \ sop „| Payload N
Decoder Processor d N
\ eop — ready N
\ _ ready N
we, `
Hình 3-4 Mô hình giao tiếp dữ liệu của module xử lý nội dung gói dữ liệu
Toàn bộ nội dung việc xây dựng module xử lý phần thân gói dữ liệu gồm hai phân chính:Phần cứng khả cấu hình và phần mềm phân tích, tổng hợp luật Dựa trên tập quy luật của hệthống phát hiện xâm nhập mang và đặc tả về hệ thông, phần mềm phân tích va tong hợp luậtcho phép xây dựng nhanh chóng phan cứng khả cấu hình Phan tiếp theo đi vào trình bay tổngquan nội dung của từng phan Chi tiết thiết kế và hiện thực được mô tả cụ thể trong các chươngtiếp theo
3.2.1 Phân tích và tổng hợp luật
Phan mềm phân tích và tổng hợp luật tiền xử lý tập mẫu của hệ thong phát hiện xâm nhậpmạng, từ đó xây dựng nên kiến trúc phần cứng phù hợp cùng các dữ liệu cần thiết để có thểtong hợp hệ thống Quy trình thiết kế được môt tả trong Hình 3-5bắt dau với dữ liệu nhập là tậpluật cần hiện thực (IDS Signature Database) và các câu hình (hay yêu cầu) trong việc triển khaihệ thống (Configuration)
Trang 35Database / fate and Compiler
Metadata
Memory ContentFiles
FPGA ConfigInitial data Synthesis Tools
Hình 3-5 Quy trình tổng quát phân tích xử ly luật và xây dựng hệ thống
Configuration chứa các yêu câu về tập quy luật và kiến trúc phần cứng bên dưới.Phân mềmdựa trên các yêu cầu về tập quy luật đề loại bỏ bớt các luật không phù hợp trước khi tiến hànhtrích xuất mẫu và xây dựng kiến trúc phần cứng.Kiến trúc phần cứng được sinh ra bởi phầnmềm gồm hai phân, phần đặc tả kiến trúc dạng thanh ghi (Configurable Hardware) và phân nộidung các khối bộ nhớ (memory content) Configuralbe Hardware bao gồm các file verilog, fileđặc tả lõi IPCore và các tham số (parameter) Trong kiến trúc phần cứng của module xử lý nộidung gói dữ liệu sử dụng nhiều khối bộ nhớ onchip, dữ liệu cho các khối bộ nhớ này có thé
khởi tạo trong quá trinh tổng hợp hệ thống, hoặc cập nhật khi triển khai hệ thống.
Sau khi có được kiến trúc phan cứng và nội dung của các khối bộ nhớ Tại thời điểm nàycó thể sử dụng các công cụ hỗ trợ (Synthesis tools) để mô phỏng, kiểm tra thiết kế và tổng hợp
ra bit file nạp lên chip FPGA.
3.2.2 Kiến trúc phần cứng
Để có thé tận dụng được các chức năng của phần mềm phân tích và tổng hợp luật, kiếntrúc phan cứng phải được thiết kế mềm dẻo bang việc sử dụng linh hoạt các khối bộ nhớ và cáctham số (parameter) khi đặc tả chức năng.Hình 3-6là lược đồ xử lý nội dung gói dữ liệu trênphan cung Bat dau voi mot modulePreinterface thực hiện đệm, đồng bộ và giao tiếp dữ liệuvới các module khác trong hệ thống Các byte dữ liệu sẽ được đồng thời quét trên các bộ sotrùng mẫu tinh (Static Pattern Matching )và mẫu động (Dynamic Pattern Matching) Các bộ
này chỉ quét và tìm ra sự xuất hiện của các mẫu độc lập.Cuối cùng module Pattern Combiner
sé két hop va dam bao tất cả các mẫu cần thiết cho một luật đều được kiểm tra trước khi dua rakết luận
23
Trang 36Byte Stream——> Pentre
Hình 3-6 Mô hình tong quát kiến trúc phan cứng cho module payload processor
Module so trung mẫu tĩnh được hiện thực dựa trên kiến trúc giải thuật Cuckoo hashing[22] Một ưu điểm của kiến trúc này là khả năng thiết kế hoàn toàn dựa trên bộ nhớ.Nhờ đóviệc cập nhật tập quy luật mới có thể thực hiện nhanh chóng và dễ dàng hơn
Đối với xử lý mẫu động hay mẫu biểu thức chính quy, ở đây sẽ sử dụng kiến trúc máytrạng thái NFA Máy trang thái NFA có thé tận dụng kha năng xử lý song song mạnh mẽ củaFPGA, với yêu câu về tài nguyên chấp nhận được.Hình 3-7 mô tả kiến trúc phan cứng của một
máy trạng thái so trùng mau động “^a*(b|c)đ$” Ung với mỗi mẫu động, phần mềm phân tích
và tong hợp luật sẽ tiến hành xây dựng máy trạng thái và ánh xạ sang kiến trúc phần cứng phù
Trang 37Chương4 Hiện thực module phần cứng
Chương này mô tả chi tiết kiến trúc phần cứng của module xử lý nội dung phan thân góidữ liệu Hình bên dưới mô tả tổng quan kiến trúc gồm 3 phan: Static Pattern Matching Module,Dynamic Pattern Matching Module, Pattern Combine Module Tổng quan nguyên tắc hoặc
động của module đã được trình bay trong chương 3 Phân tiếp theo tập trung vào mô tả thiết kế
và hiện thực của từng phan
Payload Processor
Static Pattern Matching Module
—N) Cuckoo Pattern Matching | | Group 12 |)
Dynamic Pattern Matching Module Pattern Combine Module
Hình 4-1 Kiến trúc tổng quát hệ thống xứ lý phần thân gói dữ liệu
4.1 Static Pattern Matching ModuleKhối xử lý mẫu tĩnh gồm 2module máy so trùng dựa trên thuật toán cuckoo (CuckooPattern Matching Unit - CPMU), một cho so trùng mẫu phân biệt chữ hoa chữ thường (CPMU1) và một cho so trùng mẫu không phân biệt chữ hoa chữ thường (CPMU 2) Hai máy so trùngnày có kiến trúc đồng nhất và hoạt động song song với nhau Đối với CPMU 2, byte dữ liệudau vào phải qua một bộ chuyển đổi ky tự (Down Case Unit) để chuyển tat cả các ký tự dạngchữ hoa (có mã hex từ 0x41 đến 0x5A ) thành chữ thường
4.1.1 Cuckoo Pattern Matching Unit (CPMU)
Hình 4-2 mô tả kiến trúc tong quát của bộ so trùng mẫu str dung phương pháp cuckoohashing.Trong mô hình này tập mẫu pattern được tiền xử lý và xây dựng sẵn ở bên trong hệthống.Chuỗi dữ liệu đi vào sẽ so sánh với tat cả các mẫu.Cuckoo hashing đảm bảo thời gian tìm
kiếm là hăng số và đạt được tốc độ cao.Mỗi module tên Cuckoo L; lưutrữ những mẫu có chiều
dài i (1< i <16) ký tự Đối với những mau dài hơn 16 ky tự, mẫu sẽ được phân chia thành những
25
Trang 38đoạn nhỏ hơn mà có thể thêm vào trong các module Cuckoo của mẫu ngắn Sau đó, ở đây sửdụng kỹ thuật danh sách liên kết dé kết nỗi những đoạn này với nhau.Công việc này được thực
hiện trong module Long patterns processing & Priority.
> Cuckoo Lie >
_— ) "_— | 4
6000500040003000
#patterns 20001000
Hình 4-3 Bang phân bố chiều dài mẫu tĩnh ứng với các nhóm luật
Hình 4-4 mô tả chức năng của một module Cuckoo trong máy so trùng mẫu tĩnh KhốiBlock Ram T3 sẽ lưu giá trị các mẫu này (on-chip memory).Trong quá trình cập nhật cơ sở dữliệu, lần lượt các mẫu sẽ được đưa vào hệ thống với một index là số thứ tự của chuỗi trong
Block Ram T3 Khi một từ khóa (key) đi vào module, 2 hàm hashing có nhiệm vụ sinh ra địa
chỉ cho 2 bảng T1 và T2 Giá trị chèn vào hai bảng này là index của chuỗi trong bảng T3.Giải
Trang 39thuật Cuckoo Hashing được áp dụng để có thể chèn giá trị index này vào một trong hai bảng
Tl và 12.
Đối với quá trình so trùng, khi các từ khóa (key) vào hệ thông, hai hàm hash sẽ sinh ra địa
chỉ hash tương ứng Từ 2 giá trị của 2 Block Ram T1 và T2, ta sẽđưa vào 2 port cua Block Ram
T3, 2 giá trị đầu ra doutA và doutB sẽ qua bộ so sánh “Comparator” dé so sánh với mẫu từ khóa
hiện tại[eee exe ehh—e_Oooeesesepepeeeeeoeeeesepesee.ee eee |
|
| nà Cuckoo L; |
Hinh 4-4 Kién tric module Cuckoo
Cứ mỗi chu kỳ xung clock, dữ liệu đầu vào 8 bit sẽ được đưa vào một thanh chi dịch InputBuffer Có 16 module Cuckoo tương ứng với các bộ so trùng các mẫu có chiều dài từ 1 đến 16.Tùytheo số thứ tự của module, mà input dau vào có chiều dài phù hợp Ví dụ, đối với module
thì chi cần input dau vào là 1 byte, module 2 thì input dau vào là 2 byte Khi cóít nhất một bộ Comparator của 16 module báo hiệu trùng với cơ sở dữ liệu, thì bộPriority sẽ xuất ra các giá trị có dang/ith_module,T3_address}, trong đó
e hmodule: số thứ tự của module báo trùng
e T3_address: giá tri index của chuỗi trong Block Ram T3Để tăng độ băm (hashing) của giải thuật và hiện thực pipeline hệ thống, ở đây sử dụng hàm
SHIFT ADDXOR (SAX) SAX có ham hashing thứ (¡) sẽ phụ thuộc vào ham hashing thứ (i-1)
va byte đầu tiên của input_buffer theo công thức sau:
H, = H,_¡ ® (S,ŒH,_¡) + Sp Ai-1) + c¡)
e H;: giá trị hashing thứ ie S¡: dịch trai bit
e Sr: dịch phải bit
27
Trang 40e ci: ký tự thứ ¡ (ký tự cuối của module ?)Công thức cho thấy giá trị hash phụ thuộc vào 8 bit đầu vào và giá trị hash của module
trước đưa lên Ví dụ như: mẫu “abc” vào hệ thông Quy trình từng clock hiện thực như sau:
4.1.2 Long Pattern Matching
0 1 | 0 | infix segment suffix
1 | 1 | short & prefix 0 segmen t bit
1FEhldeflilo ; ;0SA4h 05A5h|0
IFEhlabelo Counter Register j 05A5hNULL |1
Tạin [ NULI] [NULL] / 3
Cuckoo iL „ | 0 | [0sAsn 07FEh| 05A4h |0
0} — Py 07F Fh] 07FEh| 0
=1A4h] gh |ijo ‘ ‘
1A5h| J 10 2 | [IrEEh le.
_1EFEhl 1FEFEh] 0
1FFh b)
Hình 4-5 Kiến trúc liên kết các chuỗi trong Long Pattern Matching