J48 Decision Tree

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp phát hiện mã độc dựa trên các kỹ thuật học máy (Trang 49 - 56)

Ưu điểm của phương pháp Decision Tree là thực hiện dưới dạng “white box” và chúng ta cĩ thể nhìn thấy quá trình dự đốn một cách trực quan. Kết quả dự đốn của thuật tốn được thể hiện trên hình 3.6.

Hình 3.6 Kết quả dự đốn của thuật tốn J48

Độ chính xác của thuật tốn là 98.5%, với thơng tin chi tiết được thể hiện trên bảng 3.3. Số lượng files bình thường được nhận dạng đúng là 57, số lượng files mã độc được nhận dạng đúng là 212.

Bảng 3.3 Độ chính xác của thuật tốn Decision Tree

Lớp Số mẫu phát hiện đúng Số mẫu phát hiện sai Độ chính xác

Benign 57 2 96.6%

Malicious 212 2 99.1%

3.3.4 Nạve Bayes

Thuật tốn cho kết quả với độ chính xác khá thấp – 54.2%. Số lượng mã độc được phát hiện đúng (TP) là 91, số lượng file bình thường được phát hiện đúng (TN) là 57. Thơng tin chi tiết được thể hiện trên hình 3.7 và bảng 3.4

Hình 3.7 Kết quả dự đốn của thuật tốn Naive Bayes Bảng 3.4 Độ chính xác của thuật tốn Naive Bayes

Lớp Số mẫu phát hiện đúng Số mẫu phát hiện sai Độ chính xác

Benign 57 2 96.6%

Malicious 91 123 42.5%

Độ chính xác của thuật tốn khá thấp so với các thuật tốn trên. Hơn nữa, tỉ lệ các file mã độc bị nhận nhầm thành file bình thường (FN) là khá cao – 57.5%, cĩ thể dẫn đến thiệt hại lớn trên thực tế.

Lý do dẫn đến kết quả này là bởi trong thuật tốn Nạve Bayes, các đặc trưng được xử lý một cách độc lập, điều này khơng đúng trong hầu hết các trường hợp. Các lời gọi APIs hầu như đều phụ thuộc lẫn nhau. Vì thế, thuật tốn Nạve Bayes sẽ cho ra kết quả thiếu chính xác.

3.3.5 Random Forest

Kết quả thực nghiệm của thuật tốn Random Forest được thể hiện trên hình 3.8.

Hình 3.8 Kết quả dự đốn của thuật tốn Random Forest

Thuật tốn cĩ độ chính xác 99.3%, gần bằng với thuật tốn KNN. Số lượng file bình thường được phát hiện đúng (TN) là 58, số lượng mã độc được phát hiện đúng (TP) là 213. Chi tiết thể hiện trên bảng 3.5:

Bảng 3.5 Độ chính xác của thuật tốn Random Forest

Lớp Số mẫu phát hiện đúng Số mẫu phát hiện sai Độ chính xác

Benign 58 1 98.3%

Malicious 213 1 99.5%

3.4 Nhận xét

Trên đây luận văn đã trình bày về quá trình thử nghiệm và kết quả thử nghiệm các thuật tốn. Các thuật tốn đều cho kết quả khác nhau. Thuật tốn tốt nhất là KNN với độ chính xác 99.6%. Tiếp theo là Random Forest (99.3%), J48 (98.5%), SVM(98.1%). Thuật tốn cĩ độ chính xác thấp nhất là Nạve Bayes với 54.2%. Độ chính xác của các thuật tốn được thể hiện trên bảng 3.6:

Bảng 3.6 Kết quả thực nghiệm Thuật tốn Kết quả KNN SVM Nạve Bayes J48 Random Forest Độ chính xác 99.6% 98.1% 54.2% 98.5% 99.3% TP 214 211 91 212 213 FP 1 2 2 2 1 TN 58 57 57 57 58 FN 0 3 123 2 1

