Phát hiện bất thường của mạng theo cách tiếp cận học máy Phát hiện bất thường của mạng theo cách tiếp cận học máy Phát hiện bất thường của mạng theo cách tiếp cận học máy Phát hiện bất thường của mạng theo cách tiếp cận học máy Phát hiện bất thường của mạng theo cách tiếp cận học máy Phát hiện bất thường của mạng theo cách tiếp cận học máy Phát hiện bất thường của mạng theo cách tiếp cận học máy
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - LÊ HỮU DŨNG PHÁT HIỆN BẤT THƯỜNG CỦA MẠNG THEO CÁCH TIẾP CẬN HỌC MÁY LUẬN VĂN THẠC SĨ KHOA HỌC Hà Nội – Năm 2014 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - LÊ HỮU DŨNG PHÁT HIỆN BẤT THƯỜNG CỦA MẠNG THEO CÁCH TIẾP CẬN HỌC MÁY Chuyên ngành: Cơ sở Toán học cho Tin học Mã số: 60460110 LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Lê Trọng Vĩnh Hà Nội – Năm 2014 MỤC LỤC Danh mục hình vẽ .3 Danh mục bảng biểu LỜI CẢM ƠN .5 LỜI CAM ĐOAN .6 LỜI NÓI ĐẦU CHƯƠNG 1: TỔNG QUAN .8 Sự phát triển mạng máy tính Nguy bị công mạng .9 Các phương pháp phát xâm nhập mạng có .12 3.1 Nhận diện dấu hiệu 12 3.2 Phát bất thường .13 3.2.1 Bằng số liệu thống kê 13 3.2.2 Theo cách tiếp cận học máy 13 CHƯƠNG 2: THUẬT TOÁN HỌC MÁY SUPPORT VECTOR MACHINE (SVM) 15 2.1 Giới thiệu .15 2.2 Ý tưởng SVM 15 2.3 Nội dung SVM 16 2.3.1 Cơ sở lý thuyết 16 2.3.2 Bài toán phân lớp với SVM 18 2.3.3 Phân nhiều lớp với SVM 22 2.3.4 Các bước thuật tốn SVM .23 2.3.5 Thuật toán SVM trường hợp liệu phân tách tuyến tính .24 2.3.6 Thuật tốn SVM trường hợp liệu khơng phân tách tuyến tính khơng gian đặc trưng 36 2.3.6.1 Nhận xét 36 2.3.6.2 Dạng thuật toán SVM, toán C – SVC 36 2.3.6.3 Dạng thuật toán SVM, toán v-SVC .41 2.3.7 SVM nhiều lớp 42 2.3.8 Lựa chọn hàm nhân cho ứng dụng .43 2.3.9 Lựa chọn tham số cho hàm nhân RBF .44 2.4 Các thư viện, phần mềm hỗ trợ phân lớp liệu theo thuật tốn SVM 44 CHƯƠNG 3: MƠ HÌNH PHÁT HIỆN BẤT THƯỜNG MẠNG SỬ DỤNG THUẬT TỐN HỌC MÁY SVM 46 3.1 Thu thập liệu 47 3.2 Bóc tách Header gói tin 50 3.3 Tạo liệu đầu vào cho trình huấn luyện 59 3.4 Dựng mơ hình phân lớp .59 3.5 Kiểm tra chéo điều chỉnh tham số 59 3.6 Ghi nhận mơ hình 59 CHƯƠNG 4: THỰC NGHIỆM VÀ KẾT QUẢ .60 4.1 Định dạng liệu đầu vào 61 4.2 Huấn luyện, tạo mô hình 63 4.3 Kiểm tra mơ hình điều chỉnh tham số .65 CHƯƠNG 5: KẾT LUẬN 67 5.1 Kết đạt 67 5.2 Hướng nghiên cứu tương lai 67 TÀI LIỆU THAM KHẢO 68 Danh mục hình vẽ Hình 2.1 Siêu phẳng f phân chia liệu học thành lớp + – với khoảng cách biên lớn Các điểm gần f (điểm khoanh tròn) Support Vector .16 Hình 2.2 Minh họa cho tốn phân hai lớp 18 Hình 2.3 Minh họa toán phân hai lớp với Thuật toán SVM 21 Hình 2.4 Bài tốn SVM trường hợp liệu mẫu không phân tách tuyến tính 21 Hình 2.5 Minh họa phân tách liệu không gian đặc trưng .24 Hình 2.7 Dữ liệu phân tách tuyến tính khơng gian đặc trưng qua phép ánh xạ .27 Hình 3.1 Cấu trúc tổng thể mơ hình phát bất thường giai đoạn huấn luyện 46 Hình 3.2 Phát gói tin bất thường thời gian thực 47 Hình 3.3: Cấu trúc gói tin [8] 52 Hình 3.4: Quá trình thêm header cho liệu truyền qua tầng mạng 53 Hình 3.5: Thuật tốn bóc tách header từ gói tin 58 Hình 3.6: Một phần tệp liệu theo khn dạng đầu vào LibSVM .59 Hình 4.1: Giao diện chương trình thực nghiệm 60 Hình 4.2: Một phần nội dung tệp header liệu ngày thứ 2, tuần thứ (xem dạng Hexa) 61 Hình 4.3: Tệp liệu phục vụ huấn luyện 61 Hình 4.4: Giao diện chương trình tiến hành huấn luyện .63 Hình 4.5: Giao diện chương trình chạy bước dự đoán (prediction) với liệu kiểm tra .65 Danh mục bảng biểu Bảng 3.1: Các liệu năm 1999 dự án DARPA intrusion detection evaluation 48 Bảng 3.2: Bảng mô tả kiểu công triển khai tuần liệu năm 1999 dự án DARPA intrusion detection evaluation 48 Bảng 3.3: Ý nghĩa thành phần gói tin 52 Bảng 3.4: IP Header 53 Bảng 3.5: TCP Header 55 Bảng 3.6: Các đặc trưng dùng để phân lớp gói tin .56 Bảng 4.1: Kết dự đoán tệp liệu kiểm tra 66 LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn chân thành tới PGS TS Lê Trọng Vĩnh - giảng viên khoa Toán - Cơ - Tin học, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội dành nhiều công sức hướng dẫn em thực luận văn này! Em xin chân thành cảm ơn thầy khoa Tốn – Cơ – Tin học, trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội nhiệt tình truyền đạt kiến thức, kinh nghiệm, phương pháp nghiên cứu say mê khoa học tới nhiều lứa học viên cao học – có em! Với tận tình bảo thầy, cô, em cố gắng để hoàn thành luận văn Tuy nhiên, em nhiều điểm hạn chế nên hẳn luận văn cịn tồn thiếu sót Em kính mong tiếp tục nhận ý kiến góp ý, bảo thầy, cô bạn học viên để em tiếp tục hoàn thiện chuyên môn thân Em xin trân trọng cảm ơn! Học viên Lê Hữu Dũng LỜI CAM ĐOAN Tơi xin cam đoan luận văn cơng trình nghiên cứu thân Các số liệu, kết trình bày luận văn trung thực chưa công bố luận văn trước Học viên Lê Hữu Dũng LỜI NÓI ĐẦU Các hoạt động kinh tế, xã hội người ngày sử dụng nhiều đến máy tính thiết bị công nghệ Cùng với điều này, nhu cầu sử dụng mạng máy tính để trao đổi thông tin, chia sẻ tài nguyên ngày tăng cao Bên cạnh đó, vấn đề đảm bảo cho an tồn thơng tin mạng máy tính ngày trở nên thiết Để đảm bảo an tồn cho thơng tin hoạt động mạng máy tính cần triển khai nhiều giải pháp đồng Trong đó, phát sớm bất thường mạng coi khâu quan trọng giúp đảm bảo an tồn cho mạng máy tính Có nhiều cách nghiên cứu, triển để phát bất thường mạng sử dụng phương pháp nhận diện dấu hiệu, phương pháp thống kê phương pháp sử dụng thuật tốn học máy Trong đó, phương pháp học máy cho phép đưa kết phát bất thường có độ xác cao đặc biệt ln cải tiến kết cao Luận văn với tên gọi “Phát bất thường mạng theo cách tiếp cận học máy” tập trung tìm hiểu việc phát gói tin mạng bình thường hay bất thường cách áp dụng thuật toán học máy để phân lớp gói tin Luận văn bao gồm chương với nội dung sau: Chương 1: Tổng quan Chương 2: Thuật toán học máy Support Vector Machines (SVM) Chương 3: Mơ hình phát bất thường mạng sử dụng thuật toán học máy SVM Chương 4: Thực nghiệm kết Chương 5: Kết luận CHƯƠNG 1: TỔNG QUAN Sự phát triển mạng máy tính Với phát triển vũ bão mạng máy tính kỉ ngun thơng tin truyền thơng, khoảng cách vật lý dần trở nên vô nghĩa Chúng ta chứng kiến nhiều lợi ích mà mạng máy tính mang lại cho phát triển đời sống, công nghệ, kinh tế xã hội Trong lĩnh vực thông tin, thương mại điện tử: email gần thay hoàn toàn thư truyền thống; Các dịch vụ viễn thông truyền thống bị cạnh tranh mạnh mẽ dịch vụ Over-The-Top (OTT) Internet; Báo điện tử đối thủ cạnh tranh trực tiếp, gây nên nhiều “sự đi” báo giấy; Các cửa hàng trực tuyến ngày phát triển, mang đến lợi ích to lớn cho người mua người bán Trong lĩnh vực phủ điện tử: Hạ tầng mạng máy tính, công nghệ thông tin – truyền thông phát triển với khả tiếp cận sản phẩm công nghệ người dân tạo điều kiện thuận lợi để nhiều nước triển khai phủ điện tử thành công Ngay nước ta, nhiều dịch vụ hành cơng triển khai trực tuyến, mang lại nhiều lợi ích cho người dân như: tờ khai Hải quan điện tử, khai thuế trực tuyến, đăng ký cấp Hộ chiếu trực tuyến Công an TP Hà Nội, … Các dịch vụ “Đám mây”: Trong vài năm qua, Công nghệ thông tin (IT) bắt đầu mẫu hình - điện tốn đám mây Mặc dù điện toán đám mây cách khác để cung cấp tài nguyên máy tính, khơng phải cơng nghệ mới, châm ngòi cách mạng cách cung cấp thông tin dịch vụ tổ chức Điện tốn đám mây giải pháp tồn diện cung cấp cơng nghệ thơng tin dịch vụ Nó giải pháp điện toán dựa Internet cung cấp tài ngun chia sẻ giống dịng điện phân phối lưới điện Các máy tính đám mây cấu hình để làm việc ứng dụng khác sử dụng sức mạnh điện toán tập hợp thể chúng Destination IP Address (32 bit): Chỉ địa IP thiết bị nhận IP diagram Options (nếu IHL > 5): Không cố định, chứa thông tin tùy chọn TCP Header gồm thông tin sau: Bảng 3.5: TCP Header Ý nghĩa trường TCP Header mô tả sau: Source Port (16 bits): Số hiệu cổng TCP trạm nguồn Destination Port (16 bit): Số hiệu cổng TCP trạm đích Sequence Number (32 bit): số hiệu byte segment trừ bit SYN thiết lập Nếy bit SYN thiết lập Sequence Number số hiệu khởi đầu (ISN) byte liệu ISN+1 Acknowledgment Number (32 bit): số hiệu segment mà trạm nguồn chờ để nhận Ngầm ý báo nhận tốt (các) segment mà trạm đích gửi cho trạm nguồn Data offset (4 bit): số lượng bội 32 bit (32 bit words) TCP header (tham số vị trí bắt đầu liệu) Reserved (6 bit): dành để dùng tương lai 55 Control bit (các bit điều khiển): o URG: Vùng trỏ khẩn (Ucgent Poiter) có hiệu lực o ACK: Vùng báo nhận (ACK number) có hiệu lực o PSH: Chức PUSH o RST: Khởi động lại (reset) liên kết o SYN: Đồng hóa số hiệu (sequence number) o FIN: Khơng cịn liệu từ trạm nguồn Window (16 bit): cấp phát để kiểm soát nguồn liệu (cơ chế cửa sổ) Đây số lượng byte liệu, byte vùng ACK number, mà trạm nguồn sẵn sàng để nhận Checksum (16 bit): mã kiểm sốt lỗi cho tồn segment (header + data) Urgent Poiter (16 bit): trỏ trỏ tới số hiệu byte theo sau liệu khẩn Vùng có hiệu lực bit URG thiết lập Options (độ dài thay đổi): khai báo option TCP, có độ dài tối đa vùng TCP data segment Padding (độ dài thay đổi): phần chèn thêm vào header để đảm bảo phần header kết thúc mốc 32 bit Phần thêm gồm toàn số Data Bytes (độ dài thay đổi): chứa liệu tầng trên, có độ dài tối đa ngầm định 536 byte Giá trị điều chỉnh cách khai báo vùng options Trong nghiên cứu A Hybrid machine learning approach to network anomaly detection [9], tác giả đặc trưng với trọng số bất thường dùng để phân lớp gói tin bảng 3.6 sau Bảng 3.6: Các đặc trưng dùng để phân lớp gói tin STT Tên đặc trưng Trọng số Version Header length Type of service 56 Total length Identification (IP) Flags Fragment offset Time to live Protocol 10 Header checksum 11 Source address 12 Destination address 13 Options 14 Source port 15 Destination port 16 Sequence number 17 Acknowledge number 18 Offset 19 Reserved 20 (TCP) Flags 21 Window 22 Checksum 23 Urgent pointer 24 Options 57 Những đặc trưng nàynằm phần header gói tin, ta cần tiến hành bóc tách thơng tin từ gói tin thơ qua bước hình sau: Hình 3.5: Thuật tốn bóc tách header từ gói tin 58 3.3 Tạo liệu đầu vào cho trình huấn luyện Bước này, ta tiến hành tạo tệp chứa liệu đầu vào phù hợp với định dạng liệu đầu vào thư viện LibSVM (mục 2.4 Chương 2) cách nhân giá trị trường header gói tin với trọng số Bảng 3.6 đồng thời gán nhãn cho liệu Kết bước cho tệp liệu với khn dạng hình minh hoạ sau đây: Hình 3.6: Một phần tệp liệu theo khuôn dạng đầu vào LibSVM Sau tạo tệp liệu đầu vào trên, ta chia liệu thành phần: - Dữ liệu huấn luyện: gồm liệu từ thứ đến thứ tuần (chiếm xấp xỉ 80%) - Dữ liệu kiểm tra: gồm liệu ngày thứ tuần (chiếm xấp xỉ 20%) 3.4 Dựng mơ hình phân lớp Với liệu đầu vào tạo trên, ta tiến hành dựng mô hình phân lớp thư viện LibSVM với hàm nhân RBF Kết thúc trình huấn luyện này, ta thu tệp mơ hình (*.model) 3.5 Kiểm tra chéo điều chỉnh tham số Sau có tệp mơ hình từ bước 3.4, ta tiến hành kiểm tra kết phân lớp cách sử dụng phần liệu kiểm tra chia từ bước 3.3 Từng bước thực nghiệm điều chỉnh tham số mơ hình, thực nghiệm ghi nhận kết 3.6 Ghi nhận mơ hình Mơ hình với tham số cho kết kiểm tra tốt ghi nhận lại sử dụng để phát bất thường mạng thời gian chạy 59 CHƯƠNG 4: THỰC NGHIỆM VÀ KẾT QUẢ Theo nội dung trình bày chương trên, chương trình xây dựng để tiến hành thực nghiệm ghi nhận kết Giao diện chương trình sau: Hình 4.1: Giao diện chương trình thực nghiệm 60 4.1 Định dạng liệu đầu vào Sau bóc tách header, ta tiến hành định dạng liệu đầu vào theo khn dạng LibSVM Hình 4.2 sau phần nội dung tệp header Hình 4.2: Một phần nội dung tệp header liệu ngày thứ 2, tuần thứ (xem dạng Hexa) Từ tệp liệu cung cấp MIT Lincoln Lab, vào tính chất gói tin Khơng bị cơng Bị công, ta gán nhãn liệu tương ứng 1: Không bị công, -1: Bị cơng tiến hành tính tốn theo trọng số mô tả bảng 3.5 Kết bước ta thu tệp liệu đầu vào phù hợp khn dạng LibSVM hình 4.3 sau Hình 4.3: Tệp liệu phục vụ huấn luyện 61 Mẫu bị công (-1): Theo thông tin cho bảng 3.3, liệu tuần có 2285 mẫu bị công thuộc 33 kiểu công Số mẫu chia làm phần: 1142 mẫu đầu dành cho việc huấn luyện 1143 mẫu sau dành cho việc kiểm tra Mẫu không bị công: chọn ngẫu nhiên 1250 mẫu dành cho việc huấn luyện 1250 mẫu dành cho việc kiểm tra Các tham số C γ cần thiết cho trình huấn luyện sử dụng mặc định theo thiết lập hàm tính tốn hỗ trợ LibSVM Sau đó, tệp liệu huấn luyện tham số đưa vào trình huấn luyện 62 4.2 Huấn luyện, tạo mơ hình Hình 4.4: Giao diện chương trình tiến hành huấn luyện Qua thực nghiệm, kết huấn luyện cho ta tệp văn chứa tham số mơ hình, theo sau véc tơ hỗ trợ giữ lại hình 4.5 sau: 63 Hình 4.5: Tệp mơ hình lần chạy thử Ý nghĩa thơng số tệp mơ sau: svm_type: thuật toán SVM sử dụng kernel_type: hàm nhân sử dụng gamma: thông số γ nr_class: số lớp total_sv: tổng số support vector rho: giá trị biến bù label: nhãn liệu nr_sv: số support vector lớp SV: dòng support vector dược giữ lại 64 4.3 Kiểm tra mô hình điều chỉnh tham số Ở bước này, ta dùng liệu phần để kiểm tra khả phân lớp mơ hình tạo bước 4.3: Hình 4.5: Giao diện chương trình chạy bước dự đốn (prediction) với liệu kiểm tra Mơ hình cho hình 4.4 mơ hình tạo sau lần chạy thử C=1 (mặc định LibSVM không thiết lập), γ=0.0416666666666667 (do LibSVM tự động tính tốn khơng thiết lập) Kết chạy với liệu kiểm tra ghi nhận bảng 4.3 sau 65 Tệp kiểm tra Số mẫu Dự đoán Dự đoán sai số mẫu (tỉ lệ) số mẫu (tỉ lệ) Mẫu dương 1250 766 (~61,28%) 484 (~38,72%) Mẫu âm 1143 717(~62,73%) Tỉ lệ dự đoán 426 (~37,27%) 61,97 % Bảng 4.1: Kết dự đoán tệp liệu kiểm tra 66 CHƯƠNG 5: KẾT LUẬN 5.1 Kết đạt Luận văn trình bày đầy đủ phương pháp phát bất thường mạng theo cách tiếp cận học máy mà cụ thể sử dụng Máy học véc tơ hỗ trợ (Support Vector Machines) Nội dung mà luận văn đạt được: Luận văn trình bày tổng quan vấn đề phát bất thường mạng: Các nguy an tồn mạng máy tính mức độ thiệt hại có cố xảy ra; Các phương pháp phát xâm nhập mạng có phương pháp phát xâm nhập dựa việc phát bất thường theo cách tiếp cận học máy Luận văn tìm hiểu Thuật tốn học máy Support Vector Machine (SVM) – thuật toán sử dụng rộng rãi hiệu phân lớp liệu Luận văn tìm hiểu mơ hình phát bất thường mạng sử dụng thuật tốn học máy SVM xây dựng chương trình thực nghiệm cho mơ hình Qua đây, ta thấy rõ tính khả thi việc triển khai Hệ thống phát bất thường mạng theo cách tiếp cận học máy 5.2 Hướng nghiên cứu tương lai Với kết làm luận văn nghiên cứu phát triển theo hướng sau: - Tiếp tục thử nghiệm với SVM với hàm nhân khác ngồi RBF để đánh giá, lựa chọn mơ hình phù hợp - Xây dựng thêm module chương trình bắt gói tin cảnh báo để đưa chương trình thực nghiệm vào hoạt động thời gian thực việc phát bất thường mạng - Kết hợp hướng nghiên cứu khác để phân loại, nhận diện bất thường mạng theo kiểu công mạng phổ biến 67 TÀI LIỆU THAM KHẢO Tiếng Việt Phạm Văn Lương (2014), Giải pháp phát xâm nhập dựa học máy Vector hỗ trợ SVM, Luận văn Thạc sĩ kĩ thuật, Học viện Công nghệ Bưu Viễn thơng Thái Sơn (2006), Kỹ thuật Support Vector Machines ứng dụng, Luận văn Thạc sĩ khoa học, Trường Đại học Bách khoa Hà Nội Tiếng Anh Chih-Wei Hsu, Chih-Chung Chang, Chih-Jen Lin (2010), A Practical Guide to Support Vector Classication, Department of Computer Science National Taiwan University Chih-Chung Chang, Chih-Jen Lin (2013), LIBSVM:A Library for Support Vector Machines, Department of Computer Science National Taiwan University < http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf > Kristopher Kendall (1999), A Database of Computer Attacks for the Evaluation of Intrusion Detection Systems, In Partial Fulfillment of the Requirements for the Degree of Bachelor of Science in Computer Science and Engineering and Master of Engineering in Electrical Engineering and Computer Science, Massachusetts Institute of Technology Lincoln Laboratory, DARPA intrusion dectection evaluation, MIT Stephen Northcutt, Judy Novak, 2002, Network Intrusion Detection 3rd Ed, New Riders Publishing Lydia Parziale, David T.Britt, Chuck Davis, Jason Forrester, Wei Liu, Carolyn Matthews, Nicolas Rosselot, 2006, TCP/IP Tutorial and Technical Overview, IBM International Technical Support Organization Taeshik Shon *, Jongsub Moon, 2007, “A hybrid machine learning approach to network anomaly detection”, Information Sciences, 177, pp.3799-3821 68 10 Charles E Spurgeon, Joann Zimmerman, Ethernet: The Definitive Guide, Second Edition, 2014, O’Reilly 69 ...ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - LÊ HỮU DŨNG PHÁT HIỆN BẤT THƯỜNG CỦA MẠNG THEO CÁCH TIẾP CẬN HỌC MÁY Chuyên ngành: Cơ sở Toán học cho Tin học Mã số:... phương pháp học máy cho phép đưa kết phát bất thường có độ xác cao đặc biệt ln cải tiến kết cao Luận văn với tên gọi ? ?Phát bất thường mạng theo cách tiếp cận học máy? ?? tập trung tìm hiểu việc phát gói... bình thường /bất thường khó xác định 3.2.2 Theo cách tiếp cận học máy Phương pháp ban đầu dựa vào liệu huấn luyện gán nhãn bình thường /bất thường để tạo mơ hình phân lớp liệu phương pháp học máy