Bối cảnh và vấn đề nghiên cứu

Mã độc trên nền tảng Android ngày càng trở nên tinh vi và khó phát hiện, đặc biệt khi các biến thể mới tích cực sử dụng kỹ thuật ẩn mình phức tạp để qua mặt các biện pháp bảo mật truyền thống. Trước thực tế đó, cộng đồng nghiên cứu an toàn thông tin đã áp dụng học máy (Machine Learning) như một hướng tiếp cận đầy triển vọng, với nhiều công trình tuyên bố đạt độ chính xác phát hiện lên tới 99%. Tuy nhiên, hiệu suất quá lạc quan này đặt ra nghi vấn về tính đáng tin cậy của các mô hình: liệu kết quả có phản ánh đúng khả năng phát hiện thực tế hay không? Các nghiên cứu trước như Drebin và Xmal đã chỉ ra rằng thiết kế thử nghiệm không thực tế — đặc biệt là tỷ lệ phân chia tập dữ liệu thiếu khách quan — có thể dẫn đến hiệu suất được phóng đại đáng kể so với thực tế triển khai.

Khóa luận được thực hiện tại Khoa Mạng máy tính và Truyền thông, Trường Đại học Công nghệ Thông tin — Đại học Quốc gia TP. Hồ Chí Minh (năm 2024), do hai sinh viên Nguyễn Thị Thùy Chinh (20521134) và Nguyễn Vân Anh (20520396) thực hiện dưới sự hướng dẫn của ThS. Nghi Hoàng Khoa, với sự hỗ trợ của Phòng thí nghiệm An toàn thông tin (InSecLab).

Mục tiêu nghiên cứu:

  1. Sử dụng học máy để phân loại và phát hiện các ứng dụng mã độc Android.
  2. Sử dụng module diễn giải để khám phá quá trình đào tạo và ra quyết định của mô hình học máy.

Câu hỏi nghiên cứu:

  • Câu hỏi 1: Những yếu tố nào có thể tác động đến tính chính xác và khả năng phán đoán của các mô hình học máy trong việc phát hiện mã độc Android?
  • Câu hỏi 2: Tác động của việc lựa chọn thuật toán khả diễn giải đến kết quả giải thích mô hình học máy là gì?
  • Câu hỏi 3: Ảnh hưởng của các kỹ thuật mã độc mới đối với hiệu quả phát hiện và giải thích của mô hình khả diễn giải như thế nào?

Đối tượng nghiên cứu bao gồm: ứng dụng lành tính (benign application), ứng dụng độc hại (malware application) — bao gồm virus, trojan, spyware, ransomware — các mô hình học máy (ML model) và phương pháp khả diễn giải (XAI).

Phạm vi nghiên cứu: tập trung vào việc trích xuất thuộc tính từ tệp apk của ứng dụng Android; tạo ra các mẫu biến thể bằng cách thay đổi khoảng thời gian thu thập (2010–2020 và 2021–2023) và thay đổi tỷ lệ giữa các loại ứng dụng trong tập dữ liệu; đánh giá lại khả năng diễn giải của các mô hình.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết và khái niệm

Khóa luận xây dựng nền tảng lý thuyết trên ba trụ cột chính:

Các thuật toán học máy có giám sát: Bốn thuật toán được lựa chọn dựa trên các nghiên cứu liên quan — Multilayer Perceptron (MLP), Support Vector Machine (SVM), K-Nearest Neighbor (KNN) và Random Forest (RF). Khóa luận trình bày chi tiết ưu và nhược điểm của từng thuật toán, cũng như mô tả thêm Decision Tree, K-Means Clustering và Artificial Neural Network (ANN) phục vụ mục đích so sánh.

XAI — Explainable Artificial Intelligence: Là hướng tiếp cận nhằm tăng cường khả năng diễn giải và minh bạch của các mô hình học máy "hộp đen". Khóa luận tập trung vào LIME (Local Interpretable Model-agnostic Explanations) — phương pháp giải thích cục bộ, không phụ thuộc vào cấu trúc nội bộ của mô hình, hoạt động bằng cách xấp xỉ mô hình gốc bằng một mô hình hồi quy tuyến tính đơn giản trong vùng lân cận của điểm dữ liệu cần giải thích. Công thức tối ưu hóa của LIME là: explanation(x) = argmin_{g∈G} L(f, g, Π_x) + Ω(g).

