Tạo luật cho các bức tường lửa sử dụng các kỹ thuật kết hợp dựa trên cây quyết định

Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XI về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR); Hà Nội, ngày 09-10/8/2018  
DOI: 10.15625/vap.2018.00064  
TẠO LUẬT CHO CÁC BỨC TƯỜNG LỬA SỬ DỤNG CÁC KỸ THUẬT  
KẾT HỢP DỰA TRÊN CÂY QUYẾT ĐỊNH  
Hoàng Ngọc Thanh1, 3, Trần Văn Lăng2  
1Trường Đại học Lạc Hồng  
2Viện Cơ học và Tin học ứng dụng, VAST  
3Khoa Công nghệ Thông tin, Trường Đại học Bà Rịa - Vũng Tàu  
TÓM TẮT: Các bức tường lửa hiện nay hoạt động chủ yếu dựa trên các luật đã được thiết lập trước. Những bức tường lửa này tìm  
ra sự xâm nhập mạng bằng cách kiểm tra các đặc tính của dữ liệu cần phân tích với các luật đã biết và ngăn chặn nếu phát hiện tấn  
công. Khi lưu lượng mạng phát triển nhanh chóng, việc cập nhật thủ công các luật ngày càng trở nên khó khăn, tẻ nhạt và tốn nhiều  
thời gian. Kể từ đó, các phương pháp máy học đã được giới thiệu để giải quyết vấn đề này. Máy học đề cập đến các thuật toán máy  
tính có khả năng học hỏi từ các mẫu dữ liệu trong quá khứ để nhận ra các mẫu tấn công mới, và từ đó tạo ra các luật mới cho các  
bức tường lửa giúp ngăn chặn các cuộc tấn công mạng ngày càng phong phú, đa dạng và không ngừng thay đổi như hiện nay. Bài  
báo đề cập đến việc sử dụng các kỹ thuật kết hợp nhiều mô hình máy học như: Boosting, Bagging, Stacking, Random Forest và  
Decorate (Diverse Ensemble Creation by Oppositional Relabeling of Artificial Training Examples) để xây dựng các bộ phân lớp kết  
hợp có chất lượng cao trong việc phát hiện các dấu hiệu tấn công, từ đó tạo ra các luật mới giúp các bức tường lửa ngăn chặn các  
tấn công chưa từng biết. Kết quả thử nghiệm thực hiện trên các bộ dữ liệu NSL-KDD, bộ dữ liệu được nhiều học giả sử dụng nhất  
và UNSW-NB, bộ dữ liệu hiện đại do Trung tâm An ninh mạng của Úc tạo ra năm 2015 cho thấy: các kỹ thuật kết hợp cho kết quả  
tốt nhất trong đa số các trường hợp khi phát hiện các mẫu tấn công.  
Từ khóa: Máy học; Cây quyết định; Bức tường lửa; Random Forest; Boosting; Bagging; Stacking; Decorate.  
I. GIỚI THIỆU  
Tấn công mạng là hình thức tấn công xâm nhập vào các hệ thống thông tin máy tính, cơ sở hạ tầng, mạng máy  
tính hoặc các thiết bị cá nhân bằng nhiều cách khác nhau của các hành vi độc hại thường có nguồn gốc từ một nguồn  
giấu tên, mà đánh cắp, thay đổi hoặc hủy hoại một mục tiêu cụ thể bằng cách hack vào một hệ thống dễ bị tổn thương  
[1]. Tấn công mạng ngày càng trở nên phức tạp và nguy hiểm như những con sâu Stuxnet gần đây đã chứng minh [2].  
Để ngăn chặn các cuộc tấn công mạng như vậy, người ta đã xây dựng các bức tường lửa đặt tại các cổng kết nối của hệ  
thống thông tin máy tính, các bức tường lửa này tìm ra sự xâm nhập bằng cách so sánh các đặc tính của dữ liệu đi qua  
cổng kết nối với các dấu hiệu tấn công đã biết, nếu phát hiện dấu hiệu tấn công, bức tường lửa sẽ loại bỏ các gói tin  
tương ứng để ngăn ngừa xâm nhập. Tuy nhiên, kẻ xâm nhập cũng không ngừng tìm kiếm các hình thức xâm nhập mới,  
điều đó làm cho hoạt động phát hiện xâm nhập của bức tường lửa trở nên khó khăn. Để khắc phục, các bức tường lửa  
cần liên tục cập nhật các dấu hiệu tấn công mới và điều này thường không kịp thời và tốn nhiều chi phí. Kể từ đó, các  
phương pháp máy học đã được giới thiệu để giải quyết vấn đề phát hiện xâm nhập. Máy học đề cập đến các thuật toán  
máy tính có khả năng học hỏi từ các mẫu dữ liệu trong quá khứ để tự động phát hiện các mẫu tấn công mới. Dựa trên  
máy học, các tường lửa đã hoạt động tốt hơn trong nhiều báo cáo cũng như thực tế triển khai [3].  
Bên cạnh việc phát triển các mô hình máy học là các bộ phân lớp đơn sử dụng các thuật toán máy học như: cây  
quyết định, mạng nơron, mạng Naïve Bayes, k láng giềng gần nhất, máy vectơ hỗ trợ, hồi quy luận lý,… Từ những  
năm 1990, cộng đồng máy học đã nghiên cứu cách để kết hợp nhiều mô hình phân lớp thành tập hợp các mô hình phân  
lớp để cho tính chính xác cao hơn so với chỉ một mô hình phân lớp. Mục đích của các mô hình tập hợp là làm giảm  
phương sai (variance) và/hoặc độ lệch (bias) của các giải thuật học. Độ lệch là khái niệm về lỗi của mô hình học  
(không liên quan đến dữ liệu học) và phương sai là lỗi do tính biến thiên của mô hình so với tính ngẫu nhiên của các  
mẫu dữ liệu học. Năm 1992 Buntine [4] đã giới thiệu các kỹ thuật Bayes để giảm phương sai của các phương pháp học.  
Phương pháp xếp chồng (Stacking) do Wolpert giới thiệu năm 1992 [5] hướng tới việc cực tiểu hóa độ lệch của các  
giải thuật học. Trong khi Freund và Schapire [6] đưa ra Boosting năm 1995, Breiman [7] đề nghị ArcX4 năm 1998 để  
cùng giảm độ lệch và phương sai, còn Bagging do Breiman [8] đề nghị năm 1996 thì giảm phương sai của giải thuật  
học nhưng không làm tăng độ lệch quá nhiều. Tiếp cận rừng ngẫu nhiên (Random Forest) do Breiman đề xuất năm  
2001 [9] là một trong những phương pháp tập hợp mô hình thành công nhất. Giải thuật rừng ngẫu nhiên xây dựng cây  
không cắt nhánh nhằm giữ cho độ lệch thấp và dùng tính ngẫu nhiên để điều khiển tính tương quan thấp giữa các cây  
trong rừng.  
Việc ứng dụng các kỹ thuật kết hợp như Bagging, Boosting và Stacking nêu trên vào các hệ thống phát hiện  
xâm nhập mạng (Network Intrusion Detection System: NIDS) cũng đã được các tác giả đề xuất trong [10].  
Nội dung bài báo này đề cập đến việc sử dụng các kỹ thuật kết hợp nhiều mô hình phân lớp như: Boosting,  
Bagging, Stacking, Random Forest và Decorate để xây dựng các bộ phân lớp kết hợp có chất lượng cao trong phát hiện  
các dấu hiệu tấn công mới, từ đó tạo ra các luật mới giúp các bức tường lửa ngăn chặn các cuộc tấn công mạng ngày  
càng phong phú, đa dạng và không ngừng thay đổi như hiện nay.  
490  
TẠO LUẬT CHO CÁC BỨC TƯỜNG LỬA SỬ DỤNG CÁC KỸ THUẬT KẾT HỢP DỰA TRÊN CÂY QUYẾT ĐỊNH  
II. TẬP DỮ LIỆU  
Trước khi các bộ phân lớp được đưa vào sử dụng để phát hiện xâm nhập mạng, các bộ phân lớp phải trải qua  
quá trình huấn luyện và kiểm tra, việc huấn luyện và kiểm tra được thực hiện trên tập dữ liệu đã được gán nhãn trước.  
Dưới đây là thông tin chi tiết về 2 tập dữ liệu được dùng trong các thí nghiệm.  
2.1. Tập dữ liệu NSL-KDD  
Mặc dù tập dữ liệu KDD99 đã hơn 15 năm tuổi, nhưng theo điều tra về mức độ sử dụng của tập dữ liệu trong  
nghiên cứu máy học và hệ thống phát hiện xâm nhập giai đoạn 2010-2015 của Atilla Özgür và Hamit Erdem [11] cho  
thấy: KDD99 là tập dữ liệu được sử dụng nhiều nhất. KDD99 được tạo ra bằng cách xử lý phần dữ liệu TCPDUMP lấy  
được trong 7 tuần từ hệ thống phát hiện xâm nhập DARPA 1998. KDD99 gồm các tập dữ liệu huấn luyện và kiểm tra.  
Tập dữ liệu huấn luyện có 4.898.431 bản ghi, mỗi bản ghi có 41 thuộc tính (loại giao thức, dịch vụ và cờ) và được dán  
nhãn là bình thường hoặc một cuộc tấn công một cách chính xác với một kiểu tấn công cụ thể [12].  
Tập dữ liệu huấn luyện chứa 22 kiểu tấn công và thêm 17 kiểu trong tập dữ liệu kiểm tra, được phân thành 4  
nhóm:  
(1). Denial of Service (DoS), gồm các kiểu tấn công như: neptune, smurf, pod, teardrop, … Ở đó, kẻ tấn công  
làm cho các tài nguyên tính toán hoặc bộ nhớ quá tải để xử lý các yêu cầu hợp lệ, hoặc từ chối người dùng hợp lệ truy  
cập máy.  
(2). Remote to Local (R2L), gồm các kiểu tấn công như: guess-passwd, ftp-write, imap, phf, … Ở đó, kẻ tấn  
công tuy không có tài khoản nhưng có khả năng gửi các gói tin đến một máy qua mạng, sẽ khai thác một số lỗ hổng để  
đạt được quyền truy cập cục bộ như là người sử dụng của máy đó.  
(3). User to Root (U2R), gồm các kiểu tấn công như: buffer-overflow, load-module, perl, rootkit, … Ở đó, kẻ  
tấn công bắt đầu với một quyền truy cập bình thường và sau đó khai thác một số lỗ hổng để đạt được quyền truy cập  
root trên hệ thống.  
(4). Probe, gồm các kiểu tấn công như: port-sweep, ip-sweep, nmap, … Ở đó, kẻ tấn công nỗ lực thu thập thông  
tin về mạng máy tính nhằm phá vỡ khả năng kiểm soát an ninh của nó.  
Năm 2009, Tavallaee và các đồng nghiệp [12] đã tiến hành phân tích thống kê bộ dữ liệu KDD99. Các tác giả  
tìm thấy một số lượng lớn các bản ghi dư thừa, 78% trong tập dữ liệu huấn luyện và 75% trong tập dữ liệu kiểm tra. Số  
lượng bản ghi trùng lặp này có thể ngăn chặn các thuật toán máy học với các bản ghi không xuất hiện thường xuyên  
như các cuộc tấn công U2R. Các tác giả cũng lưu ý rằng các bản ghi trùng lặp trong tập dữ liệu KDD99 cũng sẽ làm  
cho kết quả đánh giá bị sai lệch, bởi các thuật toán sẽ phát hiện tốt hơn với các bản ghi xuất hiện thường xuyên.  
Tavallaee và các đồng nghiệp [12] đã tạo bộ dữ liệu NSL-KDD từ tập dữ liệu KDD99 để giải quyết các vấn đề đã đề  
cập ở trên, bằng cách loại bỏ các bản ghi dư thừa. Tập dữ liệu huấn luyện của NSL-KDD gồm 125.973 bản ghi và tập  
dữ liệu kiểm tra gồm 22.544 bản ghi, ít hơn nhiều so với tập dữ liệu KDD99. Các tác giả cho rằng kích thước của tập  
dữ liệu NSL-KDD là hợp lý, có thể được sử dụng như tập dữ liệu hoàn chỉnh mà không cần phải lấy mẫu ngẫu nhiên.  
Điều này cho phép xem xét một cách nhất quán và có thể so sánh các công trình nghiên cứu khác nhau.  
Thông tin chi tiết về mỗi kiểu tấn công trong tập dữ liệu NSL-KDD được mô tả ở Bảng 1.  
Bảng 1. Thông tin tập dữ liệu huấn luyện và kiểm tra NSL-KDD.  
Phân lớp  
Normal  
Tên tấn công  
Số bản ghi  
67.343  
Tỷ lệ  
53,45%  
9,26%  
36,46%  
Probe  
DoS  
ipsweep, mscan, nmap, saint, satan, portsweep  
11.656  
apache2, back, land, mailbomb, neptune, pod, smurf, teardrop,  
processtable, udpstorm  
45.927  
U2R  
R2L  
buffer_overflow, httptunnel, ps, loadmodule, perl, rootkit, xterm,  
sqlattack  
52  
0,04%  
0,79%  
ftp_write, guess_passwd, imap, multihop, named, phf, sendmail,  
snmpgetattack, snmpguess, spy, warezclient, worm, xlock, xsnoop,  
warezmaster  
995  
Tổng cộng  
125.973 100,00%  
2.2. Tập dữ liệu UNSW-NB  
Tập dữ liệu UNSW-NB được phát triển bằng cách sử dụng công cụ IXIA để trích xuất các hành vi bình thường  
và tấn công hiện đại do Trung tâm An ninh mạng (ACCS) Úc thực hiện năm 2015. Bộ dữ liệu này bao gồm 9 loại tấn  
công và 49 thuộc tính [13].  
Hoàng Ngọc Thanh, Trần Văn Lăng  
491  
Tập dữ liệu UNSW-NB chứa 2.540.044 bản ghi. Một phần của tập dữ liệu này được chia thành các tập dữ liệu  
huấn luyện và kiểm tra, được dùng nhiều trong các thí nghiệm của các học giả, thông tin chi tiết về các tập dữ liệu  
được trình bày ở Bảng 2. Các tập dữ liệu huấn luyện và kiểm tra này chứa tổng cộng 9 loại tấn công: Analysis,  
Backdoor, DoS, Exploits, Fuzzers, Generic, Reconnaissance, Shellcode và Worms.  
Bảng 2. Thông tin tập dữ liệu UNSW-NB.  
Tập huấn luyện  
Số bản ghi  
Tập kiểm tra  
Số bản ghi  
Loại tấn công  
Normal  
Tỷ lệ  
31,94%  
1,14%  
Tỷ lệ  
44,94%  
0,82%  
0,71%  
4,97%  
13,52%  
7,36%  
22,92%  
4,25%  
0,46%  
0,05%  
100,00%  
56.000  
2.000  
37.000  
677  
Analysis  
Backdoor  
DoS  
1.746  
1,00%  
583  
12.264  
33.393  
18.184  
40.000  
10.491  
1.133  
6,99%  
4.089  
11.132  
6.062  
18.871  
3.496  
378  
Exploits  
Fuzzers  
19,04%  
10,37%  
22,81%  
5,98%  
Generic  
Reconnaissance  
Shellcode  
Worms  
0,65%  
130  
0,07%  
44  
Tổng cộng  
175.341  
100,00%  
82.332  
Bộ dữ liệu UNSW-NB có một số lợi thế khi so sánh với bộ dữ liệu NSL-KDD. Thứ nhất, nó chứa những hành  
vi bình thường hiện đại và các hoạt động tấn công tổng hợp đương đại. Thứ hai, phân bố xác suất của các tập huấn  
luyện và kiểm tra là tương tự. Thứ ba, nó bao gồm một tập hợp các thuộc tính từ payload và header của các gói để phản  
ánh các gói tin mạng có hiệu quả. Cuối cùng, sự phức tạp của việc đánh giá UNSW-NB đối với các hệ thống phân lớp  
hiện tại cho thấy bộ dữ liệu này có các mẫu phức tạp. Điều này có nghĩa là bộ dữ liệu có thể được sử dụng để đánh giá  
các phương pháp phân lớp hiện tại và mới một cách hiệu quả và đáng tin cậy.  
Tuy nhiên, do bộ dữ liệu UNSW-NB còn khá mới, nên chưa được nhiều học giả sử dụng trong các nghiên cứu  
của mình. Vì vậy, cũng có hạn chế khi so sánh kết quả với các nghiên cứu khác.  
III. CÂY QUYẾT ĐỊNH VÀ CÁC KỸ THUẬT KẾT HỢP  
3.1. Cây quyết định  
Với những ưu điểm của mình, cây quyết định được đánh giá là một công cụ mạnh, phổ biến và đặc biệt thích  
hợp cho khai thác dữ liệu nói chung và phân lớp dữ liệu nói riêng [14]. Ngoài những ưu điểm như: xây dựng tương đối  
nhanh, đơn giản. Cây quyết định dễ dàng được chuyển đổi sang các câu lệnh SQL được sử dụng để truy nhập cơ sở dữ  
liệu một cách hiệu quả. Cuối cùng, việc phân lớp dựa trên cây quyết định trong các NIDS đạt được sự tương tự, đôi khi  
là chính xác hơn so với các phương pháp phân lớp khác [15, 16].  
Cây ngẫu nhiên (Random Tree) được đề cập trong phần thí nghiệm là những cây được xây dựng ngẫu nhiên mà  
không liên quan gì đến việc máy học. Tuy nhiên, khung máy học Weka sử dụng thuật ngữ này để chỉ một cây quyết  
định được xây dựng dựa trên một tập hợp các thuộc tính được lựa chọn ngẫu nhiên.  
3.2. Bootstrap  
Là một phương pháp rất nổi tiếng trong thống kê được giới thiệu bởi Bradley Efron vào năm 1979. Phương  
pháp này chủ yếu dùng để ước lượng lỗi chuẩn (standard errors), độ lệch (bias) và tính toán khoảng tin cậy (confidence  
interval) cho các tham số. Phương pháp này được thực hiện như sau: Từ một quần thể ban đầu lấy ra một mẫu L = (x1,  
x2, …, xn) gồm n thành phần, tính toán các tham số mong muốn. Trong các bước tiếp theo lặp lại b lần việc tạo ra mẫu  
Lb cũng gồm n phần tử từ L bằng cách lấy lại mẫu với sự thay thế các thành phần trong mẫu ban đầu sau đó tính toán  
các tham số mong muốn.  
3.3. Bagging (Bootstrap Aggregation)  
Phương pháp này được xem như là một phương pháp tổng hợp kết quả có được từ các Bootstrap. Tư tưởng  
chính của phương pháp này như sau: Cho một tập huấn luyện D={(xi, yi): i=1, 2, …, n} và giả sử chúng ta muốn có  
một dự đoán nào đó đối với biến x.  
Một mẫu gồm B tập dữ liệu, mỗi tập dữ liệu gồm n phần tử được chọn lựa ngẫu nhiên từ D với sự thay thế  
(giống như bootstrap). Do đó B=(D1, D2, …, DB) trông giống như là một tập các tập huấn luyện được nhân bản;  
Huấn luyện một máy hoặc một mô hình đối với mỗi tập Db (b=1, 2, …, B) và lần lượt thu thập các kết quả dự  
báo có được trên mỗi tập Db;  
492  
TẠO LUẬT CHO CÁC BỨC TƯỜNG LỬA SỬ DỤNG CÁC KỸ THUẬT KẾT HỢP DỰA TRÊN CÂY QUYẾT ĐỊNH  
Kết quả tổng hợp cuối cùng được tính toán bằng cách trung bình hóa (regression) hoặc thông qua số phiếu bầu  
nhiều nhất (classification).  
3.4. Boosting  
Khác với phương pháp Bagging, xây dựng bộ phân lớp kết hợp với các ví dụ huấn luyện có trọng số bằng nhau,  
phương pháp Boosting xây dựng bộ phân lớp kết hợp với các ví dụ huấn luyện có trọng số khác nhau. Sau mỗi bước  
lặp, các ví dụ huấn luyện được dự đoán sai sẽ được đánh trọng số tăng lên, các ví dụ huấn luyện được dự đoán đúng sẽ  
được đánh trọng số nhỏ hơn. Điều này giúp cho Boosting tập trung vào cải thiện độ chính xác cho các ví dụ được dự  
đoán sai sau mỗi bước lặp.  
Một thuật toán Boosting ban đầu được định nghĩa là một thuật toán dùng để chuyển một thuật toán máy học yếu  
thành một thuật toán máy học mạnh. Có nghĩa là nó chuyển một thuật toán máy học giải quyết một bài toán phân lớp  
nhị phân tốt hơn cách giải chọn ngẫu nhiên thành một thuật toán giải quyết rất tốt bài toán đó. Thuật toán Boosting ban  
đầu của Schapire là một thuật toán đệ quy. Tại bước cuối của đệ quy, nó kết hợp các giả thuyết được tạo bởi thuật toán  
máy học yếu. Xác suất lỗi của bộ kết hợp này được chứng minh là nhỏ hơn xác suất lỗi của các giả thuyết yếu.  
Adaboost là một thuật toán kết hợp một tập các bộ phân lớp được làm đa dạng bằng việc chạy thuật toán máy  
học với phân bố khác nhau trên tập huấn luyện.  
3.5. Stacking  
Stacking là một cách để kết hợp nhiều mô hình, giới thiệu khái niệm bộ phân lớp meta. Nó ít được sử dụng rộng  
rãi hơn so với Bagging và Boosting. Không giống như Bagging và Boosting, Stacking có thể được sử dụng để kết hợp  
các mô hình khác nhau. Quá trình thực hiện như sau:  
(1). Chia tập huấn luyện thành hai bộ tách rời.  
(2). Huấn luyện các bộ phân lớp cơ sở ở phần đầu.  
(3). Kiểm tra bộ phân lớp cơ sở ở phần thứ hai.  
(4). Sử dụng kết quả dự đoán ở (3) như là đầu vào và kết quả phân lớp đúng như là kết quả đầu ra để huấn luyện  
một bộ phân lớp meta.  
Trong Stacking, cơ chế kết hợp là đầu ra của các bộ phân lớp (các bộ phân lớp cấp 0) sẽ được sử dụng làm dữ  
liệu huấn luyện cho một bộ phân lớp khác (bộ phân lớp cấp 1) để cho ra kết quả dự báo đúng nhất. Về cơ bản, chúng ta  
cho phép bộ phân lớp cấp 1 (bộ phân lớp meta) tự tìm ra cơ chế kết hợp tốt nhất các bộ phân lớp cấp 0.  
3.6. Random Forest  
Random Forest (rừng ngẫu nhiên) là phương phân lớp được phát triển bởi Leo Breiman tại đại học California,  
Berkeley.  
Tóm tắt của giải thuật Random Forest cho phân lớp được diễn giải như sau:  
- Lấy ra K mẫu bootstrap từ tập huấn luyện.  
- Đối với mỗi mẫu bootstrap xây dựng một cây phân lớp không được tỉa (unpruned tree) như sau: Tại mỗi nút  
thay vì chọn một phân chia tốt nhất trong tất cả các biến dự đoán, ta chọn ngẫu nhiên một mẫu m của các biến dự đoán  
sau đó chọn một phân chia tốt nhất trong các biến này.  
- Đưa ra các dự đoán bằng cách tổng hợp các dự đoán của K cây.  
Quá trình học của Random Forest bao gồm việc sử dụng ngẫu nhiên giá trị đầu vào, hoặc kết hợp các giá trị đó  
tại mỗi node trong quá trình dựng từng câyquyết định. Kết quả của Random Forest, qua thực nghiệm cho thấy, là tốt  
hơn khi so sánh với các thuật toán Boosting, Bagging và Stacking. Trong đó Random Forest có một số thuộc tính mạnh  
như:  
(1). Độ chính xác cao;  
(2). Thuật toán giải quyết tốt các bài toán có nhiều dữ liệu nhiễu;  
(3). Thuật toán chạy nhanh hơn so với Stacking nhưng chậm hơn so với Bagging và Boosting;  
(4). Có những sự ước lượng nội tại như độ chính xác của mô hình phỏng đoán hoặc độ mạnh và liên quan giữa  
các thuộc tính.  
(5). Dễ dàng thực hiện song song.  
Tuy nhiên để đạt được các tính chất mạnh trên, thời gian thực thi của thuật toán khá lâu và phải sử dụng nhiều  
tài nguyên của hệ thống.  
Hoàng Ngọc Thanh, Trần Văn Lăng  
493  
Qua những tìm hiểu trên về giải thuật Random Forest ta có nhận xét rằng Random Forest là một phương pháp  
phân lớp tốt do: (1) Trong Random Forest, phương sai (variance) được giảm thiểu do kết quả của Random Forest được  
tổng hợp thông qua nhiều người học (learner); (2) Việc chọn ngẫu nhiên tại mỗi bước trong Random Forest sẽ làm  
giảm mối tương quan (correlation) giữa các người học trong việc tổng hợp các kết quả.  
3.7. Decorate  
Boosting và Bagging cung cấp sự đa dạng bằng cách xây dựng tập hợp các bộ phân lớp, mà ở đó mỗi bộ phân  
lớp được huấn luyện với một tập dữ liệu huấn luyện con khác nhau được trích ngẫu nhiên từ tập dữ liệu huấn luyện.  
Nếu tập huấn luyện nhỏ, điều này giới hạn sự đa dạng của tập hợp mà phương pháp này có thể đạt được. Decorate đảm  
bảo tính đa dạng nhờ một lượng lớn các ví dụ nhân tạo bổ sung. Vì vậy, về mặt lý thuyết nó sẽ cho độ chính xác phân  
lớp cao hơn khi tập huấn luyện nhỏ.  
Trong Decorate, một kết hợp được tạo lặp lại, trước tiên hãy huấn luyện một bộ phân lớp và sau đó thêm nó vào  
kết hợp hiện tại. Chúng ta khởi tạo kết hợp để chứa bộ phân lớp được huấn luyện với dữ liệu huấn luyện đã cho. Các bộ  
phân lớp trong mỗi lần lặp liên tiếp được huấn luyện về dữ liệu huấn luyện ban đầu kết hợp với một số dữ liệu nhân  
tạo. Trong mỗi lần lặp lại, các ví dụ huấn luyện nhân tạo được tạo ra từ việc phân phối dữ liệu; trong đó số lượng ví dụ  
được tạo được xác định là một phần, Rsize, của kích thước tập huấn luyện. Các nhãn cho các ví dụ huấn luyện được tạo  
giả tạo này được chọn để khác biệt tối đa so với các dự đoán của quần thể hiện tại [17].  
Nhằm tăng cường tính đa dạng, nhưng vẫn duy trì độ chính xác huấn luyện, bộ phân lớp mới sẽ bị từ chối thêm  
vào tập hợp hiện có nếu nó làm giảm độ chính xác phân lớp của tập hợp. Quá trình này được lặp lại cho đến khi đạt  
được kích thước tập hợp mong muốn hoặc vượt quá số lần lặp tối đa.  
IV. CÁC CHỈ SỐ ĐÁNH GIÁ  
Nếu FP là số mẫu bị phân lớp sai là dương tính; TP là số mẫu được phân lớp đúng là dương tính; FN là số mẫu  
bị phân lớp sai là âm tính; TN là số mẫu được phân lớp đúng là âm tính. Việc đánh giá hiệu năng của các bộ phân lớp  
được thực hiện qua việc đo và so sánh các chỉ số [18]:  
- Accuracy = (TP + TN) / (TP + FP + TN + FN)  
- Sensitivity = Recall = TPR = TP / (TP + FN)  
- Specificity = TNR = TN / (TN + FP)  
- Efficiency = (Sensitivity + Specificity) / 2  
- Precise = TP / (TP + FP)  
- Thời gian huấn luyện và kiểm tra  
Việc sử dụng Accuracy để đánh giá chất lượng phân lớp đã được nhiều học giả sử dụng. Tuy nhiên, sự phân bố  
lớp trong hầu hết các bài toán phân lớp phi tuyến rất mất cân bằng. Vì vậy việc sử dụng Accuracy để đánh giá chất  
lượng phân lớp của một mô hình không thực sự hiệu quả. Vì vậy, một thước đo toàn diện hơn được đề nghị sử dụng  
cho việc đánh giá là: Quality = Sensitivity * Specificity [19].  
Có nhiều kỹ thuật đánh giá độ chính xác dự báo như: đánh giá chéo K-fold, Holdout, Re-substitution và Leave-  
one-out [20]. Trong đó, đánh giá chéo K-fold được xem là hiệu quả, phù hợp với các NIDS. Theo đó, các bản ghi được  
phân ngẫu nhiên thành k tập con; một tập con được chỉ định là tập dữ liệu kiểm tra và các tập con còn lại được xử lý  
như tập dữ liệu huấn luyện. Sau đó, quá trình đánh giá chéo lặp lại k lần, cũng như độ chính xác phân lớp có thể được  
kiểm tra thông qua các độ chính xác phân lớp trung bình từ k lần đánh giá. Đánh giá chéo K-fold đặc biệt phù hợp với  
nguồn dữ liệu huấn luyện lớn, trái với đánh giá Leave-one-out, tốn nhiều thời gian để thực hiện.  
V. KẾT QUẢ THÍ NGHIỆM  
Các chương trình, thuật toán trong thí nghiệm sử dụng ngôn ngữ lập trình Java, dựa trên thư viện, khung làm  
việc máy học Weka do Đại học Waikato, New Zealand phát triển và cơ sở dữ liệu SQL Server 2014.  
Về kỹ thuật máy học, chúng tôi sử dụng cây quyết định dựa trên thuật toán J48 (mã nguồn mở của C4.5) và các  
kỹ thuật kết hợp được thực hiện như sau: Bagging, Boosting và Decorate sử dụng bộ phân lớp cơ sở là cây ngẫu nhiên  
(Random Tree); Stacking sử dụng các bộ phân lớp cơ sở là cây ngẫu nhiên và k láng giềng gần nhất, bộ phân lớp meta  
là k láng giềng gần nhất. Đây là những kết quả tốt nhất có được với nhiều bộ phân lớp cơ sở, bộ phân lớp meta được  
chọn để chạy và so sánh kết quả dựa trên các thuật toán máy học như: cây quyết định, mạng nơron, mạng Naïve Bayes,  
k láng giềng gần nhất, máy vectơ hỗ trợ, hồi quy luận lý,…  
Kết quả thực hiện trên các tập dữ liệu NSL-KDD và UNSW-NB được thể hiện cụ thể như sau:  
494  
TẠO LUẬT CHO CÁC BỨC TƯỜNG LỬA SỬ DỤNG CÁC KỸ THUẬT KẾT HỢP DỰA TRÊN CÂY QUYẾT ĐỊNH  
5.1. Với tập dữ liệu NSL-KDD  
Chất lượng phân lớp (Qualtity) ứng với mỗi kiểu phân lớp cũng như kỹ thuật kết hợp được trình bày ở Bảng 3.  
Theo đó, Decorate cho chất lượng phân lớp tốt nhất ở các kiểu phân lớp Normal, DoS, U2R và R2L; Stacking cho chất  
lượng phân lớp tốt nhất ở các kiểu phân lớp Probe.  
Bảng 3. Chất lượng phân lớp (Quality) của các thuật toán với tập dữ liệu NSL-KDD  
Kiểu phân lớp  
Normal  
DoS  
Cây quyết định  
99,37%  
Random Forest  
99,62%  
Boosting  
99,54%  
99,94%  
98,97%  
50,00%  
93,45%  
Bagging  
99,59%  
99,95%  
99,04%  
50,00%  
94,16%  
Stacking  
99,39%  
99,86%  
99,24%  
34,61%  
90,24%  
Decorate  
99,63%  
99,95%  
99,19%  
67,31%  
95,06%  
99,91%  
99,95%  
Probe  
99,09%  
99,10%  
U2R  
61,53%  
42,31%  
R2L  
93,13%  
93,86%  
Bảng 4 là thời gian huấn luyện ứng với mỗi kiểu phân lớp cũng như kỹ thuật kết hợp. Dễ dàng nhận thấy các kỹ  
thuật kết hợp có thời gian huấn luyện cao hơn, trong đó nhiều nhất là Stacking có thời gian huấn luyện cao nhất và cao  
hơn nhiều lần so với các kỹ thuật kết hợp còn lại.  
Bảng 4. Thời gian thực thi của các thuật toán kết hợp với tập dữ liệu NSL-KDD  
Kiểu phân lớp  
Normal  
Cây quyết định  
48.190 ms  
29.759 ms  
38.923 ms  
26.392 ms  
44.768 ms  
Random Forest  
213.042 ms  
193.541 ms  
204.573 ms  
122.016 ms  
143.053 ms  
Boosting  
90.998 ms  
76.278 ms  
73.780 ms  
47.691 ms  
59.843 ms  
Bagging  
Stacking  
Decorate  
56.691 ms 4.263.784 ms 264.192 ms  
51.471 ms 4.447.236 ms 214.927 ms  
58.484 ms 4.486.024 ms 251.195 ms  
36.876 ms 5.004.588 ms 244.853 ms  
40.096 ms 4.417.959 ms 256.266 ms  
DoS  
Probe  
U2R  
R2L  
5.2. Với tập dữ liệu UNSW-NB  
Chất lượng phân lớp ứng với mỗi kiểu phân lớp cũng như kỹ thuật kết hợp được trình bày ở Bảng 5. Theo đó,  
Random Forest cho chất lượng phân lớp tốt nhất ở kiểu phân lớp Normal; Cây quyết định cho chất lượng phân lớp tốt  
nhất ở các kiểu phân lớp Analysis, Reconnaissance, Shellcode và Worms; Stacking cho chất lượng phân lớp tốt nhất ở  
các kiểu phân lớp Backdoor, DoS và Exploits; và cuối cùng Decorate cho chất lượng phân lớp tốt nhất ở các kiểu phân  
lớp Generic và Fuzzers.  
Bảng 5. Chất lượng phân lớp (Quality) của các thuật toán với tập dữ liệu UNSW-NB  
Kiểu phân lớp  
Normal  
Cây quyết định  
94,66%  
7,98%  
Random Forest  
95,96%  
6,65%  
Boosting  
94,29%  
7,24%  
Bagging  
95,74%  
6,50%  
Stacking  
92,58%  
5,46%  
Decorate  
95,77%  
7,39%  
Analysis  
Backdoor  
DoS  
3,09%  
1,54%  
1,89%  
1,72%  
4,12%  
2,23%  
7,97%  
8,50%  
9,56%  
9,72%  
35,00%  
67,81%  
96,62%  
60,41%  
78,17%  
19,04%  
2,27%  
9,71%  
Exploits  
60,77%  
97,48%  
62,46%  
78,44%  
39,90%  
47,72%  
62,44%  
97,39%  
62,77%  
77,03%  
28,55%  
2,27%  
61,05%  
97,24%  
61,24%  
77,90%  
28,53%  
22,72%  
60,90%  
97,36%  
61,27%  
76,63%  
28,82%  
4,55%  
62,23%  
97,59%  
63,65%  
78,08%  
36,21%  
15,91%  
Generic  
Fuzzers  
Reconnaissance  
Shellcode  
Worms  
Bảng 6 là thời gian huấn luyện ứng với mỗi kiểu phân lớp cũng như kỹ thuật kết hợp. Cũng tương tự như với tập  
dữ liệu NSL-KDD, cây quyết định có thời gian huấn luyện ít nhất và ít hơn nhiều so với các kỹ thuật kết hợp còn lại,  
trong khi Stacking vẫn có thời gian huấn luyện dài nhất và dài hơn nhiều lần so với các kỹ thuật kết hợp khác.  
Bảng 6. Thời gian thực thi của các thuật toán kết hợp với tập dữ liệu UNSW-NB  
Kiểu phân lớp  
Normal  
Cây quyết định  
25.249 ms  
12.407 ms  
20.523 ms  
26.376 ms  
28.392 ms  
Random Forest  
118.131 ms  
71.675 ms  
Boosting  
57.374 ms  
29.733 ms  
39.977 ms  
49.634 ms  
53.632 ms  
Bagging  
Stacking  
Decorate  
34.344 ms 2.102.826 ms 122.094 ms  
21.795 ms 2.100.604 ms 139.194 ms  
25.626 ms 2.109.406 ms 135.558 ms  
34.737 ms 2.586.286 ms 146.773 ms  
35.595 ms 2.587.949 ms 130.523 ms  
Analysis  
Backdoor  
DoS  
89.346 ms  
115.865 ms  
125.116 ms  
Exploits  
Hoàng Ngọc Thanh, Trần Văn Lăng  
495  
Kiểu phân lớp  
Generic  
Cây quyết định  
Random Forest  
105.349 ms  
111.766 ms  
96.021 ms  
Boosting  
58.931 ms  
47.785 ms  
43.348 ms  
29.406 ms  
28.287 ms  
Bagging  
Stacking  
Decorate  
21.330 ms  
18.610 ms  
18.360 ms  
9.281 ms  
9.626 ms  
29.095 ms 2.549.906 ms 123.340 ms  
31.893 ms 2.544.552 ms 137.794 ms  
27.502 ms 2.557.509 ms 130.864 ms  
19.766 ms 2.535.442 ms 141.709 ms  
17.329 ms 2.546.612 ms 140.113 ms  
Fuzzers  
Reconnaissance  
Shellcode  
Worms  
64.863 ms  
58.753 ms  
VI. KẾT LUẬN  
Từ kết quả thí nghiệm với cả hai tập dữ liệu NSL-KDD và UNSW-NB nêu trên, ta nhận thấy:  
(1). Tùy tính chất đặc thù dữ liệu của mỗi kiểu tấn công, các bộ phân lớp kết hợp cho chất lượng phân lớp tốt  
hơn các bộ phân lớp đơn trong phần lớn các trường hợp.  
(2). Sự phân bố lớp trong bài toán phát hiện xâm nhập mạng rất mất cân bằng, vì vậy việc sử dụng độ chính xác  
(accuracy) để đánh giá chất lượng phân lớp của một mô hình không thực sự hiệu quả. Vì vậy, việc sử dụng thước đo  
toàn diện hơn được đề nghị là Quality = Sensitivity * Specificity trong thí nghiệm đã minh chứng điều đó.  
(3). Thời gian huấn luyện của các bộ phân lớp kết hợp lớn, đặc biệt là khi so với các bộ phân lớp đơn.  
(4). Việc sử dụng các bộ phân lớp yếu (weak learner) trong kết hợp cho kết quả tốt hơn việc sử dụng các bộ  
phân lớp mạnh trong kết hợp.  
(5). Kết quả đánh giá của tập dữ liệu UNSW-NB đối với các bộ phân lớp đơn và kết hợp cho thấy: bộ dữ liệu  
này có nhiều mẫu phức tạp.  
Đồng thời, kết quả thí nghiệm cũng đặt ra các vấn đề cần được tiếp tục nghiên cứu, đặc biệt là các nội dung:  
(1). Việc nghiên cứu sử dụng các thuật toán học yếu khác khi xây dựng các bộ phân lớp kết hợp có thể sẽ đem  
lại hiệu năng cao hơn trong các hệ thống phát hiện xâm nhập.  
(2). Cần nghiên cứu tìm giải pháp giảm thiểu thời gian huấn luyện của các bộ phân lớp kết hợp.  
(3). Cần tìm kiếm thuật toán xây dựng tập các ví dụ nhân tạo bổ sung (vào tập dữ liệu huấn luyện) để kỹ thuật  
kết hợp Decorate có tính đa dạng cao hơn, từ đó cho chất lượng phân loại tốt hơn.  
(4). Năng lực xử lý dữ liệu cũng như tính toán của hệ thống máy đóng vai trò quan trọng trong việc khai thác  
thuật toán cũng như phương pháp máy học. Từ đó nâng cao hiệu quả xử lý, tiếp cận theo hướng trí tuệ nhân tạo.  
VII. TÀI LIỆU THAM KHẢO  
1. Lin Tom C. W.. Financial Weapons of War. Minnesota Law Review, 2016, vol. 100, pp. 1377-1440.  
2. S. Karnouskos. Stuxnet Worm Impact on Industrial Cyber-Physical System Security. 37th Annual Conference of  
the IEEE Industrial Electronics Society, Melbourne, Australia, 2014.  
3. Aburomma A. A., Reaz M. B. I.. Evolution of Intrusion Detection Systems Based on Machine Learning Methods.  
Australian Journal of Basic and Applied Sciences, 2013, vol. 7(7), pp. 799-813.  
4. W. Buntine. Learning classification trees. Statistics and Computing, 1992, vol. 2, pp. 63-73.  
5. D. Wolpert. Stacked generalization. Neural Networks, 1992, vol. 5, pp. 241-259.  
6. Y. Freund and R. Schapire. A decision-theoretic generalization of on-line learning and an application to boosting.  
Computational Learning Theory, 1995, pp. 23-37.  
7. L. Breiman. Arcing classifiers. The annals of statistics, 1998, vol. 26, no. 3, pp. 801-849.  
8. L. Breiman. Bagging predictors. Machine Learning, 1996, vol. 24, no. 2, pp. 123-140.  
9. L. Breiman. Random forests. Machine Learning, 2001, vol. 45, no. 1, pp. 5-32.  
10. Iwan Syarif, Ed Zaluska, Adam Prugel-Bennett, Gary Wills. Application of Bagging, Boosting and Stacking to  
pp. 593-602.  
and 2015. PeerJ PrePrints, 2016.  
12. Tavallaee, Mahbod; Bagheri, Ebrahim; Lu, Wei; Ghorbani, Ali A.. A detailed analysis of the KDD CUP 99 data  
set. 2009 IEEE Symposium on Computational Intelligence for Security and Defense Applications, 2009, pp. 1-6.  
13. Moustafa, N., & Slay, J.. UNSW-NB: A Comprehensive Data set for Network Intrusion Detection. Paper  
presented at the Military Communications and Information Systems Conference, Canberra, Australia, 2015.  
496  
TẠO LUẬT CHO CÁC BỨC TƯỜNG LỬA SỬ DỤNG CÁC KỸ THUẬT KẾT HỢP DỰA TRÊN CÂY QUYẾT ĐỊNH  
14. Guanghui S., Jiankang G., et al.. An Intrusion Detection Method Based on Multiple Kernel Support Vector  
Machine. Network Computing and Information Security (NCIS), 2011 International Conference on, IEEE, 2011,  
pp. 119-123.  
15. Hoàng Ngọc Thanh, Trần Văn Lăng. Một tiếp cận máy học để phân lớp các kiểu tấn công trong hệ thống phát hiện  
xâm nhập mạng. Kỷ yếu Hội nghị Khoa học Quốc gia lần thứ IX “Nghiên cứu cơ bản và ứng dụng Công nghệ  
thông tin (FAIR'9)”, 2016, pp. 502-508.  
16. Hoàng Ngọc Thanh, Trần Văn Lăng. Rút gọn thuộc tính sử dụng độ lợi thông tin để tăng cường hiệu năng của các  
hệ thống phát hiện xâm nhập mạng. Kỷ yếu Hội nghị Khoa học Quốc gia lần thứ X “Nghiên cứu cơ bản và ứng  
dụng Công nghệ thông tin (FAIR'10)”, 2017, pp. 823-831.  
17. Prem Melville, Raymond J. Mooney. Constructing Diverse Classifier Ensembles using Artificial Training  
Examples. Proceedings of the IJCAI-2003, Acapulco, Mexico, August 2003, pp. 505-510.  
18. Marina Sokolova, Guy Lapalme. A systematic analysis of performance measures for classification tasks.  
Information Processing and Management 45, 2009, pp. 427-437.  
19. Yuk Ying Chung, Noorhaniza Wahid. A hybrid Network Intrusion Detection System using Simplified Swarm  
Optimization (SSO). Publisher Elsevier, 2012, Applied Soft Computing 12 (2012), pp. 3014-3022.  
20. Li W., Liu Z.. A method of SVM with Normalization in Intrusion Detection. Procedia Environmental Sciences 11,  
2011, Part A(0) pp. 256-262.  
CREATING RULES FOR FIREWALL USE OF DECISION TREE BASED  
ENSEMBLE TECHNIQUES  
Hoang Ngoc Thanh, Tran Van Lang  
ABSTRACT: Firewalls now operate primarily based on pre-established rules. These firewalls detect network intrusion by  
examining the characteristics of the data to be analyzed with the known rules. When network traffic grows, manual updating of rules  
is becoming more and more difficult, tedious and time-consuming. Since then, machine learning methods have been introduced to  
solve this problem. Machine learning refers to computer algorithms capable of learning from known patterns in order to identify  
new patterns of attack and therefrom new rules are created for firewalls that help prevent network attacks that are increasingly rich,  
varied and constantly changing as today. The paper deals with the use of decision tree based ensemble techniques such as Boosting,  
Bagging, Stacking, Random Forests and Decorate (Diverse Ensemble Creation by Oppositional Relabeling of Artificial Training  
Examples) to create high-performance classifiers. Test results are available on NSL-KDD dataset, the most widely used dataset and  
UNSW-NB, a modern dataset created by the Australian Network Security Center in 2015, shows: ensemble techniques give the best  
quality in most cases when detecting new patterns of attacks, thus helping to create better rules for firewalls.  
pdf 8 trang Thùy Anh 17260 Free
Bạn đang xem tài liệu "Tạo luật cho các bức tường lửa sử dụng các kỹ thuật kết hợp dựa trên cây quyết định", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdftao_luat_cho_cac_buc_tuong_lua_su_dung_cac_ky_thuat_ket_hop.pdf