24
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- NGUYỄN ĐỨC HIỂN MÁY VÉCTƠ HỖ TRỢ ĐA LỚP VÀ ỨNG DỤNG PHÁT HIỆN TẤN CÔNG MẠNG Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01 TÓM TẮT LUẬN VĂN THẠC SỸ KĨ THUẬT HÀ NỘI NĂM 2012

Ttlv Ng Duc Hien

Embed Size (px)

DESCRIPTION

svm

Citation preview

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG ---------------------------------------

NGUYỄN ĐỨC HIỂN

MÁY VÉCTƠ HỖ TRỢ ĐA LỚP VÀ ỨNG DỤNG PHÁT HIỆN TẤN CÔNG MẠNG

Chuyên ngành: KHOA HỌC MÁY TÍNH

Mã số: 60.48.01

TÓM TẮT LUẬN VĂN THẠC SỸ KĨ THUẬT

HÀ NỘI – NĂM 2012

Luận văn được hoàn thành tại:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: PGS.TS. NGÔ QUỐC TẠO

Phản biện 1: TS. Trần Nguyên Ngọc.

Phản biện 2: PGS. TS. Đỗ Năng Toàn.

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại

Học viện Công nghệ Bưu chính Viễn thông

Vào lúc: ....giờ.....ngày 20 tháng 01 năm 2013

Có thể tìm hiểu luận văn tại:

- Thư viện của Học viện Công nghệ Bưu chính Viễn thông

1

I. MỞ ĐẦU

- Lý do chọn đề tài: Mặc dù ra đời chưa lâu nhưng mạng Internet đã phát triển mạnh mẽ và có ảnh hưởng sâu rộng trong tất cả các lĩnh vực của đời sống con người. Bên cạnh những lợi ích to lớn thì nó cũng mang lại là những phiền phức và nguy cơ không nhỏ cho các tổ chức và người dùng kết nối vào Internet, trong đó có các nguy cơ đến từ tấn công mạng. Số lượng các cuộc tấn công mạng trên toàn thế giới không ngừng tăng về số lượng cũng như mức độ nguy hiểm của chúng. Các cuộc tấn công mạng có thể gây ra những hậu quả nghiêm trọng về kinh tế, chính trị thậm chí ảnh hưởng tới an ninh của một quốc gia. Việc phát hiện và xử lý thủ phạm gây ra các cuộc tấn công là cực kì khó khăn. Giải pháp kỹ thuật phổ biến cho vấn đề này là phát hiện sớm các cuộc tấn công mạng để từ đó có giải pháp thích hợp xử lý chúng.

- Những vấn đề còn tồn tại: Rất nhiều kỹ thuật đã được áp dụng để phát hiện một kết nối mạng là tấn công mạng hay không với hiệu quả khá cao, chẳng hạn như SVM, iSVM, Neural network… Nhưng thực tế luôn đòi hỏi độ chính xác phải cao hơn nữa.

- Mục đích nghiên cứu: Mục đích của đề tài là nghiên cứu kỹ thuật M-SVM ứng dụng vào việc phát hiện và phân loại tấn công trong không gian mạng để nâng cao hơn nữa độ chính xác của hệ thống phát hiện tấn công mạng.

- Đối tượng và phạm vi nghiên cứu: Kỹ thuật M-SVM và ứng dụng M-SVM vào việc phân loại các kết nối mạng trên bộ dữ liệu KDD cup 99.

Trong chương trình đánh giá phát hiện tấn công mạng của Cơ quan Quản lý Nghiên cứu Dự Án Bộ quốc phòng Mỹ (DARPA), một môi trường đã được thiết lập để thu được các dữ liệu thô về TCP/IP dump cho một mạng được mô phỏng giống như mạng LAN của Không lực Hoa Kỳ. Với mỗi kết nối TCP/IP, 41 đặc trưng số và phi số được trích xuất. Dữ liệu được sử dụng trong cuộc thi kdd cup 1999 là một phiên bản của bộ dữ liệu này. Các cuộc tấn công thuộc về bốn loại chính: DOS, R2L, U2R, Probing. Dữ liệu kdd cup 1999 có thể tải từ địa chỉ:

http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html.

2

- Phương pháp nghiên cứu: Nghiên cứu và cài đặt kỹ thuật Máy véc tơ hỗ trợ đa lớp. Thu thập và tiền xử lý các bộ dữ liệu mẫu hiện có về tấn công mạng. Áp dụng SVMs trên dữ liệu đã xử lý, so sánh, đánh giá hiệu quả của kỹ thuật SVMs trong việc phát hiện tấn công mạng.

II. NỘI DUNG

Chương 1 - TỔNG QUAN VỀ PHÁT HIỆN TẤN CÔNG MẠNG

1.1. Tấn công mạng

1.1.1. Khái niệm tấn công mạng

Có rất nhiều cách hiểu khác nhau về tấn công mạng, theo Sandeep Gutta thì tấn công mạng (cyber attack hay intrusion) có thể được định nghĩa là một loạt các hoạt động máy tính nguy hiểm đe dọa và làm tổn hại tới sự bảo mật và tính toàn vẹc của một máy thính hay hệ thống mạng. Tấn công mạng phá vỡ hoạt động bình thường của hệ thống máy tính và có thể truy nhập trái phép hoặc phá hủy thông trin trong các hệ thống máy tính [11].

Theo một cách khác tấn công mạng có thể được định nghĩa là bất kì hành động nào cố gắng làm tổn hại sự toàn vẹn, bí mật, tính sẵn sàng của một tài nguyên hoặc đi ngược lại mục tiêu bảo mật của một tài nguyên nào đó.

1.1.2. Các kiểu tấn công mạng

Có rất nhiều kiểu tấn công mạng nhưng ta có thể phân chúng vào bốn loại chính như sau :

