CHƯƠNG 2. MỘT SỐ KỸ THUẬT PHÁT HIỆN MÃ ĐỘC TRÊN HỆ ĐIỀU HÀNH ANDROID
2.4. Phát hiện mã độc dựa trên SVM, KNN và Naive Bayes
2.4.4. Phát hiện mã độc dựa trên 3 thuật toán phân loại dữ liệu SVM, KNN và
Thuật toán SVM được sử dụng để phân loại các tệp tin là độc hại hay không dựa trên các đặc trưng của chúng. Các đặc trưng này có thể bao gồm các thuộc tính như kích thước tệp tin, số lượng chữ ký, số lượng chuỗi ký tự độc hại và các thuộc tính khác. SVM sử dụng một hàm kernel để ánh xạ các đặc trưng của tệp tin vào không gian cao chiều hơn, nơi chúng có thể được phân loại bằng
một siêu phẳng. SVM được đào tạo trên tập dữ liệu được gán nhãn và sau đó được sử dụng để phân loại các tệp tin mới.
Thuật toán KNN được sử dụng để phân loại các tệp tin là độc hại hay không bằng cách so sánh các tệp tin mới với các tệp tin trong tập dữ liệu huấn luyện. KNN xác định các điểm gần nhất với điểm được phân loại và dự đoán nhãn của điểm dựa trên nhãn của các điểm gần nhất đó. KNN yêu cầu một số lượng lớn các điểm dữ liệu để huấn luyện, vì vậy nó có thể tiêu tốn nhiều thời gian để đào tạo và sử dụng.
Thuật toán Naive Bayes được sử dụng để phân loại các tệp tin là độc hại hay không bằng cách tính toán xác suất của một tệp tin được phân loại như là độc hại hoặc không độc hại dựa trên các đặc trưng của nó. Naive Bayes giả định rằng các đặc trưng của tệp tin là độc lập với nhau, vì vậy tên của thuật toán là Naive (ngây thơ) Bayes.
Trong thử nghiệm, các thuật toán SVM, KNN và Naive Bayes được huấn luyện và đánh giá trên tập dữ liệu Malware của MalDozer dataset với 80% dữ liệu được sử dụng để huấn luyện và 20% dữ liệu được sử dụng để đánh giá. Kết quả đánh giá của các thuật toán được đo bằng các chỉ số Precision, Recall và F1 Score. Precision là tỉ lệ số lượng các trường hợp dương được phát hiện đúng trên tổng số các trường hợp dương được dự đoán. Recall là tỉ lệ số lượng các trường hợp dương được phát hiện đúng trên tổng số các trường hợp dương thực sự tồn tại. F1 Score là trung bình điều hòa giữa Precision và Recall. Kết quả thử nghiệm cho thấy, SVM có hiệu suất tốt nhất với Precision đạt 0.994, Recall đạt 0.995 và F1 Score đạt 0.994. Naive Bayes đạt kết quả thấp nhất với Precision đạt 0.787, Recall đạt 0.922 và F1 Score đạt 0.850. KNN có kết quả trung bình với Precision đạt 0.916, Recall đạt 0.932 và F1 Score đạt 0.924. Điều này cho thấy, SVM là thuật toán tốt nhất trong việc phát hiện mã độc dựa trên MalDozer dataset. Tuy nhiên, việc chọn thuật toán phù hợp cũng phụ thuộc vào các yếu tố như kích thước dữ liệu, độ phức tạp của dữ liệu và mục tiêu của ứng dụng.
Ngoài ra, có thể kết hợp cả 3 thuật toán SVM, KNN và Naive Bayes để tăng hiệu quả trong việc phát hiện mã độc. Khi kết hợp các thuật toán này, chúng ta sử dụng phương pháp voting hoặc weighted voting để quyết định mã độc có tồn tại trong tệp tin hay không.
- Với phương pháp voting, mỗi thuật toán sẽ đưa ra một quyết định riêng dựa trên kết quả phân loại của nó. Sau đó, chúng ta sẽ đưa ra quyết định cuối
cùng dựa trên sự phiếu đồng thuận của các thuật toán. Ví dụ, nếu ba thuật toán đều cho rằng tệp tin là mã độc, thì kết quả cuối cùng sẽ là mã độc.
- Với phương pháp weighted voting, mỗi thuật toán sẽ được gán một trọng số khác nhau dựa trên độ chính xác của nó trong quá trình phân loại. Các trọng số này có thể được tính toán bằng các phương pháp như cross-validation hoặc sử dụng tập dữ liệu kiểm tra độc lập.
Sau đó, quyết định cuối cùng sẽ được đưa ra bằng cách tính tổng trọng số của các quyết định đưa ra bởi các thuật toán. Việc kết hợp các thuật toán sẽ giúp tăng độ chính xác và độ tin cậy trong việc phát hiện mã độc. Tuy nhiên, điều quan trọng là cần phải lựa chọn các thuật toán phù hợp và điều chỉnh tham số để đạt được hiệu quả tốt nhất.