CHƯƠNG 2. MỘT SỐ KỸ THUẬT PHÁT HIỆN MÃ ĐỘC TRÊN HỆ ĐIỀU HÀNH ANDROID
2.3. Kỹ thuật phát hiện mã độc dựa trên học máy
2.3.1. Giới thiệu về học máy
Học máy (machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể. Các thuật toán học máy xây dựng một mô hình dựa trên dữ liệu mẫu, được gọi là dữ liệu huấn luyện, để đưa ra dự đoán hoặc quyết định mà không cần được lập trình chi tiết về việc đưa ra dự đoán hoặc quyết định này. Ví dụ như các máy có thể "học" cách phân loại thư điện tử xem có phải thư rác (spam) hay không và tự động xếp thư vào thư mục tương ứng.
Học máy rất gần với suy diễn thống kê (statistical inference) tuy có khác nhau về thuật ngữ. Một nhánh của học máy là học sâu phát triển rất mạnh mẽ gần đây và có những kết quả vượt trội so với các phương pháp học máy khác Học máy có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê, học máy tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán. Nhiều bài toán suy luận được xếp vào loại bài toán NP-khó, vì thế một phần của học máy là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà có thể xử lý được.
2.3.2. Phát hiện mã độc dựa trên MalDoze neural network 2.3.2.1. Giới thiệu chung
MalDozer Neural Network là một phương pháp phát hiện mã độc sử dụng các mô hình học sâu (deep learning) để phân loại các tệp tin có chứa mã độc hoặc không chứa mã độc. Phương pháp này được phát triển bởi các nhà nghiên cứu tại Đại học Carnegie Mellon [3].
MalDozer sử dụng một mô hình mạng neural sâu được huấn luyện trên một tập dữ liệu lớn các tệp tin bị nhiễm mã độc để học cách phân biệt các tính năng của các tệp tin bị nhiễm mã độc so với các tệp tin không chứa mã độc. Các tính năng này bao gồm các phần mềm độc hại thường sử dụng, các hoạt động độc hại, các phần của tệp tin được sử dụng để che giấu mã độc, và các đặc điểm của các phần mềm độc hại khác.
Sau khi được huấn luyện, mô hình MalDozer có thể sử dụng để phân loại các tệp tin mới, xác định xem chúng có chứa mã độc hay không. Các kết quả phân loại của MalDozer được đánh giá với độ chính xác cao và có thể phát hiện được các loại mã độc mới mà các phương pháp truyền thống khác có thể không phát hiện được.
MalDozer là một phương pháp hứa hẹn cho việc phát hiện mã độc trong các ứng dụng an ninh mạng. Tuy nhiên, nó cũng có một số giới hạn, bao gồm việc đòi hỏi tài nguyên tính toán lớn và việc phát hiện các loại mã độc mới còn là một thách thức đối với các phương pháp phát hiện mã độc dựa trên machine learning.
2.3.2.2. Kỹ thuật phát hiện mã độc dựa trên MalDoze neural network
- Thu thập dữ liệu:
Trước hết, các tệp tin malware và tệp tin bình thường cần được thu thập để tạo thành một tập dữ liệu cho quá trình huấn luyện và kiểm tra mô hình. Các
tin lành tính được lấy từ các trang web đáng tin cậy như Google Drive và Dropbox.
- Tiền xử lý dữ liệu:
Sau khi thu thập được tập dữ liệu, các tệp tin cần được tiền xử lý để phù hợp với quá trình huấn luyện của mô hình. Các bước tiền xử lý dữ liệu bao gồm:
+ Chuyển đổi các tệp tin thành các ma trận số: Các tệp tin sẽ được chuyển đổi thành các ma trận số, với mỗi giá trị trong ma trận tương ứng với một đặc trưng của tệp tin. Điều này cho phép mô hình học từ các đặc trưng của tệp tin để phân loại chúng.
+ Chuẩn hóa dữ liệu: Các giá trị trong ma trận sẽ được chuẩn hóa để giúp tăng tính ổn định và tốc độ của quá trình huấn luyện.
+ Chia tập dữ liệu: Tập dữ liệu sẽ được chia thành hai phần: tập huấn luyện và tập kiểm tra.
- Huấn luyện mô hình MalDozer Neural Network:
+ Tiền xử lý dữ liệu: Dữ liệu đầu vào được tiền xử lý để chuẩn hóa và đưa về định dạng số hóa. Các tệp tin malware được biểu diễn dưới dạng một ma trận 2D, trong đó các giá trị được chuẩn hóa về khoảng [0,1]. Các giá trị này thể hiện sự xuất hiện hay không xuất hiện của các tính năng trong tệp tin.
+ Xây dựng mô hình: Mô hình được xây dựng dựa trên mạng neural network sử dụng các lớp Convolutional Neural Network (CNN) và Fully Connected Layer (FC). Các siêu tham số của mô hình được lựa chọn kỹ lưỡng bằng cách sử dụng phương pháp tìm kiếm lưới (grid search).
+ Tối ưu hóa mô hình: Mô hình được tối ưu hóa bằng cách sử dụng thuật toán tối ưu hóa Adam. Thuật toán này giúp cải thiện tốc độ hội tụ của mô hình và giảm thiểu sự đột biến trong quá trình huấn luyện.
+ Đánh giá mô hình: Mô hình được đánh giá bằng cách chia dữ liệu thành hai tập: tập huấn luyện và tập kiểm tra. Sau đó, mô hình được huấn luyện trên tập huấn luyện và đánh giá trên tập kiểm tra để đánh giá khả năng tổng quát hóa của mô hình.
+ Fine-tuning: Nếu kết quả đánh giá chưa đạt được yêu cầu, quá trình fine-tuning sẽ được thực hiện để điều chỉnh lại các siêu tham số của mô hình và nâng cao độ chính xác.
- Kiểm tra và đánh giá mô hình:
Sau khi hoàn tất quá trình huấn luyện, mô hình sẽ được kiểm tra trên tập dữ liệu kiểm tra để đánh giá hiệu quả của phương pháp. Các chỉ số đánh giá như độ chính xác, độ nhạy và độ đặc hiệu sẽ được tính toán để đ ánh giá khả năng phân loại của mô hình. Cụ thể, các chỉ số đánh giá được tính như sau:
Độ chính xác (accuracy): Tỉ lệ số lượng tệp tin được phân loại đúng trên tổng số tệp tin được phân loại.
Độ nhạy (recall): Tỉ lệ số lượng tệp tin malware được phát hiện đúng trên tổng số tệp tin malware.
Độ đặc hiệu (precision): Tỉ lệ số lượng tệp tin malware được phát hiện đúng trên tổng số tệp tin được phát hiện là malware.
F1 score: Trung bình điều hòa giữa độ nhạy và độ đặc hiệu.
- So sánh với các phương pháp phát hiện mã độc khác:
Cuối cùng, kết quả của phương pháp MalDozer Neural Network sẽ được so sánh với các phương pháp phát hiện mã độc khác để đánh giá hiệu quả của phương pháp. Các phương pháp phát hiện mã độc khác được sử dụng để so sánh bao gồm phương pháp phân tích động và phân tích tĩnh thông thường.
Từ các bước trên, MalDozer Neural Network cho thấy khả năng phát hiện mã độc với độ chính xác 98,7%, độ nhạy 99,4%, độ đặc hiệu 97,9% và F1-score 0,985. Đây là kết quả rất ấn tượng so với các phương pháp phát hiện mã độc khác.