Mặc dù thuật tốn KNN cĩ độ chính xác cao nhất, luận văn kiến nghị sử dụng thuật tốn Random Forest. Bởi kết quả của thuật tốn KNN cịn phụ thuộc vào việc lựa chọn k và KNN cũng chỉ phù hợp với tập dữ liệu nhỏ và các lớp phân bố đều – khơng phù hợp khi mở rộng bộ dữ liệu mẫu. Đối với thuật tốn Random Forest, tỉ lệ FN, tức là khả năng phát hiện sai file mã độc thành file bình thường là thấp nhất trong các thuật tốn cịn lại.

3.5 Kết luận chương

Chương 3 trình bày về quá trình thử nghiệm, bao gồm các bước thực hiện, kết quả thực nghiệm, đánh giá và nhận xét về các kỹ thuật học máy. Trong năm kỹ thuật đã đề cập ở trên, luận văn kiến nghị ứng dụng Random Forest vào bài tốn phát hiện mã độc thực tế, với độ chính xác 99.3%, cĩ tỉ lệ FN thấp nhất – 0.05% và phù hợp với các bài tốn cĩ tập dữ liệu lớn.

KẾT LUẬN VÀ KIẾN NGHỊ

1. Những đĩng gĩp của luận văn

Luận văn đã nghiên cứu về phương pháp phát hiện mã độc dựa trên các kỹ thuật học máy và đã đạt được một số kết quả sau:

 Giới thiệu tổng quan về mã độc: khái niệm, phân loại và các phương pháp phát hiện mã độc truyền thống hiện nay.

 Trình bày cơ sở lý thuyết và đưa ra mơ hình phát hiện mã độc dựa trên các kỹ thuật học máy KNN, SVM, Decision Tree, Nạve Bayes, Random Forest.

 Tiến hành thực nghiệm, đánh giá và so sánh kết quả.

Tĩm lại, quá trình thực nghiệm cĩ thể được tĩm tắt như sau: sử dụng cuckoo sandbox để trích xuất đặc trưng và biểu diễn đặc trưng dưới dạng ma trận tần suất các lời gọi API cùng với mã trả về của chúng. Phương pháp này cĩ thể thể hiện thơng tin về các thay đổi trong hệ thống, bao gồm thay đổi registry, mutexes, tệp tin,… Sau đĩ sử dụng thư viện Boruta để lựa chọn các đặc trưng quan trọng và loại bỏ các đặc trưng dư thừa. Cuối cùng là xử lý dữ liệu mẫu và đưa vào các thuật tốn học máy để thực hiện phân lớp.

Thuật tốn được kiến nghị sử dụng là Random Forest bởi nĩ cĩ độ chính xác cao, phù hợp với tập dữ lớn và cĩ nhiều nhiễu. Ngồi ra, thuật tốn cũng cho tỉ lệ FN khá thấp – tức là hầu như khơng cĩ file mã độc nào bị nhận sai thành file bình thường.

2. Hướng phát triển tiếp theo

Hiện tại, luận văn sử dụng cuckoo sandbox để trích xuất đặc trưng. Quá trình này tốn khá nhiều thời gian và tài nguyên hệ thống. Hướng phát triển tiếp theo sẽ là kết hợp quá trình trích xuất và lựa chọn đặc trưng để tăng hiệu năng cho quá trình trích chọn đặc trưng. Ngồi ra luận văn cũng sẽ mở rộng tập dữ liệu mẫu, bởi tập dữ liệu hiện tại chỉ chứa một số lượng nhỏ các dạng mã độc khác nhau. Để tăng độ chính xác cho kết quả phát hiện, cần sử dụng tập dữ liệu lớn hơn và đa dạng hơn.

TÀI LIỆU THAM KHẢO

Tiếng Anh:

[1]Alazab, Mamoun, Sitalakshmi Venkatraman, Paul Watters, and Moutaz Alazab. (2011). Zero-day Malware Detection based on Supervised Learning Algorithms of API call Signatures. Proceedings of the 9-th Australasian Data Mining

Conference, 171-181

[2]Baldangombo Usukhbayar, Nyamjav Jambaljav, Shi-Jinn Horng. (2013). A Static Malware Detection System Using Data Mining Methods. Cornell University.

[3]Baskaran, Balaji, Anca Ralescu. (2016). A Study of Android Malware Detection Techniques and Machine Learning. Proceedings of the 27th Modern Artificial Intelligence and Cognitive Science Conference.