Hệ điều hành Android và phần mềm độc hại: Kiến trúc Android dựa trên nền tảng Linux, với mã nguồn mở và hệ sinh thái ứng dụng rộng lớn, khiến Android trở thành mục tiêu ưu tiên của các tác nhân độc hại.

Các nghiên cứu liên quan được phân tích gồm: Drebin (phân tích tĩnh kết hợp SVM tuyến tính), Xmal (MLP với cơ chế chú ý — attention mechanism, sử dụng 154 tính năng gồm 94 API call và 60 permission), và nghiên cứu của Fan et al. (so sánh năm phương pháp giải thích bất khả tri gồm LIME, Anchor, LORE, SHAP và LEMNA).

Phương pháp nghiên cứu

Nghiên cứu được thiết kế theo dạng thực nghiệm so sánh (comparative experiment), thực hiện qua bốn bước: thu thập dữ liệu → trích xuất đặc trưng → đào tạo và đánh giá mô hình → diễn giải kết quả. Nhóm thực hiện 12 thí nghiệm độc lập trên bốn thuật toán (MLP, SVM, KNN, RF) với hai giai đoạn dữ liệu và các biến thể về tỷ lệ ứng dụng.

Nguồn dữ liệu

Dữ liệu được thu thập từ kho ứng dụng AndroZoo — kho chứa hơn 15 triệu ứng dụng Android. Bộ dữ liệu cuối gồm 165.000 ứng dụng cho giai đoạn 2010–2020 (33.000 ứng dụng độc hại và 132.000 ứng dụng lành tính), và gần 55.000 ứng dụng sau khi lọc lỗi, trải dài trong 14 năm (2010–2023). Nhãn độc hại/lành tính được gán thông qua phần mềm VirusTotal. Công cụ trích xuất đặc trưng là Androguard.


Nội dung chính theo từng chương

Chương 1: Tổng quan đề tài

Chương này trình bày lý do chọn đề tài, phân tích ba công trình nghiên cứu liên quan (Drebin, Xmal, Fan et al.) và xác định khoảng trống nghiên cứu. Điểm mới của đề tài so với các công trình trước được nêu rõ: (1) sử dụng tập dữ liệu giai đoạn 2021–2023 — gần đây nhất tại thời điểm nghiên cứu; (2) phân tích ảnh hưởng của khoảng cách thời gian giữa mẫu độc hại và mẫu lành tính đến hiệu suất phát hiện; (3) đề xuất áp dụng LIME cho tất cả mô hình học máy nhằm so sánh khả năng diễn giải.

Chương 2: Cơ sở lý thuyết

Chương trình bày hệ thống lý thuyết nền, gồm: phân loại các phương pháp học máy (học có giám sát, không giám sát, bán giám sát, học tăng cường), mô tả kỹ thuật của sáu thuật toán học máy (DT, SVM, KNN, K-Means, ANN, MLP, RF), tổng quan về XAI và đặc biệt là LIME Framework. Chương dành một tiểu mục riêng phân tích ý nghĩa của học máy khả giải trong các hệ thống bảo mật, bao gồm các ứng dụng trong pháp chứng kỹ thuật số, IDS, phát hiện mã độc, phát hiện thư rác và botnet.

Chương 3: Phương pháp thực hiện

Chương mô tả thiết kế thí nghiệm bốn bước và trình bày chi tiết từng bước:

  • Thu thập dữ liệu: Duy trì tỷ lệ phần mềm độc hại 17,3% tương ứng với tỷ lệ thực tế trong kho AndroZoo.
  • Trích xuất đặc trưng: Từ Android Manifest (hardware components, requested permissions, app components, filtered intents) và disassembled code (restricted API calls, used permissions, suspicious API calls, network addresses), sử dụng công cụ Androguard.
  • Đào tạo mô hình: Tỷ lệ train/test là 70%/30%; sử dụng TfidfVectorizer để vector hóa dữ liệu.
  • Diễn giải: Kết hợp hai phương pháp — diễn giải dựa trên hệ số coefficients (wi = w × vi) và LIME.