DoS - Denial of Service attack : Tấn công kiểu DoS là những tấn công làm cho tài nguyên máy tính (ví dụ Web server) không khả dụng với người dùng thực sự [11]. Dạng phổ biến nhất của tấn DoS là làm cho tài nguyên máy tính quá bận vì bị sử dụng toàn bộ với rất nhiều yêu cầu vô ích đến mức người dùng thực sự không thể sử dụng nó. Có rất nhiều biến thể của tấn công DoS bao gồm TCP-SYN Flood, ICMP/UDP Flood, Smurf, Ping of Death, Teardrop, Mailbomb, Apache2.

R2L - Remote to Local attack :Trong loại tấn công này, tin tặc cố gắng đạt được quyền truy cập khu vực 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,…

3

U2R - User to Root attack : Trong lớp tấn công này, tin tặc với quyền của một người dùng bình thường cố gắng để đạt được quyền truy nhập cao nhất (đặc quyền của người quản trị hệ thống) 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.

Probe – Surveillance : Trong loại tấn công này, tin tặc 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. Điều này có phần giống như theo dõi, giám sát 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. Bằng việc này, tin tặc có thể lấy được thông tin về cổng đang mở, dịch vụ đang chạy, và rất nhiều thông tin chi tiết nhạy cảm khác như địa chỉ IP, địa chỉ MAC, các luật tường lửa đang sử dụng, …

1.2. Bài toán phát hiện xâm nhập mạng Khi một máy tính hay một hệ thống hoạt động trên môi trường mạng, sẽ

có rất nhiều kết nối giữa nó và các máy tính, các thiết bị khác. Trong những kết nối đó có những kết nối đang tìm cách tấn công hệ thống để đạt được mục đích nào đó. Bản thân mỗi máy tính đều có những cơ chế để tự bảo vệ nhưng nó có những điểm yếu và thực sự không đủ sức chống lại các cuộc tấn công mới với mức độ nguy hiểm ngày càng lớn hơn. Bên cạnh đó các máy tính hay hệ thống cũng phải chịu các nguy cơ đến từ các hành vi vi phạm chính sách an toàn và bảo mật công nghệ thông tin một cách vô tình hay hữu ý. Bài toán được đặt ra là cần có cơ chế để phát hiện sớm các cuộc tấn công để từ đó có những biện pháp ngăn chặn hoặc giảm thiểu tối đa những thiệt hại, tác động do các cuộc tấn công gây ra.

1.2.1. Phát hiện xâm nhập mạng

Phát hiện xâm nhập mạng là quá trình theo dõi các sự kiện xảy ra trong một hệ thống máy tính hoặc mạng máy tính và phân tích chúng để tìm ra các dấu hiệu sự cố có thể xảy ra, đó là các vi phạm hoặc các mối đe dọa sắp xảy ra vi phạm các chính sách bảo mật máy tính, các chính sách sử dụng được chấp nhận hoặc thực hành bảo mật tiêu chuẩn.

4

1.2.2. Phân loại hệ thống phát hiện xâm nhập mạng

Các IDS có thể giám sát các sự kiện ở 3 cấp độ khác nhau : mạng (network), máy trạm (host), ứng dụng (application). Chúng có thể phân tích các sự kiện bằng việc sử dụng một trong các phương pháp : dựa trên dấu hiệu (signature-based), dựa trên dị thường (anomaly-based) và phân tích trạng thái giao thức (statefull protocol analysic). Bên cạnh việc theo dõi và phân tích các sự kiện để nhận dạng các hoạt động không mong muốn, các loại cộng nghệ IDS thường thực hiện các chức năng sau :

- Ghi lại thông tin liên quan tới các sự kiện được quan sát.

- Thông báo cho quản trị hệ thống về các sự kiện quan trọng quan sát được.

- Đưa ra các báo cáo về các sự kiện đã quan sát hoặc cung cấp chi tiết về các sự kiện đặc biệt cần được quan tâm.

Có hai cách để phân loại IDS đó là dựa trên phương pháp giám sát và dựa trên phương pháp phân tích của IDS.

Dựa trên phương pháp giám sát

Hệ thống phát hiện xâm nhập dựa trên mạng (Network-based Intrution Detection System - NIDS) : Đây là loại phổ biến nhất của sản phẩm thương mại. Cơ chế phát hiện tấn công của nó là giám sát và theo dõi các gói tin mạng.

Điểm mạnh của IDS kiểu này là chỉ với một số ít các IDS được đặt ở vị trí tốt có thể giám sát được một mạng lớn. Việc triển khai IDS dựa trên mạng ít tác động tới hiệu suất của mạng hiện có. Chúng có thể tạo ra tính an toàn cao chống lại các cuộc tấn công.

Điểm yếu của IDS dựa trên mạng là nó khó xử lý toàn bộ các gói tin trong một mạng lớn hoặc bận.

Hệ thống phát hiện xâm nhập dựa trên máy trạm (Host-based Intrution Detection System – HIDS) phân tích hoạt động trên một máy tính riêng biệt. Vì vậy chúng phải thu thập thông tin từ máy trạm mà chúng đang giám sát. Điều này cho phép một IDS phân tích các hoạt động trên trạm rất tốt và quyết định chính xác tiến trình và user nào đang thực hiện các hoạt động nguy hại trên hệ điều hành.

5

Trong các tổ chức đã triển khai NIDS thì việc triển khai HIDS có thể là một đề xuất để tăng thêm mức bảo vệ..

Dựa trên phương pháp phân tích Hệ thống phát hiện xâm nhập dựa trên dấu hiệu (Signature-based IDS).

