Cải tiến phát hiện tấn công sử dụng văn phạm nối cây trong lập trình Gen
Những năm gần đây vấn đề an ninh mạng đã trở nên cấp thiết và tác động lớn tới hiệu quả
hoạt động của các mạng máy tính hiện đại. Phát hiện và ngăn chặn tấn công mạng máy tính
đã và đang là chủ điểm nghiên cứu của nhiều nhà nghiên cứu trên thế giới. Một trong những
biện pháp bảo đảm an toàn cho các hệ thống mạng là Hệ thống phát hiện xâm nhập trái
phép. Tuy nhiên, các biện pháp này tỏ ra không hiệu quả và khá tốn kém, độ tin cậy không
cao và không có khả năng phát hiện các tấn công, xâm nhập mới, chưa biết trước dấu hiệu.
Kỹ thuật học máy được sử dụng trong việc phát hiện các tấn công, xâm nhập đã khắc phục
được các hạn chế trên và ngày càng thể hiện tính ưu việt hơn các phương pháp trước. Trong
bài báo này, chúng tôi sử dụng kỹ thuật lập trình Gen (Genetic Programming - GP) để cải
thiện chất lượng phát hiện tấn công mạng. Trong thí nghiệm, chúng tôi sử dụng GP chuẩn
và kỹ thuật văn phạm nối cây (TAG3P), tiến hành trên bộ dữ liệu nhân tạo do nhóm tác giả
Pham, Nguyen, và Nguyen (2014) đề xuất. Trên cơ sở các kết quả thí nghiệm và so sánh với
một số kỹ thuật đã được đề xuất trước, chúng tôi nhận thấy ứng dụng GP và TAG3P trong
phát hiện tấn công đạt hiệu quả tốt hơn các phương pháp trước đó.
Tóm tắt nội dung tài liệu: Cải tiến phát hiện tấn công sử dụng văn phạm nối cây trong lập trình Gen
TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT Tập 7, Số 3, 2017 379–400 379 CẢI TIẾN PHÁT HIỆN TẤN CÔNG SỬ DỤNG VĂN PHẠM NỐI CÂY TRONG LẬP TRÌNH GEN Vũ Văn Cảnha,b*, Hoàng Tuấn Hảoa, Nguyễn Văn Hoànb aKhoa Công nghệ Thông tin, Trường Đại học Kỹ thuật Lê Quý Đôn, Hà Nội, Việt Nam bKhoa Công nghệ Thông tin, Trường Đại học Thông tin Liên Lạc, Khánh Hòa, Việt Nam Lịch sử bài báo Nhận ngày 07 tháng 01 năm 2017 | Chỉnh sửa ngày 13 tháng 07 năm 2017 Chấp nhận đăng ngày 20 tháng 07 năm 2017 Tóm tắt Những năm gần đây vấn đề an ninh mạng đã trở nên cấp thiết và tác động lớn tới hiệu quả hoạt động của các mạng máy tính hiện đại. Phát hiện và ngăn chặn tấn công mạng máy tính đã và đang là chủ điểm nghiên cứu của nhiều nhà nghiên cứu trên thế giới. Một trong những biện pháp bảo đảm an toàn cho các hệ thống mạng là Hệ thống phát hiện xâm nhập trái phép. Tuy nhiên, các biện pháp này tỏ ra không hiệu quả và khá tốn kém, độ tin cậy không cao và không có khả năng phát hiện các tấn công, xâm nhập mới, chưa biết trước dấu hiệu. Kỹ thuật học máy được sử dụng trong việc phát hiện các tấn công, xâm nhập đã khắc phục được các hạn chế trên và ngày càng thể hiện tính ưu việt hơn các phương pháp trước. Trong bài báo này, chúng tôi sử dụng kỹ thuật lập trình Gen (Genetic Programming - GP) để cải thiện chất lượng phát hiện tấn công mạng. Trong thí nghiệm, chúng tôi sử dụng GP chuẩn và kỹ thuật văn phạm nối cây (TAG3P), tiến hành trên bộ dữ liệu nhân tạo do nhóm tác giả Pham, Nguyen, và Nguyen (2014) đề xuất. Trên cơ sở các kết quả thí nghiệm và so sánh với một số kỹ thuật đã được đề xuất trước, chúng tôi nhận thấy ứng dụng GP và TAG3P trong phát hiện tấn công đạt hiệu quả tốt hơn các phương pháp trước đó. Từ khóa: Lập trình Gen; Phát hiện xâm nhập; Phân loại tấn công; Văn phạm nối cây. 1. GIỚI THIỆU CHUNG Ngày nay mạng máy tính đã trở thành một phần của cuộc sống hiện đại và ngày càng đóng vai trò quan trọng trong hầu hết các lĩnh vực của cuộc sống từ kinh tế, chính trị, quân sự, các lĩnh vực giải trí đến giáo dục và đào tạo Cùng với sự phát triển của mạng máy tính, nguy cơ mất an toàn, an ninh đối với các thông tin ngày càng cao. Ngày càng có nhiều tấn công vào không gian mạng để truy cập trái phép vào thông tin và hệ thống, hoặc lạm dụng các tài nguyên mạng. Việc lạm dụng có thể dẫn tới hậu quả khiến cho tài nguyên mạng trở lên không đáng tin cậy hoặc không sử dụng được. Một số cuộc * Tác giả liên hệ: Email: canhvuvan@yahoo.com 380 TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] tấn công có thể dẫn đến phá hủy hệ thống, hoặc đánh cắp thông tin, hay làm ngừng hoạt động của hệ thống. Nhìn chung các tấn công thường gây nên tổn thương đến các thuộc tính bảo mật thông tin và hệ thống. Vì vậy, vấn đề đảm bảo an ninh, an toàn thông tin khi sử dụng môi trường mạng cần phải được đặc biệt quan tâm. Phát hiện tấn công, xâm nhập mạng là một vấn đề lớn đã và đang được nhiều nhà nghiên cứu quan tâm. Trong thực tế, có khá nhiều nguy cơ xuất phát từ các cuộc tấn công mạng. Vì vậy, các hệ thống khác nhau đã được thiết kế và xây dựng để ngăn cản các cuộc tấn công này, đặc biệt là các hệ thống phát hiện xâm nhập (Intrusion Detection System - IDS) giúp các mạng chống lại các cuộc tấn công từ bên ngoài. Mục tiêu của IDS là cung cấp một bức tường bảo vệ, giúp các hệ thống mạng có khả năng chống lại các cuộc tấn công từ bên ngoài. Các IDS có thể được sử dụng để phát hiện việc sử dụng các loại truyền thông mạng và hệ thống máy tính độc hại, nhiệm vụ mà các bức tường lửa quy ước không thể thực hiện được. Devarakonda và Pamidi (2012) đã đề xuất việc phát hiện tấn công dựa trên giả thiết là hành vi của kẻ tấn công khác với người sử dụng hợp lệ. Phát hiện xâm nhập được triển khai bởi một hệ thống phát hiện xâm nhập và ngày nay đã có nhiều hệ thống phát hiện xâm nhập thương mại hiệu quả. Hình 1 mô tả các vị trí điển hình của IDS trong một hệ thống mạng. Hình 1. Vị trí của các IDS trong giám sát mạng Hệ thống phát hiện tấn công là một công cụ giám sát các sự kiện diễn ra trong hệ thống mạng máy tính và phân tích chúng thành các dấu hiệu của các mối đe dọa an ninh. Một tấn công có thể gây ra từ bên trong hoặc bên ngoài của tổ chức. Tấn công từ bên trong là tấn công được khởi tạo bởi một thực thể bên trong vành đai an ninh (tay trong), nghĩa là thực thể được phép truy cập vào tài nguyên hệ thống nhưng sử dụng theo cách không được chấp nhận bởi người cấp quyền. Tấn công từ bên ngoài được khởi tạo từ bên ngoài vành đai an ninh bởi người dùng trái phép và không hợp pháp của hệ thống. Trên Vũ Văn Cảnh, Hoàng Tuấn Hảo và Nguyễn Văn Hoàn 381 mạng Internet luôn tiềm tàng những kẻ tấn công từ bên ngoài với phạm vi từ những kẻ tấn công nghiệp dư đến những tổ chức tội phạm, khủng bố quốc tế, và chính phủ thù địch. Có hai nhóm hệ thống phát hiện tấn công là phát hiện lạm dụng và phát hiện bất thường. Hệ phát hiện lạm dụng thực hiện dò tìm tấn công qua việc so khớp với mẫu đã biết, và hệ thống phát hiện bất thường nhận dạng bất thường từ hành vi mạng bình thường. Hệ thống phát hiện lai là tổ hợp cả hệ thống phát hiện lạm dụng và bất thường. Hệ thống phát hiện tấn công dựa trên sự bất thường cố gắng xác định độ lệch so với các mẫu sử dụng thông thường đã được thiết lập trước để đánh dấu các tấn công. Vì vậy, các hệ thống dựa trên sự bất thường cần được huấn luyện dựa trên các hành vi thông thường. Các kỹ thuật học máy khác nhau đã được sử dụng rộng rãi để phục vụ cho mục đích này. Khi đó, với mỗi gói tin bắt được, sau khi qua các công đoạn tiền xử lý và chọn lựa thuộc tính sẽ được phân lớp bởi các bộ phân lớp (classifier) đã được huấn luyện. Việc huấn luyện các bộ phân lớp được thực hiện qua pha huấn luyện và kiểm tra với tập dữ liệu huấn luyện đã lưu trữ. Đã có nhiều kỹ thuật phát hiện tấn công đã được các học giả đề xuất như các phương pháp học máy, mạng nơ-ron Trong bài viết này, chúng tôi trình bày các nghiên cứu về kỹ thuật lập trình Gen và phân tích các thuộc tính của các kiểu tấn công mạng để từ đó đề xuất ứng dụng lập trình Gen nhằm nâng cao khả năng phát hiện tấn công mạng. Bố cục bài báo được trình bày như sau: Sau Mục 1 giới thiệu, Mục 2 kiến thức nền tảng sẽ giới thiệu các công trình nghiên cứu trước đây, bộ dữ liệu huấn luyện KDD’99, tổng quan về lập trình Gen; Mục 3 giới thiệu mô hình đề xuất phát hiện tấn công dựa trên GP/TAG3P, cài đặt thử nghiệm và phân tích đánh giá các kết quả đạt được. 2. KIẾN THỨC NỀN TẢNG 2.1. Một số nghiên cứu trước đây Hiện nay đã có nhiều nhà nghiên cứu đề xuất các giải pháp áp dụng kỹ thuật tính toán thông minh trong phát hiện tấn công mạng. Một số nghiên cứu sử dụng giải thuật di truyền (GA) và lập trình Gen (GP) để dò tìm các loại tấn công tấn công trong các kịch 382 TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] bản khác nhau. Botha và Solms (2004); Leung, So và Yam (1992); Li (2004); và Peng, Leckie, và Kotagiri (2007) sử dụng GA và GP để tìm ra các quy tắc phân loại. Bridges và Vaughn (2000); Gomez và Dasgupta (2002); và Lu và Traore (2004) sử dụng GA và GP được sử dụng để chọn các đặc trưng yêu cầu và xác định các tham số tối ưu và tối thiểu của một số chức năng lõi trong những phương pháp tính toán thông minh khác để có thể tiếp nhận các quy tắc dò tìm tấn công. Crosbie và Spafford (1995) đã đề xuất giải pháp sử dụng GA để phát hiện xâm nhập, áp dụng công nghệ đa tác nhân và sử dụng GP để phát hiện mạng bất thường thông qua việc giám sát một số tham số của dữ liệu dấu vết mạng. Các phương pháp đề xuất có lợi thế khi sử dụng nhiều tác nhân tự trị nhỏ nhưng khó khăn khi giao tiếp giữa các tác nhân và nếu khởi tạo không đúng tiến trình huấn luyện có thể ảnh hưởng lớn đến thời gian thực hiện. Li (2004) đã đề xuất phương pháp sử dụng GA để phát hiện xâm nhập mạng dị thường, phương pháp này được sử dụng để định lượng và phân loại các đặc trưng của dữ liệu mạng nhằm mục tiêu tìm ra các quy tắc phân loại. Tuy nhiên, định lượng đặc trưng có thể làm tăng tốc độ tìm kiếm nhưng kết quả thí nghiệm không hiệu quả. Abdullah, Abd-alghafar, Gouda, và Abd-Alhafez (2009); và Anup và Chetan (2008) đề xuất thuật toán dựa trên GA để phân loại tất cả các loại tấn công Smurf sử dụng bộ dữ liệu huấn luyện với tỷ lệ phát hiện sai rất thấp (khoảng 0.2%) và tỷ lệ phát hiện hầu hết là 100%. Lu và Traore (2004) sử dụng GP để phân loại tập dữ liệu lịch sử mạng, họ sử dụng nền tảng hỗ trợ tin cậy như hàm mục tiêu và phân loại chính xác một vài loại xâm nhập mạng. Tuy nhiên việc sử dụng GP của họ để tạo ra các thủ tục thực thi rất khó và thủ tục huấn luyện trên tập dữ liệu yêu cầu thời gian nhiều hơn. Wong, Leung, và Cheng (2000) đã sử dụng GA để phát hiện các hành vi mạng bất thường trên các thông tin lịch sử mạng. Một số đặc trưng mạng có thể được định nghĩa với các loại tấn công mạng dựa trên các thông tin tương hỗ giữa đặc trưng mạng và dạng tấn công, sau đó sử dụng những đặc trưng này để tạo ra các cấu trúc quy tắc tuyến tính cho GA. Phương pháp này sử dụng thông tin tương hỗ và kết quả quy tắc tuyến tính có hiệu quả trong nâng cao tỷ lệ phát hiện và giảm thời gian thực hiện, tuy nhiên họ chỉ coi các đặc trưng là rời rạc. Vũ Văn Cảnh, Hoàng Tuấn Hảo và Nguyễn Văn Hoàn 383 Gong, Zulkernine, và Abolmaesumi (2005) đề xuất sử dụng GA để thực hiện phát hiện tấn công mạng và đã đưa ra phần mềm thực thi với phương pháp tìm một tập quy tắc phân loại và sử dụng một nền tảng hỗ trợ tin cậy để xem xét hàm mục tiêu. Abdullah và ctg. (2009) đã sử dụng thuật toán đánh giá hiệu suất dựa trên GA để phát hiện xâm nhập mạng, phương pháp này sử dụng lý thuyết thông tin để lọc lưu lượng mạng. Faraoun, Boukelif, và Algeria (2006) đề xuất phương pháp phân loại tấn công sử dụng GP, kỹ thuật đề xuất bao gồm kết hợp tiến hóa của quần thể với sự chuyển đổi tuyến tính trên tập dữ liệu đầu vào được phân loại, sau đó ánh xạ chúng tới không gian mới với số chiều giảm để đạt được sự khác biệt tối đa giữa các lớp. Ahmad, Hussain, Alghamdi, và Alelaiwi (2013) sử dụng kỹ thuật VSM để cải thiện hiệu suất của các kỹ thuật phát hiện tấn công bằng cách lựa chọn các đặc trưng với trị số đặc trưng cao như PCA (Principal Component Analysis), nghiên cứu này áp dụng GA để tìm kiếm các thành phần di truyền ban đầu mà có thể tạo ra một tập con đặc trưng với độ nhạy tối ưu và sự phân biệt cao nhất. 2.2. Bộ dữ liệu KDDCup 99 Năm 1999, Stolfo đề xuất bộ dữ liệu KDD’99 (UCI KDD Archive, 1999) dựa trên các dữ liệu bắt được bởi chương trình đánh giá hệ thống phát hiện xâm nhập DARPA’98. Bộ dữ liệu này gồm gần 5 triệu bản ghi, mỗi bản ghi có 41 thuộc tính và được gán nhãn là bình thường hay các dạng tấn công đặc trưng. KDD’99 đã được sử dụng rộng rãi để đánh giá các kỹ thuật phát hiện bất thường. Các dạng tấn công được phân thành các nhóm như sau: Tấn công từ chối dịch vụ (DoS): Là thủ đoạn nhằm ngăn cản người dùng hợp pháp truy cập và sử dụng vào một dịch vụ nào đó, DoS có thể làm ngưng hoạt động của hệ thống mạng, máy tính. Về bản chất nhằm chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ... và làm mất khả năng xử lý các yêu cầu dịch vụ từ các khách hàng. User to Root Attack (U2R): Kẻ tấn công với quyền của một người dùng bình 384 TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] thường cố gắng để đạt được quyền truy nhập cao nhất vào hệ thống một cách bất hợp pháp. Một cách phổ biến của lớp tấn công này là thực hiện bằng phương pháp gây tràn bộ đệm. Remote to Local Attack (R2L): Kẻ tấn công cố gắng đạt được quyền truy cập vào hệ thống máy tính bằng việc gửi các gói tin tới hệ thống thông qua mạng. Một vài cách phổ biến mà loại này thực hiện là đoán mật khẩu thông qua phương pháp từ điển Brute-force, FTP Write Probing Attack: Kẻ tấn công thực hiện quét mạng hoặc máy tính để tìm ra điểm yếu dễ tấn công mà thông qua đó tin tặc có thể khai thác hệ thống. Một cách phổ biến của loại tấn công này là thực hiện thông qua việc quét các cổng của hệ thống máy tính. Một số chuyên gia cho rằng hầu hết các tấn công mới đều là biến thể của các tấn công đã biết và các dấu hiệu của các tấn công đã biết có thể đủ để nhận dạng các biến thể mới. Bộ dữ liệu huấn luyện KDD'99 bao gồm 24 loại tấn công khác nhau (Bảng 1) và có thêm 14 loại tấn công mới được thêm vào trong bộ dữ liệu kiểm tra. Dựa vào các đặc trưng tấn công có thể phân loại KDD'99 thành các nhóm chính như sau: Đặc trưng cơ bản: Gồm tất cả các thuộc tính có thể có từ các kết nối TCP/IP. Đặc trưng lưu lượng: Gồm các đặc trưng được tính toán với mối liên hệ với khoảng thời gian. Đặc trưng same host: Chỉ kiểm tra các kết nối trong khoảng thời gian dưới 2 giây có cùng host đích như kết nối hiện hành và thống kê liên quan đến các hành vi giao thức, dịch vụ, Đặc trưng same service: Chỉ kiểm tra những kết nối trong khoảng thời gian dưới 2 giây có cùng dịch vụ như kết nối hiện hành. Đặc trưng nội dung: Khác với hầu hết tấn công DoS, Probing, R2L và U2R không có bất cứ một mẫu tấn công nào. Bởi vì DoS và Probing liên quan đến Vũ Văn Cảnh, Hoàng Tuấn Hảo và Nguyễn Văn Hoàn 385 nhiều kết nối với một số host trong một khoảng thời gian rất ngắn, tuy nhiên tấn công R2L và U2R được nhúng trong đoạn gói dữ liệu và thường xuyên chỉ bao gồm một kết nối. Để phát hiện những loại tấn công này, cần một số đặc trưng để có thể tìm kiếm những hành vi nghi ngờ trong phần dữ liệu, chẳng hạn số lần cố gắng đăng nhập thất bại. Đây được gọi là đặc trưng nội dung. Hai loại kể trên của đặc trưng lưu lượng được gọi dựa trên thời gian. Tuy nhiên, có một số tấn công thăm dò quét host (cổng) sử dụng khoảng thời gian lớn hơn 2 giây, có thể trong 1 phút. Kết quả là tấn công này không tạo ra các mẫu tấn công trong khoảng thời gian 2 giây. Bảng 1. Phân loại 24 loại tấn công trong KDDCup 99 Loại Các tấn công trong bộ dữ liệu KDDCup 99 Probe Ipsweep, Nmap, Portsweep, Satan DoS Back, Land, Neptune, Pod, Smurf, Teardrop U2R Buffer_overflow, Loadmodule, Perl, Rootkit R2L Ftp_write, Guess_passwd, Imap, Multihop, Phf, Spy, Warezclient, Warezmaster 2.3. Lập trình Gen 2.3.1. Thuật toán lập trình Gen Lập trình Gen (GP) là sự mở rộng của thuật toán di truyền (GA), đây là một phương pháp tìm kiếm tổng quát sử dụng phép loại suy từ chọn lọc tự nhiên và tiến hóa. Sự khác biệt chính giữa GP và GA là phương pháp mã hóa các giải pháp tìm kiếm, GA mã hóa các giải pháp tiềm năng cho vấn đề như một quần thể của các chuỗi nhị phân có chiều dài cố định gọi là nhiễm sắc thể, sau đó áp dụng các thao tác di truyển lên các nhiễm sắc thể này để tạo ra các nhiễm sắc thể mới. Ngược lại với GA, GP mã hóa các giải pháp đa tiềm năng cho các vấn đề cụ thể như là một quần thể của các chương trình hoặc các hàm, các chương trình có thể được biểu diễn dưới dạng cây phân tích cú pháp. Thông thường, cây phân tích cú pháp bao gồm các nút nội bộ và các nút lá. Các nút nội bộ được gọi là các nguyên hàm (function), và các nút lá được gọi là các ký hiệu kết thúc (terminal). Các terminal có thể được xem như là đầu vào cho các vấn đề cụ thể (các biến độc lập và ... thể này sẽ bị loại bỏ. Quá trình này sẽ được lặp lại cho đến khi một điểm lai ghép hợp lệ được tìm thấy hoặc vượt quá giới hạn; Đột biến: Chọn ngẫu nhiên một điểm trên cây đã chọn, sau đó tạo ngẫu nhiên một cây con mới để thay thế cây con tại điểm đã chọn trên cây cha/mẹ. 3.2. Cài đặt thử nghiệm Nhóm tác giả đã tiến hành thử nghiệm phát hiện tấn công đối với mô hình đề xuất trên bộ dữ liệu nhân tạo do nhóm tác giả Pham, Nguyen, và Nguyen (2014) đề xuất với 10 thuộc tính cho mỗi loại tấn công. Thử nghiệm của chúng tôi đươc tiến hành tại Phòng Thí nghiệm An ninh mạng, Bộ môn An toàn Thông tin, Học viện Kỹ thuật Quân sự với các tham số di truyền được xác định như được trình bày trong Tiểu mục 3.2.1. 3.2.1. Các tham số và hàm mục tiêu Tham số: Các tham số sử dụng trong quá trình tiến hóa để huấn luyện cho phát 394 TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] hiện tấn công, xâm nhập được lựa chọn như trong Bảng 2. Bảng 2. Tập các tham số được lựa chọn trong quá trình tiến hóa Tham số Giá trị Tỷ lệ lai ghép 0.9 Tỷ lệ đột biến 0.1 Kích thước quần thể 200 Số thể hệ thực hiện di truyền 51 Số mẫu dữ liệu huấn luyện Phụ thuộc kịch bản Số mẫu dữ liệu kiểm tra Phụ thuộc kịch bản Phương pháp lựa chọn Lựa chọn cạnh tranh, size=10 Tập Function {add, sub, div, mul, sin, cos, log, ep} Tập Terminal x1, x2, x10: 10 thuộc tính cho mỗi loại tấn công Kích thước cá thể MIN_SIZE=2, MAX_SIZE=40 Hàm thích nghi (fitness): Giá trị thích nghi của mỗi cá thể sẽ được tính toán theo các bước như sau: Tính thô (rawfitness): NumFitcase 1i i1021i NumFitcase y)x,...,x,x(f )i(rawfitness (1) Trong đó: NumFitcase là số mẫu trong bộ dữ liệu huấn luyện; x1, x2,. .., x10 là thuộc tính lựa chọn cho kiểu tấn công; fi là hàm được xây dựng trong quá trình tiến hóa; và yi là giá trị phân loại mẫu dữ liệu là tấn công hay không tấn công. Chuẩn hóa fitness tuần tự như sau: poplen 1i )i(rawfitness1 1 )i(essadjustfitn (2) polen 1i )i(essadjustfitn )i(essadjustfitn )i(ssnomalfitne (3) Vũ Văn Cảnh, Hoàng Tuấn Hảo và Nguyễn Văn Hoàn 395 3.2.2. Kịch bản thử nghiệm Chúng tôi đã tiến hành thử nghiệm trên ba kịch bản với các mẫu dữ liệu huấn luyện và kiểm tra cụ thể như sau. Kịch bản 1: Trong giai đoạn huấn luyện chỉ huấn luyện trên bộ dữ liệu không có mẫu dữ liệu tấn công. Trong giai đoạn kiểm tra, kiểm tra trên bộ dữ liệu có cả các mẫu dữ liệu bình thường và dữ liệu tấn công nhằm đánh giá khả năng phát hiện tấn công của phương pháp đề xuất. Thử nghiệm được tiến hành trên ba thí nghiệm sau: Thí nghiệm cho kiểu tấn công DDoS: Không có mẫu dữ liệu huấn luyện và 500 mẫu dữ liệu bình thường; Dữ liệu kiểm tra có 500 mẫu dữ liệu tấn công và 1000 mẫu dữ liệu bình thường; Thí nghiệm cho kiểu tấn công PROBE: Không có dữ liệu huấn luyện và 190 mẫu dữ liệu bình thường; Dữ liệu kiểm tra có 180 mẫu dữ liệu tấn công và 380 mẫu dữ liệu bình thường. Thí nghiệm cho kiểu tấn công DDOS và PROBE: Không có dữ liệu huấn luyện và 360 mẫu dữ liệu bình thường; Dữ liệu kiểm tra là 180 mẫu dữ liệu tấn công PROBE với 180 mẫu dữ liệu tấn công DDOS với 320 mẫu dữ liệu bình thường Kịch bản 2: Trong giai đoạn huấn luyện, huấn luyện trên bộ dữ liệu có cả các mẫu dữ liệu tấn công và bình thường. Trong giai đoạn kiểm tra, kiểm tra trên bộ dữ liệu có cả các mẫu dữ liệu tấn công và mẫu không tấn công nhằm đánh giá khả năng phát hiện tấn công của phương pháp đề xuất. Kịch bản thử nghiệm trên ba thí nghiệm với các kiểu tấn công: DDOS, PROBE và hỗn hợp DDOS-PROBE. Thí nghiệm cho kiểu tấn công DDOS: Dữ liệu đầu vào bao gồm dữ liệu huấn luyện là 50 mẫu dữ liệu tấn công và 150 mẫu dữ liệu bình thường; Dữ liệu kiểm tra là 300 mẫu dữ liệu tấn công và 600 mẫu dữ liệu bình thường; Thí nghiệm cho kiểu tấn công PROBE: Dữ liệu đầu vào bao gồm dữ liệu huấn 396 TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] luyện là 40 mẫu dữ liệu tấn công và 80 mẫu dữ liệu bình thường; Dữ liệu kiểm tra là 140 mẫu dữ liệu tấn công và 300 mẫu dữ liệu bình thường; Thí nghiệm cho kiểu tấn công PROBE và DDOS: Dữ liệu huấn luyện gồm 30 mẫu dữ liệu tấn công PROBE và 30 mẫu dữ liệu tấn công DDOS và 120 mẫu dữ liệu bình thường; Dữ liệu kiểm tra gồm 150 mẫu dữ liệu tấn công PROBE với 150 mẫu dữ liệu tấn công DDOS và 320 mẫu dữ liệu bình thường; Kịch bản 3: Trong giai đoạn huấn luyện trên bộ dữ liệu có chứa các mẫu tấn công smurf và bình thường. Trong giai đoạn kiểm tra, kiểm tra trên bộ dữ liệu có cả các mẫu dữ liệu bình thường và các mẫu tấn công mới nhằm đánh giá khả năng phát hiện các mẫu tấn công mới, chưa biết của phương pháp đề xuất. Dữ liệu huấn luyện bao gồm 87 mẫu dữ liệu tấn công smurf và 400 mẫu dữ liệu bình thường; Dữ liệu kiểm tra gồm 400 mẫu dữ liệu tấn công các kiểu DDOS (land, back, neptune, pop, teardrop) và 800 mẫu dữ liệu bình thường 3.3. Kết quả và phân tích Kết quả thử nghiệm phương pháp đề xuất với các tham số của thuật toán được đề cập đến trong Bảng 2, nhóm tác giả đã thực hiện với 30 lần chạy và lấy kết quả phân loại tấn công của tất cả các lần thực hiện để làm giá trị thống kê và so sánh với các phương pháp khác. Hiệu suất của phương pháp áp dụng cho mỗi tập dữ liệu thử nghiệm sẽ được tính theo tỷ lệ % của các phân loại chính xác trên tập dữ liệu kiểm tra và kết quả thử nghiệm được thống kê trên các bảng. Các kết quả thống kê khi áp dụng phương pháp được đề xuất với GP chuẩn và TAG3P cho vấn đề phát hiện tấn công được so sánh với các phương pháp học máy khác nhau (cây quyết định (J48), SVM, hai kỹ thuật mạng thần kinh nhân tạo (Multilayer Perceptron: Perc và Resting Bitch Face: RBF), và mạng Bayes (mạng Bayes: Bayes và NaiveBayes: Naïve)). Kịch bản 1: Các kết quả trong Bảng 3 cho thấy các phương pháp đề xuất trong các thí nghiệm của Kịch bản 1 cho kết quả phân loại tấn công cao hơn một số phương Vũ Văn Cảnh, Hoàng Tuấn Hảo và Nguyễn Văn Hoàn 397 pháp học máy khác. Điều này cho thấy GP và TAG3P đã cải thiện đáng kể tỷ lệ phát hiện tấn công, xâm nhập. Bảng 3. Kết quả thí nghiệm Kịch bản 1 (%) Phương pháp J48 SVM Perc Bayes Naïve RBF StandGP TAG3P Thí nghiệm 1 66.67 66.67 66.67 66.67 66.67 66.67 70.00 97.06 Thí nghiệm 2 67.86 67.86 67.86 67.86 67.86 67.86 65.00 99.29 Thí nghiệm 3 47.06 47.06 47.06 47.06 47.06 47.06 95.00 98.72 Kịch bản 2: Kết quả Kịch bản 2 cho thấy các phương pháp đề xuất của GP chuẩn đã cải thiện tỷ lệ phát hiện tấn công trên thí nghiệm 2 cho các mẫu tấn công thăm dò và TAG3P đã cải thiện tỷ lệ phát hiện tấn công, xâm nhập trong thí nghiệm 3 bao gồm cả các mẫu tấn công từ chối dịch vụ mà tấn công thăm dò. Tuy nhiên đối với một số mẫu khác thì tỷ lệ phát hiện lại chưa cao (Bảng 4). Bảng 4. Kết quả thí nghiệm Kịch bản 2 (%) Phương pháp J48 SVM Perc Bayes Naïve RBF StandGP TAG3P Thí nghiệm 1 90.36 98.25 98.62 93.61 96.62 98.50 75.00 93.74 Thí nghiệm 2 96.59 93.41 95.00 97.50 92.95 92.95 100.0 94.76 Thí nghiệm 3 96.58 94.47 97.11 98.42 93.95 93.95 95.00 99.08 Kịch bản 3: Kết quả Kịch bản 3 cho thấy TAG3P thực sự hiệu quả trong phát hiện các mẫu tấn công mới chưa biết trước dấu hiệu tấn công. Có thể nhận thấy rằng TAG3P thực sự hiệu quả trong khả năng học và đưa ra các dự đoán đối với các trường hợp chưa biết trước các dạng tấn công và các dạng tấn công mới (Bảng 5). Bảng 5. Kết quả thí nghiệm Kịch bản 3 (%) Phương pháp J48 SVM Perc Bayes Naïve RBF StandGP TAG3P Thí nghiệm 67.17 67.17 69.33 67.58 89.42 65.92 67.17 93.09 4. KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU Bài báo trình bày nghiên cứu về vấn đề cải thiện phát hiện tấn công mạng sử dụng lập trình gen dựa trên kỹ thuật văn phạm nối cây (TAG3P) và GP chuẩn. Các thực nghiệm cho thấy việc phân loại tấn công đã cải thiện đáng kể tỷ lệ phát hiện tấn công mạng. Qua 398 TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] thí nghiệm cho thấy kết quả phát hiện tấn công đối với các mẫu tấn công mới đạt được hiệu quả hơn so với một số phương pháp học máy khác. Bên cạnh đó, TAG3P cũng đã cải thiện đáng kể tốc độ huấn luyện so với GP chuẩn. Trong thời gian tới, nhóm nghiên cứu sẽ tiếp tục cải tiến các phương pháp phát hiện tấn công dựa trên hệ lập trình gen với định hướng nâng cao tốc độ huấn luyện bởi một số kỹ thuật như tự động đáp ứng các tham số đầu vào hay giữ lại các cá thể được cho là tốt nhất ở mỗi thế hệ, sau đó sao chép trực tiếp vào thế hệ tiếp theo mà không cần áp dụng bất cứ toán tử di truyền nào trên đó. TÀI LIỆU THAM KHẢO Abadeh, M. S., Habibi, J., & Lucas, C. (2007). Intrusion detection using a fuzzy genetics- based learning algorithm. Journal of Network and Computer Applications, 30(1), 414-428. Abdullah, B., Abd-Alghafar, I., Gouda, I., & Salama, A. A. (2009). Performance avaluation of a genetic algorithm based approach to network intrusion detection system. Paper presented at The 13th International Conference on Aerospace Sciences and Aviation Technology, USA. Ahmad, I., Hussain, M., Alghamdi, A., & Alelaiwi, A. (2013). Enhancing SVM performance in intrusion detection using optimal feature subset selection based on genetic principal components. Springer Open, 24(7-8), 1671-1682. Al-Jarrah, O. Y., Siddiqui, A., Elsalamouny, M., Yoo, P. D., Muhaidat, S., & Kim, K. (2014). Machine learning based feature selection techniques for large-scale network intrusion detection. Paper presented at The IEEE 34th International Conference on Distributed Computing Systems Workshops, USA. Anup, G., & Chetan, K. (2008). GA-NIDS: A Genetic algorithm based network intrusion detection system. Retrieved from https://www.researchgate.net/publication/ 228791237_GA-NIDS_A_Genetic_Algorithm_based_Network_Intrusion_ Detection_System Botha, M., & Solms, R. (2004). Utilizing neural networks for effective intrusion detection. Retrieved from Bridges, S. M., & Vaughn, R. B. (2000). Fuzzy data mining and genetic algorithms applied to intrusion detection. Paper presented at The Twenty-third National Information Systems Security Conference, USA. Crosbie, M., & Spafford, E. (1995). Applying genetic programming to intrusion detection. International Journal of Science and Research, 2(6), 480-483. Devarakonda, N., & Pamidi, S. (2012). Intrusion detection system using Bayesian network and Hidden Markov model. Procedia Technology, 4(1), 506-514. Vũ Văn Cảnh, Hoàng Tuấn Hảo và Nguyễn Văn Hoàn 399 Faraoun, K. M., Boukelif, A., & Algeria, S. B. A. (2006). Genetic programming approach for multi-category pattern classification applied to network intrusions detection. International Journal of Computational Intelligence and Applications, 6(1), 3098-3109. Gomez, J., & Dasgupta, D. (2002). Evolving fuzzy rules for intrusion detection. Paper presented at The Third Annual IEEE Information Assurance Workshop 2002 Conference, USA. Gong, R. H., Zulkernine, M., & Abolmaesumi, P. (2005). A software implementation of a genetic algorithm based approach to network intrusion detection. Paper presented at The Sixth International Conference on Software Engineering, USA. Koza, J. R. (1992). Genetic programming: On the programming of computers by means of natural selection. Massachusetts, USA: MIT Press. Le, H. N., Hoang, T. H., & Vu, V. C. (2015). Self-adaptive srossover and mutation parameters in tree adjoining grammar guided genetic programming. Tạp chí Khoa học và Kỹ thuật Học viện Kỹ thuật Quân sự, 15(6), 5-15. Leung, Y., So, L., & Yam, K. F. (1992). Rule learning in expert systems using genetic algorithm. Paper presented at The International Conference on Fuzzy Logic & Neural Networksm, Japan. Li, W. (2004). Using genetic algorithm for network intrusion detection. Retrieved from https://pdfs.semanticscholar.org/9175/54c7cce69e6ee9708020863f2bd27fa986a 6.pdf. Lu, W., & Traore, I. (2004). Detecting new forms of network intrusion using genetic programming. Computational Intelligence, 20(3), 475-494. Middlemiss, M., & Dick, G. (2003). Feature selection of intrusion detection data using a hybrid genetic algorithm/KNN approach. Amsterdam, Netherlands: IOS Press. Mukkamala, S., Andrew, H. S., & Ajith, A. (2005). Intrusion detection using an ensemble of intelligent paradigms. Journal of Network and Computer Applications, 28(2), 167-182. Nguyen, X. H., McKay, R. I., & Abbass, H. A. (2003). Tree adjoining grammars, language bias, and genetic programming. Paper presented at The EuroGP2003, Netherlands. Peddabachigari, S., Ajith, A. G., & Thomas, J. (2007). Modeling intrusion detection system using hybrid intelligent systems. Journal of Network and Computer Applications, 30(1), 114-132. Peng, T., Leckie, C., & Kotagiri, R. (2007). Information sharing for distributed intrusion detection systems. Journal of Network and Computer Applications, 30(3), 877- 899. Pham, T. S., Nguyen, Q. U., & Nguyen, X. H. (2014). Generating artificial attack data for intrusion detection using machine learning. Paper presented at The Fifth 400 TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] Symposium on Information and Communication Technology Conference, Vietnam. Pillai, M. M., Eloff, J. H. P., & Venter, H. S. (2004). An approach to implement a network intrusion detection system using genetic algorithms. Paper presented at The SAICSIT, South Africa. UCI KDD Archive. (1999). KDD cup 1999 data. Retrieved from databases/kddcup99/kddcup99.html Wong, M. L., Leung, K. S., & Cheng, J. C. Y. (2000). Discovering knowledge from noisy databases using genetic programming. Journal of the American Society for Information Science and Technology, 51(9), 870-881. IMPROVING INTRUSION DETECTION USING TREE ADJOINING GRAMMAR GUIDED GENETIC PROGRAMMING Vu Van Canha,b*, Hoang Tuan Haoa, Nguyen Van Hoanb aThe Faculty of Information Technology, Lequydon Technical University, Hanoi, Vietnam bThe Faculty of Information Technology, Telecommunication University, Khanhhoa, Vietnam *Corresponding author: Email: canhvuvan@yahoo.com Article history Received: January 07th, 2017 | Received in revised form: July 13th, 2017 Accepted: July 20th, 2017 Abstract Nowadays, the problem of network security has become urgent and affect the performance of modern computer networks greatly. Detection and prevention of network attacks have been the main topic of many researchers in the World. One of the safety measures for networks is using the intrusion detection systems. However, these measures are costly, ineffective, unreliable and can-not detect new or unknown attacks. Some studies using machine learning technology have been applied in intrusion detection. In our work, we proposed using Genetic Programming (GP) to improve intrusion detection. In the experiments, we used GP and Tree Adjoining Grammar Guided Genetic Programming (TAG3P) on artifical datasets suggested by Pham, Nguyen, and Nguyen (2014). Compared with previous results, we found that GP and TAG3P are more effective in detecting attacks than previous measures. Keywords: Attack detection; Classification; Genetic Programming (GP); IDS; TAG3P.
File đính kèm:
- cai_tien_phat_hien_tan_cong_su_dung_van_pham_noi_cay_trong_l.pdf