Các thí nghiệm biến thể được thiết kế dựa trên giả thuyết về sự không nhất quán thời gian (temporal inconsistency) giữa mẫu độc hại và lành tính trong tập dữ liệu, một yếu tố được cho là gây ra hiệu suất ảo trong các nghiên cứu trước.

Chương 4: Thực nghiệm, đánh giá và thảo luận

Đây là chương trọng tâm, trình bày môi trường thực nghiệm, toàn bộ 12 thí nghiệm và kết quả chi tiết. Chương bao gồm ba nhóm kết quả chính: kết quả với tập dữ liệu giai đoạn 1 (2010–2020), kết quả với tập dữ liệu giai đoạn 2 (2021–2023) và kết quả khi thay đổi tỷ lệ các loại ứng dụng. Kết quả diễn giải từ LIME được trực quan hóa bằng biểu đồ thể hiện danh sách feature kèm trọng số tương ứng, lưu dưới dạng file json chứa các thông số explanation.

Bảng phân bố dữ liệu các tập con theo giai đoạn:

Giai đoạn Số lượng ứng dụng
2010–2012 2.860
2013–2017 3.717
2018–2020 6.577
2021–2023 (bổ sung thêm)

Chương 5: Kết luận và hướng phát triển

Chương tổng kết kết quả nghiên cứu, đối chiếu với ba câu hỏi nghiên cứu ban đầu và đề xuất mô hình ứng dụng XAI cho các hệ thống phát hiện mã độc trong thực tế. Nhóm tác giả cũng đưa ra các hướng mở rộng nghiên cứu trong tương lai.


Thiết kế và triển khai

Kiến trúc hệ thống

Hệ thống thực nghiệm được thiết kế theo kiến trúc pipeline bốn thành phần: Data Collection → Feature Extraction → Model Training & Evaluation → Model Explainability. Đầu vào là tệp apk; đầu ra là nhãn phân loại (Malware/Benign) kèm danh sách feature và trọng số giải thích từ LIME.

Môi trường và công nghệ

Môi trường thực nghiệm:

Thành phần Máy local Máy ảo Vcenter
CPU Intel® Core™ i5-8250u, 4 cores, 1,6 GHz Intel® Xeon™ E5-2660, 4 cores, 1,0 GHz
RAM 16 GB 16 GB
OS Windows 10 Ubuntu 20
Dung lượng ổ đĩa 512 GB 500 GB

Máy local được dùng để phát triển thuật toán và tải ứng dụng lành tính; máy ảo Vcenter phục vụ huấn luyện mô hình quy mô lớn.

Công nghệ sử dụng:

  • Ngôn ngữ lập trình: Python 3, Python 2
  • Môi trường phát triển: Jupyter Notebook
  • Thư viện chính: numpy, pandas, matplotlib, sklearn
  • Công cụ trích xuất đặc trưng: Androguard
  • Mô hình học máy: SVM (với GridSearchCV, tham số C trong {0,1; 1; 10; 100; 1000}), RF (RandomForestClassifier, n_estimators=100), MLP (3 hidden layers, mỗi layer 30 neuron), KNN
  • Vector hóa: TfidfVectorizer
  • Giải thích mô hình: LIME Framework

Quy trình trích xuất đặc trưng

Từ mỗi tệp apk, Androguard phân tích Android Manifest và disassembled code để trích xuất tám nhóm đặc trưng, lưu vào file text định dạng .data. Dữ liệu sau đó được vector hóa bằng TfidfVectorizer trước khi đưa vào mô hình học máy.

Quy trình LIME

Quy trình tạo explainer gồm: (1) tạo LIME explainer từ Model và Vectorizer đã huấn luyện; (2) sinh dữ liệu nhiễu xung quanh mẫu cần giải thích; (3) lấy dự đoán của mô hình gốc cho các mẫu nhiễu; (4) huấn luyện mô hình hồi quy tuyến tính cục bộ; (5) xuất danh sách feature kèm trọng số, trực quan hóa bằng biểu đồ, lưu kết quả vào file json.