Dấu hiệu (signature) có thể là các thông tin về các kết nối nguy hiểm đã biết trước. Phát hiện dựa trên dấu hiệu (signature-based detection) là quá trình so sánh signature với sự kiện quan sát được để nhận dạng sự cố có thể xảy ra.

Phát hiện dựa trên dấu hiệu là phương pháp phát hiện đơn giản nhất bởi vì nó chỉ so sánh hoạt động hiện thời, với danh sách các dấu hiệu bằng hoạt động so sách chuỗi. Ưu thế của phương pháp này là rất hiệu quả trong việc phát hiện sự tấn công mà không tạo ra số lượng lớn các cảnh báo sai. Nhược điểm của nó là chỉ phát hiện được các cuộc tấn công mà nó đã biết trong quá khứ hay nói khác đi là đã có trong cơ sở dữ liệu signature, do vậy hệ thống phải liên tục cập nhật các dấu hiệu của các cuộc tấn công mới.

Hệ thống phát hiện xâm nhập dựa trên dị thường (Anomaly-based IDS) : Phát hiện dựa trên dấu hiệu dị thường là quá trình so sánh các định nghĩa của những gì được coi hoạt động bình thường so với các sự kiện quan sát để xác định độ lệch đáng kể (significal deviation). IDS sử dụng phát hiện dựa trên dị thường có những cấu hình (profile) đại diện cho hành vi bình thường của người sử dụng, máy chủ, kết nối mạng hay các ứng dụng... Các cấu hình được phát triển bằng việc quan sát các đặc trưng của các hoạt động thông thường trong một khoảng thời gian.

Lợi ích chủ yếu của phương thức phát hiện dựa trên dị thường là nó rất hiệu quả trong việc phát hiện các mối nguy hiểm không được biết trước đó.

1.3. Một số kỹ thuật phát hiện tấn công mạng

1.3.2. Kỹ thuật Haystack

Haystack sử dụng thuật toán phát hiện dị thường theo thống kê, nó được thông qua như như thành phần cốt lõi của việc giám sát máy trạm trong hệ thống phát hiện xâm nhập phân tán (DIDS) ( Axelsson, 1999). Thuật toán này phân tích hoạt động của người dùng tương ứng với một quá trình gồm 4 bước :

6

Bước thứ nhất, thuật toán tạo ra véctơ phiêm giao dịch (session) đại diện cho các hoạt động của người dụng với phiên làm việc riêng biệt. Véctơ session X = <x1, x2 , …., xn> biểu diễn số lượng của các thuộc tính đa dạng được sử dụng để đại diện cho hoạt động của người dùng trong phiên làm việc đơn. Ví dụ, các thuộc tính bao gồm thời gian phiên làm việc, số lượng file được mở để đọc.

Bước thứ hai, thuật toán tạo ra một véctơ Bernoulli để đại diện cho các thuộc tính vượt ra ngoài khoảng cho một phiên làm việc riêng biệt. Một véctơ ngưỡng T = <t1, t2,…,tn>, trong đó ti là một bộ của mẫu <ti,min, ti.max> được sử dụng để hỗ trợ bước này. Véctơ ngưỡng được lưu trữ trong một cấu hình cá nhân. Véctơ Bernoulli B=<b1, b2, …, bn> được tạo ra sao cho bi được thiết lập là 1 nếu xi rơi ra khỏi phạm vi ti và bi được thiết lập bằng 0 trong trường hợp còn lại.

Bước thứ ba, thuật toán tạo ra một điểm số trọng số xâm nhập cho mỗi loại xâm nhập riêng biệt, từ véctơ Bernoulli và véctơ trọng số xâm nhập. Mỗi nhóm và mỗi cặp loại xâm nhập có một véctơ trọng số xâm nhập W = <w1, w2, …,wn>, trong đó mỗi wi liên quan tới tầm quan trọng của thuộc tính thứ i trong véctơ Bernoulli để phát hiện kiểu xâm nhập riêng biệt. Điểm số trọng số xâm nhập đơn giản là tổng các trọng số wi, trong đó thuộc tính thứ i rơi ra khỏi phạm vi ti. Đó là,

Điểm trọng số xâm nhập = ∑ 푏 푤

Bước cuối cùng, thuật toán tạo ra một thương số khả nghi đại diện cho mức độ khả nghi của phiên làm việc này, nó được so sánh với tất cả các phiên làm việc khác cho một loại xâm nhập riêng biệt. Đặc biệt, thương số khả nghi là xác suất mà điểm số trọng số xâm nhập của phiên làm việc ngẫu nhiên ít hơn hoạc bằng điểm số trọng số xâm nhập được tính toán ở bước trước.

1.3.2. Kỹ thuật Neural Network.

Fox, Henning, Reed và Simmonian (1990) lần đầu tiên cố gắng mô hình hóa hệ thống và hành vi người dùng bằng mạng nơron (neural nework). Lựa chọn mạng nơron của họ là bản đồ tự tổ chức Kohonen (Kohonen’s self-organizing map – Kohonen SOM), là một kiểu kỹ thuật học không giám sát, có

7

thể phát hiện ra cấu trúc cơ bản của dữ liệu mà không có mẫu trước về các hoạt động xâm nhập hay hoạt động bình thường.

Họ sử dụng SOM như một bộ phận giám sát chạy ngầm theo thời gian thực, báo động cho một hệ chuyên gia phức tạp hơn. Trong hệ thống mẫu đầu tiên của họ, 11 tham số hệ thống có thể sử dụng được từ dữ liệu thống kê hiệu suất của hệ thống được định nghĩa như đầu vào của mô hình SOM. Những tham số này bao gồm : CPU usage, paging activity, mailer activity, disk accesses, memory usage, average session time, number of users, absentee jobs, reads of help files, failed log-ins, multiple log-ins. Tuy nhiên, nghiên cứu của họ chỉ ra kết quả của duy nhất một chương trình mô phỏng tấn công virus, nó không đủ để đưa ra một kết luận quan trọng.

