Việc lựa chọn đặc trưng nhằm đảm bảo loại trừ dư thừa và các đặc trưng khơng liên quan để tăng độ chính xác cho quá trình dự đốn, đặc biệt là đối với tập đặc trưng lớn ở trong trường hợp này.
Ngơn ngữ R sẽ được sử dụng để thực hiện lựa chọn đặc trưng và áp dụng lên các kỹ thuật học máy. R là mơi trường lập trình dùng cho thống kê và lập biểu đồ, cĩ thể biên dịch và chạy trên các nền tảng khác nhau như UNIX, Windows, MacOS, … [29].
Một thuật tốn đơn giản và hiệu quả dùng để lựa chọn đặc trưng là gĩi thư viện Boruta nằm trong gĩi ngơn ngữ R. Thuật tốn của nĩ cĩ thể được mơ tả như sau [18]:
Tạo một bản sao của tập dữ liệu và xáo trộn chúng.
Huấn luyện thuật tốn Random Forest bằng tập dữ liệu mới và áp dụng thuật tốn Mean Decrease Accuracy để đo mức độ quan trọng của các đặc trưng. Tại mỗi vịng lặp, kiểm tra độ quan trọng của đặc trưng. Loại bỏ các đặc
trưng được xếp loại khơng quan trọng sau mỗi vịng lặp.
Dừng sau khi đã phân loại hết các đặc trưng, hoặc sau khi đạt đến một số vịng lặp nhất định.
Tuy nhiên, do số lượng đặc trưng quá lớn, sẽ khơng đủ tài nguyên để thuật tốn Boruta chạy ổn định. Vì thế, cần chia nhỏ tập dữ liệu thành các tập con để xử lý. Sau đĩ, các đặc trưng quan trọng sẽ được thu thập từ các tập con và hợp nhất lại, loại bỏ các đặc trưng dư thừa. Cuối cùng thực hiện lựa chọn một lần nữa trên tập đặc trưng mới. Từ tập 14789 đặc trưng, sau khi chạy thuật tốn rút gọn cịn 99 đặc trưng.
3.2 Huấn luyện và kiểm thử mơ hình phát hiện mã độc
Sau khi đã trích xuất và lựa chọn được đặc trưng, tập dữ liệu này sẽ được dùng để đưa vào huấn luyện các kỹ thuật học máy, bao gồm: KNN, SVM, J48 Decision Tree, Nạve Bayes, Random Forest. Mơ hình phát hiện được biểu diễn trên hình 3.4:
Chuẩn hĩa dữ liệu phù hợp với thuật tốn
Hình 3.3 Mơ hình quá trình phân loại
Các gĩi thư viện được dùng cho các thuật tốn như sau: K-Nearest Neighbors – class
Support Vector Machine – kernlab
J48 Decision Tree – Rweka
Nạve Bayes – e1071
Random Forest – randomForest
Tạo kết quả dạng bảng – gmodels
J48 Thực hiện dự đốn Đưa ra kết quả Nạve Bayes Thực hiện dự đốn Đưa ra kết quả Random Forest SVM Thực hiện dự đốn Đưa ra kết quả Thực hiện dự đốn cho KNN Đưa ra kết quả Thực hiện dự đốn Đưa ra kết quả Import thư viện Load dữ liệu
Định nghĩa các hàm chuẩn hĩa Chia dữ liệu theo tỉ lệ 2/3 thành hai tập huấn luyện và thử nghiệm ngẫu nhiên
3.3 Kết quả và đánh giá
Độ chính xác của mơ hình phát hiện mã độc được tính theo cơng thức sau:
Trong đĩ:
��� =��+��+��+���+�� �
(3.1)
- TP (True Positive): Số lượng các mẫu mã độc được phân loại đúng vào lớp mã độc.
- FP (False Positive): Số lượng các mẫu khơng phải mã độc bị phân loại nhầm vào lớp mã độc.
- TN (True Negative): Số lượng các mẫu khơng phải mã độc được phân loại đúng vào lớp bình thường.
- FN (False Negative): Số lượng các mẫu mã độc bị phân loại nhầm vào các lớp bình thường.
3.3.1 K-Nearest Neighbors
Kết quả thực nghiệm của KNN được thể hiện trên hình 3.4. Trong đĩ, lớp 0 là các files bình thường (benign), lớp 1 là các files mã độc (malicious). Row Total là số lượng thực tế của các mẫu tương ứng với các lớp 0, 1. Column Total là số lượng các mẫu được phân chia vào các lớp 0, 1 theo mơ hình.
Độ chính xác đạt được là 99.6% đối với k = 1. Số lượng chi tiết được thể hiện trên bảng 3.1:
Bảng 3.1 Độ chính xác của thuật tốn KNN
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 214 0 100%
Như vậy, thuật tốn KNN cho kết quả tốt với tỉ lệ chính xác lên tới 99.6%. Tỉ lệ FN bằng 0, tức là khơng cĩ file mã độc nào bị nhận nhầm thành file bình thường.
3.3.2 Support Vector Machines
Kết quả thực nghiệm của thuật tốn được thể hiện trên hình 3.5, với độ chính xác 98.2%.
Hình 3.5 Kết quả dự đốn của thuật tốn SVM
Bảng 3.2 thể hiện số liệu cụ thể về độ chính xác của thuật tốn. Trong đĩ, số lượng files bình thường được phát hiện đúng (TN) là 57, số lượng files mã độc được phát hiện đúng (TP) là 211.
Bảng 3.2 Độ chính xác của thuật tốn SVM
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 211 3 98.6%
3.3.3 J48 Decision Tree
Ư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
[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