Kết quả và đóng góp

Kết quả chính

Khóa luận thực hiện 12 thí nghiệm độc lập, được đánh số từ Thí nghiệm 1 đến Thí nghiệm 12, tương ứng với bốn thuật toán (MLP, SVM, KNN, RF) trên ba nhóm kịch bản: tập dữ liệu giai đoạn 1 (Thí nghiệm 1–4), tập dữ liệu giai đoạn 2 (Thí nghiệm 5–8) và khi thay đổi tỷ lệ các loại ứng dụng (Thí nghiệm 9–12). Tiêu chí đánh giá sử dụng các chỉ số phân loại chuẩn: TP, TN, FP, FN, cùng các chỉ số dẫn xuất từ đó.

Kết quả thực nghiệm cho thấy hiệu suất phát hiện của các mô hình thay đổi đáng kể khi sử dụng tập dữ liệu mới (2021–2023) so với tập dữ liệu cũ (2010–2020), phản ánh sự xuất hiện của các kỹ thuật ẩn mình mới tinh vi hơn trong mã độc Android giai đoạn gần đây. Khoảng cách thời gian giữa mẫu độc hại và mẫu lành tính trong tập dữ liệu được xác nhận là một yếu tố ảnh hưởng đến kết quả phát hiện.

Giải pháp đề xuất

Nhóm tác giả đề xuất mô hình ứng dụng XAI cho hệ thống phát hiện ứng dụng độc hại trong thực tế, trong đó LIME được tích hợp như một lớp giải thích cục bộ bên trên các mô hình học máy (MLP, SVM, KNN, RF). Cách tiếp cận này cho phép trình bày kết quả phát hiện kèm danh sách các feature đóng góp nhiều nhất vào quyết định phân loại, giúp người phân tích bảo mật kiểm chứng và tin tưởng vào kết quả.

Đóng góp so với nghiên cứu trước

Theo tác giả tự trình bày, các đóng góp mới gồm: (1) bổ sung tập dữ liệu giai đoạn 2021–2023, cập nhật hơn các nghiên cứu tham khảo; (2) phân tích hệ thống ảnh hưởng của khoảng cách thời gian thu thập mẫu đến khả năng phát hiện; (3) áp dụng LIME nhất quán trên bốn thuật toán học máy khác nhau để so sánh chéo khả năng diễn giải; (4) điều chỉnh tỷ lệ các lớp dữ liệu (17,3% mã độc) sát với phân bố thực tế trong kho AndroZoo, khắc phục tình trạng tỷ lệ không thực tế trong các nghiên cứu trước.


Hạn chế và hướng nghiên cứu tiếp

Về hạn chế, khóa luận chỉ trích xuất đặc trưng từ phân tích tĩnh (static analysis) mà chưa kết hợp phân tích động (dynamic analysis), vốn có thể phát hiện các hành vi mã độc chỉ biểu hiện lúc chạy. Phạm vi tập dữ liệu giới hạn ở ứng dụng Android, chưa mở rộng sang các nền tảng di động khác.

Về hướng phát triển, nhóm tác giả đề xuất: tiếp tục cập nhật và mở rộng tập dữ liệu với các mã độc mới hơn có kỹ thuật ẩn mình tinh vi; nghiên cứu kết hợp phân tích động vào pipeline; và ứng dụng các phương pháp XAI khác (Anchor, SHAP, LORE, LEMNA) để so sánh toàn diện hơn với LIME.


Giá trị tham khảo

Khóa luận phù hợp để tham khảo cho các đối tượng sau:

  • Sinh viên ngành An toàn thông tin đang nghiên cứu về phát hiện mã độc Android, muốn tìm hiểu cách thiết kế thí nghiệm học máy có yếu tố kiểm soát thời gian.
  • Sinh viên ngành Khoa học máy tính đang tiếp cận XAI lần đầu, cần một trường hợp ứng dụng cụ thể minh họa LIME trên bài toán phân loại nhị phân.
  • Người làm đề tài phát hiện mã độc di động có thể tham khảo quy trình trích xuất đặc trưng từ tệp apk bằng Androguard, cùng cách tích hợp LIME vào pipeline học máy hiện có.
  • Nhà nghiên cứu quan tâm đến temporal bias trong các thí nghiệm học máy bảo mật, đặc biệt là phần thảo luận về tác động của khoảng cách thời gian thu thập dữ liệu.