Trong một cố gắng áp dụng mạng nơron khác vào việc phát hiện dị thường, Ghosh, Wanken và Charron (1998) đề xuất sử dụng một mạng lan truyền ngược (back-propagation network) để giám sát các chương trình đang chạy. Một mạng lan truyền ngược được phát triển cho việc học có giám sát. Nó cần các mẫu hoạt động thông thường và xâm nhập (dữ liệu huấn luyện) để xây dựng mô hình phát hiện xâm nhập. Như một mạng bao gồm một lớp đầu vào, ít nhất một lớp ẩn (nơron không được kết nối trực tiếp với nốt đầu vào hoặc ra) và một lớp đầu ra. Thông thường, không có kết nối giữa các nơron trong cùng lớp hoặc giữa những nơron trong một lớp với những nơron trong lớp trước đó.

Chu kỳ huấn luyện của mạng lan truyền ngược diễn ra trong 2 giai đoạn. Trong giai đoạn thứ nhất, đầu vào được gửi tới mạng và được lan truyền tới đầu ra của mạng. Trong giai đoạn thứ hai, đầu ra thực tế của mạng được so sánh với 1 đầu ra tiêu chuẩn. Nếu véctơ không được chấp nhận, mạng cập nhật trọng số bắt đầu ở nơron đầu ra. Sau đó thay đổi trong các trọng số được tính toán cho lớp trước và đổ qua các lớp của nơron hướng về phía nơron đầu vào.

Ghosh và công sự đã đề xuất sử dụng đầu vào chương trình và bên trong chương trình như đầu vào của mạng lan truyền ngược. Một kết quả đáng chú ý là họ đã cải tiến hiệu quả phát hiện bằng việc sử dụng dữ liệu được tạo ngẫu nhiên như đầu vào dị thường. Bằng việc xem xét các dữ liệu được tạo một cách ngẫu nhiên, mạng nhận được nhiều dữ liệu huấn luyện hơn bổ sung cho dữ liệu huấn luyện thực tế.

8

Cũng giống như mô hình phát hiện dựa trên thống kê dị thường, việc quyết định các tham số đầu vào cho mạng nơron phát hiện dị thường là vấn đề khó khăn. Thêm vào đó, việc gán trọng số khởi tạo cho mạng nơron cũng là câu hỏi chưa được giải quyết. Kinh nghiệm của Ghosh và cộng sự đã chỉ ra rằng trọng số khởi tạo khác nhau có thể dẫn tới bộ phát hiện dị thường với hiệu quả khác nhau.

1.3.3. Kỹ thuật khai phá và phân tích dữ liệu kiểm toán.

Khai thác và phân tích dữ liệu kiểm toán ( Audit data analysis and mining – ADAM) đề xuất áp dụng các kỹ thuật khai phá dữ liệu vào việc khám phá các mẫu dị thường trong một lượng lớn dữ.

ADAM sử dụng vài kỹ thuật liên quan tới khai phá dữ liệu giúp phát hiện các hoạt động mạng bất thường như các luật kết hợp (association rules), bộ ước lượng giả Bayes (Pseudo Beyes estimator), Kỹ thuật thứ ba ADAM sử dụng là kỹ thuật phân lớp.

9

Chương 2 – MÁY VÉCTƠ HỖ TRỢ

2.1 Tổng quan về máy véctơ hỗ trợ

2.1.1. Giới thiệu máy véctơ hỗ trợ Máy véctơ hỗ trợ (Support vector machine – SVM) là một thuật toán học

máy nổi tiếng được sử dụng để giải quyết bài toán phân lớp. Thuật toán SVM ban đầu được phát minh bởi Vladimir N. Vapnik và thuật toán SVM tiêu chuẩn hiện nay được đề xuất bởi Vladimir N. Vapnik và Corinna Cortes năm 1995. SVM đã được áp dụng rất thành công trong việc giải quyết các vấn đề của thế giới thực như nhận dạng văn bản [9], nhận dạng hình ảnh [2], nhận dạng chữ viết tay [15], phân loại thư rác điện tử [6], phát hiện xâm nhập mạng [10],[12]…

Ban đầu thuật toán SVM được thiết kế cho bài toán phân lớp nhị phân. Ý tưởng chính của nó như sau :

Cho X= {xi} là tập các véctơ trong không RD và xi thuộc một trong hai lớp yi = -1 hoặc yi = +1. Ta có tập điểm dữ liệu huấn luyện được biểu diễn như sau :

{xi, yi} với i = 1…l, yi ∈ {-1, 1}, l là số điểm dữ liệu huấn luyện

Giả sử rằng dữ liệu là phân tách tuyến tính, nghĩa là ta có thể vẽ một đường thẳng trên đồ thị của x1 và x2 phân tách hai lớp khi D = 2 và một siêu phẳng trên đồ thị của x1, x2… xD phân tách hai lớp với D > 2.

Mục tiêu của SVM là xây dựng một siêu phẳng giữa hai lớp sao cho khoảng cách từ nó tới các điểm gần siêu phằng nhất của hai lớp là cực đại. Siêu phẳng có thể được mô tả bởi phương trình :

w . x + b = 0

trong đó:

. là phép nhân véctơ vô hướng.

w là véctơ pháp tuyến của siêu phẳng.

|| || là khoảng cách vuông góc từ siêu phẳng tới gốc tọa độ.

Véctơ hỗ trợ là những điểm dữ liệu gần siêu phẳng phân tách nhất.

10

Hình học véctơ chỉ ra rằng lề bằng ‖ ‖

và việc cực đại hóa nó với ràng

buộc (2.3) giống với việc tìm kiếm:

