Chương 1: Giới thiệu về đề tài Chương 2: Cơ sở lý thuyết giới thiệu các kỹ thuật máy học bao gồm các kỹ thuật học máy đơn, các kỹ thuật kết hợp và các kỹ thuật học sâu. Giới thiệu về các tập dữ liệu, chỉ số đánh giá hiệu năng về máy học cho IDS Chương 3: Đề xuất các giải pháp kỹ thuật học truyền thống, kỹ thuật học sâu và kỹ thuật kết hợp Chương 4: Kết quả thực nghiệm được thực hiện dựa trên tập dữ liệu UNSW- NB15 đánh giá kết quả thực nghiệm trên các giải pháp đã đề xuất Chương 5: Kết luận 6 CHƯƠNG 2. Các kỹ thuật máy học Học máy (Machine Learnning - ML) [3] là kỹ thuật thiết kế và phát triển các thuật toán cho phép máy tính đánh giá hành vi dựa trên dữ liệu thực nghiệm, chẳng hạn như dữ liệu cảm biến hoặc cơ sở dữ liệu. Một chương trình học có thể tận dụng các mẫu (dữ liệu) để nắm bắt các đặc điểm quan tâm, dữ liệu có thể được xem như là ví dụ minh họa mối quan hệ giữa các biến quan sát được.
Trọng tâm chính của nghiên cứu học máy là tự động học cách nhận ra các mẫu phức tạp và đưa ra quyết định thông minh dựa trên dữ liệu. Học máy có thể được chia thành các nhánh như sau: học có giám sát, học nửa giám sát và học không giám sát. Học có giám sát (Supervised learning) [3] là quá trình học dùng đánh giá chéo 10-fold ban đầu hoàn toàn được gán nhãn từ trước. Học có giám sát sử dụng cho lớp bài toán kiểu tấn công và phân loại.
Với cách học này, kinh nghiệm được cho một cách tường minh dưới dạng đầu vào và đầu ra của hàm đích.1 mô tả kỹ thuật học có giám sát. Tập huấn luyện Thuật toán học Dữ liệu vào h Dự đoán Hình Hình1.1Mô Môhình hìnhhọc họccó cógiám giámsát sát Một số kỹ thuật học có giám sát thường được quan tâm là máy véc-tơ hỗ trợ, cây quyết định, mạng thần kinh nhân tạo, lập trình di truyền … Kỹ thuật học nửa giám sát [3] là kỹ thuật học sử dụng cả dữ liệu đã gán nhãn và chưa gán nhãn để huấn luyện - điển hình là một lượng nhỏ dữ liệu có gán nhãn cùng 7 với lượng lớn dữ liệu chưa gán nhãn. Nhiều nhà nghiên cứu nhận thấy dữ liệu không gán nhãn, khi được sử dụng kết hợp với một lượng nhỏ dữ liệu có gán nhãn, có thể cải thiện đáng kể độ chính xác. Trong kỹ thuật học có giám sát, để gán nhãn dữ liệu cho bài toán học máy thường đòi hỏi một chuyên viên có kỹ năng để phân loại bằng tay các mẫu huấn luyện.
Trong khi đó, chi phí gán nhãn bằng tay cao, không khả thi. Với phương pháp kết hợp cả mẫu dữ liệu được gán nhãn và chưa gán nhãn sẽ đạt được hiệu quả cao hơn. Kỹ thuật học không giám sát. Trong kỹ thuật học không giám sát [3], tập dữ liệu được cho dưới dạng D={(x1, x2, …, xn)} với (x1, x2, …, xn) với vector đặc trưng của mẫu huấn luyện.
Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau. Như vậy, việc học không giám sát, số lớp phân loại chưa biết trước, và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại khác nhau. Kỹ thuật máy học bao gồm kỹ thuật máy học đơn, kỹ thuật máy học kết hợp và kỹ thuật học sâu. Các thuật toán học máy phổ biến được sử dụng trong IDS được hiển thị trong Hình 2.
Phân loại các thuật toán học máy 9 2. Các kỹ thuật máy học đơn 2. Máy véc-tơ hỗ trợ Máy véc-tơ hỗ trợ (Support Vector Machines - SVM là một giải thuật máy học dựa trên lý thuyết học thống kê do Vapnik (1998) đề xuất. Bài toán cơ bản của SVM là bài toán kiểu tấn công loại 2 lớp: Cho trước n điểm trong không gian d chiều (mỗi điểm thuộc vào một lớp ký hiệu là +1 hoặc - 1, mục đích của giải thuật SVM là tìm một siêu phẳng (hyperplane) phân hoạch tối ưu cho phép chia các điểm này thành hai phần sao cho các điểm cùng một lớp nằm về một phía với siêu phẳng này.
Xét tập dữ liệu mẫu có thể tách rời tuyến tính {(x1, y1), (x2, y2), ., (xn, yn)} với xi Rd và yi {±1}. Siêu phẳng tối ưu phân tập dữ liệu này thành hai lớp là siêu phẳng có thể tách rời dữ liệu thành hai lớp riêng biệt với lề (margin) lớn nhất. Tức là, cần tìm siêu phẳng H: y = w.x + b = 0 và hai siêu phẳng H1, H2 hỗ trợ song song với H và có cùng khoảng cách đến H. Với điều kiện không có phần tử nào của tập mẫu nằm giữa H1 và H2, khi đó: w.x + b ≤ - 1 với y = - 1, kết hợp ta có y (w.
Khoảng cách của siêu phẳng H1 và H2 đến H là: ||𝑤|| = √𝑤12 + 𝑤22 + ⋯ + 𝑤𝑛2 Ta cần tìm siêu phẳng H với lề lớn nhất, tức là giải bài toán tối ưu tìm min||𝑤|| 𝑤,𝑏 với ràng buộc y (w. Từ đó giải để tìm được các giá trị tối ưu cho w, b. Về sau, việc phân loại một mẫu mới chỉ là việc kiểm tra hàm dấu sign (w. Lời giải tìm siêu phẳng tối ưu trên có thể mở rộng trong trường hợp dữ liệu không thể tách rời tuyến tính bằng cách ánh xạ dữ liệu vào một không gian có số chiều lớn hơn, qua việc sử dụng một hàm nhân như: Polynomial, Laplacian, Sigmoid, Gaussian, … 2.
Mạng nơ-ron nhân tạo Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) là mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao 10 gồm số lượng lớn các nơ-ron được gắn kết để xử lý thông tin. ANN giống như bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data). ANN được huấn luyện hay được học theo 2 kỹ thuật cơ bản là học có giám sát và học không giám sát. - Học có giám sát: quá trình huấn luyện được lặp lại cho đến khi kết quả (output) của ANN đạt được giá trị mong muốn đã biết.
Điển hình cho kỹ thuật này là mạng nơ-ron lan truyền ngược (back - propagation). - Học không giám sát: không sử dụng tri thức bên ngoài trong quá trình học, nên còn gọi là tự tổ chức (Self - Organizing). Mạng nơ-ron điển hình được huấn luyện theo kiểu không giám sát là Self - Organizing Map (SOM). Quá trình học có giám sát của ANN được mô tả như sau: 1.
Tính giá trị output. So sánh output với giá trị mong muốn (desired value). Nếu chưa đạt giá trị mong muốn thì chỉnh trọng số (weights) và tính lại output. Quá trình học có giám sát của ANN.
Giả sử sau khi tính toán từ các input value đã cho, ta có output là Y. Giá trị mong muốn (desired) là Z đã biết trước. Sự chênh lệch giữa Y và kết quả mong muốn Z được biểu diễn bởi tham số delta (gọi là lỗi) = Z - Y. Mục đích của việc học 11 là làm sao cho delta càng nhỏ càng tốt (nếu delta =0 là hoàn hảo nhất) bằng cách điều chỉnh trọng số (weights) của các dữ liệu vào.
delta = Zj - Yj delta Zj x1 w1j x2 w2j Nơ ron ∫ Yj j = wijxi Hàm chuyển giao xi wij Hình 2. Giảm thiểu tham số delta bằng cách điều chỉnh trọng số. Cây quyết định Cây quyết định (Decision Tree - DT), với những ưu điểm của mình được đánh giá là một công cụ mạnh, phổ biến và đặc biệt thích hợp cho data mining nói chung và kiểu tấn công dữ liệu nói riêng [4]. Có thể kể ra những ưu điểm của cây quyết định như: xây dựng tương đối nhanh; đơn giản, dễ hiểu.
Hơn nữa các cây có thể dễ dàng được chuyển đổi sang các câu lệnh SQL để có thể đượ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 kiểu tấn công dựa trên cây quyết định đạt được sự tương tự và đôi khi là chính xác hơn so với các phương pháp kiểu tấn công khác [5]. Cây quyết định là biểu đồ phát triển có cấu trúc dạng cây, như mô tả trong Hình 2.5: Loại giao thức TCP UDP ICMP Loại dịch vụ Tấn công Cờ HTTP FTP S0 S1 Bình Tấn công Bình Tấn công thường thường Hình 2. Cây quyết định.
12 Trong cây quyết định: - Gốc: là node trên cùng của cây. - Node trong: biểu diễn một kiểm tra trên một thuộc tính đơn. - Nhánh: biểu diễn các kết quả của kiểm tra trên node trong. - Node lá: biểu diễn lớp hay sự phân phối lớp.
Để kiểu tấn công mẫu dữ liệu chưa biết, giá trị các thuộc tính của mẫu được đưa vào kiểm tra trên cây quyết định. Mỗi mẫu tương ứng có một đường đi từ gốc đến lá và lá biểu diễn dự đoán giá trị kiểu tấn công mẫu đó. Naïve Bayes Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau: 𝑃(𝑋𝑌) 𝑃(𝑋 |𝑌)𝑃(𝑌) 𝑃(𝑌|𝑋 ) = = 𝑃 (𝑋 ) 𝑃 (𝑋 ) Áp dụng trong bài toán phân loại, các dữ kiện gồm có: D: tập dữ liệu huấn luyện đã được véc-tơ hóa dưới dạng 𝑥⃗ = (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) Ci: kiểu tấn công i, với i = {1, 2, …, m}. Các thuộc tính độc lập điều kiện đôi một với nhau.
Theo định lý Bayes: 𝑃(𝑋 |𝐶𝑖 )𝑃(𝐶𝑖 ) 𝑃(𝐶𝑖 |𝑋) = 𝑃 (𝑋 ) Theo tính chất độc lập điều kiện: 𝑛 𝑃(𝑋|𝐶𝑖 ) = ∏ 𝑃(𝑥𝑘 |𝐶𝑖 ) 𝑘=1 Trong đó: - 𝑃(𝐶𝑖 |𝑋) là xác suất thuộc kiểu tấn công i khi biết trước mẫu X. - 𝑃(𝐶𝑖 ) xác suất là kiểu tấn công i. - 𝑃(𝑥𝑘 |𝐶𝑖 ) xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc kiểu tấn công i. Các bước thực hiện thuật toán Naïve Bayes: Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính 𝑃 (𝐶𝑖 ) và 𝑃(𝑥𝑘 |𝐶𝑖 ) 13 Bước 2: Kiểu tấn công 𝑋 𝑛𝑒𝑤 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 ), ta cần tính xác suất thuộc từng kiểu tấn công khi đã biết trước Xnew.
Xnew được gán vào lớp có xác suất lớn nhất theo công thức 𝑛 max (𝑃(𝐶𝑖 ) ∏ 𝑃(𝑥𝑘 |𝐶𝑖 )) 𝐶𝑖 ∈𝐶 𝑘=1 2.