Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
1,63 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM NGUYỄN DƯƠNG HỒNG DUY KHĨA LUẬN TỐT NGHIỆP SỬ DỤNG KỸ THUẬT PHÂN TÍCH CHUỖI MÃ LỆNH ĐỂ PHÁT HIỆN PHẦN MỀM ĐỘC HẠI KHÔNG XÁC ĐỊNH Using Opcode Sequences Analysis For Unknown Malware Detection KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2021 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN KHOA CƠNG NGHỆ PHẦN MỀM NGUYỄN DƯƠNG HỒNG DUY – 16520291 KHÓA LUẬN TỐT NGHIỆP SỬ DỤNG KỸ THUẬT PHÂN TÍCH CHUỖI MÃ LỆNH ĐỂ PHÁT HIỆN PHẦN MỀM ĐỘC HẠI KHÔNG XÁC ĐỊNH Using Opcode Sequences Analysis For Unknown Malware Detection KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN THS MAI TRỌNG KHANG TP HỒ CHÍ MINH, 2021 THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số …………………… ngày ………………… Hiệu trưởng Trường Đại học Công nghệ Thông tin – Chủ tịch – Thư ký – Ủy viên – Ủy viên ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP HCM, ngày… tháng… năm…… NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN) Tên khóa luận: SỬ DỤNG KỸ THUẬT PHÂN TÍCH CHUỖI MÃ LỆNH ĐỂ PHÁT HIỆN PHẦN MỀM ĐỘC HẠI KHƠNG XÁC ĐỊNH Cán hướng dẫn: Nhóm SV thực hiện: Nguyễn Dương Hồng Duy 16520291 Đánh giá Khóa luận Về báo cáo: Số trang…… Số chương…… Số bảng số liệu…… Số hình vẽ…… Số tài liệu tham khảo…… Sản phẩm…… Một số nhận xét hình thức báo cáo: ………………………………………………………………………………………………… ………………………………………………………………………………………………… Về nội dung nghiên cứu: ………………………………………………………………………………………………… ………………………………………………………………………………………………… Về chương trình ứng dụng: ………………………………………………………………………………………………… ………………………………………………………………………………………………… Về thái độ làm việc sinh viên: ………………………………………………………………………………………………… ………………………………………………………………………………………………… Đánh giá chung: Khóa luận đạt/khơng đạt u cầu khóa luận tốt nghiệp kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình Điểm sinh viên: Nguyễn Dương Hoàng Duy:……… /10 Người nhận xét (Ký tên ghi rõ họ tên) ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP HCM, ngày… tháng… năm…… NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ PHẢN BIỆN) Tên khóa luận: SỬ DỤNG KỸ THUẬT PHÂN TÍCH CHUỖI MÃ LỆNH ĐỂ PHÁT HIỆN PHẦN MỀM ĐỘC HẠI KHƠNG XÁC ĐỊNH Nhóm SV thực hiện: Nguyễn Dương Hoàng Duy Cán phản biện: 16520291 Đánh giá Khóa luận Về báo cáo: Số trang…… Số chương…… Số bảng số liệu…… Số hình vẽ…… Số tài liệu tham khảo…… Sản phẩm…… Một số nhận xét hình thức báo cáo: ………………………………………………………………………………………………… ………………………………………………………………………………………………… Về nội dung nghiên cứu: ………………………………………………………………………………………………… ………………………………………………………………………………………………… Về chương trình ứng dụng: ………………………………………………………………………………………………… ………………………………………………………………………………………………… Về thái độ làm việc sinh viên: ………………………………………………………………………………………………… ………………………………………………………………………………………………… Đánh giá chung: Khóa luận đạt/khơng đạt yêu cầu khóa luận tốt nghiệp kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình Điểm sinh viên: Nguyễn Dương Hoàng Duy:……… /10 Người nhận xét (Ký tên ghi rõ họ tên) LỜI CẢM ƠN Lời của, em xin gửi lởi cảm ơn trân trọng đến quý thầy cô khoa Công nghệ Phần mềm trường Đại học Công nghệ thông tin – ĐHQG TP HCM tận tình việc giảng dạy, tạo điều kiện học tập rèn luyện cho em năm sinh viên vừa qua, giúp em có đủ kiến thức tảng khả ứng dụng thực tế để hồn thành Khóa luận tốt nghiệp Em xin gửi lời cảm ơn chân thành đến thạc sĩ Mai Trọng Khang, người tận tình hướng dẫn, định hướng giúp đỡ em trình thực Khóa luận tốt nghiệp Những đóng góp kinh nghiệm quý báu thầy tiền đề để Khóa luận đạt kết tốt Khóa luận tốt nghiệp kết cố gắng nghiên cứu phát triển không ngừng thân em tháng qua Tuy nhiên với vốn kiến thức kinh nghiệm hạn chế nên khơng tránh khỏi thiếu sót, em mong nhận dẫn góp ý q thầy để Khóa luận em hồn thiện Lời cuối cùng, kính chúc thầy cô nhiều sức khỏe, thành công hạnh phúc Em xin chân thành cảm ơn ! TP HCM, ngày 15 tháng 01 năm 2021 Sinh viên thực Nguyễn Dương Hồng Duy MỤC LỤC TĨM TẮT KHĨA LUẬN 16 MỞ ĐẦU 17 CHƯƠNG TỔNG QUAN 18 2.1 Các cơng trình nghiên cứu công bố 18 2.2 Các vấn đề cần giải điểm đề tài 18 CHƯƠNG CÁC LÝ THUYẾT VÀ KIẾN THỨC LIÊN QUAN 19 2.3 Máy học 19 2.3.1 Học máy không giám sát 19 2.3.2 Học máy bán giám sát 19 2.3.3 Học củng cố 19 2.3.4 Học máy có giám sát 19 2.4 Thuật toán phân lớp máy học 20 2.4.1 Khái niệm thuật toán phân lớp 20 2.4.2 Các phương pháp đánh giá mơ hình 25 2.5 Lý thuyết đồ thị 28 2.5.1 Định nghĩa 28 2.5.2 Biểu diễn đồ thị 29 2.5.3 Thuật tốn tìm kiếm đồ thị 30 2.6 Cấu trúc tập tin Portable Executable 32 2.6.1 MS-DOS Header 33 2.6.2 PE Header 35 2.6.3 Section Table 35 CHƯƠNG XÂY DỰNG MƠ HÌNH MÁY HỌC 39 3.1 Tổng quan 39 3.2 Thu thập liệu 39 3.2.1 Bộ liệu mã độc 39 3.2.2 Bộ liệu mã 40 3.2.3 Trích xuất đồng hóa liệu 41 3.3 Rút trích đặc trưng 42 3.4 Xây dựng mô hình máy học 47 CHƯƠNG ĐÁNH GIÁ HỆ THỐNG 57 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 58 5.1 Kết luận 58 5.2 Hạn chế hướng phát triển 58 5.2.1 Hạn chế 58 5.2.2 Hướng phát triển 58 TÀI LIỆU THAM KHẢO 59 Sau thu thông tin tập lệnh mẫu, ta tiến hành trích xuất đặc trưng dựa mã lệnh Với mẫu liệu tốn này, ta có chuỗi mã lệnh với miền giá trị nguyên [0, 255] để trích xuất đặc trưng Nhóm tác giả tìm hiểu áp dụng đặc trưng sau đây: - N-gram: chuỗi n phần tử liên tiếp trích xuất từ mẫu văn Ví dụ chuỗi DNA “AGCTTCGA”, ta có danh sách ngram sau: Chuỗi ban đầu AGCTTCGA 1-gram 2-gram A, G, C, T, T, C, G, A 3-gram AG, GC, CT, TT, AGC, GCT, TC, CG, GA CTT, TTC, TCG, CGA Bảng 3.3 Ví dụ n-gram ADN Với n lớn, số lượng chuỗi thu từ n-gram lớn Số lượng chuỗi không trùng thu từ n-gram tập k ký tự: kn - Term Frequency (TF): cách đếm số lần xuất từ văn Có nhiều cách tính TF cho từ t văn d Nhóm tác giả sử dụng dạng chuẩn hóa với tần số tăng cường K để hạn chế lệch lạc tài liệu dài (K 0.5): 𝑡𝑓 (𝑡, 𝑑 ) = K + 𝐾 - 𝑓(𝑡, 𝑑) ∈ d) 𝑓(𝑡 ′ , 𝑑) max(𝑡 ′ Inverse Document Frequency (IDF): thước đo mức độ phổ biến hay từ tất tài liệu Giá sử D tập toàn văn 𝑖𝑑𝑓 (𝑡, 𝐷 ) = 𝑙𝑜𝑔 - |𝐷| + |{𝑑 ∈ 𝐷: 𝑡 ∈ 𝑑}| Term Frequency–Inverse Document Frequency (TF-IDF): kết hợp TF IDF 𝑡𝑓𝑖𝑑𝑓 (𝑡, 𝑑, 𝐷 ) = 𝑡𝑓 (𝑡, 𝑑 ) 𝑖𝑑𝑓(𝑡, 𝐷) - Page-Rank (PR): thuật toán sử dụng Google Search để xếp hạng trang web kết công cụ tìm kiếm PR phương pháp 46 dùng để ước lượng độ quan trọng trang web, dựa liên kết mà trang web trỏ tới Cơng thức tính Page-Rank cho trang web i với hệ số d (thường 0.85), M tập trang web trỏ đến i, N tổng số trang web: 𝑃𝑅 (𝑖 ) = 1−𝑑 𝑃𝑅(𝑗) +𝑑 ∑ 𝑁 𝐿(𝑗) 𝑗∈𝑀 3.4 Xây dựng mơ hình máy học Nhóm tác giả sử dụng 14 thuật toán máy học cho tốn phân lớp có giám sát: K-Nearest-Neighbor, Linear SVM, RBF SVM, Linear Regression, Logistic Regression, Multi-layer Perceptron, Naive Bayes, Linear Discriminant Analysis, Quadratic Discriminant Analysis, Decision Tree, Random Forest, Extra Trees, AdaBoost, Gradient Boosting Việc đánh giá mơ hình huấn luyện dựa vào phương pháp Precision-Recall, F-score, ROC – AUC crossvalidation Dữ liệu đầu vào phân tách thành hai tập huấn luyện kiểm thử với tỉ lệ 90% cho việc huấn luyện 10% cho việc kiểm thử Với kỹ thuật đánh giá cross-validation, tập liệu chia thành 10 phần, phần sử dụng để huấn luyện mơ hình máy học phần dùng cho việc đánh giá mơ hình máy học Sau lặp lại việc huấn luyện 10 lần với tập liệu, kết trung bình thu thuật toán sử dụng làm tiêu chí đánh giá thuật tốn Do tập liệu sử dụng có số lượng mẫu thuộc nhãn (6665) nhiều số lượng mẫu thuộc nhãn (1248), nên số F1-score sử dụng để đánh giá độ xác mơ hình máy học thay số xác Bảng đánh giá chị số Precision, Recall, F1-score: K Nearest Neighbors precision 0.99 1.00 accuracy macro avg weighted avg 1.00 1.00 Linear SVM precision 1.00 1.00 1.00 1.00 recall f1-score support 1.00 1.00 128 664 1.00 792 1.00 1.00 792 1.00 1.00 792 recall f1-score support 1.00 1.00 1.00 1.00 128 664 47 accuracy macro avg weighted avg 1.00 1.00 RBF SVM precision 1.00 0.90 accuracy macro avg weighted avg 1.00 1.00 accuracy macro avg weighted avg recall f1-score support 0.40 1.00 0.95 0.91 Linear Regression precision 1.00 792 1.00 1.00 792 1.00 1.00 792 0.57 0.95 128 664 0.90 792 0.70 0.76 792 0.90 0.88 792 recall f1-score support 1.00 1.00 1.00 1.00 1.00 1.00 128 664 1.00 792 1.00 1.00 792 1.00 1.00 792 Logistic Regression precision recall f1-score support 1.00 1.00 accuracy macro avg weighted avg 1.00 1.00 Neural Net precision 1.00 1.00 accuracy macro avg weighted avg 0.91 1.00 accuracy macro avg weighted avg 1.00 1.00 128 664 1.00 792 1.00 1.00 792 1.00 1.00 792 recall f1-score support 1.00 1.00 1.00 1.00 Naive Bayes precision 1.00 1.00 1.00 1.00 128 664 1.00 792 1.00 1.00 792 1.00 1.00 792 recall f1-score support 1.00 0.98 0.96 0.99 0.96 0.99 128 664 0.98 792 0.99 0.97 792 0.98 0.99 792 LDA precision recall f1-score support 48 1.00 1.00 accuracy macro avg weighted avg 1.00 1.00 1.00 1.00 1.00 1.00 128 664 1.00 792 1.00 1.00 792 1.00 1.00 792 QDA precision 0.99 1.00 accuracy macro avg weighted avg 1.00 1.00 accuracy macro avg weighted avg 1.00 1.00 accuracy macro avg weighted avg 1.00 1.00 accuracy macro avg weighted avg 1.00 1.00 accuracy macro avg weighted avg 1.00 1.00 128 664 1.00 792 1.00 1.00 792 1.00 1.00 792 recall f1-score support 0.99 1.00 1.00 1.00 128 664 1.00 792 1.00 1.00 792 1.00 1.00 792 recall f1-score support 1.00 1.00 1.00 1.00 AdaBoost precision 128 664 1.00 792 1.00 1.00 792 1.00 1.00 792 1.00 1.00 1.00 1.00 Extra Trees precision 1.00 1.00 recall f1-score support 1.00 1.00 Random Forest precision 1.00 1.00 1.00 1.00 Decision Tree precision recall f1-score support 1.00 1.00 128 664 1.00 792 1.00 1.00 792 1.00 1.00 792 recall f1-score support 0.98 1.00 1.00 1.00 0.99 1.00 128 664 1.00 792 0.99 1.00 792 1.00 1.00 792 49 Gradient Boosting precision 1.00 1.00 accuracy macro avg weighted avg recall f1-score support 0.98 1.00 1.00 1.00 0.99 1.00 128 664 1.00 792 0.99 1.00 792 1.00 1.00 792 Các biểu đồ thể ROC Curve AUC: Hình 3.25 ROC AUC KNN 50 Hình 3.26 ROC AUC Linear SVM Hình 3.27 ROC AUC RBF SVM 51 Hình 3.28 ROC AUC Logistic Regression Hình 3.29 ROC AUC Neural Network 52 Hình 3.30 ROC AUC Nạve Bayes Hình 3.31 ROC AUC LDA 53 Hình 3.32 ROC AUC QDA Hình 3.33 ROC AUC Decision Tree 54 Hình 3.34 ROC AUC Random Forest Hình 3.35 ROC AUC Extra Trees 55 Hình 3.36 ROC AUC AdaBoost Hình 3.37 ROC AUC Gradient Boosting 56 CHƯƠNG ĐÁNH GIÁ HỆ THỐNG Qua kết huấn luyện mơ hình, ta thấy thuật toán đạt hiệu cao Gradient Boosting với AUC = 1.0 Bên cạnh đó, thuật tốn khác đạt AUC trung bình 0.99 với độ lệch ± 0.01 KNN, SVM (Linear RBF), Logistic Regression, Neural Network Extra Trees Các thuật toán lại cho kết tốt với AUC trung bình 0.96 Do tập liệu có độ lệch cao với tỉ lệ 1:5 (1248 mẫu nhãn 6665 mẫu nhãn 1) nên ta cần xét thêm số Precision, Recall, F1-score để đảm bảo mơ hình hoạt động hiệu Do đặc thù toán phát mã độc môi trường thực tế, hạn chế việc bỏ sót mẫu mã độc nên số false-negative (âm tính giả) cần phải thấp tốt Ta có: 𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃 𝑇𝑃 + 𝐹𝑁 Giả sử số mẫu có nhãn positive C, ta biến đổi cơng thức để tính FN: 𝑅𝑒𝑐𝑎𝑙𝑙 = 𝐶 − 𝐹𝑁 𝐶 − 𝐹𝑁 𝐹𝑁 = = 1− 𝐶 − 𝐹𝑁 + 𝐹𝑁 𝐶 𝐶 ⇨ 𝐹𝑁 = (1 − 𝑅𝑒𝑐𝑎𝑙𝑙)𝐶 Trong C số nguyên dương, Recall ∈ [0, 1] nên FN nhỏ Recall lớn Các thuật tốn vừa nều có Recall nhãn xấp xỉ 1.00 nên chấp nhận Điều chứng đặc trưng trích xuất từ chuỗi mã lệnh đạt độ xác, độ tin cậy cao có khả ứng dụng vào thực tế 57 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận Trong đề tài này, nhóm tác giả thu thập thành công tập liệu mã bao gồm tập tin hệ thống hệ điều hành Windows 10 x64 1703, trích xuất thông tin từ hai liệu mã độc “VxHeavens” “Microsoft Malware Classification Challenge (BIG 2015)” Đồng thời nhóm tác giả xya6 dựng mơ hình máy học dựa đặc trưng liên quan đến chuỗi mã lệnh chương trình đạt độ xác cao độ ổn định tốt 5.2 Hạn chế hướng phát triển 5.2.1 Hạn chế Trong thời gian thực khóa luận, nhóm tác giả thu thập mẫu tập tin từ hệ điều hành Windows 10 thay phiên hệ điều hành cũ Windows XP, Windows Vista, Windows 7, Windows Các đặc trưng nghiên cứu áp dụng đề tài cịn chưa tận dụng hết mạnh thông tin từ mẫu đầu vào Bên cạnh đó, kết huấn luyện mơ hình với độ xác cao gây khó khăn việc chọn thuật toán tối ưu việc cải tiến độ xác Trong tương lại, đề tài tiếp tục khắc phục hoàn thiện 5.2.2 Hướng phát triển Trong tương lai, nhóm tác giả tiếp tục thu thập thêm mẫu liệu phù hợp hơn, đồng thời cập nhật mơ hình máy học định kỳ Ngồi nhóm tác giả tiếp tục nghiên cứu phát triển thêm nhiều đặc trưng nâng cao hiệu suất hệ thống Mơ hình máy học đóng gói lưu trữ, mã nguồn tồn trình huấn luyện phát triển thành thư viện nhằm có khả tái sử dụng tích hợp nhiều hệ thống khác 58 TÀI LIỆU THAM KHẢO [1] Santos, I., Sanz, B., Laorden, C., Brezo, F., & Bringas, P G (2011) “Opcode-Sequence-Based Semi-supervised Unknown Malware Detection Lecture Notes in Computer Science”, 50–57 doi:10.1007/978-3-642-21323-6_7 [2] Sun, Zhi; Rao, Zhihong; Chen, Jianfeng; Xu, Rui; He, Da; Yang, Hui; Liu, Jie (2019) [ACM Press the 2019 2nd International Conference - Prague, Czech Republic (2019.03.15-2019.03.17)] Proceedings of the 2019 2nd International Conference on Geoinformatics and Data Analysis - ICGDA 2019 – “An Opcode Sequences Analysis Method For Unknown Malware Detection” , (), 15–19 doi:10.1145/3318236.3318255 [3] Manavi, Farnoush; Hamzeh, Ali (2019) [ACM Press the Genetic and Evolutionary Computation Conference Companion - Prague, Czech Republic (2019.07.13-2019.07.17)] Proceedings of the Genetic and Evolutionary Computation Conference Companion on - GECCO '19 – “A new approach for malware detection based on evolutionary algorithm” , (), 1619–1624 doi:10.1145/3319619.3326811 [4] Anh Viet Phan; Minh Le Nguyen; Lam Thu Bui “Convolutional Neural Networks over Control Flow Graphs for Software Defect Prediction” 2017 IEEE 29th International Conference on Tools with Artificial Intelligence (ICTAI) doi:10.1109/ICTAI.2017.00019 [5] Microsoft Corporation “Microsoft Portable Executable and Common Object File Format Specification” 1999 [6] “VX Heaven windows virus collection” https://archive.org/details/vxheaven-windows-virus-collection [7] “Microsoft Malware Classification Challenge (BIG 2015)” https://www.kaggle.com/c/malware-classification [8] “Capstone engine” http://www.capstone-engine.org/ 59 [9] “An In-Depth Look into the Win32 Portable Executable File Format” https://docs.microsoft.com/en-us/archive/msdn-magazine/2002/february/insidewindows-win32-portable-executable-file-format-in-detail [10] “PE Format” https://docs.microsoft.com/en-us/windows/win32/debug/pe- format [11] Vũ Hữu Tiệp “Machine Learning bản” [12] Lê Minh Hoàng “Giải thuật lập trình” 60 ... KHĨA LUẬN Khóa luận tốt nghiệp với đề tài “SỬ DỤNG KỸ THUẬT PHÂN TÍCH CHUỖI MÃ LỆNH ĐỂ PHÁT HIỆN PHẦN MỀM ĐỘC HẠI KHÔNG XÁC ĐỊNH” bao gồm chương: Chương 1: Giới thiệu tổng quan đề tài, phân tích. .. THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM NGUYỄN DƯƠNG HỒNG DUY – 16520291 KHĨA LUẬN TỐT NGHIỆP SỬ DỤNG KỸ THUẬT PHÂN TÍCH CHUỖI MÃ LỆNH ĐỂ PHÁT HIỆN PHẦN MỀM ĐỘC HẠI KHÔNG XÁC ĐỊNH Using Opcode Sequences... cơng bố Bài tốn phát phần mềm độc hại sử dụng thuật toán máy học vấn đề Đối với tốn ? ?phát phần mềm độc hại khơng xác định? ?? theo hướng tiếp cận sử dụng ? ?kỹ thuật phân tích chuỗi mã lệnh? ?? nhà nghiên