min ||w|| thỏa mãn yi(xi . w + b) - 1 ≥ 0 ∀i (2.6)

Khi đã tìm được w0, b0 thỏa mãn (2.6), một mẫu mới x’ sẽ được phân lớp bằng cách sử dụng mô hình:

Người ta chỉ ra rằng nếu các véctơ huấn luyện được phân tách mà không có lỗi bởi một siêu phẳng thì xác suất lỗi mắc phải trên một mẫu kiểm tra được giới hạn bởi tỉ lệ giữa giá trị kì vọng của số lượng véctơ hỗ trợ và số lượng véctơ huấn luyện [3] :

E[Pr(error)] ≤퐸[푆ố 푣é푐 푡ơ ℎỗ 푡푟ợợ]푆ố 푣é푐 푡ơ ℎ푢ấ푛 푙푢푦ệ푛

2.2. Mô hình SVM cho bài toán hai lớp

2.2.1. Mô hình primal

Cho X = {xi, i = 1,…,n} là một tập các véctơ trong không ℝ , và nhãn lớp của xi là yi ∈ Y = {-1,+1} . Ta có tập điểm dữ liệu huấn luyện được biểu diễn như sau:

T={(xi, yi) ; i = 1…n ; yi ∈ {-1, 1}}, trong đó n là số điểm dữ liệu huấn luyện.

Như đã trình bày trong phần 2.1.1, để cực đại hóa lề người ta cực tiểu hóa

||w||. Điều này cũng tương tự như cực tiểu hóa ‖푤‖ nhưng việc thay thế ||w||

với ‖푤‖ giúp bài toán có thể giải quyết dễ dàng hơn. Để xác định được bộ

phân lớp (w,b) người ta giải quyết bài toán tối ưu như sau:

푚푖푛 , ‖푤‖

thỏa mãn: yi(xi . w + b) - 1 ≥ 0 i, i=1,…,n. (2.2)

Bài toán (2.2) là một bài toán tối ưu dạng toàn phương.

Mô hình này thường được gọi là SVM biên cứng. Trong thực tế, ta thường sử dụng biên mềm bằng cách chấp nhận một số lượng nhỏ các mẫu

11

phân lớp sai trong giới hạn chấp nhận được. Việc này được thực hiện bằng cách thêm vào tham số nới lỏng không âm 휉 , i = 1, …n:

xi . w + b ≥ +1 - 휉 cho yi = +1 (2.3)

xi . w + b ≤ -1 - 휉 cho yi = -1 (2.4)

휉 ≥ 0 ∀ (2.5)

Có thể kết hợp hai phương trình trên thành:

yi(xi . w + b) – 1 + 휉 ≥ 0 với 휉 ≥ 0 ∀ (2.6)

Chúng ta có mô hình SVM biên mềm như sau:

min , 12‖푤‖ + 퐶 휉

sao cho: 푦 (푥 .푤 + 푏) − 1 + 휉 0 ∀푖 = 1, …n. (2.7)

2.2.2. Mô hình dual

Ta xét biểu thức Lagrange của bài toán tối ưu hóa (2.2):

L = L( , , ) = ‖푤‖ − ∑ 훼 [푦 (푤. 푥 + 푏) − 1] (2.8)

Trong đó, 훼 là nhân tử Lagrange. Ta cần tìm điểm yên ngựa (푤 ,푏 , 훼 ) bởi vì hàm Lagrange sẽ phải được cực tiểu hóa theo w và b, cực đại hóa theo 훼 không âm. Phương trình (2.8) có thể viết lại như sau:

L = L( , , ) = ‖푤‖ − ∑ 훼 푦 (푤. 푥 + 푏) + ∑ 훼 (2.10)

Áp dụng điều kiện Karush-Kuhn-Tucker, lấy vi phân từng phần LP theo w và b và cho các đạo hàm bằng 0 ta có:

= 0 ⇒ w = ∑ 훼 푦 푥 (2.11)

= 0 ⇒ ∑ 훼 푦 = 0 (2.12)

Thay phương trình (2.11) và (2.12) vào phương trình (2.10) ta thu được công thức mới phụ thuộc vào α:

LD = ∑ 훼 - ∑ 훼, 훼 푦 푦 푥 푥

(2.13)

12

= ∑ 훼 - ∑ 훼, 퐻 훼 với 퐻 = 푦 푦 푥 . 푥 (2.14)

= ∑ 훼 - ∑ 훼 퐻훼, (2.15)

Bài toán đối ngẫu của (2.2), do vậy, có dạng như sau:

max ∑ 훼 − 훼 퐻훼 (2.16)

với điều kiện: 훼 ≥ 0 ∀푖 và ∑ 훼 푦 = 0

Bài toán này có dạng tối ưu hóa toàn phương lồi theo biến .

Bất kì điểm dữ liệu nào thỏa mãn (2.11) là một véctơ hỗ trợ xs có dạng:

ys (w.xs + b) = 1

Thay vào phương trình (2.11):

ys(∑ 훼 푦 푥 . 푥 + 푏∊ ) = 1

Trong đó, S là tập chỉ số của các véctơ hỗ trợ. S được quyết định bằng việc tìm các chỉ số i mà 훼 ≥ 0. Nhân cả hai vế phương trình trên với ys và sử dụng 푦 = 1 ta có:

푦 (∑ 훼 푦 푥 . 푥 + 푏∊ ) = 푦

Suy ra:

b = ys - ∑ 훼 푦 푥 . 푥∊ (2.17)

Chúng ta xét mô hình trong trường hợp biên mềm. Để chuyển bài toán biên mềm primal về bài toán đối ngẫu, ta xét biểu thức Lagrange của bài toán tối ưu (2.7) như sau:

