Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu Phân loại mã độc Android sử dụng học sâu
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC BÁCH KHOA HÀ NỘI
LÊ ĐỨC THUẬN
PHÂN LOẠI MÃ ĐỘC ANDROID SỬ DỤNG HỌC SÂU
Ngành: Kỹ thuật Máy tinh
Mã số: 9480106
TÓM TẮT LUẬN ÁN TIẾN SĨ KỸ THUẬT MÁY TÍNH
Hà Nội – 2024
Trang 2Công trình được hoàn thành tại:
Đại học Bách khoa Hà Nội
Người hướng dẫn khoa học:
Có thể tìm hiểu luận án tại thư viện:
1 Thư viện Tạ Quang Bửu – Đại học Bách khoa Hà Nội
2 Thư viện Quốc gia Việt Nam
Trang 3GIỚI THIỆU
Ngày nay, xu hướng áp dụng chuyển đổi kỹ thuật số và trí tuệ nhân tạo trong các thiết bị thông minh ngày càng tăng do cuộc cách mạng công nghiệp lần thứ tư thúc đẩy Android thống trị thị trường hệ điều hành di động với 70,79% tính đến tháng 6 năm 2023, được sử dụng trong nhiều thiết bị khác nhau như điện thoại, TV, đồng hồ, ô tô, v.v [1] Sự đa dạng này đã dẫn đến sự gia tăng mã độc (mã độc là các phần mềm độc hại) trên Android Năm 2021, có 3,36 triệu mã độc trên thị trường hệ điều hành Android [2], gây rủi ro cho người dùng Giải quyết vấn đề phát hiện mã độc là một nhu cầu cấp thiết, có 1.081 nghiên cứu từ năm 2013 đến năm 2022 trong cơ sở dữ liệu DBLP [3] Hai phương pháp phổ biến để phát hiện mã độc trên Android là phân tích tĩnh và phân tích động Phân tích tĩnh bao gồm việc kiểm tra cấu trúc, đặc điểm và mã của các tập tin thực thi mà không thực sự chạy cac đoạn mã đó, điều này sẽ an toàn hơn Nó có thể xác định mã độc bằng cách phân tích mã được dịch ngược nhưng có thể bỏ sót mã độc phức tạp (cấu trúc tập tin trong ứng dụng mã độc phức tạp hoặc một phần tập tin đã bị mã hoá, làm rối mã,v.v.) Mặt khác, phân tích động chạy mã độc tiềm ẩn trong môi trường độc lập (sandbox) để giám sát hành vi của nó, giảm rủi ro cho hệ thống Mặc dù phân tích động có thể phát hiện ra các mối đe dọa mà phân tích tĩnh có thể bỏ sót nhưng
nó đòi hỏi nhiều thời gian và nguồn lực hơn Phân tích động có thể không bao quát được tất cả các lộ trình thực thi Tóm lại, phân tích tĩnh rất hữu ích cho các mối đe dọa và lỗ hổng đã biết, trong khi phân tích động phù hợp để phát hiện các mối đe dọa mới, bao gồm cả các mối đe dọa chưa từng có Phân tích động được khuyến nghị cho các tổ chức có chuyên môn về hành vi của mã độc, trong khi phân tích tĩnh phổ biến hơn do tính đơn giản trong phân loại và phát hiện mã độc Trong luận án này, tôi chỉ sử dụng phương pháp phân tích tĩnh để trích xuất đặc trưng [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
Phân loại mã độc (cả phần mềm sạch) là việc chia thành các nhóm (các họ) mã độc Hai phương pháp chính được sử dụng cho mục đích phân
Trang 4loại mã độc này là phương pháp dựa trên chữ ký và dựa trên học máy Các phương pháp dựa trên chữ ký, được sử dụng rộng rãi trong những năm gần đây, dựa vào việc khớp "chữ ký" của các mẫu mã độc đã biết với các mẫu chưa biết, được trích xuất thông qua phân tích tĩnh hoặc động [15, 16, 17] Tuy nhiên, chúng có những hạn chế, bao gồm không
có khả năng phát hiện mã độc mới hoặc chưa xác định, lỗ hổng bảo mật và mã hóa cũng như nhu cầu cập nhật cơ sở dữ liệu chữ ký liên tục Ngược lại, các phương pháp dựa trên học máy đang nổi lên như những kỹ thuật đầy hứa hẹn, tận dụng nhiều thuật toán khác nhau để phân loại mã độc dựa trên các đặc điểm (gồm đặc điểm riêng và đặc điểm chung) của ứng dụng Phương pháp dựa trên học máy có thể giải quyết một số thách thức của các phương pháp dựa trên chữ ký, chẳng hạn như phát hiện mã độc mới và giảm phân tích thủ công Tuy nhiên, phương pháp dựa trên học máy đòi hỏi nhiều thời gian và nguồn lực hơn cũng như phụ thuộc vào chất lượng của dữ liệu đào tạo được gắn nhãn và mô hình học tập Trong luận án này, tôi tập trung vào phương pháp dựa trên học máy để phân loại mã độc trên Android do những tiến bộ của phương pháp này so với phương pháp dựa trên chữ ký Học máy, một nhánh quan trọng của trí tuệ nhân tạo, được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau Nó bao gồm hai loại chính: học tập có giám sát và không giám sát Trong bối cảnh phát hiện và phân loại mã độc trên Android, các mô hình học tập không giám sát (là mô hình học không cần dữ liệu được gắn nhãn) khiến mô hình có thể hoạt động với bất kỳ ứng dụng Android nào mà không cần có kiến thức trước về lớp của ứng dụng đó Tuy nhiên, những mô hình này có thể kém tin cậy và khó hiểu hơn, có khả năng nhóm các ứng dụng dựa trên các tính năng tùy ý hoặc không liên quan và không thể nắm bắt chính xác các đặc điểm của mã độc Do đó, học có giám sát phổ biến hơn đối với việc phân loại mã độc trên Android, mang lại kết quả chính xác và dễ hiểu hơn [6, 18 19 20, 21, 22, 23, 24, 25, 26, 27] Trong luận
án này, tôi tập trung vào mô hình học tập có giám sát, đòi hỏi một tập
dữ liệu đáng kể và đáng tin cậy với các ứng dụng Android được gắn
Trang 5nhãn là lành tính hoặc mã độc Tôi sử dụng những bộ dữ liệu được cung cấp trên Internet, những bộ dữ liệu này đã được tổng hợp của phòng nghiên cứu, trường đại học có uy tín trên thế giới
Trong học máy có hai bước chính là chuẩn bị dữ liệu và đánh giá mô hình
− Chuẩn bị dữ liệu bao gồm việc thu thập, làm sạch, chuyển đổi và lựa chọn dữ liệu được sử dụng cho mô hình học máy Điều này rất quan trọng vì chất lượng và hiệu suất của mô hình học máy phụ thuộc vào việc chuẩn bị dữ liệu này Dữ liệu không đầy đủ, không chính xác, không liên quan hoặc không nhất quán có thể cản trở khả năng của mô hình trong việc tìm hiểu các mẫu và đưa ra dự đoán đáng tin cậy
− Đánh giá mô hình là quá trình đo lường và so sánh hiệu suất của
mô hình học máy trên dữ liệu chưa nhìn thấy (dữ liệu kiểm tra) Điều quan trọng là phải đánh giá mức độ khái quát của mô hình đối với các tình huống mới và độ tin cậy trong các dự đoán mà mô hình đưa ra
Chuẩn bị dữ liệu trong quá trình phân loại mã độc trên Android bao gồm việc trích xuất các đặc trưng thô từ tập tin APK, chẳng hạn như quyền, lệnh gọi API và tài nguyên thông qua phân tích tĩnh Các đặc trưng này ban đầu ở định dạng "chuỗi" và yêu cầu chuyển đổi thành giá trị số cho học máy Nghiên cứu trước đây thường sử dụng các đặc trưng thô này một cách riêng lẻ hoặc kết hợp chúng mà không xem xét mối quan hệ của chúng [4, 5, 7, 26, 28, 29] Trong luận án này, hai phương pháp tăng cường các đặc trưng thô được đề xuất, tập trung vào mối quan hệ giữa các đặc trưng Cụ thể, sự xuất hiện đồng thời của các quyền và lệnh gọi API được khám phá để cải thiện mối quan hệ giữa các tính năng
Để đánh giá mô hình, nhiều mô hình học máy truyền thống khác nhau như SVM, RF, DT, KNN và NB đã được xem xét và cho thấy độ chính xác cao trong việc phát hiện mã độc [14, 25, 27, 30] Các mô hình học sâu, đặc biệt là mạng nơ-ron tích chập (CNN), đã phân loại tốt trong
Trang 6các lĩnh vực khác như nhận dạng dấu vân tay, nhận dạng khuôn mặt
và phát hiện giọng nói nhưng lại chưa được sử dụng đúng mức trong phân loại mã độc trên Android [31, 32, 33, 34] Một số nghiên cứu đã chỉ ra việc chuyển đổi tập tin APK thành "hình ảnh" để phân loại dựa trên CNN, thành công trên Windows nhưng không thành công trên Android do tính chất phức tạp của tập tin APK Không giống như tập tin Windows, tập tin APK chứa nhiều thành phần cần thiết cho ứng dụng Android Việc chuyển đổi APK thành hình ảnh sẽ đơn giản hóa
dữ liệu Để tận dụng học sâu một cách hiệu quả và cải thiện khả năng phân loại mã độc trên Android, mô hình Deep and Wide (D&W) đã được đề xuất Kết quả thực nghiệm trên các bộ dữ liệu khác nhau chứng minh tính khả thi và hiệu quả của phương pháp này
Tóm lại, luận án có những đóng góp chính sau:
▪ Trong giai đoạn trích xuất đặc trưng:
• Tăng cường đặc trưng dựa trên ma trận đồng hiện trong công trình [Pub.2]
• Tăng cường đặc trưng dựa trên thuật toán Apriori trong công trình [Pub.6]
• Lựa chọn đặc trưng dựa trên mức độ phổ biến và độ tương phản trong công trình [Pub.10]
▪ Phân lớp mã độc trên Android bằng mô hình học sâu và rộng trong
công trình [Pub.3] (chỉ mục SCI Q3)
Để đạt được kết quả nêu trên, luận án kết hợp phân tích lý thuyết với đánh giá thực nghiệm Trong luận án đã bắt đầu bằng việc xem xét kỹ lưỡng các tài liệu liên quan để xác định một vấn đề chung và sau đó đi sâu vào các vấn đề chưa được giải quyết Luận án giới thiệu và giải thích các phương pháp, giải quyết các vấn đề này trong quá trình trích chọn và huấn luyện đặc trưng Các phương pháp này được thực nghiệm trên ba bộ dữ liệu đáng tin cậy để đánh giá và so sánh hiệu suất của chúng với các phương pháp học máy khác
Trang 7CHƯƠNG 1 TỔNG QUAN VỀ PHÂN LỚP MÃ ĐỘC TRÊN
ANDROID DỰA TRÊN HỌC MÁY 1.1 Thông tin cơ bản
Phần này trình bày về: nền tảng Android, khái niệm về mã độc trên Android, phân loại mã độc Android, tình hình tổng thể về mã độc trên Android hiện nay
1.2 Các phương pháp pháp hiện mã độc trên Android
1.2.1 Phương pháp dựa trên chữ ký
Trong phương pháp này, đặc điểm của mã độc sẽ được lưu trữ trong
cơ sở dữ liệu Đặc điểm có thể được trích xuất bằng phân tích tĩnh hoặc động Để quyết định xem một mẫu có phải là mã độc hay không, phương pháp này sẽ so sánh đặc điểm của mẫu với tất cả các đặc điểm được lưu trong cơ sở dữ liệu
1.2.2 Phương pháp phát hiện dựa trên sự bất thường
Cách tiếp cận dựa trên sự bất thường là phương pháp phỏng đoán và quy trình chạy theo kinh nghiệm để phát hiện các hoạt động bất thường Các mô hình học máy thuộc phương pháp này Mô hình học máy bao gồm hai giai đoạn: giai đoạn huấn luyện và giai đoạn phát hiện, được trình bày trong Hình 1.4 Học máy này dựa vào mô hình đã được huấn luyện trước đó và các đặc trưng được thu thập (số lượng đặc trưng lớn không thể sử dụng bằng cách so khớp) để đưa ra kết luận
về hành vi của ứng dụng
1.2.3 Các độ đo được sử dụng
Một số độ đo thường được sử dụng như: Accuracy (Acc), Precision, Recall, F1-score, confusion matrix, ROC curve, Area Under the Curve, v.v Đối vưới bài toán phân lớp, có một vài độ đo khác được sử dụng
1.2.4 Bộ dữ liệu mã độc Android
Nhiều bộ dữ liệu đã được xuất bản cho cộng đồng nghiên cứu như: Contagio mobile, Malgenome, Virusshare, Drebin, PRAGuard, Androzoo, AAGM, AMD, CICMalDroid 2020, MalNet2020 Các
Trang 8thực nghiệm trong luận án, tôi sử dụng các bộ dữ liệu: Virusshare, Drebin, AMD
1.3 Phân lớp mã độc Android dựa trên học máy
Nhìn chung, có 4 bước liên quan đến việc phân loại mã độc trên Android
− Trích xuất đặc trưng: trích xuất dựa trên phân tích tĩnh, động, lai
− Lựa chọn đặc trưng: đặc trưng có trọng số thấp là đặc trưng ít quan trọng, sẽ được loại bỏ Chỉ giữ những đặc trưng quan trọng
− Tăng cường đặc trưng: các đặc trưng mới được tạo ra từ sự kết hợp giữa các đặc trưng ban đầu
− Áp dụng mô hình học máy, học sâu: sử dụng các đặc trưng ở các bước trên, đi vào mô hình học máy, học sâu để đưa ra kết luận
1.4 Các nghiên cứu liên quan
Nội dung khảo sát trong Mục 1.3.1 về kỹ nghệ đặc trưng gồm khía cạnh chính là trích xuất đặc trưng, tăng cường đặc trưng và chọn lọc đặc trưng Về trích xuất đặc trưng, các nghiên cứu trong Mục 1.3.1.1 tập trung trích xuất đặc trưng theo Permission, API call riêng biệt mà chưa tạo ra các đặc trưng liên kết giữa các Permission, giữa các API
và giữa các Permission với API Dựa trên khoảng trống này, luận án
đã nghiên cứu, đề xuất và phát triển phương pháp tăng cường đặc trưng
sử dụng ma trận đồng hiện và tăng cường đặc trưng sử dụng thuật toán Apriori trong Mục 1.3.1.2 Các phương pháp chọn lọc đặc trưng được tổng hợp trong Mục 1.3.1.3 phần lớn tập trung vào việc chọn lọc đặc trưng dựa trên độ phổ biến của các đặc trưng mà chưa xét đến độ tương phản về mặt giá trị giữa các đặc trưng và các nhóm đặc trưng Do đó,
để giải quyết vấn đề này, luận án đã đề xuất, phát triển phương pháp chọn lọc đặc trưng dựa trên độ phổ biến và độ tương
Có thể thấy rằng các mô hình học máy và học sâu cho kết quả tốt trong việc phát hiện và phân loại mã độc trên Android Các kết quả được liệt
kê ở mục 1.3.2 Đa phần các kết quả đều cho độ chính xác lên tới 90% Trong mục này, tôi đã tổng hợp và so sánh kết quả của các phương pháp đã có về tăng cường đặc trưng, phân lớp mã độc Trên cơ sở đó
Trang 9làm căn cứ luận giải các phương pháp được đề xuất, phát triển trong luận án
Từ kết quả của khảo sát trong Mục 1.3.2 cho thấy: việc áp dụng mô hình học máy (SVM, RF, KNN, v.v.) và mô hình học sâu (DBN, CNN, LSTM, GAN, v.v.) cho kết quả tốt với bài toán phân lớp mã độc trên Android Từ đó, tôi đã áp dụng thành công các mô hình học máy, học sâu vào trong bộ dữ liệu của mình (khi sử dụng thêm các thuật toán tăng cường đặc trưng và lựa chọn đặc trưng trong Mục 1.3.1.) và làm
cơ sở để áp dụng thành công mô hình WDCNN (là mô hình cải tiển của CNN) trong bài toán phát hiện mã độc
1.5 Các phương pháp đề xuất
Trong luận án, tôi đã đề xuất một số phương pháp:
− Lựa chọn đặc trưng: ngoài các thuật toán được sử dụng như IG,
IF-IDF, tôi đã đề xuất một phương pháp mới dựa trên độ tương phản và độ phổ biến [Pub.10] Sau khi áp dụng đã cho kết quả tốt hơn khi sử dụng thuật toán IG, thậm chí độ đo recall còn được cải thiện hơn so với sử dụng bộ đặc trưng ban đầu
− Tăng cương đặc trưng dựa trên Co-matrix: sử dụng Co-matrix để
kết hợp hai đặc trưng gốc với nhau [Pub.2] Co-matrix được thiết lập dựa trên các đặc trưng ban đầu, được trích xuất từ các tập tin APK Các đặc trưng được đề xuất có thể tận dụng lợi thế của CNN trong khi vẫn giữ được các đặc trưng quan trọng của mã độc Android
− Tăng cương đặc trưng dựa trên thuật toán Apriori: áp dụng thuật
toán Apriori trong từng bộ đặc trưng để kết hợp các đặc trưng gốc với nhau [Pub.6] Phương pháp này nghiên cứu các luật kết hợp từ tập đặc trưng ban đầu để đưa ra các đặc trưng có tính tương quan cao và mang tính thông tin, những đặc điểm này sẽ được thêm vào tập đặc trưng ban đầu
Tăng cường đặc trưng bằng thuật toán Apriori và Co-matrix đã được
sử dụng để tạo ra nhiều đặc trưng hơn (thực tế đó là mối quan hệ giữa các đặc trưng) Các đặc trưng có liên quan với nhau và khi khai thác
Trang 10liên kết giữa các đặc trưng sẽ cho kết quả phát hiện và phân loại tốt hơn
− Mô hình WDCNN [Pub.3]: đây là mô hình được cải tiến từ mô
hình CNN Trong mô hình WDCNN, các thông tin được đưa vào trong thành phần rộng và thành phần sâu Kết quả khi sử dụng mô hình WDCNN tốt hơn so với CNN và các phương pháp học máy khác
− Học liên kết [Pub.11]: mô hình học liên kết được sử dụng để huấn
luyện và phát hiện trên nhiều máy Mặc dù độ chính xác trong mô hình học liên kết thấp hơn (nhưng không đáng kể), nhưng cho tốc
độ xử lý cao, từ đó cho phép các mô hình và ứng dụng thực được thực nghiệm và triển khai trong thời gian ngắn
CHƯƠNG 2 CÁC PHƯƠNG PHÁP ĐỀ XUẤT THEO
HƯỚNG TRÍCH XUẤT ĐẶC TRƯNG
Chương này tập trung vào các phương pháp cải thiện bộ đặc trưng Có hai cách tiếp cận:
− Tăng cường bộ đặc trưng: các đặc trưng bổ sung sẽ được tạo ra từ
bộ đặc trưng ban đầu
− Lựa chọn đặc trưng: loại bỏ các đặc trưng có trọng số thấp (theo thuật toán được áp dụng) Từ đó, một bộ đặc trưng mới có số lượng nhỏ hơn bộ đặc trưng gốc và được coi là các đặc trưng quan trọng trong bài toán phân lớp mã độc
2.1 Tăng cường đặc trưng dựa trên ma trận đồng hiện
2.1.1 Ý tưởng
Mô hình tổng thể về việc áp dụng ma trận đồng hiện để tăng cường đặc trưng trong bài toán phân lớp mã độc trên Android được thể hiện như trong Hình 2.1
2.1.2 Trích xuất đặc trưng thô
Các đặc trưng được trích xuất từ tập tin APK và được trích xuất theo phương pháp tĩnh Các đặc trưng được trích xuất từ tập tin XML và tập tin DEX
Trang 112.1.3 Các đặc trưng được tính toán bằng ma trận đồng hiện
Thực hiện tính toán theo ma trận đồng hiện được mô tả như trong thuật toán 2 Hình 2.2 minh hoạ ví dụ về tạo ma trận đồng hiện từ các kích
Tôi đã trích xuất 398 đặc trưng permission và 200 lời gọi API được sử dụng nhiều nhất trong bộ dữ liệu Như vậy, mỗi tập tin APK tôi tạo một vector đặc trưng thô gồm 598 đặc trưng Sau khi tính toán qua ma trận đồng hiện, cho kết quả là 158,404 đặc trưng permission và 40,000 đặc trưng lời gọi API
2.1.4.2 Kịch bản thực nghiệm
Tôi tiến hành với hai kịch bản thực nghiệm như sau:
Kịch bản 1: sử dụng 598 đặc trưng gốc là permission và API
Trang 12Scenario 2: sử dụng 198,404 đặc trưng sau khi đưa đặc trưng gốc
trong kịch bản 1 vào ma trận đồng hiện (158,404 đặc trưng permission
và 40,000 đặc trưng API)
2.1.4.3 Phân lớp mã độc dựa trên mô hình CNN
Cấu trúc của mô hình CNN được thể hiện như trong Hình 2.4
Các tham số của mô hình CNN được thể hiện như trong Bảng 2.1
2.1.4.4 Kết quả thực nghiệm
Với hai bộ dữ liệu: gồm đặc trưng thô và đặc trưng đã sử dụng ma trận đồng hiện (trong hai kịch bản) Với mỗi bộ, tôi chia thành 10 phần (10-fold) bằng nhau Tôi sử dụng 8 phần cho huấn luyện (train), 1 phần cho kiểm tra trong lúc huấn luyện (validation) và một phần cho kiểm tra (test) Thực nghiệm luân phiên 10 lần và lấy kết quả trung bình Kết quả thực nghiệm với mô hình CNN được thể hiện chi tiết trong Bảng 2.2 Ngoài ra, tôi sử dụng thêm các độ đo như PR, RC, F1_score,
và FPR để đánh gia khách quan hơn, được thể hiện trong Hình 2.3 Bảng 2.2: Phân lớp với mô hình
CNN với độ đo Acc (%)
Tập
CNN Kịch
CNN với
ma trận đồng hiện
Trang 132.2 Tăng cường đặc trưng dựa trên thuật toán Apriori
2.2.1 Ý tưởng
Thuật toán Apriori là một kỹ thuật được sử dụng phổ biến trong lĩnh vực khai thác dữ liệu Mục đích chính của nó là khám phá quy tắc kết hợp giữa các đối tượng khác nhau Trong bối cảnh phát hiện mã độc trên Android, các đặc trưng được trích xuất từ tập tin APK Hai loại đặc trưng quan trọng là permisssion và lệnh gọi API Tuy nhiên, các đặc trưng là riêng biệt và không có bất kỳ kết nối nào Vì vậy, việc sử dụng thuật toán Apriori là khả thi để thu thập kiến thức về luật kết hợp trong vấn đề cụ thể này
Để áp dụng thuật toán Apriori nhằm nâng cao bộ đặc trưng và điều chỉnh nó cho bài toán phân loại mã độc trên Android, nó được xử lý theo quy trình như trong Hình 2.5
2.2.2 Thuật toán Apriori
2.2.2.1 Giới thiệu về thuật toán Apriori
Giá trị minsup và mincof là hai ngưỡng được xác định trước khi tạo ra
các quy tắc kết hợp Tập các đặc trưng mà tần suất xuất hiện (frequency) minsup được gọi là tập phổ biến (frequent itemsets)
Ý tưởng của thuật toán Apriori
• Tìm tất cả frequent itemsets: sử dụng k-itemset (itemsets chứa k
items) để tìm (k+1) itemsets
• Tìm tất cả các luật kết hộp từ frequent itemsets (thoả mãn cả minsup
và mincof)
2.2.2.2 Thuật toán Apriori
Giai đoạn 1: đầu tiên, tìm 1-itemset (được ký hiệu là F1) F1 được
dùng để tìm F2 (2-itemsets) F2 được dùng để tìm F3 (3-itemsets), từ
đó có thể tìm tới k-itemset Được mô tả qua thuật toán 3
Giai đoạn 2: sử dụng frequent itemsets có được trong giai đoạn 1 để
sinh ra các luật kết hợp thoả mãn confidence ≥ minconf Được thể hiện
trong thuật toán 4
Trang 142.2.3 Tạo bộ đặc trưng
Trích xuất đặc trưng được sử dụng như trong phần 2.1.2 Sử dụng bộ đặc trưng thô kết hợp với thuật toán Apriori để tạo bộ đặc trưng được tăng cường Thuật toán Apriori được sử dụng để tạo đặc trưng tăng cường cho từng bộ: permission và lời gọi API
Nhóm 1 (permissions): sử dụng min_sup là 0.4 Vượt qua được nhóm đầu tiên, thông qua thuật toán Apriori, tôi thu được tập i
Nhóm 2 lời gọi API, services, activities đã được lấy theo xếp hạng các API được sử dụng nhiều nhất trong bộ dữ liệu, sự liên kết giữa các đặc
trưng này không chặt chẽ như permission Do đó, min_sub được đặt là 0.2 Nhóm 2 thông qua thuật toán, tôi thu được tập ii
Kịch bản 1: sử dụng đặc trưng permission Tôi sử dụng 398 đặc trưng
permission được trích xuất từ tập tin APK
Kịch bản 2: sử dụng các đặc trưng trong kịch bản 1 và thuật toán
Apriori: 398 + 2,132 = 2,530 features
Kịch bản 3: sử dụng các đặc trưng như sau: permission (398), APIs
(200), sizes of file, user-defined permissions, use native libc, number
of services Tổng số lượng đặc trưng được sử dụng là 603
Kịch bản 4: sử dụng các đặc trưng trong kịch bản 3 và thuật toán
Apriori Tổng số đặc trưng được dùng trong kịch bản là 5,820
2.2.4.2 Mô hình CNN được dùng trong thực nghiệm
Kiến trúc mô hình CNN được sử dụng trong thực nghiệm được mô tả chi tiết trong Hình 2.6
Các tham số của mô hình CNN được mô tả trong Bảng 2.4