Bối cảnh và vấn đề nghiên cứu
Hệ điều hành Android duy trì vị thế áp đảo trên thị trường thiết bị di động thông minh kể từ năm 2012. Số liệu thống kê năm 2019 ghi nhận khoảng 86,6% điện thoại thông minh bán ra trên toàn cầu vận hành trên nền tảng Android. Đến cuối tháng 4 năm 2020, kho ứng dụng chính thức Google Play đã lưu trữ hơn 2,8 triệu ứng dụng. Sự bùng nổ này kéo theo sự gia tăng nhanh chóng của các phần mềm độc hại (malware). Hệ sinh thái mở, cơ chế phân quyền thô và khả năng gọi mã nguồn từ bên thứ ba tạo ra nhiều bề mặt tấn công bảo mật. Riêng trong năm 2016, hơn 3,25 triệu ứng dụng Android độc hại đã bị phát hiện, tương ứng với tần suất trung bình cứ khoảng 10 giây xuất hiện một mẫu mã độc mới. Giai đoạn 2012–2018 ghi nhận lượng mã độc tăng hơn 10 lần, với hơn 12.000 mẫu phần mềm độc hại mới xuất hiện mỗi ngày vào năm 2018. Các biến thể mã độc ngày càng tinh vi nhờ sử dụng kỹ thuật làm rối mã (obfuscation) và mã hóa (encryption) nhằm vượt qua các công cụ chống vi-rút truyền thống.
Khóa luận thực hiện nghiên cứu ứng dụng các mô hình học sâu (Deep Learning) theo hướng tiếp cận xử lý ngôn ngữ tự nhiên (NLP) để phân loại mã độc từ tệp văn bản thuộc tính trích xuất, thay vì xử lý dữ liệu bảng (CSV) thông thường.
Mục tiêu nghiên cứu của đề tài gồm 4 nội dung:
- Tìm hiểu về trí tuệ nhân tạo (AI) và ứng dụng của AI hoặc các mô-đun liên quan vào hệ thống phát hiện mã độc Android.
- Tìm hiểu cách thức xây dựng mã độc Android, cài đặt quyền, tạo các đường kết nối không đáng tin cậy ra môi trường Internet.
- Tìm hiểu các mô hình AI/Machine Learning/Deep Learning phát hiện mã độc dựa trên kỹ thuật xử lý ngôn ngữ tự nhiên.
- Thử nghiệm và xây dựng hệ thống phát hiện mã độc Android, xác thực độ chính xác, hiệu năng và thời gian phân tích.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Các mô hình học sâu phục vụ phát hiện mã độc Android dựa trên xử lý ngôn ngữ tự nhiên; các công cụ phân tích tĩnh và động trích xuất tập thuộc tính từ tệp APK.
- Phạm vi nghiên cứu: Mã độc trên hệ điều hành Android thuộc các dòng SMS, Banking, Adware, Riskware và các ứng dụng lành tính (benign). Đề tài không nghiên cứu các hệ điều hành di động khác và không xử lý phần mềm độc hại trên máy tính như các định dạng tệp PE (Windows) hay ELF (Linux).
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và kiến trúc hệ thống
Nghiên cứu dựa trên cấu trúc phân tầng của hệ điều hành Android gồm 5 thành phần chính:
- Nhân Linux (Linux Kernel): Quản lý phần cứng, bộ nhớ, tiến trình, bảo mật và ngăn xếp mạng.
- Thư viện nền tảng (Platform Libraries): Bao gồm Media, Surface Manager, SGL, OpenGL, SQLite, FreeType, Web-Kit và SSL.
- Môi trường thực thi Android (ART / DVM): Chạy ứng dụng qua máy ảo Dalvik tối ưu hóa luồng và bộ nhớ.
- Khung ứng dụng (Application Framework): Cung cấp Activity Manager, Notification Manager, Package Manager, UI System.
- Lớp ứng dụng (Applications): Chứa các ứng dụng Native, Web, Hybrid hoặc Progressive Web App.
Các thuộc tính bảo mật của tệp APK được khai thác gồm:
- Quyền ứng dụng (Permissions): Các quyền cài đặt sẵn (Normal/Protect permissions như
ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE, ACCESS_LOCATION_EXTRA_COMMANDS, ACCESS_NOTIFICATION_POLICY) và cơ chế cấp quyền trong thời gian chạy (Runtime Permissions) từ phiên bản Android 6.0 Marshmallow.
- Mã thao tác (Opcodes): Các lệnh chỉ dẫn nhị phân được ánh xạ từ Java bytecode (ví dụ:
aconst_null, iconst_m1, iconst_0, lconst_0).
- Các cuộc gọi API và REST API: Giao tiếp qua giao thức HTTP/HTTPS với các phương thức GET, POST, PUT, DELETE để tương tác dịch vụ bên ngoài.
Phương pháp nghiên cứu và mô hình học sâu
Nghiên cứu kết hợp cả hai phương pháp trích xuất dữ liệu:
- Phân tích tĩnh (Static Analysis): Trích xuất mã kê khai (manifest), chuỗi opcode, permission và API calls mà không cần thực thi tệp.
- Phân tích động (Dynamic Analysis): Giám sát hành vi thực thi trong môi trường máy ảo, theo dõi nhật ký hệ thống (system calls) và kết nối mạng.
Các mô hình Deep Learning xử lý văn bản được đưa vào nghiên cứu và thử nghiệm:
- NNLM (Neural Network Language Model): Mô hình biểu diễn từ phân tán trong không gian liên tục (Continuous-space), tận dụng mô-đun tiền huấn luyện
google/nnlm-en-dim128/2 thông qua TensorFlow Hub để ánh xạ chuỗi văn bản thành vector đặc trưng 128 chiều.
- Simple CNN-GRU: Mô hình kết hợp các tầng Convolutional trích xuất đặc trưng cục bộ cùng các cổng Reset và Update của Gated Recurrent Unit (GRU) nhằm kiểm soát phụ thuộc thời gian ngắn hạn và dài hạn.
- Standard CNN: Sử dụng các tầng Convolutional, hàm kích hoạt ReLU, tầng lấy mẫu (Pooling layer: Max/Average Pooling) và Fully Connected Layer.
- Bidirectional LSTM (BiLSTM): Mạng nơ-ron hồi quy hai chiều (Forward LSTM và Backward LSTM) cho phép trích xuất ngữ cảnh chuỗi văn bản theo cả hai chiều tiến và lùi.
Nguồn dữ liệu và công cụ
- Bộ dữ liệu: Hơn 10.000 mẫu tệp APK gồm cả mã độc (SMS, Banking, Adware, Riskware) và ứng dụng lành tính.
- Công cụ trích xuất thuộc tính: AndroPyTool — tích hợp AndroGuard, DroidBox, FlowDroid, Strace và VirusTotal; xuất dữ liệu ra định dạng JSON và CSV.
- Môi trường phát triển: Python, Anaconda, TensorFlow, TensorFlow Hub, Keras, Scikit-Learn, NumPy, Pandas và MongoDB.
Thiết kế và triển khai
Hệ thống nhận diện mã độc được thiết kế gồm chuỗi khối xử lý hoàn chỉnh từ trích xuất thuộc tính đến giao diện người dùng web:
| Thành phần hệ thống |
Công nghệ / Công cụ |
Chức năng thực hiện |
| Feature Extraction |
AndroPyTool (AndroGuard, DroidBox, FlowDroid, Strace, VirusTotal) |
Tiếp nhận tệp APK, thực hiện phân tích tĩnh và động, trích xuất opcode, permission, API call và xuất tệp JSON. |
| Preprocessing & Embedding |
Python, Pandas, TensorFlow Hub (nnlm-en-dim128/2) |
Loại bỏ ký tự thừa, làm sạch văn bản, chuyển nội dung JSON thành mảng văn bản thuần và nhúng thành vector không gian đa chiều. |
| Phân loại mã độc (Inference) |
Mô hình NNLM / Deep Learning đã tối ưu |
Tiếp nhận vector nhúng, tính toán phân phối xác suất và áp dụng ngưỡng giá trị trung bình (mean()) để đưa ra nhãn 0 (Benign) hoặc 1 (Malware). |
| Giao diện Web (FE & BE) |
Kiến trúc máy chủ Web, Front-end UI, Back-end Server |
Cung cấp giao diện tải tệp APK, theo dõi log trích xuất thời gian thực và hiển thị kết quả phân tích cho người dùng. |
Quy trình vận hành: Người dùng tải tệp APK lên hệ thống web $\rightarrow$ Back-end chuyển tệp vào khối AndroPyTool để trích xuất đặc trưng ra tệp JSON $\rightarrow$ Module Preprocessing làm sạch văn bản và đưa qua lớp Embedding $\rightarrow$ Mô hình Deep Learning thực hiện dự đoán $\rightarrow$ Kết quả nhãn (Lành tính / Độc hại) được hiển thị trên giao diện người dùng kèm thông tin log xử lý.
Nội dung chính theo từng chương
Chương 1: Mở đầu
Chương này thiết lập cơ sở thực tiễn về sự thống trị của Android (chiếm 86,6% thị phần smartphone năm 2019, 2,8 triệu app trên Google Play năm 2020) và tốc độ phát triển của mã độc (hơn 3,25 triệu app độc hại năm 2016, hơn 12.000 mẫu mới mỗi ngày năm 2018). Tác giả xác định mục tiêu giải quyết bài toán phát hiện mã độc bằng cách tiếp cận xử lý văn bản với tập dữ liệu hơn 10.000 tệp APK, đồng thời công bố kết quả sơ bộ của mô hình NNLM đạt độ chính xác 99,02%.
Chương 2: Cơ sở lý thuyết
Nội dung chương tập trung trình bày chi tiết:
- Kiến trúc hệ điều hành Android (Linux Kernel, Thư viện C/C++, Android Runtime/DVM, Application Framework, Applications).
- Bốn nhóm ứng dụng Android: Native App, Web App, Hybrid App và Progressive Web App.
- Các thuộc tính nhận diện mã độc: Hệ thống phân quyền (Permission), mã thao tác (Opcode) và cơ chế gọi hàm API/REST API.
- Các thư viện tính toán và học máy: TensorFlow, TensorFlow Hub, NumPy, Pandas.
- Công cụ trích xuất AndroPyTool và các kiến trúc học sâu xử lý văn bản: NNLM, Simple CNN-GRU, Standard CNN, BiLSTM.
Chương 3: Công trình liên quan
Tác giả hệ thống hóa các hướng tiếp cận phát hiện mã độc Android trong y văn:
- Phân tích tĩnh: Đánh giá các mô hình như ANASTASIA (Mauro Conti), DeepRefiner, DroidDeepLearner (Wang), HIMDAM (Demertzis) và Droidapiminer (Aafer Y).
- Phân tích động: Phân tích các nghiên cứu sử dụng Dagger (Yang và Chao), phương pháp phân cụm dấu vết hàm tĩnh (Schmidt), DroidScope (Yan) và DroidADDMiner (Li - đạt tỷ lệ phát hiện 98%, tỷ lệ dương tính giả FPR 0,3%).
- Phân tích kết hợp: Đánh giá mô hình nhận diện hai lớp của Liu X & Liu J, mô hình Random Forest phát hiện ransomware của Noorbehbahani và nghiên cứu phân tích tĩnh nhẹ của Blanc W (đạt FPR 1,2%).
Chương 4: Xây dựng mô hình nhận diện mã độc
Mô tả chi tiết kiến trúc giải pháp gồm:
- Trích xuất thuộc tính (Feature Extraction): Cải tiến quy trình trích xuất tĩnh và động thành tệp JSON dựa trên AndroPyTool.
- Tiền xử lý dữ liệu (Preprocessing): Làm sạch tệp JSON, xử lý văn bản và nhúng từ (Word Embedding / Keras Layer Hub).
- Thiết kế mạng Deep Learning: Ứng dụng lớp nhúng ngôn ngữ và sử dụng hàm
mean() làm ngưỡng quyết định phân loại nhị phân.
- Xây dựng ứng dụng web: Thiết kế luồng tương tác giữa Front-End (FE) và Back-End (BE), máy chủ lưu trữ, giao diện tải tệp và màn hình theo dõi nhật ký trích xuất thuộc tính.
Chương 5: Thực nghiệm và đánh giá
Chương này thiết lập môi trường thực nghiệm, phân tích tập dữ liệu và đánh giá quá trình huấn luyện các mô hình. Nội dung bao gồm việc đo lường độ chính xác (Accuracy), hàm mất mát (Loss) trên tập huấn luyện (train) và tập kiểm định (validation), so sánh thời gian huấn luyện và kích thước lưu trữ mô hình giữa NNLM, Simple CNN-GRU, Standard CNN và BiLSTM.
Chương 6: Tổng kết và hướng phát triển
Đánh giá các kết quả đạt được về độ chính xác phân loại, khả năng trích xuất dữ liệu tự động và hoàn thiện hệ thống website demo; đồng thời nêu rõ các thách thức kỹ thuật liên quan đến làm rối mã và định hướng mở rộng nghiên cứu trong tương lai.
Kết quả và đóng góp
Kết quả thực nghiệm chính
Mô hình NNLM (Neural Network Language Model) tiền huấn luyện đạt hiệu năng cao nhất trong số các mô hình được thử nghiệm:
- Độ chính xác (Accuracy): Đạt 99,02% trên tập dữ liệu thử nghiệm.
- Chuyển đổi đặc trưng: Khả năng biểu diễn ngữ nghĩa của tệp JSON thuộc tính thành không gian vector 128 chiều mà không bị phụ thuộc vào số chiều cố định như các phương pháp one-hot encoding truyền thống.
| Tiêu chí đánh giá |
Mô hình NNLM |
Các mô hình so sánh (CNN, BiLSTM, CNN-GRU) |
| Cách tiếp cận dữ liệu |
Xử lý chuỗi văn bản tự nhiên từ tệp JSON thuộc tính |
Học chuỗi và trích xuất đặc trưng không gian / thời gian |
| Lớp Embedding |
Sử dụng module Keras Hub (google/nnlm-en-dim128/2) |
Tự huấn luyện tầng nhúng hoặc xử lý chuỗi cục bộ |
| Hiệu năng nhận diện |
Accuracy đạt 99,02% |
Đạt kết quả khả quan nhưng cần nhiều tài nguyên huấn luyện hơn |
| Ứng dụng thực tế |
Tích hợp hoàn chỉnh vào website phân tích tự động |
Phục vụ đối sánh thực nghiệm |
Đóng góp của đề tài
- Cách tiếp cận mới: Áp dụng mô hình xử lý ngôn ngữ tự nhiên (NLP) trực tiếp trên dữ liệu văn bản trích xuất từ tệp APK, thay vì chuyển đổi thành định dạng bảng CSV thông thường.
- Bộ dữ liệu nghiên cứu: Xây dựng tập dữ liệu gồm hơn 10.000 mẫu tệp APK độc hại và lành tính, trích xuất đầy đủ thuộc tính tĩnh và động phục vụ huấn luyện và tái sử dụng cho các nghiên cứu tiếp theo.
- Hệ thống ứng dụng thực tế: Xây dựng hoàn chỉnh hệ thống website phát hiện mã độc, cho phép người dùng tải tệp APK, theo dõi tiến trình trích xuất đặc trưng và nhận kết quả phân loại tự động.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế được ghi nhận
- Kỹ thuật làm rối và mã hóa: Các dòng mã độc sử dụng kỹ thuật đóng gói (Packer), tải mã ngoài (Loader) hoặc mã hóa sâu (Encryptor) có thể gây khó khăn cho việc trích xuất đầy đủ thuộc tính tĩnh.
- Tránh né môi trường giả lập: Phân tích động có thể bị mã độc phát hiện và vô hiệu hóa nếu mã độc nhận diện được môi trường hộp cát (sandbox) hoặc máy ảo (emulator).
- Chi phí thời gian và tính toán: Quá trình phân tích động bằng công cụ trích xuất đòi hỏi nhiều thời gian và tài nguyên phần cứng khi xử lý các tập dữ liệu lớn.
- Hiện tượng tiêu biến/bùng nổ gradient: Đối với các mô hình tuần tự như GRU hay LSTM, chuỗi văn bản quá dài có thể gây ra hiện tượng tiêu biến hoặc bùng nổ gradient qua nhiều bước thời gian.
- Giới hạn nền tảng: Hệ thống chỉ hỗ trợ phân tích mã độc trên tệp APK của Android, chưa mở rộng cho các hệ điều hành di động khác (như iOS) hoặc các định dạng thực thi trên máy tính (PE, ELF).
Hướng phát triển tiếp theo
- Tối ưu hóa cấu trúc mô hình và thuật toán nhằm rút ngắn thời gian huấn luyện và suy luận.
- Mở rộng quy mô bộ dữ liệu huấn luyện với các biến thể mã độc mới xuất hiện.
- Nâng cấp khả năng phân tích tự động và cải thiện hiệu năng xử lý của giao diện website.
Giá trị tham khảo
Báo cáo khóa luận cung cấp tài liệu tham khảo cho các đối tượng sau:
- Sinh viên và nghiên cứu sinh ngành An toàn thông tin, Mạng máy tính và Khoa học máy tính: Tham khảo phương pháp kết hợp giữa kỹ thuật trích xuất mã độc di động (Android Malware Analysis) và các mô hình học sâu xử lý ngôn ngữ tự nhiên (NLP).
- Kỹ sư bảo mật và chuyên viên phân tích mã độc: Tham khảo quy trình tích hợp công cụ AndroPyTool (DroidBox, FlowDroid, Strace, AndroGuard, VirusTotal) để xây dựng đường ống phân tích tĩnh - động tự động.
- Các nhóm phát triển hệ thống phòng thủ mã độc: Khai thác mô hình triển khai hệ thống phân loại dạng web service tích hợp mô hình học máy để kiểm thử ứng dụng trước khi phát hành.
Câu hỏi thường gặp
1. Khóa luận sử dụng mô hình Deep Learning nào cho kết quả nhận diện tốt nhất và đạt độ chính xác bao nhiêu?
Mô hình NNLM (Neural Network Language Model) thông qua mô-đun tiền huấn luyện từ TensorFlow Hub (google/nnlm-en-dim128/2) đạt kết quả cao nhất với độ chính xác (accuracy) là 99,02%.
2. Dữ liệu đầu vào của các mô hình học sâu trong đề tài được biểu diễn dưới dạng nào?
Dữ liệu đầu vào là các chuỗi văn bản thuần túy được trích xuất từ các tệp JSON thuộc tính (gồm opcode, permission, API calls...), sau đó được chuyển đổi thành vector số thực thông qua kỹ thuật nhúng từ (Word Embedding) bằng lớp Keras Hub của NNLM, thay vì sử dụng cấu trúc bảng số liệu CSV thông thường.
3. Công cụ nào được tác giả sử dụng để trích xuất thuộc tính tĩnh và động từ tệp APK?
Tác giả sử dụng AndroPyTool — công cụ tổng hợp kết quả phân tích từ các nền tảng phân tích mã độc gồm AndroGuard, DroidBox, FlowDroid, Strace và VirusTotal, sau đó lưu trữ dữ liệu dưới định dạng JSON, CSV và cơ sở dữ liệu MongoDB.
4. Quy mô bộ dữ liệu thực nghiệm trong khóa luận là bao nhiêu và gồm những loại mã độc nào?
Bộ dữ liệu gồm hơn 10.000 mẫu tệp APK, bao gồm các ứng dụng lành tính (benign) và các chủng mã độc Android thuộc các nhóm: SMS, Banking, Adware và Riskware.
5. Cơ chế đưa ra quyết định nhãn mã độc (Malware vs Benign) ở đầu ra mô hình được thực hiện như thế nào?
Đầu ra của mô hình là một mảng vector một chiều chứa các số thực biểu diễn xác suất. Hệ thống sử dụng hàm tính giá trị trung bình (mean()) làm ngưỡng quyết định (threshold): nếu giá trị vượt qua ngưỡng thì kết luận là mã độc (nhãn 1 - Malware), ngược lại kết luận là ứng dụng lành tính (nhãn 0 - Benign).
Kết luận
Khóa luận tốt nghiệp của sinh viên Trần Hoàng Khang và Nguyễn Đoàn Xuân Bình (Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM) đã nghiên cứu giải pháp nhận diện mã độc Android dựa trên kỹ thuật xử lý ngôn ngữ tự nhiên đối với dữ liệu văn bản thuộc tính. Bằng việc thử nghiệm trên bộ dữ liệu hơn 10.000 tệp APK với các kiến trúc học sâu như NNLM, CNN-GRU, CNN và BiLSTM, đề tài đã chứng minh mô hình NNLM đạt độ chính xác cao 99,02%. Nhóm tác giả cũng đã triển khai ứng dụng web hoàn chỉnh cho phép phân tích tự động và trả kết quả phân loại tệp APK, đóng góp tài liệu thực nghiệm có giá trị cho lĩnh vực an toàn thông tin trên thiết bị di động.