퐿 = ‖푤‖ + 퐶 ∑ 휉 − ∑ 훼 [푦 (푥 .푤 + 푏) − 1 + 휉 ]−∑ 휇 휉

(2.18)

Áp dụng điều kiện Karush-Kuhn-Tucker, lấy vi phân từng phân theo w, b và 휉 và cho đạo hàm bằng 0, ta có:

= 0 ⟹푤 = ∑ 훼 푦 푥 (2.19)

= 0 ∑ α y = 0 (2.20)

= 0 C = 훼 + 휇 (2.21)

13

Thay những phương trình này vào (2.18) thu được LD có dạng giống như (2.14). Tuy nhiên, kết hợp (2.21) với 휇 > 0 ∀푖 suy ra α < C, vì vậy bài toán đối ngẫu của (2.7) có dạng:

max ∑ 훼 − 훼 푯휶 (2.22)

với điều kiện: 0≤ 훼 ≤ 퐶 ∀푖 ; ∑ 훼 푦 = 0

2.2.4 Hàm kernel

Kỹ thuật SVM ban đầu chỉ giải quyết được các bài toán với dữ liệu phân tách tuyến tính. Nhưng trong thực tế, dữ liệu thường không phân tách tuyến tính. Bằng việc sử dụng hàm kernel, dữ liệu đầu vào sẽ được ánh xạ vào một không gian đặc trưng có số chiều cao hơn mà ở đó dữ liệu có thể phân tách tuyến tính và sau đó kỹ thuật SVM được áp dụng .

Trong các thuật toán máy học, khái niệm kernel trick là một cách ánh xạ các quan sát từ một tập S thông thường vào một không gian F gọi là Inner Products Space mà không phải xác định ánh xạ đó một cách tường minh. Mục đích của nó là để các quan sát đó sẽ đạt được cấu trúc phân tách tuyến tính có ý nghĩa trong không gian F. Sự phân lớp tuyến tính trong không gian F tương đương với việc phân lớp thông thường trong S. Thủ thuật (trick) để tránh việc xác định ánh xạ một cách tường minh bởi vì các thuật toán học máy chỉ yêu cầu một phép tích vô hướng (dot product) giữa các véctơ trong không gian F và chọn ánh xạ sao cho các tích vô hướng trong không gian nhiều chiều này có thể được tính toán trong không gian dữ liệu ban đầu bằng các hàm kernel.

Với x, y trên S, các hàm xác định K(x,y) có thể được biểu diễn như một tích vô hướng (thường trong một không gian khác). K thường được gọi là kernel hay hàm kernel.

Gọi Φ là một ánh xạ từ không gian dữ liệu sang không gian đặc trưng, Φ:

S F khi đó hàm kernel được định nghĩa như sau:

K(x,y) = <x, y>F ,

với ⟨∙,∙⟩F là một tích vô hướng được định nghĩa trong không gian F.

14

Dễ thấy trong các bài toán đối ngẫu (2.16) và (2.22) đều xuất hiện các tích vô hướng <xm, xs>. Vì vậy,bằng việc áp dụng bộ phân lớp tuyến tính cực đại hóa lề cho tập dữ liệu trong không gian mới, biểu thức Lagrange (2.13) có thể được viết lại như sau:

LD = ∑ 훼 − ∑ ∑ 훼 훼 푦 푦 훷(푥 ) 훷(푥 ) (2.25)

Và véctơ trọng số tối ưu ở phương trình (2.19):

푤 = ∑ 훼풍 푦 훷(푥 ) với 훼 ≥ 0 (2.26)

b0 = ys -

Sm

