Theo lý thuyết thì xung đột giữa hai luật được căn cứ vào 3 yếu tố: mối quan hệ không gian luật giữa chúng, hành động (action) gắn với mỗi luật và thứ tự của luật. Vì hành động và thứ tự[r]
(1)Đề xuất cấu trúc phát xung đột trong tập luật tường lửa
Nguyễn Mạnh Hùng1, Vũ Duy Nhất2
1Phòng Sau đại học, Học viện Kỹ thuật Quân sự 2Cục Cơ yếu, Bộ Tổng tham mưu
Tác giả liên hệ: Vũ Duy Nhất, nhatbest@gmail.com
Ngày nhận bài: 31/05/2017, ngày sửa chữa: 11/04/2018, ngày duyệt đăng: 25/12/2018 Xem sớm trực tuyến: 28/12/2018, định danh DOI: 10.32913/rd-ict.vol3.no40.478
Biên tập lĩnh vực điều phối phản biện định nhận đăng: PGS TS Nguyễn Khánh Văn
Tóm tắt:Tường lửa thiết bị bảo mật mạng, sử dụng tập luật để kiểm sốt gói tin qua thiết bị Cấu hình luật tường lửa nhiệm vụ khó khăn chuyên gia bảo mật, đặc biệt hệ thống mạng phức tạp Sai sót q trình cấu hình thiết bị tác động tới hai khía cạnh: (i) làm ảnh hưởng tới an toàn hệ thống mạng cần bảo vệ (ii) làm suy giảm lực xử lý thiết bị tường lửa Bài báo đề xuất cấu trúc phát xung đột (CDT: Conflict Detection Tree) có khả phát tất loại xung đột tập luật tường lửa cách hiệu Tính xác tính hiệu cấu trúc CDT giới thiệu chứng minh chi tiết báo Cấu trúc CDT triển khai kiểm chứng với liệu thực tế, cho thấy tính khả dụng Từ khóa:Tường lửa, an ninh mạng, tiền tố, xung đột, sách an ninh.
Title: A New Conflict Detection Tree Structure in the Firewall Rule Set
Abstract: Firewall is a network security device that uses rules to control incoming and outgoing network traffic Configuring firewall rules is a very difficult task even for network security experts, especially for complex networks Mistakes made in the configuration process will cause two damaging effects: (i) affecting the security of the network that needs protection, and (ii) reducing the performance of the firewall device This article will introduce a Conflict Detection Tree (CDT) structure that effectively detects all conflicts in a firewall rule set The accuracy and effectiveness of the CDT structure is presented and substantiated in the article The proposed CDT structure has been implemented and tested with real data
Keywords: Firewall, network security, firewall rules, conflict, security policy.
I GIỚI THIỆU
Tường lửa loại thiết bị thiếu việc bảo đảm an ninh an toàn cho hệ thống mạng Thiết bị có chức ngăn cách bảo vệ cho mạng nội đơn vị hay tổ chức với mạng công cộng hay mạng tổ chức khác Các gói tin qua tường lửa kiểm soát theo chiều vào chiều Mỗi thiết bị tường lửa trang bị sách an ninh cho mục đích kiểm sốt gói tin nêu Chính sách an ninh tồn thiết bị tường lửa dạng tập luật người quản trị thiết lập Mỗi luật tập luật gồm giá trị điều kiện trường thơng tin header gói tin cần thỏa mãn, trường quan trọng hành động luật gói tin thỏa mãn Hành động hai giá trị: Accept (cho phép gói tin qua) Deny (khơng cho phép gói tin qua)
Một tập luật xây dựng người quản trị triển khai thiết bị bổ sung hay xóa bỏ luật có thay đổi sách an ninh trình vận hành hệ thống Số lượng luật tập luật tỷ lệ thuận với độ phức tạp sách an ninh triển khai thiết bị Trong thực tế nay, với việc phát triển mạnh mẽ quy mô hệ thống số lượng loại hình dịch vụ triển khai, sách an ninh cần triển khai thiết bị tường lửa ngày phức tạp Điều đồng nghĩa với việc tập luật sách an ninh mà người quản trị phải triển khai ngày tăng lên số lượng luật phức tạp cấu trúc Nhiệm vụ xây dựng quản lý sách an ninh cho tường lửa trở nên khó khăn
(2)hệ thống cho phép gói tin không hợp pháp qua, ảnh hưởng đến hoạt động bình thường hệ thống mạng loại bỏ gói tin hợp lệ, hay làm ảnh hưởng đến hiệu (về mặt lưu trữ xử lý) thiết bị tường lửa tồn luật dư thừa
Tại thời điểm năm 2004, kết khảo sát trình bày [1] cho thấy số lượng lớn xung đột tập luật tường lửa thực tế phải chấp nhận, số chắn lớn nhiều Chính vậy, việc nghiên cứu để phát xử lý xung đột tập luật tường lửa vấn đề nhiều nhà nghiên cứu quan tâm thực
Các kỹ thuật phát xung đột tập luật thiết bị mạng nói chung tường lửa nói riêng chia làm hai loại vào số chiều tập luật đó: (i) phát xung đột tập luật hai chiều (ii) phát xung đột tập luật nhiều chiều
Các kỹ thuật phát xung đột tập luật hai chiều tiêu biểu gồm có [2–9] Các kỹ thuật thực kiểm tra, phát xử lý xung đột tập luật với hai chiều địa IP nguồn địa IP đích thiết bị mạng nói chung thiết bị định tuyến, tường lửa, bảo mật IPSec, v.v Các kỹ thuật có hạn chế áp dụng cho trường hợp tập luật có số chiều lớn kiểu liệu chiều bị hạn chế
Các kỹ thuật dạng thứ hai bao gồm cơng trình [10– 14] Các kỹ thuật đưa giải pháp nhằm phát xử lý xung đột luật nhiều chiều tập luật thiết bị tường lửa Riêng nhóm tác giả cơng trình [10] đề xuất hướng phát xử lý xung đột luật tập luật nhóm thiết bị tường lửa nằm đường di chuyển gói tin Các kỹ thuật đánh giá mang tính tổng quát kỹ thuật dạng đầu
Bài báo đề xuất cấu trúc phát xung đột (CDT: Conflict Detection Tree) nhằm phát xung đột tập luật theo nhiều chiều thiết bị tường lửa đơn lẻ Cấu trúc CDT tối ưu mặt lưu trữ, thực với dạng liệu khác trường, có ưu điểm mặt thời gian trình xây dựng phát xung đột Ưu điểm cấu trúc CDT so với cấu trúc khác chứng minh lý thuyết đánh giá qua trình thực nghiệm
Bài báo tổ chức với phần sau Mục II giới thiệu kiến thức chung xung đột số thuật toán phát xử lý xung đột tập luật nhiều chiều Mục III đề xuất cấu trúc CDT cho việc phát xung đột Mục IV trình bày kết thử nghiệm đánh giá thuật toán đề xuất Mục V kết luận xác định hướng nghiên cứu tiếp tục
Hình Các mối quan hệ hình học khơng gian luật hai luật: (a) R P tách biệt hoàn toàn; (b) R trùng khớp hoàn toàn với P; (c) R chứa P; (d) R P có phần giao
II CÁC KIẾN THỨC LIÊN QUAN 1 Một số khái niệm
1) Định dạng luật tường lửa:
Mỗi luật tập luật tường lửa tạo tập giá trị mẫu trường hành động kèm Tập giá trị mẫu điều kiện trường thơng tin gói tin cần thỏa mãn muốn khớp với luật Các trường thơng tin trường IP, UDP hay TCP headers Trong thực tế trường thường IP nguồn, IP đích, cổng nguồn, cổng đích kiểu giao thức Hành động gắn luật Accept (cho phép gói tin qua) Deny (cấm qua)
Về mặt hình thức, luật R biểu diễn R(f1,f2, ,fn,Action), fi giá trị mẫu trường thứi Giá trị mẫu cho dạng khoảng, tiền tố, hay tập giá trị khác
2) Không gian luật:
Không kể đến trườngActiontrong luật, xét không gian n chiều luật thuộc điểm hay đa diện hình học khơng gian Mối quan hệ hai không gian luật R luật P thuộc trường hợp thể hình
3) Các loại xung đột tập luật tường lửa:
Các loại xung đột luật tường lửa xác định từ mối quan hệ không gian luật, thứ tự hành động chúng Al-Shaer cộng [10] định nghĩa cơng thức hóa năm loại mối quan hệ hai không gian luật, bao gồm phân tách hoàn toàn (Com-pletely Disjoint), khớp hoàn toàn (Exactly Matched), bao gồm (Inclusively Matched), phân tách vài phần (Partially Disjoint) tương quan (Correlated)
(3)Trong kiểu xung đột trên, bỏ qua kiểu tổng quát [12, 13]
Kiểu bóng:Luật R1 bóng luật hay nhóm luật R2 trước tất gói tin khớp với R1 khớp với R2 hành động R1 khác với hành động R2 Mối quan hệ không gian luật R1 R2 tương ứng với kiểu xung đột R2 trùng khớp với R1 R2 chứa R1 Trong trường hợp này, tất gói tin mà luật muốn cấm lại cho phép luật trước Do đó, luật bị bóng khơng có tác dụng
Kiểu tương quan:Luật R1 tương quan với luật R2 phần gói tin khớp với R1 khớp với R2 hành động R1 R2 khác Mối quan hệ không gian luật R1 R2 tương ứng với kiểu xung đột R2 R1 có phần giao Trong trường hợp này, gói tin khớp phần chung hai luật cho phép luật lại bị cấm luật khác
Kiểu dư thừa: Luật R1 dư thừa tồn luật hay nhóm luật R2 trước thỏa mãn điều kiện tất gói tin khớp với R1 khớp với R2 hành động R1 R2 giống Mối quan hệ không gian luật R1 R2 tương ứng với kiểu xung đột R2 trùng khớp với R1 R2 chứa R1 Kiểu xung đột không ảnh hưởng đến an ninh thiết bị làm lãng phí không gian lưu trữ luật
2 Một số kỹ thuật phát xung đột tập luật của tường lửa
1) Kỹ thuật FIREMAN:
Kỹ thuật FIREMAN tác giả cơng trình [11] đề xuất nhằm phát xung đột luật tập luật tường lửa đơn hay tường lửa phân đoạn mạng Trong FIREMAN, luật lưu trữ biểu đồ định nhị phân (BDDs: Binary Decision Diagrams) Kỹ thuật phát xung đột tập luật cách phân tích mối quan hệ luật cụ thể với tập hợp khoảng giá trị gói tin phù hợp với luật đứng trước Điều làm cho FIREMAN có hạn chế với luật kiểm tra luật trước mà bỏ qua tất luật đứng sau thực phân tích xung đột
2) Kỹ thuật phân mảnh:
Kỹ thuật phân mảnh (Rule-Based Segmentation) tác giả cơng trình [13] đề xuất Trong đó, kỹ thuật sâu vào phát xử lý xung đột luật qua việc tìm kiếm phần khơng gian luật giao luật Các tác đưa thuật tốn phân tách khơng gian luật tất luật thuộc tập luật thành miền tách biệt gồm miền khơng giao miền giao Trong miền giao nhau, kỹ thuật phân mảnh
chia thành ba loại không gian, Allow (cho luật có hành động Allow), Deny (cho luật có hành động Deny) Conflict (các miền không gian luật mà có hành động khác nhau) xác định có miền Conflict chứa luật xung đột Với cách phân chia vậy, kỹ thuật phân mảnh có hạn chế bỏ qua loại xung đột kiều dư thừa
Một hạn chế kỹ thuật phân mảnh cơng trình [13] đưa thuật tốn phân mảnh khơng gian luật luật đầu vào đề cốt lõi việc tính tốn xác định biên mảnh không gian luật theo chiều cụ thể luật khơng tác giả mô tả chi tiết, điều làm giảm tính thuyết phục đề xuất 3) Cấu trúc FAT:
Các tác giả cơng trình [14] đề xuất xây dựng cấu trúc có tên FAT (Firewall Anormaly Tree), nhằm phát xử lý xung đột tập luật tường lửa Trong cơng trình [14], trường luật phân tách thành element element lưu trữ thơng tin byte trường có định dạng ((byte,mask)b,(dim,or d)o) Trong đó,masklà số bít sử dụng byte xét,bytelà giá trị củamaskbit byte,dimlà trường xét (1: source IP, 2: destination IP, v.v.),ord vị trí byte xét trườngdim Các tác giả đưa định nghĩa thứ tự element với nhau, element đứng trước có mask lớn hơn, trường hợp giá trị thìelement có dim nhỏ đứng trước
Cấu trúc FAT xây dựng từ tập tất element luật Một luật biểu diễn cấu trúc FAT đường dẫn luật gồm nút, nút xây dựng dựa thông tin cácelement Cácelement đứng trước ưu tiên lựa chọn trước cho việc xây dựng nút Mỗi nút có ba tập, tập P(Primary) chứa luật khớp với đường dẫn từ nút gốc đến nút xét, tậpS (Second) chứa luật có khơng gian luật chứa khơng gian khơng gian luật tập Pvà tập T (Tertiary) chứa luật có không gian luật giao với không gian không gian luật tậpP Việc xây dựng cấu trúc FAT thực đến tất element chọn hết mối quan hệ luật xác định nhờ tập P,SvàTtại nút
Kỹ thuật có hạn chế sau đây:
◦ Phức tạp áp dụng cho trường liệu cho dạng khoảng cổng nguồn cổng đích cần phải xây dựng tập tiền tố đại diện cho khoảng giá trị [15] Điều làm tăng chi phí cho tính tốn việc xây dựng tập tiền tố tổng hợp xung đột cho luật bước cuối
(4)◦ Việc sử dụngelement cho việc lưu trữ byte dẫn đến số lượng element chuyển đổi lưu trữ luật tập luật lớn Do đó, cấu trúc yêu cầu chi phí cao nhớ, thời gian cho việc xây dựng thay đổi
III CẤU TRÚC CÂY PHÁT HIỆN XUNG ĐỘT TRONG TẬP LUẬT TƯỜNG LỬA
Theo lý thuyết xung đột hai luật vào yếu tố: mối quan hệ không gian luật chúng, hành động (action) gắn với luật thứ tự luật Vì hành động thứ tự luật giá trị tường minh nên việc xác định xung đột hai luật thực chất việc xác định mối quan hệ khơng gian luật chúng Thuật tốn chúng tơi đề xuất gồm cấu trúc CDT thủ tục xây dựng cấu trúc CDT từ tập luật tường lửa nhằm tìm mối quan hệ khơng gian luật chúng cách hiệu quả, từ xác định xung đột luật
1 Các định nghĩa
1) Mức độ chi tiết trường:
Trong thực tế, giá trị trường luật kiểu tiền tố, khoảng giá trị hay tập giá trị riêng biệt Mỗi tiền tố, hay khoảng giá trị bao gồm tập giá trị thỏa mãn, số lượng giá trị tập độ chi tiết trường cao Trong báo, sử dụng trọng số nên xây dựng định nghĩa
Định nghĩa 1: Độ chi tiết trường fn ký hiệu |fn| xác định sau
Nếu fnlà kiểu tiền tố, độ chi tiết fnđược tính chiều dài tiền tố Với trường IP nguồn IP đích sử dụng địa IPv4 độ chi tiết cao trường 32
Nếu fn kiểu khoảng giá trị[a:b], độ chi tiết fn tính dựa số lượng giá trị khoảng theo cơng thức sau:
|fn|=
MAX− (b−a) MAX
×L, (1)
trong MAX giá trị lớn mà a b nhận, L bậc cao mà mức độ chi tiết fn đạt
Để phù hợp trình so sánh mức độ chi tiết trường có kiểu tiền tố với trường có kiểu liệu khoảng, chọn L độ dài tính bít số nguyênavàb Trong gói tin IPv4 trường cổng nguồn cổng đích lưu số nguyên 16 bít nên L=16và MAX=65535
Với trường hợp giá trị trường fn tập gồm n giá trị riêng biệt luật tách thành n luật mà
giá trị trường fn luật giá trị tập ban đầu coi khoảng mà giá trị đầu trùng với giá trị cuối mức độ chi tiết trường fntrong luật cao Ví dụ, luật R có trường địa nguồn luật cho dạng tiền tố 000100* |IPsource| =6 Trường cổng đích R có giá trị 80
có thể coi cho dạng khoảng giá trị [80 : 80] |Portdes|=16
2) Mối quan hệ hai giá trị trường:
Định nghĩa 2: Mối quan hệ hai giá trị trường V1 V2 trường fn
V1 trùngV2 (ký hiệu V1≈V2) khi: Nếu fn cho dạng tiền tố V1=V2; Nếu fn cho dạng khoảng giá trị V1 =[a : b] V2 =[c: d] a=cvàb=d
V1 thuộc V2 (ký hiệu V1 ∈ V2) khi: Nếu fn cho dạng tiền tố V2 tiền tố V1; Nếu fn cho dạng khoảng giá trị V1 = [a : b], V2=[c:d]thì (a ≥cvàb<d) (a >cvàb≤d)
V1giaoV2(ký hiệu V1§V2) khi: Nếu fnđược cho dạng khoảng giá trị V1=[a:b], V2=[c:d]thì
(a<c≤b<d)hoặc(c<a≤d <b)
V1 tách rờiV2 (ký hiệu V1 ><V2) khi: Nếu fnđược cho dạng tiền tố V1 khơng phải tiền tố V2 ngược lại; Nếu fn cho dạng khoảng giá trị V1=[a:b], V2=[c:d]thìb<choặc a>d
Định lý 1:Cho hai giá trị trường V1 V2 trường fn, ta có:
(i) Điều kiện cần để V1∈V2 |V1|>|V2|;
(ii) Điều kiện cần để V1≈V2 là|V1|=|V2| Chứng minh:
(i) Theo định nghĩa mối quan hệ V1∈V2, có hai trường hợp xảy Trường hợp fn cho dạng tiền tố, để V2là tiền tố V1thì trước hết chuỗi V1phải có độ dài lớn chuỗi V2, viết |V1| =len(V1)> len(V2)=
|V2|
Trường hợp fn cho dạng khoảng giá trị V1=
[a:b]và V2=[c:d], ta có:
|V1| − |V2| =
MAX− (b−a) MAX
×L −
MAX− (d−c) MAX
×L
= L×
(
d−b)+(a−c) MAX
Theo định nghĩa V1 ∈V2, ta có (a≥cvàb<d) (a > c b ≤ d) Với (a ≥ c b < d) (a−c) ≥
(5)(a−c)>0và(d−b) ≥0, từ đó(d−b)+(a−c)>0, suy ra: |V1| − |V2|>0⇔ |V1|>|V2|
(ii)Theo định nghĩa mối quan hệ trùng hai giá trị trường, dễ dàng thấy V1≈V2 thì|V1|=|V2| Định lý 2: Cho tập giá trị trường V = (V1,V2, ,Vm) trường fn Nếu Vk giá trị trường có độ chi tiết lớn tập V với Vi ∈ V
(i,k,1≤i≤m) ta ln có Vi <Vk
Chứng minh: Vì Vk có độ chi tiết lớn V nên |Vk| ≥ |Vi| Mặt khác, theo định lý 1, điều kiện cần để Vi ∈Vk |Vi|>|Vk|, nên Vi <Vk
3) Cấu trúc luật:
Cấu trúc lưu trữ giá trị trường luật sau: struct typeofvalue{
public bool isPrefix; public string prefix; public int begin; public int end;}
trong đó,isPrefixlà liệu trường xét cho dạng tiền tố (source IP, destination IP, protocol), isPre-fix liệu trường xét dạng tiền tố (source port, destination port),beginvàendlà giá trị bắt đầu kết thúc giá trị trường (trường hợp isPrefix=0), prefixlà chuỗi tiền tố trường (trường hợpisPrefix=1) Để lưu trữ luật cấu trúc CDT xây dựng lại cấu trúc luật gồm danh sách liệu trường vàAction Mỗi trường lưu trữ ghiunit gồm thông tin:
struct unit{
public int type; public float detail; public int ruleid;
public typeofvalue value;}
trong đó, typelà kiểu trường (1: source IP, 2: destination IP, 3: source port, 4: destination port, 5: protocol),detaillà mức độ chi tiết trường, xác định theo định nghĩa 1, ruleidlà số luật, valuelà giá trị trường
Với cấu trúc trên, unit gắn với trường luật cụ thể lưu trữ liệu dạng tiền tố liệu dạng khoảng dạng giá trị đơn lẻ Ví dụ, luật R có số n với tham số (src IP,des IP,src port,des port,Action) = (10.10.0.0/16,10.0.0.0/8,80,∗,Deny) biểu diễn danh sách 4unit bảng I
Luật R biểu diễn dạng R=(unit[0],unit[1],
unit[2],unit[3],Action), với giá trị cácunitđược thể bảng I
Bảng I
DANH SÁCH CÁCUNIT CỦA LUẬTR
unit[0] unit[1] unit[2] unit[3]
type
detail 16 16
ruleid n n n n
Value.isPrefix 1 0
Value.begin 80
Value.end 80 65535
Value.prefix 00001010
00001010 0000 1010
Định nghĩa 3:Cho haiunitu1 vàu2, phépso sánhgiữa u1 vàu2 xác định sau: u1 < u2 u1.detail < u2.detail, u1 > u2 u1.detail > u2.detail, u1 = u2 u1.detail=u2.detail
Định nghĩa 4: Các mối quan hệ haiunit u1 vàu2 (chỉ sử dụng khiu1 vàu2 có kiểu trường), bao gồm: u1 trùng u2 (ký hiệu u1 ≈u2) u1.value ≈ u2.value, u1 thuộc u2 (ký hiệu u1 ∈ u2) u1.value ∈ u2.value, u1 giao u2 (ký hiệu u1 § u2) khiu1.value §u2.value
2 Ý tưởng thuật tốn
Thuật tốn chúng tơi đề xuất bao gồm xây dựng cấu trúc CDT từ luật nhằm xác định mối quan hệ không gian luật chúng Việc xây dựng cấu trúc CDT tuân theo nguyên tắc sau đây:
i) Các luật chuyển sang cấu trúc gồm unit để làm đầu vào cho trình xây dựng
ii) Để xác định mối quan hệ hai không gian luật, phải xét mối quan hệ chúng chiều khơng gian
iii) Tại chiều khơng gian luật, luật có mức độ chi tiết cao xem xét mối quan hệ với luật lại Theo lựa chọn này, vào định lý luật hay nhóm luật xét có mối quan hệ với luật khác thuộc dạng: Trùng khớp (Match), tập (Subset), giao (Overlap), tách biệt (Disjoint) Trong mối quan hệ mối quan hệ tách biệt khơng tạo xung đột nên khơng cần xem xét Vì thời điểm, cần quan tâm đến luật có khơng gian luật trùng khớp (Match), chứa (Super), giao (Overlap) với không gian luật hay nhóm luật xét
iv) Với luật xét, chiều thứ i+1: Tập luật trùng khớp với kiểm tra tập
(6)luật giao kiểm tra tậpMatch,Super
vàOverlap chiều thứ i Phép chuyển luật từ tập sau:
(Match)i
condition_mat ch
−−−−−−−−−−−−−−→ (Match)i+1, (2)
(Match)i
condition_su per
−−−−−−−−−−−−−−→ (Super)i+1, (3)
(Super)i
condition_su per
−−−−−−−−−−−−−−→ (Super)i+1, (4)
(Match)i
condition_overlap
−−−−−−−−−−−−−−−−→ (Overlap)i+1, (5)
(Super)i
condition_overlap
−−−−−−−−−−−−−−−−→ (Overlap)i+1, (6)
(Overlap)i
condition_overlap
−−−−−−−−−−−−−−−−→ (Overlap)i+1, (7) “condition_x” điều kiện để luật chuyển từ tập bước thứisang tập bước thứi+1 Gọi R luật xét, R(fm) giá trị trường thứ m R, điều kiện “condition_x” để luật P chuyển công thức sau:
condition_match: R(fi+1) ≈P(fi+1) condition_super: R(fi+1) ∈P(fi+1) condition_overlap: R(fi+1) §P(fi+1)
v) Mối quan hệ thực không gian luật luật với luật khác xác định bước cuối tất chiều kiểm tra
3 Cấu trúc CDT
CDT đa nhánh xây dựng từ tập liệu đầu vào cácunitcủa tập luật Nút gốc ROOT CDT chứa danh sách tất luật tập luât Trong cây, đường dẫn từ nút gốc ROOT đến nút biểu diễn hồn chỉnh hay nhóm luật thỏa mãn điều kiện cụ thể đường dẫn Nút N mang thơng tin kiểu trường fn mức độ chi tiết trường đó, nút Nđược xây dựng theo giá trị trường fn độ chi tiết N lớn độ chi tiết trường lưu nút
1) Cấu trúc nút:
Nút CDT có cấu trúc hình 2, đó: ◦ TOF (Type Of Field) kiểu trường thể
tại nút Các quy ước sau: source IP, destination IP, source port, destination port, protocol
◦ DETAILlà mức độ chi tiết trường;
◦ M danh sách luật thỏa mãn điều kiện đường dẫn từ ROOT đến nút tại;
◦ Slà danh sách luật có khơng gian luật chứa không gian luật luật thuộcM;
◦ O danh sách luật có khơng gian luật có phần chung với khơng gian luật luật thuộcM; ◦ Labels tập nhãn gán cho nút
củaN;
Hình Cấu trúc nút CDT
◦ Childslà danh sách nút nút Nút thứ isẽ chứa luật thuộcMthỏa mãn điều kiện trường thứ [TOF] có độ chi tiết [DETAIL] có giá trị Labels[i];
◦ OtherChild nút đặc biệt nút xét, chứa luật thuộc M không thỏa mãn điều kiện: Trường TOF có mức độ chi tiết bằngDETAIL
2) Thủ tục xây dựng nút:
Thủ tục xây dựng nút trình bày thuật tốn Nút N xây dựng với đầu vào gồm ba tập unit: Unit-matchs chứa unitcủa luật khớp với đường dẫn từ ROOT tới N; Unit-Supers chứa unit luật có khơng gian luật chứa khơng gian luật thỏa mãn điều kiện đường dẫn từ ROOT tới N; Unit-Overlaps chứa unit luật có khơng gian luật có phần chung với khơng gian luật thỏa mãn điều kiện đường dẫn từ ROOT tớiN
Các giá trịTOFvàDETAIL đặt sau: N.TOF=UMAX.type,
N.DETAIL=UMAX.detail,
trong UMAX ∈ Unit-matchs thỏa mãn với u ∈ Unit-matchsthìu.detail≤UMAX.detail
Các tậpM,SvàOđược lấy số luật ba tập tương ứng Unit-matchs, Unit-Supers Unit-Overlaps. Ví dụ, tập Unit-matchs có unit luật số 1, 7, thìM bao gồm số 1, 7,
(7)Thuật toán 1: BuildNode Input:List of unit UnitMats;
List of unit UnitSups; List of unit UnitOvers; Output: CDTNode N
Begin
1: UMAX=GetMaxUnit(UnitMats); 2: lstUnit=GetUnits(UMAX,UnitMats); 3: N.TOF=UMAX.type;
4: N.DETAIL=UMAX.detail; 5: for eachu of lstUnit 6: ulabel=CreateLabel(u); 7: if ulabelnot inN.Labels 8: N.Labels.add(ulabel);
9: (UnitMats)−−−−−−−−−−−−−−→ (condition_mat ch uMatchs); 10: (UnitMats)−−−−−−−−−−−−−−→ (condition_su per uSupers); 11: (UnitSups)−−−−−−−−−−−−−−→ (condition_su per uSupers); 12: (UnitMats)−−−−−−−−−−−−−−−−condition_overlap→ (uOverlaps); 13: (UnitSups)−condition−−−−−−−−−−−−−−−_overlap→ (uOverlaps); 14: (UnitOvers)−condition−−−−−−−−−−−−−−−_overlap→ (uOverlaps);
15: CDTNode M;
16: BuildNode(M,uMatchs,uSupers,uOverlaps); 17: N.Childs.add(M);
18: RemoveUnit(UnitMats,uMatchs); 19: end if
20: end for each
21: BuildNode(N.OtherChild,UnitMats,UnitSups, UnitOvers);
End
N.TOF ANDdetail=N.DETAIL)” Trong trường hợp unit thuộclstUnitlà kiểu tiền tố thìLabelslà tập tiền tố không trùng cácunitthuộclstUnit, trường hợp liệu kiểu khoảng thìLabelslà tập khoảng giá trị khơng trùng cácunit thuộc lstUnit.
Childs: Nút thứi xây dựng với ba đầu vào xác định theo phép chuyển luật (2), (3), (4), (5), (6), (7) với giá trị phân loại làLabels(i)
OtherChild: Là nút đặc biệt N Tất luật thuộc tậpUnit-matchs có kiểu trườngN.TOF mà độ chi tiết nhỏ N.DETAILlà đầu vào để xây dựng nút đặc biệt TậpS vàOcủa OtherChild tậpS vàOcủaN
Dịng 1: Hàm GetMaxUnit trả vềunit-UMAXcó độ chi tiết lớn tập cácUnitMats.
Dòng 2: Hàm GetUnits trả unit trongUnitMats có typevà cùngdetailvớiUMAX
Dịng 3, 4: Gán giá trị TOFvàDETAIL cho nútN Dòng 6: Hàm CreateLabel(u) tạo nhãn tạm từ u.value, nhãn sử dụng để kiểm tra u.value sử
Thuật toán 2:BuildTree Input: Rule Set; Output: CDTTree CDT; Begin
1: uMatchs=GetUnitFromRuleSet(Rule Set); 2: uSupers=∅;
3: uOverlaps=∅;
4: BuildNode(ROOT,uMatchs,uSupers,uOverlaps); End
TOF, DETAIL
TOF#1, DETAIL#1
TOF#2, DETAIL#2
TOF#n, DETAIL#n TOF#0, DETAIL#0
Hình NútN sau xây dựng
dụng tạo N hay chưa dòng Dòng 8: Thêm nhãn tạm vào danh sách
Dòng 9, 10, 11, 12, 13, 14: Xây dựng tập đầu vào cho N
Dòng 15, 16, 17: Thêm cho N Dòng 18: Loại luật xét khỏi tậpUnitMats. Dòng 21: Xây dựng nút đặc biệt N.OtherChild Nút N sau xây dựng có cấu trúc hình 3) Thủ tục xây dựng cây:
Thủ tục xây dựng trình bày thuật tốn Dịng 1: Đọc chuyển tất luật sang cácunit, lưu trữ tất vàouMatchs.