Phần đáng tham khảo nhất là Chương 3 (thiết kế thí nghiệm với các biến thể thời gian) và Chương 4 (hiện thực hóa LIME trên bốn thuật toán, minh họa trực quan hóa kết quả diễn giải).


Câu hỏi thường gặp

1. Tại sao nhóm tác giả duy trì tỷ lệ mã độc 17,3% thay vì dùng tỷ lệ 50-50 như nhiều nghiên cứu khác? Tỷ lệ 17,3% phản ánh phân bố thực tế trong kho AndroZoo. Các nghiên cứu trước như Drebin và Xmal sử dụng tỷ lệ cân bằng nhân tạo, khiến hiệu suất phát hiện cao hơn thực tế. Nhóm tác giả điều chỉnh tỷ lệ này như một điểm mới của đề tài nhằm tạo điều kiện thử nghiệm sát thực hơn.

2. Bộ dữ liệu giai đoạn 2021–2023 được xây dựng như thế nào khi không có sẵn file data từ bài báo tham khảo? Nhóm tải toàn bộ tệp .csv danh mục ứng dụng của kho AndroZoo, lọc mã sha256 của các ứng dụng từ năm 2021 đến 2023, lưu vào tệp .csv riêng và viết công cụ Python sử dụng API Key của AndroZoo để tải xuống các tệp apk tương ứng. Nhãn độc hại/lành tính được xác nhận qua VirusTotal.

3. Mô hình SVM trong thí nghiệm được cấu hình như thế nào để tối ưu hiệu suất? Mô hình SVM kết hợp với GridSearchCV, duyệt qua tham số C trong tập {0,1; 1; 10; 100; 1000} để tìm ra siêu tham số tốt nhất. Mô hình sau tối ưu được lưu dưới dạng file .pkl để tái sử dụng trong bước diễn giải LIME.

4. LIME giải thích kết quả phân loại của các mô hình như thế nào trong thí nghiệm này? Sau khi huấn luyện mô hình, nhóm tạo LIME explainer từ Model và Vectorizer. LIME sinh các mẫu nhiễu xung quanh điểm dữ liệu cần giải thích, lấy dự đoán từ mô hình gốc, rồi huấn luyện mô hình hồi quy tuyến tính cục bộ. Đầu ra là danh sách feature kèm trọng số (feature weight), được trực quan hóa bằng biểu đồ và lưu vào file json chứa các thông số explanation.

5. Đặc trưng nào được trích xuất từ tệp apk để đưa vào mô hình học máy? Từ Android Manifest: hardware components, requested permissions, app components, filtered intents. Từ disassembled code: restricted API calls, used permissions, suspicious API calls, network addresses. Tổng cộng tám nhóm đặc trưng này được trích xuất bằng Androguard và lưu vào file text định dạng .data trước khi vector hóa bằng TfidfVectorizer.


Kết luận

Khóa luận nghiên cứu và triển khai thực nghiệm bốn mô hình học máy (MLP, SVM, KNN, RF) kết hợp với kỹ thuật diễn giải LIME để phát hiện mã độc Android trên bộ dữ liệu gần 55.000 ứng dụng từ kho AndroZoo, trải dài hai giai đoạn 2010–2020 và 2021–2023. Nghiên cứu xác nhận rằng khoảng cách thời gian giữa mẫu dữ liệu và tỷ lệ phân chia các lớp là những yếu tố ảnh hưởng đáng kể đến hiệu suất phát hiện, giải thích một phần nguyên nhân khiến các nghiên cứu trước công bố kết quả quá lạc quan. Việc tích hợp LIME cung cấp lời giải thích cục bộ minh bạch cho quyết định của các mô hình, góp phần tăng độ tin cậy của người dùng và nhà phân tích bảo mật đối với hệ thống phát hiện mã độc dựa trên học máy.