smmm xxy )(),(

Siêu phẳng tối ưu, trong trường hợp này được biểu diễn bởi phương trình (2.27) như sau:

w . x + b = ∑ 훼풍 푦 훷(푥 ) 훷(푥) + 푏 = 0 (2.27)

và hàm quyết định tối ưu:

g(x) = sign(푤 푥 + 푏 ) = sign ∑ 훼풍 푦 훷(푥 ) 훷(푥) + 푏 (2.28)

2.3 Máy véctơ hỗ trợ trong trường hợp phân đa lớp

2.3.1 Mô hình SVMs

Kỹ thuật phân đa lớp dạng Multiple binary-classification

Chiến lược one-vs-all.

Nó xây dựng k mô hình SVM với k là số lượng lớp. SVM thứ i được huấn luyện với tất cả các mẫu huấn luyện được gán nhãn như sau: các mẫu trong lớp thứ i được gán nhãn 1 và tất cả các lớp còn lại được gán nhãn -1. Theo cách đó, với l điểm dữ liệu (x1, y1), (x2, y2),…, (xl, yl) trong đó xi ∊ Rn, i = 1, …, l và yi ∊ {1, … , k} là lớp của xi, SVM thứ i giải quyết vấn đề sau:

min , , (wi)T wi + C∑ 휉 (푤 )

Với ràng buộc :

(푤 ) 휙 푥 + 푏 ≥ 1 − 휉 , 푖푓 푦 = 푖

(푤 ) 휙 푥 + 푏 ≤ −1 + 휉 , 푖푓 푦 ≠ 푖

휉 ≥ 0, j = 1,…,l (2.37)

15

Trong đó dữ liệu huấn luyện xi được ánh xạ vào một không gian nhiều chiều hơn bằng việc sử dụng hàm Φ và C là tham số phạt.

Sau khi giải quyết (2.27), sẽ có k hàm quyết định:

(푤 ) 휙(푥) + 푏

(w ) ϕ(x) + b

(푤 ) 휙(푥) + 푏 Ta nói x thuộc lớp có giá trị hàm quyết định lớn nhất:

Lớp của x = arg max ,…, (푤 ) 휙(푥) + 푏 (2.38)

Chiến lược one-vs-one.

Phương pháp này xây dựng k(k-1)/2 bộ phân lớp, trong đó mỗi bộ phân lớp được huấn luyện trên dữ liệu từ hai lớp. Để huấn luyện dữ liệu từ lớp thứ i và thứ j, chúng ta giải quyết vấn đề phân lớp nhị phân dưới đây:

min , , (푤 ) 푤 + C∑ 휉 (푤 )

(푤 ) 휙(푥 ) + 푏 ≥ 1− 휉 , 푖푓 푦 = 푖

(w ) ϕ(x ) + b ≤ −1 + ξ , if y = j

휉 ≥ 0

Có nhiều phương pháp thực hiện kiểm tra sau khi k(k-1)/2 bộ phân lớp được xây dựng. Sau một số lần kiểm tra, chúng ta sử dụng chiến lược sau: nếu dấu của (푤 ) 휙(푥 ) + 푏 chỉ ra rằng x thuộc lớp thứ i thì phiếu bầu cho lớp thứ i tăng thêm 1. Ngược lại thì lớp thứ j được tăng thêm một. Sau đó chúng ta sẽ dự đoán x thuộc về lớp có số phiếu bầu lớn nhất.

2.3.2 Mô hình M-SVM

Gọi X là 1 tập các véc tơ trong không gian Rd và Y = {1, ...,Q} là 1 tập các giá trị lớp. Cho trước 1 tập dữ liệu huấn luyện X = {(x1, y1), (x2, y2), .., (xn, yn)} ∈ R^(n∗(d+1)) sao cho xi ∈ X, yi ∈ Y, i = {1, ..., n}.

Ký hiệu G là lớp các hàm có dạng g : X → R^Q với g = {g1, g2, ..., gQ}, gi : X → R, i = 1, ..,Q. Một bộ phân loại đa lớp là 1 hàm có dạng H : X → Y ánh xạ mỗi phần tử x thuộc X tới 1 giá trị lớp y ∈ Y. Cho w = (w1,w2, ...,wQ) là

16

1 véc tơ trong không gian R(Q.d) mà bao gồm Q véc tơ wi ∈ Rd, i ∈ {1, ...,Q} và cho b là một véc tơ trong không gian RQ. Chúng ta xem xét các hàm H có dạng:

H(x)=arg max 푔 (푥)

sao cho gi(x) = <wi, xi> + bi, i ∈ [1..Q] và <.,.> là một tích vô hướng được định nghĩa trong không gian Rd.

Mục tiêu là tìm ra các siêu phẳng thích hợp nhất gi(x), i ∈ {1, ...,Q} mà phân chia tập dữ liệu huấn luyện theo một cách tốt nhất.

Mô hình MSVM của Crammer-Singer

Dạng Primal

min, ,

12

‖푤 ‖ + 퐶 휉

với điều kiện:

⟨푤 − 푤 ,Φ(푥 )⟩ + 훿 , ≥ 1 − 휉 , (1 ≤ 푖 ≤ 푚), (1≤ 푘 ≤ 푄)

Dạng Dual.

min12훼 퐻 푤푤 훼 + 훿 훼

Với ràng buộc 훼 ≥ 0, (1 ≤ 푖 ≤ 푚), (1 ≤ 푘 ≤ 푄)

∑ 훼 = 퐶, (1 ≤ 푖 ≤ 푚)

Mô hình MSVM của Weston & Watkin

Dạng Primal

min, ,

12

‖푤 ‖ + 퐶 휉

với điều kiện:

⟨푤 − 푤 ,Φ(푥 )⟩ + 푏 − 푏 ≥ 1− 휉 , (1 ≤ 푖 ≤ 푚), (1 ≤ 푘 ≠ 푦 ≤ 푄)휉 ≥ 0, (1 ≤ 푖 ≤ 푚), (1 ≤ 푘 ≠ 푦 ≤ 푄)

Dạng Dual.

min12훼 퐻 훼 − 1 훼

17

với điều kiện:

⎩⎨

⎧0 ≤ 훼 ≤ 퐶, (1 ≤ 푖 ≤ 푚), (1 ≤ 푘 ≠ 푦 ≤ 푄)

훼∗:

Φ(푥 ) − 훼 = 0, (1 ≤ 푘 ≠ 푦 ≤ 푄)

Chương 3 – KỸ THUẬT PHÁT HIỆN TẤN CÔNG MẠNG SỬ DỤNG MÁY VÉCTƠ HỖ TRỢ ĐA LỚP

3.1 Các yêu cầu của hệ thống phát hiện tấn công mạng

- Phát hiện được các cuộc tấn công mạng một cách chính xác. Một hệ thống phát hiện xâm nhập mạng có độ chính xác cao sẽ bảo vệ tốt hơn an toàn cho hệ thống đồng thời giảm được những bất lợi do việc báo động sai của hệ thống phát hiện xâm nhập gây ra.

- Phát hiện sớm các cuộc tấn công mạng.

- Hỗ trợ tốt cho người quản trị.

3.2 Cấu trúc hệ thống phát hiện tấn công mạng

3.2.1 Mô hình chung của hệ thống phát hiện xâm nhập mạng. Mô hình chung của một hệ thống phát hiện xâm nhập mạng thường bao

gồm các thành phần chính : Sensor, Alarm-processing unit, Management unit. Bên cạnh đó còn có các thành phần mang tính lựa chọn như Deception system, Intrusion visualisation unit.

18

Hình 3.1. Mô hình chung của IDS

3.2.2 Bộ phân loại sử dụng máy hỗ trợ véctơ đa lớp

19

Hình 3.2 Mô hình IDS sử dụng máy hỗ trợ véctơ đa lớp Các loại tấn công mạng có thể phân chia thành bốn lớp chính là : DoS,

U2R, R2L và Probe. Ta có thể xem bài toán phát hiện tấn công mạng như bài toán phân lớp nhiều lớp. Trong phạm vi đồ án này tác giả lựa chọn bộ phân lớp đa lớp SVMs với chiến lược One-

Bộ phận Analyser sử dụng kỹ thuật phân lớp đa lớp SVMs sẽ tiến hành phân loại các kết nối. Nếu kết nối là các hoạt động tấn công hệ thống phát hiện tấn công sẽ gửi thông tin cho bộ phận Executor. Bộ phận Executor dựa trên những thông tin nhận sẽ phát đi báo động và có hành động phản ứng lại

3.2.3 Thuật toán phát hiện tấn công mạng.

Thuật toán phát hiện tấn công mạng được mô tả như sau :

Sensors

Alarm

Reactions

Preprocessing data

Normal data

Data base

arg푚푎푥 ,…, 푓 (푥)

SVMs

Dos U2R R2L Probe

Management unit

Executor

20

Bước 1: Huấn luyện

Input : file dữ liệu đã được định dạng.

Output:

1.for i=1 to Q (Q là số siêu phẳng tương ứng với số lớp của dữ liệu huấn luyện)

Gán nhãn cho tất cả các điểm dữ liệu thuộc lớp i giá trị + 1 và các điểm dữ liệu thuộc lớp còn lại giá trị -1.

2. Tính ma trận H

3. Gọi solver Cplex để giải bài toán tối ưu

4. Tính w, b.

Step 2: Phân lớp

Input : file dữ liệu lưu mẫu cần kiểm tra

Output:

1. Đọc từng bản ghi trong file dữ liệu kiểm tra.

2. Tính gi(x) = wi . x + bi , i = 1,…,Q

3. Tìm gmax = max{gi(x)}

4. Lớp của x là i = max.

3.3 Các chuẩn đánh giá bộ phân loại tấn công mạng Để đánh giá một bộ phân loại tấn công mạng, người ta thường sử dụng

các tiêu chuẩn sau : CE (Classification Error), ACTE (Average Cost per Test Example), True Possitive, Diagnosis Rate, False Posittive.

21

Chương 4 – CÀI ĐẶT VÀ ĐÁNH GIÁ KẾT QUẢ

4.1 Bộ dữ liệu KDD cup 99

Bộ dữ liệu KDD cup 99 có nguồn gốc từ MIT’s Lincoln Lab. Nó được phát triển cho chương trình đánh giá phát hiện tấn công mạng của Cơ quan Quản lý Nghiên cứu Dự Án Phòng Thủ Tiên tiến Bộ quốc phòng Mỹ (DARPA) năm 1998 và được coi là bộ dữ liệu tiêu chuẩn cho việc đánh giá về phát hiện tấn công mạng [19]. Với mỗi kết nối TCP/IP, 41 đặc trưng số và phi số được trích xuất. Dữ liệu được sử dụng trong cuộc thi kdd cup 1999 là một phiên bản của bộ dữ liệu này.

Các kiểu tấn công được chia vào bốn loại chính:

1. DoS - denial of service.

2. R2L - Remote to Local.

3. U2R - User to Root attack.

4. Probe.

4.2 Tiền xử lý dữ liệu

Trong bộ dữ liệu KDD 99 có 23 loại tấn công mạng, có thể chia vào 4 loại chính: DOS, R2L, U2R, Probe

Lớp của các kết nối trong bộ dữ liệu KDD CUP’99 là các thuộc tính phi số như bảng trên và được viết ở vị trí cuối cùng của bản ghi. Lớp của các kết nối sẽ được thay thế bằng lớp là các thuộc tính số như ở bảng 4.4.

Bảng 4.4 Thay thế lớp của kết nối bằng các thuộc tính số

STT Lớp của kêt nối Lớp mới

1 Normal 1

2 DOS 2

3 R2L 3

4 U2R 4

5 Probe 5

22

4.3 Các module chính của chương trình

Chương trình được viết trên ngôn ngữ Visual C++ phiên bản 2008 của Microsoft. Hàm kernel được sử dụng trong chương trình là hàm Gauss.

Module: tính hàm kernel Gauss 퐾 푥 ,푥 .

Module: tính ma trận H.

Module: tạo file định dạng .lp.

. Module: tính giá trị của W

Module : phân lớp

4.4 Một số kết quả và đánh giá Trong bài toán phát hiện tấn công mạng có số lớp là lớn hơn hai và nhu cầu đặt ra không chỉ là phát hiện ra một kết nối có phải là tấn công hay không mà cần chỉ rõ nó thuộc loại tấn công nào. Bộ phân lớp đa lớp SVMs có thể đáp ứng được yêu cầu mà bài toán phát hiện tấn công mạng đề ra. Bên cạnh đó, ưu điểm của SVMs là có độ phân lớp chính xác cao, tỉ lệ False Positive rất tốt sẽ giúp cho hệ thống phát hiện tấn công phát hiện sớm tấn công mạng và giảm thiểu cảnh báo sai. Như vậy việc sử dụng SVMs vào việc phát hiện tấn công mạng là hoàn toàn phù hợp.

Một số vấn đề tồn tại: Độ chính xác của bộ phân lớp SVMs nhạy cảm với các tham số 휎 và C do người sử dụng lựa chọn.

Thời gian huấn luyện và kiểm tra của kỹ thuật SVMs vẫn cần phải được cải thiện hơn nữa để có thể đáp ứng được việc xây dựng hệ thống phát hiện xâm nhập mạng có khả năng xử lý khối lượng dữ liệu ngày càng lớn. Một vấn đề khác của việc xây dựng máy véctơ hỗ trợ đa lớp bằng cách kết hợp nhiều SVM là nó không phản được mối tương quan giữa các lớp.