Cải tiến một số thuật toán trong miễn dịch nhân tạo cho phát hiện xâm nhập mạng tt

26 56 0
Cải tiến một số thuật toán trong miễn dịch nhân tạo cho phát hiện xâm nhập mạng tt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ …… ….***………… NGUYỄN VĂN TRƯỜNG CẢI TIẾN MỘT SỐ THUẬT TOÁN TRONG MIỄN DỊCH NHÂN TẠO CHO PHÁT HIỆN XÂM NHẬP MẠNG Chuyên ngành: Cơ sở Toán học cho Tin học Mã số: 62 46 01 10 TĨM TẮT LUẬN ÁN TIẾN SĨ TỐN HỌC Hà Nội – 2019 Cơng trình hồn thành tại: Học viện Khoa học Công nghệ Viện Hàn lâm Khoa học Công nghệ Việt Nam Người hướng dẫn khoa học 1: PGS TS Nguyễn Xuân Hoài Người hướng dẫn khoa học 2: PGS TS Lương Chi Mai Phản biện 1: … Phản biện 2: … Phản biện 3: … Luận án bảo vệ trước Hội đồng chấm luận án tiến sĩ, họp Học viện Khoa học Công nghệ - Viện Hàn lâm Khoa học Công nghệ Việt Nam vào hồi … ’, ngày … tháng … năm 201… Có thể tìm hiểu luận án tại: - Thư viện Học viện Khoa học Công nghệ - Thư viện Quốc gia Việt Nam MỞ ĐẦU Tính cấp thiết luận án Mạng máy tính phải đối mặt với nhiều công Để đảm bảo an tồn, cần thiết phải có hệ thống kiểm soát an ninh, chẳng hạn hệ thống phát xâm nhập (Intrusion Detection Systems, IDS) Tuy vậy, việc phát xâm nhập lại phải đối phó với nhiều vấn đề lưu lượng mạng lớn, phân bố liệu khơng cân bằng, khó nhận biết ranh giới hành vi bình thường hành vi bất thường, u cầu thích nghi thường xun với mơi trường thay đổi Hệ nhà nghiên cứu nỗ lực sử dụng nhiều phương pháp khác để xây dựng hệ IDS tin cậy Một phương pháp dựa trí tuệ tính tốn cho phát xâm nhập trội gần hệ miễn dịch nhân tạo (AIS), có nguồn gốc từ hệ miễn dịch sinh học Thuật tốn chọn lọc âm tính (NSA) AIS, sử dụng nhiều IDSs Dù cho có ứng dụng thành cơng, NSA có vài điểm yếu: 1-Tỉ lệ lỗi dương tính lỗi âm tính cao, 2-Thời gian huấn luyện kiểm tra cao, 3-Có mối quan hệ theo hàm mũ kích thước liệu huấn luyện số lượng dò sinh cho kiểm tra, 4- Khó phân biệt hai khái niệm “dữ liệu bình thường” với “dữ liệu bất thường” mơi trường mạng Để giải hạn chế ấy, xu hướng nghiên cứu gần tập trung theo hướng giải vấn đề cấu trúc phức tạp dò miễn dịch, phương pháp so khớp hệ AIS lai Mục đích nghiên cứu Do việc biểu diễn liệu nhân tố quan trọng ảnh hưởng đến thời gian huấn luyện kiểm tra, nên đề tài luận án hướng đến sinh tập dò đầy đủ thu gọn Luận án nghiên cứu thuật tốn tối ưu để sinh dò theo nghĩa tốc độ thực nhanh huấn luyện kiểm tra Nghiên cứu đề xuất mơ hình hệ phát xâm nhập mạng dựa hệ miễn dịch nhân tạo để phát công, loại biết chưa biết Hệ thống xây dựng có sử dụng hệ miễn dịch nhân tạo kết hợp với thống kê dựa liệu định dạng flow Mơ tả tốn Luận án tập trung nghiên cứu ba tốn: Bài tốn 1: Tìm dạng biểu diễn thu gọn cho liệu nhằm không cực tiểu hóa nhớ lưu trữ liệu mà giảm thời gian phát Bài toán 2: Đề xuất thuật toán giảm thời gian huấn luyện so với cơng trình cơng bố Bài tốn 3: Cải tiến hiệu suất phát theo hướng giảm lỗi cảnh báo sai giữ tỉ lệ phát độ xác cao Vấn đế tìm thuật tốn tối ưu vừa giảm độ phức tạp thời gian, nhớ vừa có hiệu suất phát tốt khơng khả thi Những khía cạnh ln mâu thuẫn với Do vậy, chương tập trung giải toán tương đối độc lập Bài tốn phát xâm nhập luận án phát biểu khơng hình thức sau: Cho trước tập hữu hạn luồng mạng S có gắn nhãn self (bình thường) hay nonself (bất thường) Mục tiêu xây dựng mơ hình phân lớp S có khả phân lớp luồng không gắn nhãn s Tổng quan luận án Chương giới thiệu kiến thức tảng cần thiết cho giải thuật trình bày chương Chương trình bày kết hợp thuật tốn chọn lọc Kỹ thuật đưa nhằm giảm nhớ lưu trữ dò giai đoạn huấn luyện Do nhớ giảm, nên hệ tất yếu thời gian kiểm tra giảm Cấu trúc sử dụng để cải thiện độ phức tạp thời gian nhớ Tập dò đầy đủ khơng dư thừa cần thiết để đạt khả bao phủ chấp nhận phân lớp cho seft nonself Một thuật tốn sinh tập dò đề xuất chương Chương bao gồm hai thuật toán chọn lọc cho huấn luyện nhanh Các thuật tốn tối ưu sinh tập dò thời gian tuyến tính với kích thước liệu huấn luyện Về mặt thời gian phát hiện, thuật tốn thứ thuật tốn thứ hai có độ phức tạp tuyến tính đa thức Chương giới thiệu cách tiếp cận lai thuật toán chọn lọc với thống kê Tần suất liệu seft nonself lưu cấu trúc biểu diễn dò Phương pháp đóng vai trò quan trọng cải tiến hiệu suất thuật toán Cách tiếp cận lai coi kỹ thuật phân loại hai lớp huấn luyện dựa liệu thuộc hai loại seft nonself Chương KIẾN THỨC CHUẨN BỊ 1.1 Hệ miễn dịch người Hệ miễn dịch người kiến trúc bảo vệ nhiều tầng, bao gồm tầng vật lý, tầng sinh lý hệ miễn dịch (thích nghi bẩm sinh) Hệ miễn dịch thích nghi có khả nhận diện tác nhân gây bệnh, ghi nhớ chúng để tăng khả phản hồi sau Nó nguồn gốc ý tưởng hệ miễn dịch nhân tạo 1.2 Các thuật toán chọn lọc Cách tiếp cận chọn lọc âm tính dựa phân biệt self nonself hệ thống sinh học Tính chất chọn lọc âm tính nhà nghiên cứu an ninh máy tính an ninh mạng quan tâm Một khảo sát sáu năm 2008-2013 cho thấy thuật tốn chọn lọc âm tính (NSA) phổ biến cách tiếp cận khác AIS số lượng đăng tải lĩnh vực an ninh mạng phát bất thường 1.2.1 Thuật tốn chọn lọc âm tính NSA cổ điển gồm hai giai đoạn: sinh tập dò phát Trong giai đoạn sinh tập dò, ứng cử cho dò sinh ngẫu nhiên thực khớp với mẫu liệu self từ tập S (biểu diễn thành phần hệ thống) Ứng cử viên khớp với phần tử S bị loại bỏ, số lại lưu tập dò D Trong giai đoạn phát hiện, tập dò sử dụng để phân biệt self (thành phần hệ thống) với nonself (ngoại lai, bất thường) Nếu đối tượng khớp với phần tử tập dò D, coi nonself 1.2.2 Thuật tốn chọn lọc dương tính Thuật tốn chọn lọc dương tính (PSA) cổ điển gồm hai giai đoạn: sinh tập dò phát Trong giai đoạn sinh, ứng cử cho dò sinh ngẫu nhiên thực khớp với mẫu liệu self từ tập S Ứng cử viên không khớp với phần tử S bị loại bỏ, số lại lưu tập dò D Trong giai đoạn phát hiện, tập dò sử dụng để phân biệt self với nonself Nếu đối tượng khớp với phần tử tập dò D, coi self 1.3 Thuật ngữ định nghĩa 1.3.1 Xâu, xâu ngôn ngữ Bảng chữ Σ tập hữu hạn, khác rỗng kí hiệu Một xâu s ∈ Σ∗ chuỗi kí hiệu thuộc Σ, độ dài kí hiệu |s| Một xâu gọi rỗng có độ dài Cho trước số i ∈ {1, , |s|}, s[i] kí hiệu ví trí i s Cho trước hai số i j , j ≥ i, s[i j] xâu s có độ dài j − i + Nếu j < i, s[i j] xâu rỗng Một xâu s tiền tố s s = s[1 j], ≤ j ≤ |s| Một tập xâu S ⊆ Σ∗ gọi ngôn ngữ Với hai số i j , ta định nghĩa S[i j] = {s[i j]|s ∈ S} 1.3.2 Cây tiền tố, DAG tiền tố Một tiền tố T có gốc với nhãn cạnh thuộc Σ, nút có nhiều cạnh có nhãn σ , σ ∈ Σ Với xâu s, ta viết s ∈ T có đường từ gốc T tới cho s dãy kí tự s nhãn đường Cấu trúc tiền tố sử dụng thuật tốn sinh tập dò rcbvl Một tiền tố DAG G đồ thị có hướng khơng chu trình với cung có nhãn từ tập Σ Mỗi nút có nhiều cung có nhãn σ , σ ∈ Σ Với xâu s, ta viết s ∈ G có đường từ gốc G tới cho s dãy kí tự s nhãn đường Ta kí hiệu L(G) = n is root of G L(G, n) Chú ý đồ thị tiền tố G chuyển dạng otomat 1.3.3 Bộ dò Cho trước bảng chữ Σ khác rỗng, gồm kí hiệu, dò dương tính dò âm tính r-chunk, dò r-liên tục dò rcbvl định nghĩa sau: Định nghĩa 1.1 (Bộ dò dương tính r-chunk) Cho trước tập self S , (d, i) gồm xâu d ∈ Σr , r ≤ , số nguyên i ∈ {1 − r + 1} gọi dò dương tính r-chunk tồn xâu s ∈ S thỏa mãn d khớp với s[i i + r − 1] Định nghĩa 1.2 (Bộ dò âm tính r-chunk) Cho trước tập self S , (d, i) gồm xâu d ∈ Σr , r ≤ , số nguyên i ∈ {1 − r + 1} gọi dò âm tính r-chunk d không khớp với s[i i + r − 1], s ∈ S Mặc dù cách tiếp cận đề xuất chương sau cài đặt với bảng chữ hữu hạn nào, để tiện theo dõi ví dụ tơi sử dụng chữ nhị phân, Σ = {0, 1} Định nghĩa 1.3 (Phát dựa chọn lọc âm tính) Nếu phần tử so khớp với − r + dò dương tính r-chunk: (dij , i), i = 1, , − r + 1, self, ngược lại non-self Định lý 1.1 Khả phát tập dò dương tính tập dò âm tính L(CHU N Kp (S, r)) = L(CHU N K(S, r)) Định nghĩa 1.4 (Bộ dò rcbvl) Cho trước số nguyên dương r, tập S xâu self độ dài Bộ (d, i, j) gồm xâu d ∈ Σk , ≤ k ≤ , số nguyên i ∈ {1, , − r + 1} số nguyên j ∈ {i, , − r + 1} gọi dò rcbvl d khơng xuất s, s ∈ S Nói cách khác, (d, i, j) dò rcbvl tồn (j − i + 1) dò r-chunk (d1 , i), , (dj−i+1 , j) thỏa mã điều kiện dk [2 r] = dk+1 [1 r − 1], k = 1, , j − i 1.3.4 Biểu diễn dạng vòng liệu Phần lớn ứng dụng dựa AIS dùng hai loại biểu diễn liệu: xâu vectơ giá trị thực Cả hai loại biểu diễn cấu trúc tuyến tính ký hiệu số Điều dẫn đến bỏ sót thơng tin biên (đầu cuối) cấu trúc Do vậy, ta sử dụng cấu trúc vòng tròn thay tuyến tính để đạt độ xác phân lớp cao Một cách làm đơn giản để xây dựng cấu trúc vòng xâu lấy phần đầu xâu kết nối vào cuối xâu Cho trước tập xâu S ⊂ Σ , kí hiệu Sr ⊂ Σ +r−1 gồm tất biểu diễn vòng tròn xâu S 1.3.5 Cây tần suất Cho tập D gồm xâu có độ dài nhau, T D ký hiệu TD có hướng gốc với cạnh có nhãn tập Σ Mỗi nút có cung có nhãn σ Với xâu s, coi s ∈ T tồn đường từ gốc T đến cho s chứa nhãn đường Mỗi kết hợp với số nguyên tần số xâu s ∈ D s dãy nhãn đường kết thúc 1.4 Tập liệu Trong luận án, tập trung nghiên cứu liệu dạng flow lý do: - Cho phép phát số công đặc biệt, DDoS hay RDP Brute Force, cách hiệu nhanh cách tiếp cận dựa gói tin cần phân tích lượng thơng tin so với phân tích gói tin - Cách phương pháp phát bất thường dựa flow xử lý header gói tin giảm liệu thời gian xử lý, phù hợp với phát tốc độ cao mạng cỡ lớn Nó giải vấn đề cân tải điều kiện gia tăng sử dụng mạng Tập liệu DARPA-Lincoln: Tập liệu thu thập phòng thí nghiệm Lincoln (MIT), với mục đích dùng cho đánh giá hiệu suất công nghệ phát xâm nhập khác Tập liệu UT: Tập liệu thu thập thơng qua kiểm sốt máy chủ dạng honeypot đặt trường Đại học Twente (Hà Lan) Cơ sở liệu bao gồm loại lưu lượng nguy hiểm, lưu lượng chưa biết lưu lượng hiệu ứng phụ Mỗi flow sở liệu có 12 trường: Source IP, Destination IP, Source Port, Destination Port, Packets, Octets, Start Time, End Time, Flags, and Proto Tập liệu Netflow: Cơ sở liệu thuộc địa IP cổng cụ thể nhận nhiều cơng Nó chứa 129,571 lưu lượng (gồm công) đến tới nạn nhân Mỗi flow sở liệu có 10 trường: Source IP, Destination IP, Source Port, Destination Port, Packets, Octets, Start Time, End Time, Flags, and Proto Chương KẾT HỢP CHỌN LỌC ÂM TÍNH VÀ CHỌN LỌC DƯƠNG TÍNH 2.1 Thuật tốn chọn lọc âm tính Đầu tiên, xây dựng − r + nhị phân (gọi dương tính) tương ứng với − r + tập dò dương tính r-chunk Dpi , i = 1, , − r + Sau đó, tất các đầy đủ loại bỏ để tìm tập dò tối thiểu cho dò dương tính r-chunk mà giữ ngun khả phát Cuối cùng, với dương tính thứ i, chúng tơi định xem có nên chuyển đổi sang âm tính hay khơng, với âm tính tập dò r-chunk Dni Quyết định phụ thuộc vào nhỏ gọn Khi trình thực kết thúc, có − r + nhị phân nhỏ số thuộc loại dương tính số khác thuộc loại âm tính Phương pháp so khớp r-chunk nhị phân tiến hành sau: xâu s cho trước so khớp với nhị phân dương tính (âm tính) thứ i s[i i + k] đường từ gốc đến i = 1, , − r + 1, k < r Giai đoạn phát thực cách duyệt nhị phân nhỏ gọn bước một: xâu s kết luận nonself khớp với nhị phân âm tính khơng khớp với tất nhị phân dương tính, s kết luận self trường hợp ngược lại Từ mô tả thuật tốn PNSA, |S|( − r + 1).r bước để xây dựng tất các cần thiết trường hợp tồi cần ( − r + 1).r bước để so khớp xâu kết luận self hay nonself Độ phức tạp thời gian tương đương với độ phức tạp thuật toán NSA (PSA) phổ biến Định lý 2.1 (Độ phức tạp nhớ PNSA) Cho tập self S số nguyên , thủ Algorithm 2.1 Thuật tốn chọn lọc dương tính-âm tính 1: procedure PNSA(S, , r, D) 2: for i = 1, , − r + 3: Create an empty prefix tree Ti 4: for s ∈ S 5: insert every s[i i + r − 1] into Ti 6: for internal node n ∈ Ti 7: if n is root of complete binary subtree then 8: delete this subtree 9: if (number of leaves of Ti ) > (number of nodes of Ti that have only one child) then 10: for every internal node ∈ Ti 11: if it has only one child then 12: if the child is a leaf then 13: delete the child 14: create the other child for it 15: Mark Ti as a negative tree 16: f lag = true 17: i=1 18: while (i ≤ − r + 1) and (f lag = true) 19: if (Ti is positive tree) and (s∗ does not match Ti ) then 20: f lag = false; 21: if (Ti is negative tree) and (s∗ matches Ti ) then 22: f lag = false 23: i=i+1 24: if f lag = false then 25: output “s∗ is non-self” 26: else 27: output “s∗ is self” 10 Chương SINH TẬP BỘ DỊ THU GỌN 3.1 Thuật tốn NSA Cho tập khác rỗng S gồm xâu self độ dài số nguyên r ∈ {1, , − r + 1}, phần trình bày thuật toán NSA dựa luật so khớp rcbvl Một số tiền tố sử dụng để tạo dò hồn hảo từ tập S sau tập sử dụng để phân biệt mẫu self non-self Thuật tốn tóm tắt bước thuật tốn NSA Từ mơ tả thuật tốn cho thấy cần |S|.( − r + 1).r bước để tạo ( − r + 1) tiền tố |D|.( − r + 1).2r bước để tạo tập dò D Ví dụ 3.1 Cho = 5, r = tập self S = {s1 = 010101, s2 = 111010, s3 = 101101, s4 = 100011, s5 = 010111} Từ bước thuật toán xây dựng tập dò đầy đủ (0001,1,2), (00100,1,4), (100,4,4), (011110,1,4), (11000,1,3) sau: Bước đầu tập D tạo sau: (00,1,1), (011,1,1), (110,1,1) Sau bước lặp (dòng 13-29) tính lại tập D D1 sau: Vòng lặp i=2: D = {(0001,1,2); (0010,1,2); (0111,1,2); (1100,1,2)} D1 = ∅ Vòng lặp i=3: D = {(00100,1,3); (01111,1,3); (11000,1,3)} D1 = {(0001,1,2)} Vòng lặp i=4: D = {(00100,1,4); (011110,1,4)} D1 = {(0001,1,2); (11000,1,3); (100,4,4)} Và bước cuối D = D D1 dòng 30, cuối tập dò đầy đủ {(0001,1,2), (00100,1,4), (100,4,4), (011110,1,4), (11000,1,3)} Để phát xâu s self hay nonself, chúng tơi đơn giản kiểm tra q trình khớp theo luận rcbvl xâu s với dò tập D Nếu khớp s nonself, ngược lại s kết luận self 11 Algorithm 3.1 Thuật tốn sinh tập dò rcbvl 1: procedure GenerationDetectors(S, , r, D) 2: for i = 1, , − r + Create an empty prefix tree Ti 3: for all s ∈ S 4: for i = 1, , − r + 5: insert every s[i i + r − 1] into Ti 6: for i = 1, , − r + 7: for all non-leaf node n ∈ Ti and all σ ∈ Σ 8: if no edge with label σ starts at n then 9: create a new leaf n and an edge (n, n ) labeled with σ 10: delete every node n ∈ Ti from which none of the newly created leaves is reachable 11: D1 = ∅ 12: D = { (s, 1, 1)|s ∈ T1 } 13: for i = 2, , − r + 14: D2 = ∅ 15: for all (s, k, j) ∈ D 16: if there exists a s ∈ Ti where s[i − k + |s|] is prefix of it then 17: D2 = D2 {(s + s [|s| − j + k |s |], k, i)} 18: delete every node n ∈ Ti from which only nodes in the s is reachable 19: for all s ∈ Ti where s[i − k + |s|] is prefix of it 20: if |s| − i + k < r then 21: D2 = D2 {(s[|s|] + s , i − 1, i)} 22: else 23: D2 = D2 {(s , i, i)} 24: delete every node n ∈ Ti from which only nodes in the s is reachable 25: else 26: D1 = D1 {(s, k, j)} 27: for all s ∈ Ti 28: D2 = D2 {(s , i, i)} 29: D = D2 30: D = D D1 12 3.2 Thử nghiệm CSDL NetFlow sử dụng thử nghiệm 1, liệu ngẫu nhiên sử dụng thử nghiệm Dữ liệu NetFlow chuyển sang xâu nhị phân thông qua hai bước Bước ánh xạ thuộc tính sang dạng nhị phân Sau bước này, tất thuộc tính dạng xâu xây dựng cho liệu loại bình thường bất thường Bước nối thuộc tính lại Sau bước này, tập liệu chứa xâu nhị phân có độ dài 49 Quá trình phân chia tập liệu huấn luyện kiểm tra giá trị r, cho thử nghiệm mô tả bảng 3.1 Bảng 3.1: Phân bố liệu, tham số cho thử nghiệm kết r Huấn luyện Kiểm tra 49 10 49 119,571 79,571 10,000 50,000 30 12 30 14 25,000 40,000 25,000 10,000 Kích thước (bit) Thời gian r-chunk rcbvl r-chunk Case 206,810 42,704 31,672 8,096 0.8 Case 367,092 79,222 4.1 2,324,056 392,815 8.65 (phút) rcbvl 0.2 0.18 0.75 1.4 Kết bảng 3.1 cho thấy thuật tốn chúng tơi đề xuất giảm kích thước tập dò thời gian phân lớp liệu so sánh với thuật tốn tốt cơng bố 13 Chương THUẬT TỐN CHỌN LỌC NHANH 4.1 Thuật tốn chọn lọc âm tính nhanh dựa dò loại r-chunk Bảng 4.1 trình bày kết so sánh thu thuật toán đề xuất với thuật toán dựa dò loại r-chunk cơng bố mặt thời gian Mọi thử nghiệm tiến hành liệu nhị phân Tham số K = min{|S[i i + r − 1]|, i = 1, , − r + 1} Tham số |D|, số lượng dò mong muốn, thích hợp với thuật tốn sinh dò tường minh Thuật tốn chúng tơi thuật toán đưa Textor đạt kết tương ứng với trường hợp sinh lượng dò tối đa Chúng tơi đề xuất thuật tốn NSA cho phép cải thiện hiệu xuất đáng kể giai đoạn huấn luyện so với thuật toán hiệu đưa Textor Chúng tơi sử dụng kí hiệu sau: Một mảng Q, với Q[s][c] trỏ sử dụng để tạo nút cây, s ∈ Σr−1 , c ∈ Σ; Một mảng P với P[i] cấu trúc gồm hai trường, trỏ P[i].end xâu P[i].str ∈ Σr−1 Bảng 4.1: So sánh thời gian chạy thuật toán đề xuất với thuật tốn cơng bố Luật so khớp r-chunk r-contiguous Thuật toán Huấn luyện Stibor et al (2004) (2r + |S|)( − r + 1) Elberfeld, Textor (2009) r2 |S|( − r) Elberfeld, Textor (2011) |S| r Luận án |S| r D’haeseleer et al (1996) (linear) (2 + |S|)( − r) D’haeseleer et al (1996) (greedy) 2r |S|( − r) r Wierzcho´ n (2000) (|D|( − r) + |S|) Elberfeld, Textor 2009) |S|3 r3 Elberfeld, Textor (2011) |S| r Luận án |S| + (2r − K) ) Phát |D| |S| r |D| |D| |D| |S|2 r3 r Ví dụ 4.1 Đặt = 5, r = Tập self S gồm xâu sau S = {s1 = 01111, s2 = 00111, 14 Algorithm 4.1 Thuật tốn sinh tập dò dương tính r-chunk 1: procedure GenerationPositiveDetectors(S, , r, G) 2: Construct T1 , P and Q initially 3: for i = r + 1, , 4: for j = 1, , n 5: if Q[P [j].str][sj [i]] = N U LL then 6: Q[P [j].str][sj [i] = new() create new end node pointed by Q[P [j].str][sj [i] 7: for j = 1, , n 8: p = P [j].end p and P [j].end point to the same end node of the tree 9: for c ∈ σ 10: if (Q[P [j].str][c]! = N U LL)&&(edge starts from p with label c does not exist) then 11: Create the edge starts from p with label c 12: P[j].end=the end note of the edge starts from p with label sj [i] 13: for j = 1, , n 14: for c ∈ Σ 15: Q[P [j].str][c] = N U LL 16: P [j].str = P [j].str[2 r − 1] + sj [i] s3 = 10000, s4 = 10001, s5 = 10010, s6 = 10110, s7 = 11111} Algorithm 4.2 Thuật tốn sinh tập dò âm tính r-chunk 1: procedure GenerationNegativeDetectors(S, , r, G) 2: GenerationPositiveDetectors(S, , r, G) create an acyclic directed graph G on prefix trees 3: Create a special node this node is considered an accept state in corresponding automaton 4: for every node n ∈ G 5: if n is a root of a complete sub tree then 6: delete the tree root n, except for n 7: else 8: create new edge from n to the special node Thuật toán 4.3 tóm tắt thuật tốn đề xuất Chunk-NSA Trong thuật tốn này, chúng tơi sử dụng tập self S , số nguyên r ∈ {1, , − r + 1}, xâu s∗ phát mơ hình tiền tố DAG G Chunk-NSA phát s∗ self hay nonself Định lý 4.1 Cho S ⊆ Σ r ∈ {1, , }, thuật toán Chunk-NSA xây dựng tiền tố DAG G với L(G) ⊆ S thời gian O(|S| .|Σ|) kiểm tra s∗ ∈ L(G) thời gian O( ) 4.2 Thuật toán chọn lọc âm tính nhanh dựa dò loại r-contiguous 15 Algorithm 4.3 Thuật tốn chọn lọc âm tính nhanh 1: procedure Chunk-NSA(s∗ , S, , r, G) 2: GenerationNegativeDetectors(S, , r, G) presenting a NSA 3: if s∗ ∈ L(G) then 4: output ”s∗ is self” 5: else 6: output ”s∗ is nonself” create an acyclic directed graph G Hai mảng P Q sử dụng với ý nghĩa tương tự phần trước Ngồi ra, chúng tơi sử dụng hai tập hợp trỏ P1 P2 cho dò r- chunk Chúng hốn đổi vai trò lẫn cuối bước lặp Định lý 4.2 Tồn thuật toán mà cho trước tập S ⊆ Σ r ∈ {1, , }, xây dựng otomat hữu hạn M với L(M ) ∩ Σ = CON T (S, r) thời gian O(|S| .|Σ| + (Σr − K) ), với K= min{|S[i i + r − 1]|, i = 1, , − r + 1} 4.3 Thử nghiệm Tôi sử dụng sở liệu NetFlow liệu ngẫu nhiên để dùng thử nghiệm thử nghiệm tương ứng Trong Bảng 4.2, thời gian chạy NSA đề xuất Textor (2011) thử nghiệm thử nghiệm tương ứng cột b d Thời gian chạy thuật toán đề xuất Chunk-NSA thử nghiệm thử nghiệm tương ứng cột c e Kết thời gian huấn luyện cho thấy thuật tốn đề xuất có thời gian huấn luyện gần không phụ thuộc vào giá trị ngưỡng so khớp r Ngoài ra, tỉ lệ thời gian so khớp thuật toán Textor thuật toán đề xuất tăng dần tiệm cận với r 16 Algorithm 4.4 Thuật tốn sinh tập dò loại r-contiguous 1: procedure Cont-NSA(S, r, G) Input: A set of self strings S ⊆ Σ , a matching threshold r ∈ {1, , } Output: An automaton G presenting negative r-contiguous detectors set 2: G = P1 = ∅ 3: for s ∈ Σr \ S[1 r] 4: insert s into G and create p.end that points to the leaf node in path s 5: p.str = s[2 r] 6: P1 = P1 ∪ {p} 7: for i = r + 1, , 8: for j = 1, , |S| 9: if Q[P [j].str][sj [i]] = N U LL then 10: Q[P [j].str][sj [i]] = new() 11: P2 = ∅ 12: for each p ∈ P1 13: for c ∈ Σ 14: if (Q[p.str][c] = N U LL) then 15: Q[p.str][c] = new() 16: p.str = p.str[2 r − 1] + c 17: p.end = Q[p.str][c] 18: P2 = P2 ∪ {p} 19: else 20: if Q[p.str][c] is newly created in this inner for loop then 21: p.str = p.str[2 r − 1] + c 22: p.end = Q[p.str][c] 23: P2 = P2 ∪ {p} 24: for j = 1, , |S| 25: Q[P [j].str][sj [i]] = N U LL 26: P [j].str = P [j].str[2 r − 1] + sj [i] 27: for each p ∈ P1 28: for c ∈ Σ 29: Q[p.str][c] = N U LL 30: P = P2 31: for each node n ∈ G 32: if n is not reachable to a leaf node ∈ P1 then 33: delete n 34: turn G into an automaton 17 Bảng 4.2: r a 10 11 12 13 14 15 16 17 18 19 20 So sánh Chunk-NSA với NSA Textor Thử nghiệm Thử nghiệm b c b/c d e d/e 1330 454 2.9 1490 482 3.1 1395 439 3.2 1633 472 3.5 1564 454 3.4 637 360 4.5 1767 435 4.1 2134 453 4.7 1771 418 4.2 2276 451 5.0 2092 486 4.3 2793 450 6.2 1985 437 4.5 3086 365 8.5 2071 391 5.3 4079 427 9.6 2249 410 5.5 4509 422 10.7 2345 375 6.3 5312 470 11.3 2859 359 7.0 6796 437 15.6 18 Chương HỆ MIỄN DỊCH NHÂN TẠO LAI CHO AN NINH MẠNG 5.1 Thuật tốn lai chọn lọc dương tính dò r-chunk Cho trước , r, tập liệu bình thường N ⊂ Σ , tập liệu bất thường A ⊂ Σ Thuật toán 5.1 5.3 tạo self nonself tương ứng Một đối tượng liệu s ∈ Σ phát self hay nonself thuật toán 5.3 Algorithm 5.1 Thuật toán sinh self 1: procedure SelfTreesGeneration(N , , r) 2: for i = 1, , 3: Create an empty tree TNi 4: for all s ∈ Nr 5: for i = 1, , 6: insert every s[i i + r − 1] into TNi Algorithm 5.2 Thuật toán sinh nonself 1: procedure NonselfTreesGeneration(A, , r) 2: for i = 1, , 3: Create an empty tree TAi 4: for all s ∈ Ar 5: for i = 1, , 6: insert every s[i i + r − 1] into TAi Trong thuật toán 5.3, Leaf(s, T ) hàm trả tần suất tương ứng với xâu s ∈ Σr , giá trị nằm đường s Các tham số d1 d2 tương ứng tính tổng tần suất s self N nonself A Bốn tham số t1 , t2 , t3 , t4 sử dụng thuật toán PSA2 nhằm điều chỉnh hiệu suất phát 19 Algorithm 5.3 Thuật toán PSA2 phát s ∈ Σ self hay nonself 1: procedure Detection(N , A, s, , r) 2: SelfTreesGeneration(N , , r) 3: NonselfTreesGeneration(A, , r) 4: d1 = d2 = d3 = 5: Create a string sr as ring representation of s 6: for i = 1, , 7: s = sr [i i + r − 1] 8: if s ∈ / TNi then 9: d1 = d1 + 10: if s ∈ / TAi then 11: d2 = d2 + 12: if Leaf(s , TNi ) < Leaf(s , TAi ).t1 then 13: d3 = d3 + 14: if d1 > t2 then output s is nonself 15: else if d2 > t3 then output s is self 16: else if d3 t4 > then output s is nonself 17: else output s is self 5.2 Thử nghiệm 5.2.1 Cơ sở liệu Chúng sử dụng hai liệu thử nghiệm NetFlow TU Tương tự công bố trước, sử dụng đặc trưng NetFlow cho thử nghiệm 1, 5, 6, 7; đặc đặc trưng NetFlow cho thử nghiệm 3; đặc trưng UT cho thử nghiệm Bảng 5.1: Các đặc trưng cho NIDS Thử nghiệm 2, Cơ sở liệu NetFlow NetFlow 5, 6, UT NetFlow Đặc trưng Packets, Octets, Duration, Flags Packets, Octets, Duration, Scr_port, Dst_port, Flags, IP protocol Packets, Octets, Duration, Flags Packets, Octets, Duration, Flags 5.2.2 Tiền xử lý liệu Phương pháp tiền xử lý cho tính tập liệu huấn luyện bao gồm hai bước Bước chuyển đổi tất thuộc tính thành chuỗi nhị phân Sau bước này, tất thuộc tính liệu bình thường bất thường dạng nhị phân Bước thứ hai để ghép chuỗi nhị phân biểu diễn thuộc tính lại với Sau bước này, tập liệu huấn luyện chứa xâu nhị phân độ dài Trong giai đoạn phát hiện, thuộc tính liệu cần phát chuyển đổi thành 20 chuỗi nhị phân sử dụng ánh xạ liệu huấn luyện Nếu giá trị thuộc tính khơng có phạm vi tương ứng với miền giá trị liệu huấn luyện, dạng biểu diễn nhị phân chọn ngẫu nhiên Ví dụ 5.1 Cho tập liệu huấn luyện gồm flow hai thuộc tính S = {N, A}, với N = {n1 = (1; 8); n2 = (0.5; 6)} A = {a1 = (1; 9); a2 = (1; 6), a3 = (0.5; 9)} Phạm vi thuộc tính thứ hai tương ứng {0.5; 1} {6; 8;9} Do đó, sử dụng bit (hai bit) để mã hóa thuộc tính (thứ hai) Một ánh xạ dãy số {0.5;1} {6; 8; 9} chuyển đổi tương ứng thành xâu nhị phân {0; 1} {00; 01; 10} Cuối cùng, tập huấn luyện chứa xâu có độ dài S = {N, A}, với N = {n1 = 101; n2 = 000} A = {a1 = 110; a2 = 100, a3 = 010} Giả sử flow s = (2; 8) liệu test Thuộc tính thứ (2 ∈ / {0.5; 1}) mã hóa cách ngẫu nhiên hai giá trị Trong đó, thuộc tính thứ hai (8 ∈ {6; 8; 9}) nên mã hóa thành 01 Cuối cùng, dạng nhị phân xâu s 001 101 5.2.3 Mêtric hiệu suất Phân phối giá trị tham số số lượng flow cho thử nghiệm trình bày Bảng 5.2 Bảng Thử nghiệm 5.2: Phân phối giá trị tham số flow cho thử nghiệm Flow bình thường Flow công r t1 t2 t3 t4 105,033 24,538 49 10 59,980 cho huấn 5,952 cho huấn 65 10 14 luyện, 45,053 cho luyện, 18,586 cho phát phát 59,980 cho huấn 5,952 cho huấn 53 12 16 luyện, 45,053 cho luyện, 18,586 cho phát phát 5,968 10,000 41 10 10 70,022 for training, 16,359 for training, 49 14 37 11 35,011 for testing 8,179 for testing 52,516 for training, 12,269 for training, 48 12 19 52,517 for testing 12,269 for testing 35,011 for training, 8,179 for training, 46 11 30 70,022 for testing 16,359 for testing Chúng sử dụng kỹ thuật 10-fold cross-validation để đánh giá cách tiếp cận thử nghiệm Trong thử nghiệm 2, 5-7, sử dụng phương pháp 21 hold-out validation 5.2.4 Hiệu suất Bảng 5.3 minh họa kết cho thử nghiệm Chúng so sánh hiệu suất PSA2 với số thuật tốn khác cơng bố gần với vài thuật tốn khác cơng cụ WEKA (phiên 3.6) Kết thử nghiệm cho thấy PSA2 cho hiệu suất tốt thiết lập giá trị (10, 5, 7, 8, 9) cho tham số quintuple (r, t1 , t2 , t3 , t4 ), tỉ lệ lỗi 1.46% tỉ lệ xác đạt cao đến 98.79% Hơn nữa, tỉ lệ phát xếp thứ hai với 99.76% BBNN SVM có tỉ lệ phát cao tỉ lệ lỗi chúng so sánh với PSA2 Có thể thấy rằng, kết từ thử nghiệm cho thấy PSA2 nhanh so với bốn thuật toán đề xuất Jadidi (2013) ba số liệu DR, ACC FAR PSA2 huấn luyện liệu khơng có nhãn nên sử dụng 10% tập liệu gán nhãn gồm 5998 công 595 flow loại thường cho giai đoạn huấn luyện thử nghiệm Trong đó, thuật tốn khác sử dụng 100% liệu huấn luyện để huấn luyện, 90% liệu không gán nhãn sử dụng cho S4VM Kết từ thử nghiệm khẳng định tính hiệu PSA2 so với phương pháp đề xuất Jadidi (2015) Trong tất thử nghiệm, tỉ lệ lỗi PSA2 luôn nhỏ thuật toán khác Kết phần chứng minh phù hợp PSA2 cho NIDS 22 Bảng 5.3: So sánh thuật toán đề xuât PSA2 thuật toán khác Thuật toán ACC DR FAR 0.9879 0.9682 0.9273 0.9344 0.9468 0.9614 0.6777 0.9943 0.9941 0.9977 0.9992 0.9992 0.9975 0.9974 0.9974 0.9975 0.9976 0.9977 0.0146 0.0514 0.1223 0.1071 0.0839 0.0871 0.5116 0.0064 0.0067 0.9896 0.9812 0.9796 0.9763 0.9672 0.9655 0.9309 0.7596 0.9676 0.9645 0.9622 0.9564 0.9369 Thử nghiệm PSA2 BBNN SVM (linear) SVM (polynomial) SVM (RBF) SVM (sigmoid) Naive Bayes Random Forest Random Tree Thử nghiệm PSA2 PSOGSA-based MLP Cuckoo-based MLP GSA-based MLP PSO-based MLP EBP-based MLP Random Forest Random Tree 0.0013 0.0119 0.0133 0.0155 0.0203 0.0315 0.7634 0.1771 0.0001 Thử nghiệm PSA2 (10% labelled data) S4VM (10% labelled, 90% unlabelled data) Random Forest (10% labelled data) Random Tree (10% labelled data) Thử nghiệm PSA2 Naive Bayes SVM (linear) SVM (polynomial) SVM (RBF) SVM (sigmoid) Random Forest Random Tree Thử nghiệm PSA2 Random Forest Thử nghiệm PSA2 Random Forest Thử nghiệm PSA2 Random Forest 0.9781 0.9626 0.0157 0.9196 0.0384 0.7157 0.0421 0.0063 0.7151 0.0400 0.0065 0.9757 0.6832 0.7315 0.7143 0.6263 0.6263 0.9777 0.9766 0.9634 0.9972 1.0000 0.8788 1.0000 1.0000 0.9675 0.9664 0.0035 0.8668 0.7185 0.5613 0.9998 1.0000 0.0052 0.0062 0.9845 0.9979 0.0186 0.9818 0.9997 0.0868 0.9961 0.9915 0.0028 0.9870 0.9998 0.0636 0.9847 0.9979 0.0183 0.9901 0.9999 0.0490 23 KẾT LUẬN Đóng góp luận án Đề xuất dạng biểu diễn vòng tròn, thay tuyến tính, cho liệu dò nhằm đạt hiệu phát tốt Đề xuất thuật toán PNSA kết hợp hai phương pháp chọn lọc âm tính dương tính Thuật tốn thử nghiệm chứng minh tính đắn Đề xuất thuật tốn sinh tập dò tối ưu (đầy đủ, khơng dư thừa) rời rạc Đề xuất thuật toán Chunk-NSA cải tiến NSA cho thời gian huấn luyện tuyến tính với liệu đầu vào Đề xuất thuật toán PSA2 cải tiến PSA dùng hai nhãn liệu kỹ thuận thống kê đơn giản Hướng phát triển Tác giả cho việc kết hợp thuật toán đề xuất với phương pháp học máy khác mang lại hiệu phát tốt Nghiên cứu phương pháp tối ưu tham số, lựa chọn hàm mục tiêu phù hợp ý tưởng hay Ngoài ra, cải tiến thuật tốn đề xuất để áp dụng tập liệu công mạng khác hướng nghiên cứu tương lai Danh mục cơng trình cơng bố A1 N V Truong and P D Lam, “Improving negative selection algorithm in artificial immune systems for computer virus detection,” Journal of Science and Technology, Thai Nguyen University, 72(06):53–58, 2010 A2 N V Truong, V D Quang and T V Ha, “A fast r-chunk detector-based negative selection algorithm,” Journal of Science and Technology, Thai Nguyen University,90(02):55– 58, 2012 A3 N V Truong and T V Ha, “Another look at r-chunk detector-based negative selection algorithm,” Journal of Science and Technology, Thai Nguyen University, 102(02):45– 50, 2013 24 A4 N V Truong, N X Hoai, and L C Mai, “A Novel Combination of Negative and Positive Selection in Artificial Immune Systems,” Vietnam National University, Hanoi Journal of Science: Computer Science and Communication Engineering, 31(1):22–31, 2015 A5 N V Truong, P D Lam, and V D Quang, “Some Improvements of Selection Algorithms for Spam Email Filtering,” Journal of Science and Technology, Thai Nguyen University, 151(06):85–91, 2016 A6 N V Truong, N X Hoai, “An improved positive selection algorithm for flow-based intrusion detection,” Proceedings of the The 2nd National Conference on Fundamental and Applied IT Research (FAIR), 2019 (Accepted) ... khác để xây dựng hệ IDS tin cậy Một phương pháp dựa trí tuệ tính tốn cho phát xâm nhập trội gần hệ miễn dịch nhân tạo (AIS), có nguồn gốc từ hệ miễn dịch sinh học Thuật tốn chọn lọc âm tính (NSA)... Luận án nghiên cứu thuật toán tối ưu để sinh dò theo nghĩa tốc độ thực nhanh huấn luyện kiểm tra Nghiên cứu đề xuất mơ hình hệ phát xâm nhập mạng dựa hệ miễn dịch nhân tạo để phát công, loại biết... Chương HỆ MIỄN DỊCH NHÂN TẠO LAI CHO AN NINH MẠNG 5.1 Thuật tốn lai chọn lọc dương tính dò r-chunk Cho trước , r, tập liệu bình thường N ⊂ Σ , tập liệu bất thường A ⊂ Σ Thuật toán 5.1 5.3 tạo self

Ngày đăng: 22/08/2019, 06:48

Tài liệu cùng người dùng

Tài liệu liên quan