Luận án được thực hiện nhằm vào mục tiêu: Đề xuất các kỹ thuật mới trong phân loại gói tin và phát hiện xung đột trong tập luật tường lửa nhằm nâng cao tốc độ phân loại gói tin từ đó ph
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG
VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ
-
Vũ Duy Nhất
NGHIÊN CỨU ĐỀ XUẤT MỘT SỐ THUẬT TOÁN PHÂN LOẠI GÓI TIN VÀ PHÁT HIỆN XUNG ĐỘT NHẰM PHÁT TRIỂN
TƯỜNG LỬA HIỆU NĂNG CAO
LUẬN ÁN TIẾN SĨ TOÁN HỌC
Hà Nội - 2019
Trang 2BỘ GIÁO DỤC ĐÀO TẠO BỘ QUỐC PHÒNG
VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ
-
Vũ Duy Nhất
NGHIÊN CỨU ĐỀ XUẤT MỘT SỐ THUẬT TOÁN PHÂN LOẠI GÓI TIN VÀ PHÁT HIỆN XUNG ĐỘT NHẰM PHÁT TRIỂN
Chuyên ngành: Cơ sở Toán học cho Tin học
Hà Nội - 2019
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của tôi Những nội dung,
số liệu và kết quả trình bày trong luận án là hoàn toàn trung thực và chưa có tác giả nào công bố trong bất kỳ một công trình nào khác, các dữ liệu tham khảo được trích dẫn đầy đủ
Tác giả luận án
Vũ Duy Nhất
Trang 4LỜI CẢM ƠN
Luận án được thực hiện tại Viện Công nghệ thông tin – Viện Khoa học và Công nghệ quân sự Lời đầu tiên, NCS xin bày tỏ lòng biết ơn sâu sắc tới các thầy giáo TS Nguyễn Mạnh Hùng và TS Thái Trung Kiên, những người đã tận tình định hướng nghiên cứu, đào tạo và hướng dẫn NCS trong suốt quá trình học tập và nghiên cứu để hoàn thành luận án này
NCS xin được cảm ơn Viện Công nghệ Thông tin – Viện Khoa học và Công nghệ Quân sự đã nhiệt tình đóng góp ý kiến vào luận án và giúp đỡ NCS trong quá trình nghiên cứu
NCS xin được cảm ơn thủ trưởng và các đồng nghiệp thuộc Cục Cơ yếu – Bộ tổng tham mưu đã tạo mọi điều kiện thuận lợi cho NCS trong suốt thời gian nghiên cứu đề tài
NCS xin được bày tỏ lòng biết ơn chân thành tới các Thầy, Cô, các nhà khoa học đã chân thành góp ý và giúp đỡ cho NCS hoàn thành luận án này
Cuối cùng, NCS cảm ơn gia đình, bạn bè, đồng nghiệp đã luôn hỗ trợ, động viên, chia sẻ và giúp NCS có thêm quyết tâm và động lực vượt qua những khó khăn để quyết tâm hoàn thành luận án này
Xin trân trọng cảm ơn!
Trang 5MỤC LỤC
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT v
DANH MỤC CÁC BẢNG vii
DANH MỤC CÁC HÌNH VẼ viii
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ PHÂN LOẠI GÓI TIN TRÊN TƯỜNG LỬA 5
1.1 Một số khái niệm về tường lửa 5
1.1.1 Lịch sử hình thành tường lửa 5
1.1.2 Định nghĩa về tường lửa 5
1.1.3 Chức năng của tường lửa 6
1.1.4 Các kiểu tường lửa 6
1.2 Hiệu năng và mối quan hệ với quá trình phân loại gói tin của tường lửa 8
1.2.1 Mối quan hệ giữa hiệu năng và tốc độ phân loại gói tin 8
1.2.2 Quá trình phân loại gói tin trên tường lửa 10
1.3 Các hướng nâng cao tốc độ phân loại gói tin trên tường lửa 13
1.3.1 Các nghiên cứu trong lĩnh vực phần cứng 13
1.3.2 Các nghiên cứu trong lĩnh vực phần mềm 16
1.3.3 Một số nghiên cứu trong nước 25
1.3.4 Xác định hướng nghiên cứu trong luận án 26
1.4 Kết luận chương 1 28
CHƯƠNG 2 THUẬT TOÁN PHÂN LOẠI GÓI TIN TRÊN TƯỜNG LỬA 29
2.1 Giới thiệu chương 29
2.2 Một số khái niệm 30
2.2.1 Tập luật phân loại gói tin 30
2.2.2 Cách biểu diễn các trường của bộ lọc 30
2.2.3 Tiêu chí lựa chọn luật 31
2.2.4 Các tham số đánh giá một thuật toán phân loại gói tin 32
2.3 Đề xuất phân loại gói tin trên cấu trúc cây Ưu tiên đa nhánh – MWP 33
2.3.1 Lí do đề xuất 34
2.3.2 Các cấu trúc có liên quan 34
2.3.3 Ý tưởng chính của đề xuất và các định nghĩa 39
2.3.4 Cấu trúc cây MWP 41
2.4 Kết luận chương 2 53
CHƯƠNG 3 LOẠI SỚM GÓI TIN TRÊN TƯỜNG LỬA 54
3.1 Giới thiệu chương 54
3.2 Đề xuất kỹ thuật loại sớm gói tin dựa trên việc kết hợp các trường 54
3.2.1 Ý tưởng của việc loại sớm gói tin bằng việc kết hợp các trường 54
3.2.2 Loại sớm gói tin sử dụng phép kết hợp COM trên hai trường 55
3.2.3 Loại sớm gói tin sử dụng phép XOR kết hợp nhiều trường 69
Trang 6Hiệu quả của việc sử dụng trường kết hợp trong loại sớm gói tin 79
3.3 Kết luận chương 3 81
CHƯƠNG 4 PHÁT HIỆN VÀ XỬ LÝ XUNG ĐỘT TRONG TẬP LUẬT TƯỜNG LỬA 82
4.1 Giới thiệu chương 82
4.2 Một số khái niệm chung 83
4.2.1 Biểu diễn luật trong tường lửa 83
4.2.2 Không gian luật và các mối quan hệ không gian luật 83
4.2.3 Các loại xung đột trong tập luật tường lửa 84
4.3 Đề xuất cấu trúc cây phát hiện xung đột trên tập luật – CDT 85
4.3.1 Các định nghĩa mới 86
4.3.2 Ý tưởng của thuật toán 90
4.3.3 Cấu trúc cây CDT 91
4.3.4 Phát hiện xung đột trên cây CDT 103
4.3.5 Cài đặt thử nghiệm và đánh giá 105
4.4 Kết luận chương 4 109
KẾT LUẬN 111
TÀI LIỆU THAM KHẢO 114
Trang 7DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
ACL Danh sách kiểm soát truy nhập (Access Control List)
ABV Thuật toán bít véc tơ hỗn hợp (Aggregated Bit Vector)
AFBV Thuật toán bít véc tơ hỗn hợp và phân nhóm (Aggregated and Folded Bit
Vector) ASIC Vi mạch tích hợp chuyên dụng (Application-specific integrated circuit) BDD Sơ đồ quyết định nhị phân (Binary Decision Diagram)
BV Thuật toán bít véc tơ (BitVector)
CAM Bộ nhớ có thể đánh địa chỉ nội dung (Content Addressable Memory) CDT Cây phát hiện xung đột (Conflict Detect Trie)
DCFL Thuật toán phân loại kết hợp chéo các trường riêng biệt theo nhãn
(Distributed Cross producing of Field Labels) DoS Tấn công từ chối dịch vụ (Denial-of-Service)
EGT Cây dạng lưới mở rộng (Extended Grid of Tries)
ERFC Thuật toán phân loại đệ quy theo luồng mở rộng (Enhanced Recursive Flow
Classiflcation) FPGA Mảng cổng lập trình được dạng trường (Field Programmable Gate Array) FVSC Tập giá trị bao phủ trường (Field Value Set Cover)
GoT Cây dạng lưới (Grid of Tries)
GPU Khối xử lý đồ họa (Graphics Processing Unit)
HiCuts Thuật toán các lát cắt theo tầng thông minh (Hierarchical intelligent Cuts) HSM Cây ánh xạ không gian phân cấp (Hierarchical Space Mapping)
H-Tries Cây phân cấp (Hierarchical Tries)
LAN Mạng nội bộ (Local Area Network)
MWP Cây ưu tiên đa nhánh (Multi-Way Priority)
Conflict Detection Algorithm) TCP Giao thức truyền tải (Transmission Control Protocol)
UDP Giao thức dữ liệu người dùng (User Datagram ProtocolV
Ln(P) Bậc n của tiền tố P
Sn(P) Tập các tiền tố bậc n của tiền tố P
Max(G) Tiền tố có độ dài lớn nhất trong tập tiền tố G
<|, >| Ký hiệu mối quan hệ giao nhau giữa hai khoảng giá trị [a,b] và [c,d]
ℜD Mối quan hệ tách biệt của không gian giữa hai luật
ℜEM Mối quan hệ trùng khớp của không gian giữa hai luật
Trang 8ℜIM Mối quan hệ chứa nhau của không gian giữa hai luật
ℜC Mối quan hệ giao nhau của không gian giữa hai luật
|f n| Độ chi tiết của trường fn của luật phân loại gói tin
Mối quan hệ trùng nhau giữa hai giá trị trường
>< Mối quan hệ tách rời nhau giữa hai giá trị trường cho dưới dạng khoảng
⊆ Mối quan hệ thuộc giữa hai giá trị trường
Trang 9DANH MỤC CÁC BẢNG Trang
Bảng 1.1 Thông lượng tính theo bps và tốc độ phân loại gói tin cần đạt 9
Bảng 2.1 Ví dụ tập luật gồm 4 luật 37
Bảng 2.2 Quá trình cắt và tính toán entropy cho các luật bảng 2.1 37
Bảng 2.3 Tập luật gồm 12 luật một chiều cho dưới dạng tiền tố 44
Bảng 2.4 Các tập tiền tố theo bậc của R1 44
Bảng 2.5 So sánh độ phức tạp giữa cấu trúc MWP với JA-trie và PT 48
Bảng 2.6 Tốc độ phân loại gói tin trên các cấu trúc với các tập dữ liệu khác nhau 52
Bảng 3.1.Qui tắc kết hợp COM 56
Bảng 3.2 Tập luật gồm 5 luật Accept 60
Bảng 3.3 Các quy tắc chèn đoạn [x,y] vào nút N 61
Bảng 3.4 Kiểm tra tính chính xác và hiệu quả của kỹ thuật loại sớm với fCOM 65
Bảng 3.5 Tập luật gồm 8 luật 3 chiều của tường lửa 71
Bảng 3.6 Ví dụ bảng tiền tố và khoảng giá trị trường fXOR 72
Bảng 3.7 Các bước xây dựng tập D của các luật trong Bảng 3.5 74
Bảng 3.8 Loại sớm gói tin trên trường fXOR với các tập luật khác nhau 75
Bảng 3.9 Sử dụng trường fXOR trong thuật toán tìm kiếm tuần tự 78
Bảng 4.1 Danh sách các unit của luật R 90
Bảng 4.2 Tập luật gồm 5 luật 4 chiều 96
Bảng 4.3 Tiền tố và độ chi tiết của các giá trị trường của các luật thuộc Bảng 4.2 96
Bảng 4.4 Phát hiện xung đột trên các tập luật khác nhau với cấu trúc CDT 106
Trang 10DANH MỤC CÁC HÌNH VẼ Trang
Hình 1-1 Quá trình phân loại gói tin trên tường lửa 10
Hình 1-2 Quá trình phân loại gói tin với tập luật của tường lửa 12
Hình 1-3 Quan hệ giữa hiệu năng với các thành phần cấu tạo của tường lửa 13
Hình 1-4 Các hướng nghiên cứu về phần cứng 14
Hình 1-5 Các hướng nghiên cứu về phần mềm 16
Hình 1-6 Các thuật toán phân loại gói tin trên nhiều trường 17
Hình 1-7 Tấn công DoS vào luật mặc định của tường lửa 20
Hình 1-8 Mô hình loại sớm gói tin bằng module loại sớm gói tin 21
Hình 1-9 Cải tiến nâng cao tốc độ phân loại gói tin trên tường lửa 27
Hình 1-10 Các hướng cải tiến trong quá trình phân loại gói tin của luận án 28
Hình 2-1 Ví dụ cây nhị phân ưu tiên 35
Hình 2-2 JA-trie gắn với các luật Bảng 2.1 38
Hình 2-3 Cấu trúc một nút N của cây MWP 42
Hình 2-4 Sơ đồ thuật toán xây dựng nút trên cây MWP 43
Hình 2-5 Cây MWP xây dựng từ tập luật trong Bảng 2.3 45
Hình 2-6 Thuật toán phân loại gói tin trên cây MWP 46
Hình 2-7 Thuật toán xác định nhanh số bít bên trái trùng nhau giữa hai tiền tố 47
Hình 2-8 So sánh thời gian phân loại giữa cấu trúc MWP và các cấu trúc khác 51
Hình 2-9 So sánh nhu cầu sử dụng bộ nhớ giữa cấu trúc MWP với các cấu trúc khác 52
Hình 3-1 Cách tạo tiền tố COM 56
Hình 3-2 Ví dụ tạo tiền tố COM 56
Hình 3-3 Cách xây dựng tập luật loại sớm dựa trên trường fCOM 59
Hình 3-4 Ví dụ xây dựng tập luật loại sớm từ trường fCOM 60
Hình 3-5 Thuật toán loại sớm gói tin với trường fCOM 63
Hình 3-6 Mô hình thử nghiệm kỹ thuật loại sớm 64
Hình 3-7 Các mô hình triển khai module phân loại gói tin 65
Hình 3-8 Phân loại gói tin trên các cấu trúc cây khác nhau với trường fCOM 66
Hình 3-9 Thời gian xây dựng tập luật loại sớm với các cấu trúc cây khác nhau 67
Hình 3-10 Mô hình cài đặt kỹ thuật FVSC 68
Hình 3-11 So sánh kỹ thuật loại sớm fCOM với kỹ thuật FVSC 68
Hình 3-12 Phép kết hợp các trường bằng phép XOR 70
Hình 3-13 Cách tạo trường fXOR 71
Hình 3-14 Thời gian loại sớm gói tin trên trường fXOR khi cố định số luật 76
Trang 11Hình 3-15 Phân loại gói tin trong kỹ thuật SA-BSPL với trường fXOR 79
Hình 4-1 Các mối quan hệ không gian luật của hai luật 83
Hình 4-2 Cấu trúc nút của cây CDT 92
Hình 4-3 Nút N sau khi được xây dựng 95
Hình 4-4 Cây CDT của tập luật Bảng 4.7 98
Hình 4-5 Chèn luật mới vào node N 102
Hình 4-6 So sánh số lượng nút trên cây CDT và cây FAT 106
Hình 4-7 So sánh thời gian xây dựng cây CDT và FAT 107
Hình 4-8 So sánh thời gian phát hiện xung đột giữa hai cấu trúc FAT và CDT 108
Hình 4-9 So sánh bộ nhớ sử dụng giữa hai cấu trúc FAT và CDT 108
Trang 12MỞ ĐẦU
1 Tính cấp thiết của đề tài
Ngày nay, mạng máy tính có sự phát triển mạnh mẽ về các mặt quy mô kết nối, các loại hình dịch vụ, số lượng người sử dụng Cùng với sự phát triển đó là sự ra đời của các công nghệ truyền dẫn tiên tiến, kết quả dẫn đến lưu lượng dữ liệu được trao đổi trên mạng là rất lớn Điều này đem lại nhiều lợi ích cho người sử dụng nhưng cũng đặt ra các vấn đề phải giải quyết, một trong số đó là bảo đảm an ninh cho hệ thống Có nhiều biện pháp kết hợp để bảo đảm an ninh cho hệ thống mạng, một trong các biện pháp đó là sử dụng tường lửa Tường lửa là một thiết bị kiểm soát truy nhập được đặt ở điểm kết nối giữa mạng cần được bảo vệ với mạng bên ngoài Việc đảm bảo an ninh được thực hiện bằng cách kiểm tra tất cả các gói tin đi qua tường lửa theo
cả hai chiều vào và ra theo một chính sách an ninh do người quản trị thiết lập
Với chức năng và vị trí được triển khai, tường lửa sẽ trở thành một rào cản giữa mạng cần bảo vệ với các mạng khác Thiết bị này sẽ tác động đến hệ thống mạng theo hai khía cạnh tích cực và tiêu cực: Tích cực – Bảo đảm an ninh an toàn của hệ thống với chức năng kiểm soát tính hợp pháp của các gói tin đi qua; Tiêu cực – Làm giảm tốc độ trao đổi thông tin giữa mạng được bảo vệ với mạng bên ngoài Nâng cao hiệu năng của tường lửa chính là cách làm giảm tác động tiêu cực nói trên Hiệu năng của tường lửa cao sẽ tăng cường khả năng bảo vệ mạng bên trong và hạn chế việc làm suy giảm tốc độ trao đổi thông tin qua nó Hiện nay và trong tương lai, yêu cầu
về an ninh an toàn ngày càng phức tạp, lưu lượng thông tin cần trao đổi giữa các hệ thống mạng ngày càng cao và băng thông của hạ tầng truyền dẫn ngày càng lớn thì tác động tiêu cực của tường lửa đối với hệ thống mạng ngày càng mạnh Chính vì vậy, hiệu năng của tường lửa cần phải được nâng cao nhằm không làm ảnh hưởng đến hoạt động của hệ thống
Cho tới nay, các nhà nghiên cứu cả trong và ngoài nước đã có nhiều công trình nghiên cứu nhằm nâng cao hiệu năng của tường lửa để đáp ứng yêu cầu sử dụng Mỗi giải pháp đều có ưu nhược điểm riêng và thường chỉ giải quyết một vấn đề trong việc cải tiến hiệu năng của thiết bị, chưa có giải pháp nào thực sự tối ưu và mang tính tổng quát Hiệu năng của tường lửa đã, đang và sẽ vẫn cần thiết phải được nâng cao nhằm
Trang 13cho phép nó đáp ứng được nhu cầu thực tế Đây chính là lý do NCS lựa chọn vấn đề nghiên cứu này trong luận án
2 Mục tiêu nghiên cứu
Các phương án kỹ thuật nhằm nâng cao hiệu năng của tường lửa thuộc một trong hai kiểu cơ bản đó là: Sử dụng các công nghệ mới hay nâng cao cấu hình phần cứng thiết bị; Đề xuất mới hay cải tiến các kỹ thuật, thuật toán trong phần mềm tường lửa Về cốt lõi, nâng cao hiệu năng của tường lửa là làm giảm thời gian kiểm tra gói tin đi qua, mà quá trình kiểm tra các gói tin đi qua thực chất là việc phân loại gói tin theo các tiêu chuẩn cho trước Chính vì vậy, tăng tốc quá trình phân loại gói tin trên tường lửa cũng chính là nâng cao hiệu năng của thiết bị này Luận án được thực hiện
nhằm vào mục tiêu: Đề xuất các kỹ thuật mới trong phân loại gói tin và phát hiện
xung đột trong tập luật tường lửa nhằm nâng cao tốc độ phân loại gói tin từ đó phát triển tường lửa hiệu năng cao
3 Phạm vi, đối tượng và phương pháp nghiên cứu
Phạm vi nghiên cứu của luận án tập trung vào việc nghiên cứu các cải tiến về phần mềm, cụ thể hơn là các thuật toán phân loại gói tin, các kỹ thuật nhằm phát hiện
và xử lý xung đột trong tập luật nhằm nâng cao thông lượng của tường lửa, đây là một trong các yếu tố để nâng cao hiệu năng của thiết bị
Đối tượng được trực tiếp nghiên cứu trong luận án là: Cấu trúc dữ liệu lưu trữ các luật phân loại và thuật toán phân loại dựa trên cấu trúc đó; Các kỹ thuật nhằm tối thiểu hóa thời gian phân loại trung bình cho mỗi gói tin trên tường lửa
Luận án sử dụng phương pháp kết hợp giữa nghiên cứu lý thuyết và mô phỏng thử nghiệm Nghiên cứu lý thuyết dựa trên toán học nhằm chứng minh tính đúng đắn của các kỹ thuật, thuật toán đề xuất mới Quá trình mô phỏng thử nghiệm nhằm kiểm tra tính khả thi, đánh giá và so sánh hiệu năng của thuật toán, kỹ thuật đề xuất mới với các thuật toán, kỹ thuật đã được công bố
4 Ý nghĩa của đề tài nghiên cứu
Nâng cao hiệu năng là yêu cầu tất yếu để tường lửa có thể đáp ứng được nhu cầu bảo đảm an ninh an toàn mà không làm ảnh hưởng đến hoạt động của hệ thống mạng Phân tích, đánh giá và đề xuất các phương án nâng cao hiệu năng của tường
Trang 14lửa là lĩnh vực đã và đang được các nhà nghiên cứu trong và ngoài nước quan tâm Tuy nhiên ở trong nước, lĩnh vực này chưa được quan tâm đúng mức Các nội dung nghiên cứu của đề tài sẽ là cơ sở để chúng ta làm chủ từ đó có thể tự phát triển các tường lửa nhằm đáp ứng nhu cầu về an ninh an toàn cho các hệ thống mạng nói chung
và đặc biệt các hệ thống mạng thuộc lĩnh vực an ninh quốc phòng
5 Nội dung và cấu trúc của luận án
Nội dung của luận án bao gồm nghiên cứu về các kỹ thuật nhằm nâng cao hiệu năng của tường lửa Trong đó tập trung nghiên cứu và đưa ra các đề xuất mới về các cấu trúc dữ liệu và thuật toán nhằm nâng cao tốc độ phân loại gói tin Luận án được
bố cục thành 4 chương:
Chương 1 bao gồm các nội dung: Tổng quan về tường lửa; Hiệu năng của
tường lửa; Quá trình phân loại gói tin trên tường lửa; Mối quan hệ giữa hiệu năng của tường lửa với phân loại gói tin trên thiết bị Trên cơ sở phân tích các hướng nghiên cứu nhằm nâng cao hiệu năng của tường lửa từ đó xác định các hướng các nội dung chính sẽ được thực hiện trong luận án nhằm đạt được mục đích đề ra
Chương 2 đề xuất thuật toán phân loại gói tin trên một trường dựa trên cấu
trúc cây ưu tiên đa nhánh MWP (Multi-Way Priority) Cấu trúc cây MWP dựa trên
việc phân tích các ưu nhược điểm của hai cấu trúc Cây ưu tiên PT (Priority trie) và Cây đa bít MT (Multi-Bit trie) Tính đúng đắn của thuật toán phân loại gói tin được chứng minh bằng toán học và thử nghiệm với các bộ dữ liệu chuẩn nhằm so sánh với các cấu trúc và kỹ thuật khác
Chương 3 đề xuất kỹ thuật loại sớm gói tin nhằm hạn chế tấn công DoS vào
tường lửa Kỹ thuật đề xuất sử dụng phép kết hợp (phép COM và XOR) nhiều trường với nhau nhằm làm giảm số chiều phải kiểm tra đối với mỗi gói tin từ đó làm giảm thời gian phân loại trung bình cho mỗi gói tin đi qua thiết bị Với mỗi phép kết hợp, các nội dung trình bày gồm: Nguyên tắc kết hợp; Cách xây dựng bộ luật loại sớm; Cấu trúc lưu trữ luật loại sớm và loại sớm gói tin trên cấu trúc đó; Kết quả thử nghiệm
kỹ thuật đề xuất
Chương 4 đề xuất thuật toán phát hiện và xử lý xung đột trong tập luật của
tường lửa Chương này trình bày về Đề xuất thuật toán phát hiện và xử lý xung đột
Trang 15trên nhiều chiều trong tập luật tường lửa với cấu trúc cây CDT Tính đúng đắn của thuật toán được chứng minh bằng toán học và thử nghiệm với các bộ dữ liệu chuẩn nhằm so sánh với các cấu trúc và kỹ thuật khác
Cuối cùng là phần kết luận, tóm tắt những đóng góp chính, các hướng nghiên cứu phát triển tiếp theo của luận án và những vấn đề được NCS quan tâm
Trang 16CHƯƠNG 1 TỔNG QUAN VỀ PHÂN LOẠI GÓI TIN TRÊN
về khả năng kết nối liên mạng thì các ACL không đủ khả năng kiểm soát các kết nối độc hại nhờ các thông tin cơ bản trích xuất trong header của gói tin Từ thách thức
đó, Digital Equipment Corp đã đưa ra sản phẩm tường lửa thương mại đầu tiên (DEC SEAL vào năm 1992) và công nghệ tường lửa đã phát triển để chống lại các cuộc tấn công mạng với sự phức tạp ngày càng tăng
1.1.2 Định nghĩa về tường lửa
Không có một định nghĩa chính thức về tường lửa nhưng nhìn chung các tài liệu đều khẳng định: Tường lửa là một hệ thống an ninh mạng, dựa trên nền tảng phần mềm, phần cứng hoặc kết hợp cả hai, mà trên đó sử dụng các luật để kiểm soát lưu lượng mạng theo chiều đi vào và đi ra của một mạng cụ thể [59], [81]
Tường lửa hoạt động như một rào cản giữa một mạng tin cậy và một mạng không tin cậy Thiết bị này kiểm soát truy cập vào các tài nguyên của một mạng thông qua một mô hình kiểm soát tích cực Quá trình kiểm soát được thực hiện thông qua chính sách an ninh mà trong đó chỉ rõ những truy cập nào được phép và không được phép đi qua
Trang 171.1.3 Chức năng của tường lửa
Tùy theo yêu cầu sử dụng, tường lửa được triển khai sẽ nhằm thực hiện một hay nhiều chức năng sau:
Cấp phép cho các dịch vụ truy nhập ra ngoài (từ mạng được bảo vệ)
Cấp phép cho các dịch vụ truy nhập vào trong mạng bảo vệ
Theo dõi luồng dữ liệu mạng giữa mạng bảo vệ và mạng bên ngoài
Cấp phép cho các địa chỉ được phép truy cập vào bên trong mạng và ra bên ngoài mạng
Kiểm soát người sử dụng và việc truy nhập của người sử dụng
Kiểm soát nội dung thông tin lưu chuyển trên mạng
Ngoài các chức năng chính như trên, tường lửa hiện nay có thể được tích hợp thêm các chức năng khác như cảnh báo phát hiện xâm nhập, mã hóa dữ liệu đường truyền, phòng chống virut… Tuy nhiên, các tính năng này không phải là tính năng cơ bản của tường lửa
1.1.4 Các kiểu tường lửa
Tường lửa được phân loại theo nhiều tiêu chí khác nhau như: Dựa trên nền tảng phần cứng, phần mềm; Dựa trên kỹ thuật sử dung trong kiểm soát truy cập; Dựa trên đối tượng sử dụng (cá nhân hay mạng); Dựa trên loại mã nguồn tường lửa (mã nguồn mở, thương mại)… Tuy nhiên, phân loại căn cứ vào cách thức kiểm soát truy nhập là cách phổ biến nhất, theo đó thì tường lửa gồm các loại: Lọc gói (Packet firewall); Lọc gói với đầy đủ trạng thái (Stateful firewalls); Mức ứng dụng; Ủy quyền (Proxy firewall)
1.1.4.1 Tường lửa lọc gói
Đây là loại tường lửa thể hệ thứ nhất chỉ với chức năng như một bộ lọc gói tin,
nó chỉ kiểm tra các gói tin trao đổi giữa các máy tính trong một mạng Khi một gói tin đi qua tường lửa lọc gói, địa chỉ IP nguồn, IP đích, giao thức, cổng nguồn và cổng đích được kiểm tra theo các luật định sẵn Các gói tin không được phép đi vào mạng
sẽ bị loại (drop), ngược lại chúng sẽ được chuyển tiếp (forward)
Trang 18Tường lửa lọc gói chủ yếu làm việc trên 3 lớp đầu tiên của mô hình tham chiếu OSI (vật lý, liên kết dữ liệu và tầng mạng) Loại này có ưu điểm là nhanh và hiệu quả, tuy nhiên các tường lửa lọc gói không có khả năng phân biệt một gói tin thuộc một luồng dữ liệu nào vì chúng coi các gói tin là độc lập Chính điều này cũng làm chúng
dễ bị tấn công kiểu giả mạo cũng như hạn chế trong việc đưa ra các quyết định phức tạp dựa trên trạng thái kết nối giữa các thực thể trên mạng
1.1.4.2 Tường lửa lọc gói với đầy đủ trạng thái
Để khắc phục các điểm yếu của tường lửa lọc gói, thế hệ tường lửa thứ hai được phát triển – Tường lửa lọc gói với đầy đủ trạng thái được xây dựng Các thiết
bị này có khả năng nhận biết trạng thái kết nối của một gói tin Với khả năng đó, nó biết được hoặc gói tin là bắt đầu của một kết nối, một phần của kết nối đã có hay không thuộc kết nối nào cả Chức năng này được gọi là “Kiểm tra đầy đủ thông tin của gói” (stateful packet inspection) và được giới thiệu vào năm 1994 bởi Check Point Software [56] Kỹ thuật này trở nên phổ biến và là một tính năng cơ bản của tường lửa từ cuối những năm 1990
Các thông tin bổ sung này có thể được sử dụng để cho phép hay loại bỏ một gói tin dựa vào lịch sử của nó trong bảng trạng thái một cách nhanh chóng Một gói tin nếu thuộc một kết nối đã được lưu trong bảng trạng thái sẽ được phép đi qua mà không phải thực hiện các kiểm tra khác Nếu một gói tin không thuộc các kết nối đã được đánh dấu thì nó sẽ được xem xét như một kết nối mới sau khi đã được kiểm tra bằng các luật ban đầu
Một đặc điểm mạnh của các tường lửa lớp ứng dụng là khả năng chặn các nội dung cụ thể, chẳng hạn như phần mềm độc hại hoặc trang web nhất định, và nhận
Trang 19dạng khi các ứng dụng và giao thức nhất định - chẳng hạn như HTTP, FTP và DNS - đang bị tấn công
1.1.4.4 Các tường lửa ủy quyền
Một máy chủ ủy quyền [53] có thể hoạt động như một tường lửa lớp ứng dụng, đóng vai trò là lớp trung gian giữa các yêu cầu từ mạng này sang một mạng khác cho một ứng dụng cụ thể Một tường lửa ủy quyền ngăn chặn các kết nối trực tiếp giữa hai bên tường lửa; Cả hai bên đều bị buộc phải tiến hành phiên kết nối thông qua nó,
do đó có thể chặn hoặc cho phép truy cập dựa trên bộ qui tắc của nó Một dịch vụ ủy quyền phải được chạy cho mỗi loại ứng dụng mạng mà tường lửa sẽ hỗ trợ, chẳng hạn như một proxy HTTP cho các dịch vụ Web
Ngoài các loại tường lửa phổ biến nói trên, trong thời gian gần đây xuất hiện các loại tường lửa đó là:
Unified threat management (UTM) [68]: Đây là sự phát triển của tường lửa
truyền thống thành một sản phẩm bảo mật có khả năng thực hiện nhiều chức năng trong một thiết bị duy nhất: tường lửa mạng, phát hiện xâm nhập mạng (IDS / IPS), cổng chống virut (gateway antivirut) , mạng riêng ảo - VPN, lọc nội dung, cân bằng tải, chống mất mát dữ liệu…
Tường lửa thế hệ tiếp theo (Next-generation firewall - NGFW) [22], [68]:
là một phần của công nghệ tường lửa thế hệ thứ ba, kết hợp tường lửa truyền thống với các chức năng lọc các thiết bị mạng khác như tường lửa ứng dụng sử dụng kiểm tra nội dung gói tin, hệ thống phòng chống xâm nhập (IPS ) Các kỹ thuật khác cũng
có thể được sử dụng, như kiểm tra truy cập được mã hóa TLS / SSL, lọc trang web, quản lý chất lượng dịch vụ - QoS / băng thông, chống virut …
1.2 Hiệu năng và mối quan hệ với quá trình phân loại gói tin của tường lửa
1.2.1 Mối quan hệ giữa hiệu năng và tốc độ phân loại gói tin
Hiệu năng của một tường lửa được đánh giá theo các tiêu chí thuộc 3511: Methodology for Firewall Performance”, bao gồm:
“RFC- Thông lượng IP
Khả năng kết nối TCP đồng thời
Trang 20 Tỷ lệ thiết lập kết nối TCP tối đa
Tỷ lệ rớt kết nối TCP tối đa
Khả năng xử lý tấn công từ chối dịch vụ
40 byte (gói nhỏ nhất của giao thức TCP)
Như vậy, với bất cứ cách tính như thế nào thì thông lượng IP của tường lửa đều gắn với tốc độ phân loại gói tin trên thiết bị đó Điều này cũng đồng nghĩa tốc độ phân loại gói tin có thể được coi là một tiêu chí để đánh giá hiệu năng của tường lửa
và các nghiên cứu nhằm nâng cao tốc độ phân loại gói tin trên tường lửa cũng tương đương với mục đích nâng cao hiệu năng của thiết bị này
Bảng 1.1 Thông lượng tính theo bps và tốc độ phân loại gói tin cần đạt
Thông lượng Số gói tin cần được phân loại mỗi giây
Trang 211.2.2 Quá trình phân loại gói tin trên tường lửa
Phân loại gói tin là một tính năng không thể thiếu trên các thiết bị mạng nói chung như Thiết bị định tuyến (router), chuyển mạch (switch), phát hiện xâm nhập (IPS, IDS)… Tường lửa cũng không nằm ngoài quy luật này, để thực hiện chức năng kiểm soát các truy nhập thì thì thiết bị phải phân loại gói tin đi qua nó nhằm xác định tính hợp lệ của gói tin đó Hai yêu cầu đối với quá trình phân loại gói tin là: Tính chính xác – quyết định đến việc bảo đảm an ninh hệ thống của thiết bị; Tốc độ phân loại – quyết định việc không làm chậm các kết nối qua thiết bị
Không xét đến việc phân loại dựa trên nội dung của gói tin của tường lửa mức ứng dụng thì các tường lửa hiện nay thực hiện việc phân loại gói tin theo hai pha chính: Pha 1 – Phân loại với bảng trạng thái; Pha 2 – Phân loại với tập luật Gói tin chỉ được phân loại tại Pha 2 khi không được cấp phép tại Pha 1 Toàn bộ quá trình phân loại gói tin được thể hiện trong Hình 1.1
Khớp với một luật Thông tin trạng
Khớp với một thực thể
Trang 22lửa thực hiện kiểm tra các thông tin của gói tin đó trong bảng trạng thái kết nối của
nó Nếu gói tin khớp với một thực thể thì thực thể đó được cập nhật trạng thái mới gắn với gói tin và gói tin được chấp nhận
Quá trình phân loại này đạt được tốc độ cao vì kích thước của một thực thể trong bảng trạng thái là nhỏ phù hợp trong việc sử dụng các bảng băm cho việc lưu trữ, tìm kiếm và cập nhật [12], [64], [76] Thách thức trong pha này đó là phải có chính sách quản lý hiệu quả bảng trạng thái kết nối trong điều kiện bộ nhớ lưu trữ có hạn, số lượng các kết nối tại một thời điểm ngày càng lớn
Các tường lửa hiện đại có thể quản lý bảng trạng thái rất lớn - hàng triệu kết nối thường được hỗ trợ tại một thời điểm nhằm đáp ứng nhu cầu truy cập với lưu lượng lớn qua thiết bị, trong đó bao gồm một số lượng lớn các kết nối ngắn hạn có khối lượng dữ liệu tương đối thấp Hiện nay, công nghệ xử lý song song được áp dụng cho phép tạo ra các tường lửa có khả năng xử lý hàng triệu kết nối ở tốc độ 10 gigabit / giây
1.2.2.2 Phân loại với tập luật
Trường hợp sau khi đã được phân loại với bảng trạng thái mà gói tin không phù hợp với bất cứ kết nối nào, việc phân loại sẽ phải tiếp tục với tập luật của tường lửa Nếu gói tin được chấp nhận bởi tập luật tường lửa thì một thực thể trạng thái được tạo trên bảng trạng thái và gói tin được phép đi qua, ngược lại gói tin đó sẽ bị loại bỏ Quá trình phân loại gói tin ở pha này chính là quá trình phân loại gói tin trên các tường lửa lọc gói thông thường và được thể hiện trong Hình 1.2
Trang 23Hình 1-2 Quá trình phân loại gói tin với tập luật của tường lửa
Trong Hình 1.2 mỗi luật bao gồm một bộ lọc F(các điều kiện cần đáp ứng) và một hành động A Quá trình phân loại một gói tin được thực hiện bằng việc so sánh các trường trong tiêu đề gói tin với bộ lọc F của mỗi luật, nếu khớp thì hành động A của luật đó sẽ được áp dụng cho gói tin ngược lại thì chuyển sang luật kế tiếp Quá trình kiểm tra được thực hiện tuần tự và kết thúc khi tìm được một luật phù hợp hoặc
đã kiểm tra qua tất cả các luật
Trong các tường lửa hiện nay, Pha 1 có tốc độ phân loại cao trong khi Pha 2
là pha có tốc độ phân loại thấp Khi mà số lượng gói tin phải phân loại ở Pha 2 là lớn
thì tốc độ phân loại gói tin qua tường lửa sẽ bị giảm đáng kể Chính vì vậy, trong luận
án này, NCS chỉ tập trung nghiên cứu đề xuất các kỹ thuật nhằm nâng cao tốc độ phân loại gói tin tại Pha 2 của quá trình phân loại gói tin trên tường lửa Các khái
niệm nâng cao tốc độ phân loại gói tin trên tường lửa được sử dụng trong phần sau của luận án này sẽ nằm trong phạm vi nâng cao tốc phân loại gói tin tại Pha 2
Trang 241.3 Các hướng nâng cao tốc độ phân loại gói tin trên tường lửa
Tường lửa được cấu thành từ hai thành phần: phần cứng và phần mềm Hiệu năng thiết bị được quyết định bởi hiệu năng của hai thành phần này – Hình 1.3 Chính
vì vậy, các nghiên cứu nhằm nâng cao tốc độ phân loại gói tin có thể được chia làm hai nhánh chính: Nghiên cứu trong lĩnh vực phần cứng; Nghiên cứu trong lĩnh vực phần mềm Trong phần tiếp theo, luận án sẽ có khảo sát và đánh giá sơ bộ về các hướng nghiên cứu này
TƯỜNG LỬA
HIỆU NĂNG TƯỜNG LỬA
Hình 1-3 Quan hệ giữa hiệu năng với các thành phần cấu tạo của tường lửa
1.3.1 Các nghiên cứu trong lĩnh vực phần cứng
Hình 1.4 thể hiện các hướng nghiên cứu về phần cứng nhằm nâng cao tốc độ phân loại gói tin trên tường lửa đã được công bố
Trang 25NÂNG CAO HIỆU NĂNG
Trong lĩnh vực phân loại gói tin (Packet Classification) nói chung các nghiên cứu sử dụng FPGA là rất nhiều Tuy nhiên, các nghiên cứu tiêu biểu trong việc xây dựng tường lửa hiệu năng cao gồm [6], [31], [34], [72] Các nghiên cứu và thử nghiệm được thực hiện trên các nền tảng phần cứng phổ biến như Virtex Pro FPGA, Altera FPGA Tuy nhiên một đặc điểm chung đó là các đề xuất này đều găp khó khăn trong việc áp dụng đối với các tập dữ liệu lớn
1.3.1.2 Sử dụng công nghệ ASIC
Cũng như các tường lửa xây dựng trên nền tảng FPGA thì các hãng như Huawei, Checkpoint, Juniper, Cisco, Portinet… sử dụng công nghệ ASIC trong các sản phẩm tường lửa mới nhất của mình Do ưu điểm, được thiết kế với mục đích chuyên dụng hóa các chức năng nên các sản phẩm tường lửa sử dụng công nghệ này đạt được thông lượng rất cao từ vài Gbps đến Tbps
Trang 26Do đặc tính không thể lập trình lại nên các nghiên cứu xây dựng tường lửa hiệu năng cao bằng công nghệ ASIC tương đối ít [35], [41], [74] Các nghiên cứu này chỉ ứng dụng ASIC trong một tính năng nhỏ của tường lửa như lưu trữ và tra cứu bảng trạng thái mà không đề xuất một mô hình tường lửa hoàn chỉnh
1.3.1.3 Tận dụng năng lực tính toán của GPU
Các nghiên cứu ứng dụng hiệu năng tính toán của GPU trong việc nâng cao thông lượng của tường lửa được đề xuất trong [33], [58], [70], [71]
Nhìn chung GPU được thiết kế nhằm cho phép thực hiện các tính toán với tốc
độ cao đặc biệt với các bài toán tìm kiếm và sắp xếp Việc tận dụng năng lực của GPU trong việc nâng cao thông lượng của tường lửa là một ý tưởng tốt Tuy nhiên, các hạn chế sau sẽ là rào cản cho phép áp dụng ý tưởng này vào thực tế:
GPU được các hãng thiết kế với các đặc trưng riêng không có một chuẩn chung
vì vậy không có giải pháp chung để triển khai phân loại gói tin cho tất cả các loại GPU
GPU thực sự hiệu quả cho việc xử lý song song, tuy nhiên các gói tin sẽ đến vào các thời điểm khác nhau Nếu để tận dụng hết khả năng tính toán của GPU thì phải tập hợp các gói tin đến một giá trị nhất định điều này có thể gây ra độ trễ lớn cho các gói tin
1.3.1.4 Phát triển bộ Xử lý mạng hiệu năng cao
Bộ xử lý mạng NP (Network processor) được các hãng như Cisco, Intel, IBM… phát triển cho các thiết bị mạng với các ưu điểm cho phép lập trình mềm dẻo, giá thành thấp hơn CPU thông thường, hiệu năng cao Các tác giả [4], [11], [32] đề xuất việc sử dụng NP trong việc nâng cao tốc độ phân loại gói tin trong các thiết bị mạng nói chung và tường lửa nói riêng Tuy nhiên hướng nghiên cứu này không mang tính phổ quát và phải có sự thay đổi mỗi khi các NP được nâng cấp
1.3.1.5 Áp dụng kỹ thuật xử lý song song
Sử dụng lỹ thuật xử lý song song nhằm nâng cao thông lượng của tường lửa được nghiên cứu đề xuất trong các bài báo [21], [26], [35], [49] Trong đó, các đề xuất được chia làm hai dạng cơ bản: Kết nối song song nhiều tường lửa đơn thành
Trang 27tường lửa duy nhất [35], [48]; Tận dụng khả năng xử lý song song của FPGA, Network Processor hay CPU để tiến hành phân loại nhanh gói tin [21], [26]
Kỹ thuật dạng [35], [49] thực chất là việc xử lý cân bằng tải cho nhiều tường lửa và bài toán đặt ra là quản lý và cấp phát lưu lượng cho các tưởng lửa đơn một cách hợp lý
Kỹ thuật dạng [21], [26] nói chung sẽ trở về các nghiên cứu ứng dụng các công nghệ FPGA, ASIC, NP đã trình bày ở phần trên
1.3.2 Các nghiên cứu trong lĩnh vực phần mềm
Thành phần tham gia vào quá trình phân loại gói tin trong thiết bị mạng nói chung và tường lửa nói riêng gồm Thuật toán phân loại và Tập luật dùng cho phân loại Tính chất của 2 thành phần này sẽ tác động trực tiếp vào tốc độ phân loại gói tin Các nghiên cứu trong lĩnh vực phần mềm nhằm nâng cao tốc độ phân loại gói tin cũng nhằm vào 2 đối tượng trên Hai hướng nghiên cứu trong lĩnh vực này được thể hiện trong Hình 1.5 gồm:
Phát triển các thuật toán hay kỹ thuật nhằm đạt được hiệu quả trong quá trình phân loại
Tối ưu hóa tập luật
NÂNG CAO HIỆU NĂNG
PHẦN MỀM
Phát triển các thuật toán, kỹ
Tối ưu hóa về
Tối ưu hóa cách thức kiểm tra trong quá trình phân loại
Phát hiện và
xử lý xung đột
Hình 1-5 Các hướng nghiên cứu về phần mềm
Trang 281.3.2.1 Thuật toán phân loại gói tin
Một thuật toán phân loại được đề xuất bao gồm cấu trúc dữ liệu để lưu trữ tập luật phân loại và thuật toán tìm kiếm dựa trên cấu trúc đó Các đề xuất có thể dựa trên
mô hình toán học nhằm đạt được giá trị tối ưu về thời gian phân loại hoặc bộ nhớ lưu trữ tập luật trong trường hợp xấu nhất, hay dựa vào đặc tính của tập luật hay đặc tính của dữ liệu đi qua tường lửa để tối ưu thời gian phân loại trung bình trên mỗi gói
THUẬT TOÁN PHÂN LOẠI GÓI TIN
Phân loại theo từng
ABV
AFBV
Kiểm tra theo bit Khớp giá trị
CP Tìm kiếm theo chỉ số
Tìm kiếm nhị phân
Module Đơn trường Đa trường
Hi Cuts Hyper Cuts Khớp tiền tố
HSM DCFL
EffiCuts BitCuts
HSP-BST
Boundary Cutting
Hình 1-6 Các thuật toán phân loại gói tin trên nhiều trường
BV – BitVector
ABV - Aggregated Bit Vector
AFBV – Aggregated and Folded
H-Tries: Hierarchical tries
SP-Tries: Set Pruning tries GoT: Grid of Tries EGT: Extended Grid of Tries HiCuts: Hierarchical intelligent
Cuts
Việc phân chia các thuật toán phân loại gói tin có thể thực hiện theo nhiều cách khác nhau Tác giả Taylor D E trong [20] phân chia thành 4 loại chính gồm: Vét cạn
Trang 29(Exhaustive); Phân rã (Decomposition); Cây quyết định (Decision Tree); Các bộ không gian (Tuple space) Trong khi đó [18] lại phân chia các thuật toán chi tiết hơn theo mối quan hệ giữa các trường trong quá trình phân loại: Phân loại gói tin theo các trường một cách độc lập (Field-Independent); Phân loại gói tin theo các trường theo mối liên quan (Field-Dependent) và trong mỗi loại này lại được chia làm các loại nhỏ khác như loại dựa trên bảng, dựa trên cấu trúc cây…
Sự phân chia các thuật toán phân loại gói tin dựa trên cách thức sử dụng trong [18] bao gồm việc bổ sung các thuật toán mới nhất được thể hiện trong Hình 1.6
a Phân loại theo các trường độc lập:
Các thuật toán dạng này thực hiện phân loại theo từng trường riêng biệt Nếu
có k trường thì sẽ phải xây dựng k cấu trúc cây gắn với mỗi trường cụ thể, việc phân
loại được thực hiện độc lập trên mỗi cây đó Kết quả phân loại cuối cùng của gói tin
là sự kết hợp của các kết quả thu được trên mối cây con Các thuật toán tiêu biểu trong dạng này bao gồm: BV – BitVector [38], ABV - Aggregated Bit Vector [14], AFBV – Aggregated and Folded Bit Vector [40], RFC – Recursive Flow Classification [54], ERFC – Enhanced Recursive Flow Classification [23], DCFL – Distributed Cross producing of Field Lables [17], HSM – Hierarchical Space Mapping [77] Nhìn chung các thuật toán dạng này có ưu điểm là cấu trúc đơn giản
dễ triển khai trên nền tảng phần cứng và đặc biệt có thể thực hiện song song hóa việc phân loại trên các trường khác nhau Tuy nhiên điểm hạn chế chung của chúng là dư thừa dữ liệu khi phải tổ chức thành các cấu trúc cây riêng biệt với mỗi trường và việc
áp dụng trên các tập dữ liệu lớn sẽ gặp khó khăn trong bước kết hợp cuối cùng để tìm
ra luật phù hợp nhất
b Phân loại theo mối tương quan giữa các trường
Ngược lại với cách tiếp cận của thuật toán phân loại độc lập trên mỗi trường thuật toán phân loại theo mối tương quan giữa các trường thực hiện xây dựng một cấu trúc cây phức hợp trong đó chứa thông tin của tất các trường phân loại của tập luật Việc xây dựng dựa tính toán sự tương ứng về giá trị của mỗi trường để có một cây tối ưu về mặt cấu trúc Ưu điểm của loại thuật toán này là hạn chế lãng phí về bộ nhớ lưu trữ, cải thiện thời gian phân loại Các nhược điểm của chúng là quá trình xây
Trang 30dựng cây phức tạp về mặt tính toán và thời gian, cấu trúc cây phức tạp và khó khăn trong việc triển khai trên các nền tảng phần cứng chuyên dụng và cuối cùng là không khả thi khi số chiều phân loại lớn
Các dạng thức cụ thể của loại thuật toán dạng này gồm:
Thuật toán dạng cây phân cấp gồm các cấu trúc H-Trie – Hierarchical tries [25], SP-Tries – Set Pruning tries [25], GoT – Grid of Tries [62], EGT – Extended Grid of Tries[15],HSP-BST – Hierarchical Set-pruning Binary search tree [1]
Dạng thuật toán với cách thức kiểm tra theo bit bao gồm Modular [75], BitCuts [80]
Các thuật toán dựa trên cấu trúc cây quyết định thực hiện tìm kiếm các khoảng với các trường đơn tiêu biểu là HiCuts [55]
Các thuật toán dựa trên cấu trúc cây quyết định thực hiện tìm kiếm các khoảng trên nhiều trường gồm HyperCuts [78], EffiCuts [13], Boundary Cutting [42]
1.3.2.2 Loại sớm gói tin
Trong khi các nghiên cứu khác quan tâm đến việc đề xuất cấu trúc dữ liệu và thuật toán trên nhằm lưu trữ luật và phân loại gói tin trên các cấu trúc đó nhằm đạt được tối ưu về độ phức tạp tìm kiếm hoặc độ phức tạp lưu trữ trong trường hợp xấu nhất Loại sớm gói tin là kỹ thuật dựa trên phân tích tính chất của luồng dữ liệu đến hay tính chất của tập luật để có thể rút ngắn thời gian loại các gói tin không hợp lệ nhằm làm giảm thời gian phân loại trung bình cho các gói tin đi qua từ đó nâng cao hiệu năng của thiết bị
a Tấn công DoS vào tường lửa
Tấn công DoS trong lĩnh vực CNTT được định nghĩa gồm sự phối hợp, sự cố gắng có chủ ý của một người hay nhiều người để một hệ thống mạng không thể sử dụng, làm gián đoạn, hoặc làm cho hệ thống đó chậm đi một cách đáng kể với người dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống
Trang 31LUẬT 1 LUẬT 2 LUẬT 3
LUẬT N
LUẬT MẶC ĐỊNH
TƯỞNG LỬA Tấn công DoS
Hình 1-7 Tấn công DoS vào luật mặc định của tường lửa
Một kiểu tấn công DoS vào một tường lửa được thực hiện dựa vào cách thức phân loại gói tin dựa vào tập luật trên thiết bị đó, được gọi là tấn công vào luật mặc
định (Attack Targeting Firewall Default Security Rule) Trong mô hình phân loại gói
tin tại Hình 1.7, các gói tin sẽ được kiểm tra với các luật trong danh sách để tìm ra luật phù hợp, quá trình kiểm tra chỉ kết thúc khi gói tin khớp với một luật cụ thể Mỗi tường lửa có một luật được xác định là luật mặc định (thông thường là luật cấm), luật
này chỉ được áp dụng khi việc kiểm tra được thực hiện qua tất cả các luật khác mà
không tìm được luật phù hợp Một gói tin bị loại bởi luật mặc định này sẽ yêu cầu chi phí về tài nguyên máy, thời gian xử lý nhiều hơn các gói tin khác, với một tập luật có
số lượng lớn thì chi phí đó là rất đáng kể Dựa vào đặc điểm này, kẻ tấn công nếu có một số thông tin về hệ thống mạng sẽ có thể thực hiện việc tấn công DoS trực tiếp vào tường lửa của hệ thống mạng bằng cách gửi đến một số lượng lớn liên tục các gói tin (được cho là sẽ bị loại bởi luật mặc định), khi đó tường lửa phải dành rất nhiều
tài nguyên cho việc xử lý các gói tin này và suy giảm hiệu năng hoạt động của mình
Để hạn chế kiểu tấn công DoS vào luật mặc định của tường lửa, các kỹ thuật loại bỏ sớm gói tin không hợp lệ trên thiết bị tường lửa đã được đề xuất, trong các kỹ
Trang 32thuật này một module loại sớm sẽ được triển khai mới đặt trước module phân loại nguyên thủy Với việc bổ sung thêm module loại sớm gói tin thì việc phân loại gói tin trong tường lửa được thể hiện trong Hình 1.8 Các gói tin được phân loại bằng module loại sớm gói tin trước khi được phân loại bằng tập luật của tường lửa Kỹ thuật loại sớm gói tin sẽ có tác dụng trong trường hợp chi phí cho việc loại sớm gói tin nhỏ hơn chi phí cho quá trình phân loại bằng quá trình lọc thông thường và đây chính là cách thức chống lại tấn các tấn công DoS vào tường lửa nhằm vào luật mặc định, xét về bản chất loại sớm gói tin cũng sẽ là một kỹ thuật nâng cao hiệu năng của tường lửa
MODULE PHÂN LOẠI GÓI TIN NGUYÊN THỦY
Gói tin chưa bị
Các gói tin đầu vào
Hình 1-8 Mô hình loại sớm gói tin bằng module loại sớm gói tin
b Các kỹ thuật loại sớm gói tin trên tường lửa
Kỹ thuật tạo tập giá trị phủ (Field Value Set Cover–FVSC) [28] phân tích tập luật của tường lửa nhằm tạo ra một tập luật nhỏ mà có thể loại bỏ tối đa các gói tin không mong muốn trước khi chuyển đến phân loại bằng bộ luật nguyên thủy Thuật toán tạo các luật loại sớm gói tin của FVSC sẽ bị hạn chế về số lượng các luật được sinh ra và nó phụ thuộc vào tỷ lệ các gói tin bị loại sớm so với tổng số các gói tin bị loại nếu không tồn tại mô đun loại sớm Đặc biệt với việc sử dụng thuật toán xấp xỉ
để tạo ra các luật loại sớm là vấn đề NP-khó, khi có thay đổi về chính sách của tường lửa thì khả năng cập nhật nhanh những thay đổi đó trên tập luật loại sớm gói tin là không khả thi
Lược đồ quyết định nhị phân dựa trên chính sách (BDD Based Relaxed Policy)
[9] đề xuất và ý tưởng chính là chuyển đổi xấp xỉ bộ lọc nguyên thủy thành một bộ lọc mới Kỹ thuật này sẽ đánh giá gói tin dựa trên bộ lọc mới từ đó đưa ra quyết định
Trang 33chấp nhận, loại bỏ hay chuyển tiếp gói tin đó đến bộ lọc nguyên thủy Mỗi luật sẽ được biểu diễn bằng một biểu thức logic và các biểu thức logic được sử dụng để xây dựng Lược đồ quyết định nhị phân - BDD Hạn chế của kỹ thuật này là chi phí lớn cho việc xây dựng các biểu đồ quyết định nhị phân.
Kỹ thuật tìm kiếm nhị phân tự hiệu chỉnh trên độ dài tiền tố (SA-BSPL): Mô hình được đưa ra trong [51] bao gồm một tập các bộ lọc (mỗi bộ lọc gắn với một trường phân loại, ví dụ: Địa chỉ IP nguồn, IP đích…) tự hiệu chỉnh mà mỗi bộ lọc sử dụng việc tìm kiếm nhị phân trên độ dài tiền tố [73] sử dụng mô hình cây NPTHC để cải thiện thời gian tìm kiếm trung bình [60], [61] Một cải tiến của kỹ thuật này là SSF-BSPL, tác giả kết hợp với việc xem xét tính chất của luồng dữ liệu để làm giảm
số bộ lọc trung bình mà mỗi gói tin phải đi qua [65] Điểm hạn chế của kỹ thuật này
là, khi số lượng tập luật lớn thì số lượng các bảng băm cũng như các tiền tố trong mỗi bảng băm sẽ là rất lớn và đặc biệt sẽ có nhiều tiền tố trung gian được sinh trong các bảng băm làm tăng kích thước bộ nhớ và tốc độ tìm kiếm cho mỗi gói tin đến
1.3.2.3 Tối ưu hóa tập luật
Phân loại gói tin trên tường lửa có các đặc điểm khác với phân loại gói tin trên các thiết bị mạng khác đó là:
Việc tìm kiếm sẽ kết thúc ngay khi tìm được luật phù hợp (khi đó gói tin có thể bị loại hay chuyển tiếp ngay) mà không cần căn cứ vào các tiêu chí khác Điều này dẫn đến thứ tự của các luật và số lượng các luật trong tập luật ảnh hưởng trực tiếp đến thời gian phân loại trung bình cho mỗi gói tin
Việc phân loại gói tin căn cứ trên nhiều trường thông tin, trong đó nếu một trường không khớp thì gói tin đang xét cũng sẽ không khớp với luật Do đó, cách thức kiểm tra và thứ tự kiểm tra các trường trong mỗi luật cũng sẽ ảnh hưởng đến thời gian phân loại gói tin trung bình trên thiết bị
Theo [27] thì việc tối ưu hóa tập luật sẽ làm giảm thời gian trung bình cho việc phân loại một gói tin đi qua Các hướng nghiên cứu trong việc tối ưu hóa tập luật gồm:
Tối ưu hóa cách thức kiểm tra: Nhằm rút ngắn thời gian để có thể tìm được luật phù hợp với một gói tin một cách nhanh nhất
Trang 34 Phát hiện và xử lý xung đột trong tập luật: Tối ưu hóa tập luật về tổ chức và
số lượng luật từ đó xử lý lỗ hổng trong việc triển khai chính sách an ninh và làm giảm
bộ nhớ lưu trữ, thời gian phân loại gói tin
1.3.2.4 Tối ưu hóa cách thức kiểm tra
Phân loại gói tin trên tường lửa bằng tập luật được thực hiện theo cách thức được mô tả trong phần trước thì thứ tự của luật được kiểm tra sẽ ảnh hưởng trực tiếp đến chi phí thời gian phân loại gói tin và sâu hơn nữa thứ tự trường được kiểm tra cũng sẽ quyết định chi phí này Các nghiên cứu nhằm tối ưu hóa cách thức kiểm tra được chia làm hai loại: Tối ưu hóa thứ tự luật được kiểm tra [5], [19], [27], [48]; Tối
ưu hóa thứ tự trường được kiểm tra [65], [66], [67]
1.3.2.5 Phát hiện và xử lý xung đột
Trong tường lửa các gói tin khi đi qua được kiểm soát theo cả chiều vào và chiều ra Mỗi tường lửa được trang bị một chính sách an ninh cho mục đích kiểm soát các gói tin nêu trên Chính sách an ninh này tồn tại trên tường lửa dưới dạng một tập luật do người quản trị thiết lập
Một tập luật có thể được xây dựng bởi một người quản trị khi triển khai thiết
bị và nó có thể được bổ sung, thay đổi hay xóa bỏ các luật ngay khi có sự thay đổi về chính sách an ninh trong quá trình vận hành hệ thống Số lượng các luật trong tập luật
tỷ lệ thuận với độ phức tạp của chính sách an ninh được triển khai trên thiết bị Trong thực tế hiện nay, với việc phát triển mạnh mẽ về quy mô hệ thống mạng, về số lượng các loại hình dịch vụ thì chính sách an ninh cần được triển khai trên các tường lửa ngày càng phức tạp Điều này cũng đồng nghĩa với việc tập luật thể hiện chính sách
an ninh mà người quản trị phải triển khai ngày càng tăng lên về số lượng luật và độ phức tạp về cấu trúc Nhiệm vụ xây dựng và quản lý chính sách an ninh cho tường lửa trở nên khó khăn hơn
Các luật trong tập luật có thể xung đột lẫn nhau như dư thừa, mâu thuẫn về hành động Các xung đột trong tập luật có thể làm ảnh hưởng trực tiếp đến an ninh của hệ thống khi cho phép các gói tin không hợp pháp đi qua, hoặc ảnh hưởng đến hoạt động bình thường của hệ thống mạng khi loại bỏ các gói tin hợp lệ, hay sẽ làm
Trang 35ảnh hưởng đến hiệu năng (về mặt lưu trữ và xử lý) của chính tường lửa khi tồn tại các luật dư thừa
Tại thời điểm năm 2004, kết quả khảo sát được trình bày trong [7] cho thấy số lượng lớn các xung đột trong các tập luật của tường lửa là một thực tế phải chấp nhận,
và hiện nay con số này chắc chắn sẽ lớn hơn rất nhiều Chính vì vậy, việc nghiên cứu
để phát hiện và xử lý các xung đột trong tập luật của tường lửa là một vấn đề đã và đang được nhiều nhà nghiên cứu quan tâm thực hiện nhằm tránh các lỗ hổng an ninh trên tường lửa và nâng cao hiệu năng của chính thiết bị này
Các kỹ thuật phát hiện xung đột trong tập luật của các thiết bị mạng nói chung
và tường lửa nói riêng có thể được chia làm hai loại cơ bản khi căn cứ vào số chiều của tập luật đó: Phát hiện xung đột trên các tập luật hai chiều; Phát hiện xung đột trên các tập luật nhiều chiều
a) Phát hiện và xử lý xung đột trên tập luật hai chiều
Các kỹ thuật phát hiện xung đột trên tập luật hai chiều tiêu biểu gồm có [29], [44], [36], [37], [39], [44], [45], [57] Dạng kỹ thuật này chỉ thực hiện kiểm tra, phát hiện và xử lý các xung đột trong tập luật với hai chiều địa chỉ IP nguồn và địa chỉ IP đích trên các thiết bị mạng nói chung như thiết bị định tuyến, tường lửa, bảo mật IPSec… Điểm hạn chế của các kỹ thuật trên là không thể áp dụng cho trường hợp các tập luật có số chiều lớn hơn và kiểu dữ liệu của các chiều bị hạn chế
b) Phát hiện và xử lý xung đột trên tập luật nhiều chiều
Các kỹ thuật dạng này bao gồm [2], [3], [8], [30], [79] Trong đó, các tác giả đưa ra giải pháp nhằm phát hiện và xử lý các xung đột giữa các luật nhiều chiều trong tập luật của tường lửa Riêng nhóm các tác giả [8] đề xuất hướng phát hiện và xử lý xung đột giữa các luật trong tập luật của một nhóm các tường lửa nằm trên phân đoạn mạng cụ thể Các kỹ thuật này được đánh giá mang tính tổng quát hơn các kỹ thuật dạng một
FIREMAN được các tác giả [79] đề xuất nhằm phát hiện xung đột giữa các luật trong tập luật trên một tường lửa đơn hay các tường lửa trong một phân đoạn mạng Trong FIREMAN các luật được lưu trữ bởi biểu đồ quyết định nhị phân (Binary Decision Diagrams – BDDs) Kỹ thuật này phát hiện các xung đột trong tập
Trang 36luật bằng cách phân tích mối quan hệ giữa một luật cụ thể với tập hợp các khoảng giá trị của gói tin phù hợp với các luật đứng trước nó Điều này làm cho FIREMAN có hạn chế là với mỗi luật nó chỉ kiểm tra các luật trước đó mà bỏ qua tất cả các luật đứng sau khi thực hiện phân tích xung đột
FAME được đề xuất tại bài báo [30] Trong đó, các tác giả cũng sử dụng biểu
đồ quyết định nhị phân BDD để lưu trữ các luật Kỹ thuật đi sâu vào việc phát hiện
và xử lý các xung đột giữa các luật mà không gian luật có một phần giao nhau, bằng việc đưa ra thuật toán phân mảnh không gian luật của tất cả các luật thuộc tập luật thành các khoảng tách biệt từ đó xác định các phần giao giữa các luật Trên cơ sở đó, [30] xây dựng công cụ quản lý xung đột của tường lửa (Firewall Anomaly Management Environment - FAME) Hạn chế của [30] đó là đưa ra thuật toán phân mảnh không gian luật của các luật đầu vào nhưng vẫn đề cốt lõi là việc tính toán xác định biên của mỗi mảnh không gian luật đó theo các chiều cụ thể của mỗi luật không được các tác giả mô tả chi tiết, điều này làm giảm tính thuyết phục của đề xuất
Các tác giả của [2] đã đề xuất xây dựng cấu trúc cây mới có tên là FAT (Firewall Anomaly Trie), nhằm phát hiện và xử lý các xung đột trong tập luật của tường lửa Trong đó, mỗi trường của một luật được phân tách thành các element và mỗi element lưu trữ thông tin về một byte của trường Mỗi luật được biểu diễn trên cây FAT bằng một đường dẫn luật gồm các nút, mỗi nút được xây dựng dựa trên thông tin của các element Điểm hạn chế của kỹ thuật này là: Khó áp dụng được cho các trường dữ liệu được cho dưới dạng khoảng như cổng nguồn và cổng đích; FAT
có cấu trúc cây phức tạp do mỗi nút phải lưu trữ nhiều thông tin; Việc sử dụng element cho việc lưu trữ từng byte dẫn đến số lượng các element khi chuyển đổi và lưu trữ các luật trong tập luật là rất lớn Do đó, cấu trúc này yêu cầu chi phí cao về bộ nhớ, cũng như thời gian cho việc xây dựng và thay đổi cây
1.3.3 Một số nghiên cứu trong nước
Hiện nay, tường lửa đang sử dụng ở Việt Nam đa số là các sản phẩm của nước ngoài như Cisco, ISA, ASA, CheckPoint các sản phẩm này có hiệu năng cao do sự kết hợp giữa cấu trúc phần cứng với các thuật toán riêng của hãng Các tường lửa do Việt Nam phát triển hiện nay còn rất ít, chủ yếu phát triển các tường lửa mức ứng
Trang 37dụng hoặc là một tính năng của các phần mềm diệt virut máy tính như BKAV, CMC Nhìn chung các sản phẩm trong nước có hiệu năng thấp không thể đảm nhiệm được việc kiểm soát các mạng có lưu lượng thông tin trao đổi lớn
Trong lĩnh vực nghiên cứu, các nghiên cứu về tường lửa chỉ mang tính chất riêng lẻ và chủ yếu theo hướng khai thác sử dụng như: Nghiên cứu triển khai hệ thống tường lửa theo dạng mô hình để đảm bảo an ninh an toàn cho hệ thống mạng của một đơn vị cụ thể; Nghiên cứu cấu trúc và khai thác sử dụng các tường lửa nguồn mở
Luận án “Về một phương pháp giám sát và điều khiển có bảo mật trên mạng máy tính quân sự” năm 2008 của TS Phạm Hồng Thanh tại Viện KHCNQS, có nghiên cứu về phát triển tường lửa cho mạng máy tính Quân sự nhưng theo hướng tích hợp mật mã vào tường lửa nhằm nâng cao an toàn hệ thống
Hiện nay, Ban Cơ yếu Chính phủ đang triển khai đề tài cấp nhà nước “Nghiên cứu thiết kế, xây dựng tường lửa chuyên dụng tích hợp kỹ thuật mật mã của ngành
Cơ yếu”, 2017-2019 Trong đề tài này mục tiêu chính là “Thiết kế, chế tạo tường lửa tích hợp kỹ thuật mật mã của ngành Cơ yếu có tính năng tương đương tường lửa thương mại nhằm mục đích phục vụ trong quốc phòng, an ninh” Như vậy, mục tiêu xây dựng tường lửa hiệu năng cao cũng không được đưa ra giải quyết trong đề tài
Nhìn chung, việc phát triển các tường lửa hiệu năng cao chưa được quan tâm nghiên cứu ở trong nước, các nghiên cứu về tường lửa chỉ bao gồm: Làm chủ và phát triển các tường lửa với tính năng cơ bản và tích hợp mật mã trên thiết bị; Triển khai
sử dụng tường lửa trong các mô hình mạng nhằm đảm bảo an ninh cho hệ thống
1.3.4 Xác định hướng nghiên cứu trong luận án
Qua tìm hiểu, phân tích và đánh giá các nghiên cứu nhằm nâng cao tốc độ phân loại gói tin trên tường lửa trong lĩnh vực phần mềm, chúng ta thấy rằng việc nâng cao tốc độ phân loại gói tin có thể được thực phân chia thành hai dạng (Hình 1.9):
Cải tiến ở khâu trước phân loại – tiền xử lý
Cải tiến ở pha phân loại
Trang 38MODULE PHÂN LOẠI GÓI TIN
Gói tin chưa bị loại sớm
Tập luật
Gói tin đã được phân loại
Tối ưu hóa tập luật
Cải tiến pha tiền xử lý
Hình 1-9 Cải tiến nâng cao tốc độ phân loại gói tin trên tường lửa
Nhìn chung các nghiên cứu mới trong lĩnh vực phần mềm đã được công bố đều có các ưu và nhược điểm riêng Các giải pháp đó đều nhằm thu được hiệu quả theo một tiêu chí cụ thể (về bộ nhớ lưu trữ, tốc độ phân loại nhanh nhất hay thời gian phân loại trung bình nhỏ nhất) và thường chỉ nằm trong một pha xử lý của quá trình phân loại đây có thể coi là một hạn chế chung của các giải pháp đã có Vì vây, NCS
đề xuất một giải pháp toàn diện hơn trong lĩnh vực phần mềm nhằm phát triển tường lửa hiệu năng cao Trong đó việc cải tiến, nâng cấp được thực hiện trong cả hai giai đoạn trên:
Cải tiến thuật toán phân loại;
Loại sớm gói tin; Phát hiện và xử lý xung đột trong tập luật tường lửa
Trang 39MODULE PHÂN LOẠI GÓI TIN Gói tin vào
Với mục tiêu “Đề xuất các kỹ thuật mới trong phân loại gói tin và phát hiện xung đột
trong tập luật tường lửa nhằm nâng cao tốc độ phân loại gói tin từ đó phát triển tường lửa hiệu năng cao“, luận án sẽ tập trung nghiên cứu Cấu trúc dữ liệu lưu trữ
các luật phân loại và thuật toán phân loại dựa trên cấu trúc đó; Các kỹ thuật nhằm tối thiểu hóa thời gian phân loại trung bình cho mỗi gói tin trên tường lửa Giải pháp đưa
ra nhằm nâng cao hiệu năng của tường lửa mang tính hệ thống với các đề xuất mới gắn với từng bước xử lý trong quá trình phân loại gói tin: Phát hiện và xử lý xung đột trong tập luật tường lửa (tối ưu hóa tham số đầu vào cho bài toán phân loại); Loại sớm gói tin nhằm chống lại tấn công DoS vào luật mặc định (Làm giảm thời gian phân loại trung bình trong trường hợp bị tấn công); Nâng cao hiệu quả quá trình phân loại bằng cấu trúc dữ liệu và thuật toán mới Các đề xuất mới sẽ được NCS trình bày trong các chương tiếp theo của luận án
Trang 40CHƯƠNG 2 THUẬT TOÁN PHÂN LOẠI GÓI TIN TRÊN
TƯỜNG LỬA
2.1 Giới thiệu chương
Trong giai đoạn hiện nay, tốc độ truyền dẫn được nâng cao với đơn vị tính Gbps, lưu lượng dữ liệu trao đổi tăng mạnh cùng với xu thế mở rộng kích thước của các tập luật đặt ra những thách thức đối với các thuật toán phân loại gói tin hiện có Hiện tại, các tập luật có thể chứa hàng nghìn luật và mỗi luật liên quan đến năm hoặc nhiều trường trong tiêu đề của gói tin Số lượng các luật có thể lên tới hàng chục nghìn luật trong thời gian tới Các thiết bị tường lửa thể sử dụng các kết nối OC-1920 (100 Gbps) và để có thể đáp ứng được tốc độ đó thì trong trường hợp xấu nhất khi tất
cả các gói tin đều là gói TCP với kích thước tối thiểu (40 byte) tốc độ phân loại trên thiết bị mạng phải đạt 300 triệu gói dữ liệu trong một giây, tức là mỗi gói tin phải được phân loại trong 3,2 ns Một thuật toán phân loại được đề xuất bao gồm cấu trúc
dữ liệu để lưu trữ tập luật phân loại và thuật toán tìm kiếm dựa trên cấu trúc đó Các
đề xuất có thể dựa trên mô hình toán học nhằm đạt được giá trị tối ưu về thời gian phân loại, bộ nhớ lưu trữ tập luật trong trường hợp xấu nhất, hay tối ưu thời gian phân loại trung bình trên mỗi gói đi qua tường lửa Mặc dù nhiều thuật toán và các cấu trúc
đã được đề xuất, thì việc tìm kiếm một thuật toán phân loại gói tin hiệu quả vẫn là một thách thức lớn và trở nên ngày càng khó khăn Chương này bao gồm các nội dung chính sau:
Các khái niệm và tham số đánh giá thuật toán phân loại gói tin trên tường lửa hiện nay Phân tích, đánh giá về một số thuật toán liên quan là cơ sở để NCS đề xuất thuật toán mới
Đề xuất thuật toán phân loại gói tin trên một trường với cấu trúc cây
Ưu tiên đa nhánh – MWP (Multi-Way Priority) Nội dung của thuật toán này đã
được công bố tại bài báo “A packet classification algorithm on Multi-Way Priority
trie” tại Tạp chí Tin Học và điều khiển số 4 năm 2016