[4]Biau, G. (2013). Analysis of a Random Forests Model. Journal of Machine Learning Research, 1063-1095.

[5]Bishop, C. (2006). Pattern Recognition and Machine Learning. New York: Springer.

[6]Cloonan, J. (2017, 04 11). Advanced Malware Detection - Signatures vs. Behavior Analysis. Retrieved 2018-10-08, from https://www.infosecurity- magazine.com/opinions/malware-detection-signatures/

[7]Cuckoo Sandbox. (Cuckoo Foundation) Retrieved from

https://cuckoo.readthedocs.io/en/latest/introduction/what/#architecture

[8]Egele, Manuel, Theodoor Sholte, Engin Kirda, Christofer Kruegel. (2012). A Survey on Automated Dynamic Malware Analysis Techniques and Tools. ACM Computing Surveys.

[9]First computer virus of Bob Thomas. Retrieved 2018-10-03, from http://history- computer.com/Internet/Maturing/Thomas.html

[10]Gavrilut, Dragos, Mihai Cimpoesu, Dan Anton, Liviu Ciortuz. (2009).

Malware Detection Using Machine Learning. The International Multiconference on Computer Science and Information Technology.

[11]Harley, David, Andrew Lee. (2009). Heuristic Analysis — Detecting Unknown Viruses.

[12]Hung, P. V. (2011). An approach to fast malware classification with machine learning technique.

[13]Isabelle Guyon, Andre Elisseef. (2006). An Introduction to Feature An Introduction to Feature. New York.

[14]Jorma Laaksonen, Erkki Oja. (1996). Classification with learning k-Nearest Neighbors.

[15]Krishna Sandeep Reddy, Arun Pujari. (2006). N-gram analysis for computer virus detection.

[16]Louppe, G. (2014). Understanding Random Forests. [17]Milaparkour. Contagio Malware dump. Retrieved from

http://contagiodump.blogspot.com/

[18]Miron B. Kursa, Witold R. Rudnicki. (2010). Feature selection with the Boruta package. Journal of Statistical Software, 36.

[19]Mitchell, T. (1997). Machine Learning.

[20]Pirscoveanu, R.-S. (2015). Clustering Analysis of Malware Behavior. Aalborg University.

[21]Prasad, B. Jaya, Haritha Annangi, Krishna Sastry Pendyala. (2016). Basic static malware analysis using open source tools.

[22]Priyank Singhal, Nataasha Raul. (2015). Malware Detection Module using Machine Learning Algorithms to Assist in Centralized Security in Enterprise Networks.

[23]Rankin, B. (2018, 04 05). A Brief History of Malware — Its Evolution and Impact. Retrieved 2018-10-03, from https://www.lastline.com/blog/history-of- malware-its-evolution-and-impact/

[24]Ranzhe Jing, Yong Zhang. (2010). A View of Support Vector Machines Algorithm on Classification Problems. International Conference on Multimedia Communications. International Conference on Multimedia Communications.

[25]Swain, Philip H., Hans Hauska. (1977). The Decision Tree classifier: design and potential. IEEE Transactions on Geoscience Electronics.

[26]Symatec. (2018). 2018 Internet Security.

[27]Thirumuruganathan, S. (2010). A Detailed Introduction to K-Nearest Neighbor (KNN) Algorithm. Retrieved from

https://saravananthirumuruganathan.wordpress.com/2010/05/17/a-detailed- introduction-to-k-nearest-neighbor-knn-algorithm/

[28]VX Heaven windows virus collection. Retrieved from

https://archive.org/details/vxheaven-windows-virus-collection [29]W. N. Venables, and D. M. Smith. (2016). An Introduction to R. [30]When did the term 'computer virus' arise? Retrieved 2018-10-03, from

https://www.scientificamerican.com/article/when-did-the-term-compute/

Tiếng Việt:

[31]https://vi.wikipedia.org/wiki/H%E1%BB%8Dc_m%C3%A1y#%C4%90%E1

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp phát hiện mã độc dựa trên các kỹ thuật học máy (Trang 49 - 56)