Giới thiệu dự án

Sự bùng nổ của thiết bị di động thông minh đã biến hệ điều hành Android thành mục tiêu hàng đầu của các cuộc tấn công mạng. Theo thống kê từ IDC, hệ điều hành Android chiếm tới 83,8% thị phần hệ điều hành di động toàn cầu, gấp hơn 5 lần so với iOS (16,2%). Đi kèm với thị phần áp đảo là sự gia tăng đột biến của các loại mã độc tinh vi: thống kê từ Statista ghi nhận gần 70 triệu mẫu mã độc Android mới được tạo ra từ tháng 07/2013 đến tháng 03/2020, tiêu biểu như các chiến dịch phần mềm gián điệp LeifAccess (Shipper) khai thác quyền hạn người dùng để đánh cắp dữ liệu tài chính và thông tin định danh cá nhân.

+-----------------------------------------------------------------------------------+
|                        TỔNG QUAN VẤN ĐỀ VÀ GIẢI PHÁP ĐỀ XUẤT                      |
+-----------------------------------------------------------------------------------+
| THỰC TRẠNG:                                                                       |
| - Android chiếm 83.8% thị phần di động toàn cầu.                                  |
| - Gần 70 triệu mã độc Android xuất hiện trong giai đoạn 2013-2020.                |
|                                                                                   |
| THÁCH THỨC CỦA GIẢI PHÁP TRUYỀN THỐNG:                                            |
| - Phụ thuộc máy chủ đám mây (Cloud latency, rò rỉ dữ liệu nhạy cảm, cần Internet).|
| - Phương pháp phân tích trên thiết bị đòi hỏi root máy (mất an toàn hệ thống).    |
| - Công cụ dịch ngược (Apktool) phụ thuộc Java Virtual Machine (JVM) máy tính bàn. |
|                                                                                   |
| GIẢI PHÁP ĐỀ XUẤT TRONG ĐỒ ÁN:                                                    |
| -> Hệ thống Deep Learning On-Device không yêu cầu Root quyền Superuser.           |
| -> Trích xuất chuỗi API System Calls + AndroidManifest Permissions (2,814 đặc trưng).|
| -> Nén mô hình bằng TensorFlow Lite Post-Training Quantization tối ưu CPU/RAM.   |
| -> Tích hợp cơ chế bộ nhớ đệm SHA-256 Hash Caching loại bỏ độ trễ lặp.           |
+-----------------------------------------------------------------------------------+

Vấn đề thực tế và điểm nghẽn kỹ thuật (Problem Statement)

Hầu hết các giải pháp phòng thủ và phân tích mã độc hiện hành đều bộc lộ những hạn chế lớn khi triển khai thực tế:

  • Phụ thuộc kết nối đám mây (Cloud-dependent Analysis): Các hệ thống phát hiện mã độc tập trung buộc người dùng phải tải tệp tin APK (Android Application Package) lên máy chủ, gây ra độ trễ cao, tiêu tốn băng thông và tạo rủi ro rò rỉ quyền riêng tư của dữ liệu doanh nghiệp/cá nhân. Khi thiết bị ngoại tuyến (offline), lớp phòng thủ hoàn toàn bị vô hiệu hóa.
  • Rào cản về quyền root thiết bị: Các giải pháp phân tích hành vi cục bộ trước đây thường yêu cầu quyền quản trị cao nhất (Superuser / UID 0). Việc can thiệp root thiết bị phá vỡ mô hình hộp cát (Application Sandboxing) của nhân Linux, tạo ra các lỗ hổng bảo mật nghiêm trọng cho toàn bộ hệ điều hành.
  • Sự thiếu tương thích của công cụ dịch ngược (Decompilation): Các công cụ cốt lõi như Apktool được thiết kế chạy trên máy ảo Java (JVM) của máy chủ/máy tính để bàn (x86_64), không thể vận hành trực tiếp trên Android Runtime (ART) hoặc Dalvik Virtual Machine (DVM) của thiết bị di động do cơ chế gọi lệnh hệ thống (shell execution) bị chặn.

Mục tiêu của đề tài (Project Objectives)

  1. Nghiên cứu và chuẩn hóa tập đặc trưng ngữ nghĩa: Trích xuất kết hợp chuỗi lời gọi phương thức hệ thống (API System Calls) và quyền hạn (Permissions) từ tệp classes.dexAndroidManifest.xml để xây dựng bộ từ điển chuẩn 2,814 đặc trưng.
  2. Tối ưu hóa mô hình học sâu MalDozer: Áp dụng kỹ thuật nhúng từ (Word Embedding) và mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) để phân loại mã độc nhị phân đạt độ chính xác trên 96%.
  3. Chuyển đổi và lượng tử hóa mô hình sang TensorFlow Lite: Áp dụng kỹ thuật lượng tử hóa sau huấn luyện (Post-Training Quantization) để giảm kích thước mô hình từ HDF5 sang .tflite, tối ưu hóa độ trễ thực thi trên phần cứng di động.
  4. Tùy biến công cụ dịch ngược trực tiếp trên di động: Tái cấu trúc mã nguồn Apktool loại bỏ các phụ thuộc vào JVM máy tính, cho phép dịch ngược APK trực tiếp trên thiết bị Android chuẩn mà không yêu cầu root.
  5. Xây dựng ứng dụng hoàn chỉnh: Thiết kế giao diện Android trực quan gồm hai chế độ quét đơn lẻ (Home) và quét toàn bộ ứng dụng cài đặt trong máy (Dashboard), tích hợp bộ nhớ đệm băm SHA-256 để tăng tốc độ kiểm tra.

Phạm vi và giới hạn (Scope & Limitations)

  • Phạm vi: Đề tài tập trung vào phân tích tĩnh (Static Analysis) các tệp APK trên nền tảng Android từ phiên bản Android 5.0 (API level 21) đến Android 11.0 (API level 30), triển khai thử nghiệm trên tập dữ liệu chuẩn CICMalDroid 2020.
  • Giới hạn: Chưa hỗ trợ giải mã các ứng dụng sử dụng kỹ thuật làm rối mã nâng cao (Advanced Code Obfuscation) nhiều lớp, nạp mã động từ xa (Dynamic Code Loading) hoặc mã độc nhúng trong thư viện native C/C++ (.so files).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Để lựa chọn kiến trúc tối ưu, đề tài tiến hành đánh giá chi tiết ba mô hình nghiên cứu tiêu biểu trong lĩnh vực phát hiện mã độc Android:

Giải pháp Nền tảng triển khai Loại đặc trưng Ưu điểm Nhược điểm lớn
MAMADroid Máy chủ (Server-only) Chuỗi Markov từ API Calls (Call Graph) Mô hình hóa hành vi ngữ nghĩa sâu Chi phí bộ nhớ cực lớn; sử dụng Soot/FlowDroid phức tạp; thất bại trên 4.6% số mẫu APK thử nghiệm
MobiDroid Di động (Mobile-side inference) Manifest properties + API Calls + Opcode Đưa suy luận về thiết bị di động Tiền xử lý (Decompilation) vẫn chạy trên JVM máy tính (chiếm 80% thời gian); không độc lập trên di động
MalDozer Máy chủ (Server) Trình tự các chuỗi API Method Calls thô Tận dụng Deep Learning trích xuất ngữ cảnh, không lọc bỏ API Chưa hỗ trợ Permission; chưa được tối ưu hóa cho thiết bị di động; triển khai ở dạng model máy tính
Hệ thống đề xuất Thiết bị di động (On-Device) API Method Calls + Permissions Hoạt động độc lập 100% không cần Internet; không yêu cầu Root; nén mô hình TFLite Thời gian dịch ngược phụ thuộc vào dung lượng APK lớn

Yêu cầu người dùng theo mô hình MoSCoW

  • Must Have (Bắt buộc có):
    • Khả năng phân tích tệp tin .apk ngoại tuyến (Offline) ngay trên bộ nhớ thiết bị.
    • Vận hành dưới đặc quyền người dùng thông thường (Non-root user sandbox).
    • Tích hợp mô hình học sâu định dạng .tflite với độ trễ suy luận dưới 100ms.
  • Should Have (Nên có):
    • Quét danh sách các ứng dụng đã được cài đặt trong máy thông qua Activity Dashboard.
    • Tối ưu hóa chuỗi trích xuất với bộ nhớ đệm SHA-256 Signature Caching.
  • Could Have (Có thể có):
    • Đồng bộ cơ sở dữ liệu mẫu mã độc mới định kỳ từ máy chủ khi có mạng.
  • Won't Have (Chưa phát triển trong phiên bản này):
    • Chạy sandbox động (Dynamic Sandbox Hooking) trong môi trường runtime.

Thiết kế hệ thống

Kiến trúc tổng thể (System Architecture)

Hệ thống được chia thành hai phân vùng độc lập: Quá trình huấn luyện trên máy chủ (Server Pipeline)Quá trình thực thi trên thiết bị di động (Mobile Pipeline).

================================= SERVER PIPELINE =================================
+---------------+     +--------------------+     +--------------------------------+
|  Tập dữ liệu  | --> | Dịch ngược APKtool | --> | Trích xuất API Calls +         |
| CICMalDroid20 |     | (Smali & Manifest) |     | Permissions (2,814 Features)   |
+---------------+     +--------------------+     +--------------------------------+
                                                                 |
                                                                 v
+------------------+     +-----------------------+     +--------------------------+
|  Model.tflite    | <-- | Post-Training Quant.  | <-- | Huấn luyện mô hình Keras |
| (Deploy Mobile)  |     | (TF Lite Converter)   |     | (ANN + Word Embedding)   |
+------------------+     +-----------------------+     +--------------------------+

================================= MOBILE PIPELINE =================================
+------------------+     +-----------------------+     +--------------------------+
| Người dùng chọn  | --> | Kiểm tra SHA-256 Hash | --> | [Khớp Signature Cache]   |
| Tệp tin .APK     |     | trong SQLite Cục bộ   |     | => Hiển thị kết quả ngay |
+------------------+     +-----------------------+     +--------------------------+
                                     |
                          [Chưa từng kiểm tra]
                                     v
+------------------+     +-----------------------+     +--------------------------+
| Dịch ngược bằng  | --> | Trích xuất chuỗi đặc  | --> | TFLite Interpreter       |
| Custom Apktool   |     | trưng & Pad Vector 500|     | Chẩn đoán [Malware/Safe] |
+------------------+     +-----------------------+     +--------------------------+

Technology Stack và số hiệu phiên bản

  • Machine Learning & Server Frameworks: Python 3.8, TensorFlow v2.4.1, Keras v2.4.3, NumPy v1.19.5, Scikit-learn v0.24.2.
  • Mobile Environment & Tools: Android SDK API Level 30 (Android 11), Java Development Kit (JDK 8/11), Android Support/AndroidX Libraries.
  • Embedded Engine: TensorFlow Lite Android AAR runtime v2.5.0.
  • Decompilation Engine: Custom Apktool core v2.5.0 chuyển đổi chạy trên DVM/ART.

Phương pháp nghiên cứu và quản trị rủi ro

+-----------------------------------------------------------------------------------+
|                        MA TRẬN QUẢN TRỊ RỦI RO DỰ ÁN                              |
+---------------------+-------------------+------------+----------------------------+
| Rủi ro kỹ thuật     | Mức độ ảnh hưởng  | Khả năng   | Giải pháp giảm thiểu       |
+---------------------+-------------------+------------+----------------------------+
| Thiếu bộ nhớ RAM    | Cao               | Trung bình | Chỉ giữ lại file smali và  |
| khi dịch ngược APK  |                   |            | manifest; xóa bỏ tài nguyên|
| trên thiết bị       |                   |            | res/ và hình ảnh tạm.      |
+---------------------+-------------------+------------+----------------------------+
| Mô hình TFLite suy  | Trung bình        | Thấp       | Áp dụng Post-training      |
| giảm độ chính xác   |                   |            | Quantization dải động kết  |
| do lượng tử hóa     |                   |            | hợp đánh giá chéo.         |
+---------------------+-------------------+------------+----------------------------+
| Giới hạn quyền      | Cao               | Cao        | Thay thế lệnh Shell Unix   |
| Sandbox Android     |                   |            | bằng thuật toán duyệt cây  |
| (Non-root)          |                   |            | thư mục Java Native I/O.   |
+---------------------+-------------------+------------+----------------------------+

Implementation và kết quả

Chi tiết quá trình phát triển và thuật toán cốt lõi

1. Xây dựng và chọn lọc đặc trưng (Feature Selection)

Hệ thống trích xuất toàn bộ các phương thức gọi API trong mã nguồn smali kết hợp với danh sách quyền khai báo trong thẻ <uses-permission> của file AndroidManifest.xml. Sau khi lập chỉ mục với bộ từ điển 2,814 phần tử, dữ liệu thô được lọc nhiễu thông qua thuật toán SelectKBest dựa trên kiểm định thống kê đơn biến để chọn ra $K$ đặc trưng tối ưu nhất:

# Server-side: Trích chọn đặc trưng và huấn luyện mô hình phân loại
from sklearn.feature_selection import SelectKBest, chi2
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, Conv1D, GlobalMaxPooling1D, Dense, Dropout

# 1. Trích chọn K đặc trưng quan trọng nhất từ bộ từ điển
selector = SelectKBest(score_func=chi2, k=500)
X_train_selected = selector.fit_transform(X_raw_indices, y_labels)

# 2. Xây dựng kiến trúc mô hình học sâu phân loại chuỗi API + Permission
sequence_length = 500
vocab_size = 2814
embedding_dim = 64

model = Sequential([
    Embedding(input_dim=vocab_size + 1, output_dim=embedding_dim, input_length=sequence_length),
    Conv1D(filters=128, kernel_size=3, activation='relu'),
    GlobalMaxPooling1D(),
    Dense(64, activation='relu'),
    Dropout(0.5),
    Dense(2, activation='softmax') # Đầu ra: [Lành tính (Benign), Mã độc (Malware)]
])

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train_selected, y_train, epochs=20, batch_size=64, validation_split=0.2)
model.save("model_malware_detector.h5")

2. Lượng tử hóa mô hình với TensorFlow Lite

Mô hình định dạng HDF5 (.h5) có dung lượng lớn và sử dụng dấu phẩy động 32-bit (FP32), không thích hợp cho việc chạy trên CPU di động. Quá trình lượng tử hóa sau huấn luyện được thực hiện như sau:

# Server-side: Chuyển đổi mô hình sang định dạng TensorFlow Lite (Post-training Quantization)
import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT] # Áp dụng lượng tử hóa dải động
tflite_quant_model = converter.convert()

# Lưu mô hình tối ưu hóa để tích hợp vào ứng dụng Android
with open('model_malware.tflite', 'wb') as f:
    f.write(tflite_quant_model)

3. Bộ nạp và suy luận trên Android (Mobile Inference Engine)

Tại tầng ứng dụng Java trên Android, tệp .tflite được ánh xạ vào bộ nhớ thông qua MemoryMappedByteBuffer và nạp vào lớp Interpreter:

// Android Client: Thực thi suy luận nhị phân sử dụng TensorFlow Lite Interpreter
package vn.edu.uit.malwaredetection;

import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import org.tensorflow.lite.Interpreter;
import java.io.FileInputStream;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;

public class ModelTflite {
    private Interpreter tflite;

    public ModelTflite(AssetManager assetManager, String modelPath) throws Exception {
        AssetFileDescriptor fileDescriptor = assetManager.openFd(modelPath);
        FileInputStream inputStream = new FileInputStream(fileDescriptor.getFileDescriptor());
        FileChannel fileChannel = inputStream.getChannel();
        MappedByteBuffer modelBuffer = fileChannel.map(FileChannel.MapMode.READ_ONLY, 
                fileDescriptor.getStartOffset(), fileDescriptor.getDeclaredLength());
        this.tflite = new Interpreter(modelBuffer);
    }

    public float[] classifyApp(int[] inputSequence) {
        // Chuỗi đầu vào có kích thước cố định [1, 500]
        int[][] input = new int[1][500];
        System.arraycopy(inputSequence, 0, input[0], 0, Math.min(inputSequence.length, 500));
        
        // Đầu ra chứa xác suất: [P_Benign, P_Malware]
        float[][] output = new float[1][2];
        tflite.run(input, output);
        return output[0];
    }
}
+-----------------------------------------------------------------------------------+
|               KẾT QUẢ ĐẦU RA SUY LUẬN TFLITE INTERPRETER TRÊN THIẾT BỊ             |
+-----------------------------------------------------------------------------------+
| Shape đầu vào:  [1, 500] (Định dạng int32, chuỗi đặc trưng ngữ nghĩa)            |
| Shape đầu ra:   [1, 2]   (Định dạng float32, mảng xác suất)                       |
| Phân loại:      - output[0][0] = Xác suất ứng dụng Lành tính (Benign)             |
|                 - output[0][1] = Xác suất ứng dụng Độc hại (Malware)             |
| Quy tắc ra quyết định: Nếu output[0][1] > output[0][0] => Cảnh báo nguy hiểm.    |
+-----------------------------------------------------------------------------------+

Đánh giá kết quả thực nghiệm

Mô hình được huấn luyện và đánh giá trên bộ dữ liệu chuẩn CICMalDroid 2020 với tập mẫu phong phú gồm các loại Adware, Banking Malware, SMS Malware, Riskware và Benign.

Chỉ số đánh giá Mô hình MalDozer Gốc (Server) Mô hình Đề xuất (TFLite On-Device)
Độ chính xác (Accuracy) 96.8% 96.3%
Độ chính xác chuẩn (Precision) 96.2% 95.9%
Độ bao phủ (Recall / TPR) 97.1% 96.7%
F1-Score 96.6% 96.3%
Tỷ lệ báo động giả (False Positive Rate - FPR) 3.2% 3.5%
Kích thước file mô hình 18.4 MB (.h5) 4.6 MB (.tflite - Giảm 75%)
Thời gian suy luận mô hình (Inference Latency) 12ms (Intel Core i7) 38ms (Snapdragon 845 CPU)
               CONFUSION MATRIX TRÊN TẬP DỮ LIỆU KIỂM THỬ (TEST DATASET)
                             Dự đoán Benign       Dự đoán Malware
     Thực tế Benign (Lành tính)    [ TN = 96.5% ]       [ FP = 3.5% ]
     Thực tế Malware (Độc hại)     [ FN = 3.3% ]        [ TP = 96.7% ]

Đổi mới và đóng góp

  1. Thực thi dịch ngược độc lập trên kiến trúc di động (Pure Mobile-side Decompilation): Khắc phục triệt để điểm nghẽn của MobiDroid (vốn phải dựa vào máy chủ để dịch ngược) bằng cách loại bỏ các đoạn mã phát hiện hệ điều hành máy tính (OSDetection.java) và chuyển đổi Apktool thành thư viện Java nhúng tương thích với máy ảo Android.
  2. Bộ từ điển đặc trưng lai (Hybrid Feature Dictionary): Kết hợp cả hai nhóm đặc trưng quan trọng: 2,684 chuỗi API Method Calls và 130 quyền khai báo Permission. Điều này giúp mô hình nhận diện chính xác các hành vi leo thang đặc quyền mà phân tích API đơn thuần dễ bỏ sót.
  3. Mô hình học sâu lượng tử hóa siêu nhẹ: Áp dụng TensorFlow Lite Post-Training Quantization giúp giảm dung lượng mô hình tới 75% (từ 18.4 MB xuống còn 4.6 MB) trong khi độ chính xác chỉ suy giảm tối thiểu 0.5%, cho phép vận hành trơn tru trên các thiết bị di động có cấu hình phổ thông.
  4. Cơ chế băm SHA-256 tăng tốc thông minh: Khi quét các tệp tin APK phổ biến đã được kiểm tra trước đó, hệ thống lập tức xuất kết quả thông qua bảng băm cục bộ mà không cần phân tích lại, tiết kiệm 100% tài nguyên tính toán và loại bỏ thời gian chờ của người dùng.
+-----------------------------------------------------------------------------------+
|               SO SÁNH CÁC CHỈ SỐ KỸ THUẬT VỚI CÁC NGHIÊN CỨU LIÊN QUAN            |
+----------------------------+---------------+---------------+----------------------+
| Tiêu chí so sánh           | MAMADroid     | MobiDroid     | Giải pháp Đề xuất    |
+----------------------------+---------------+---------------+----------------------+
| Tính độc lập kết nối       | 0% (Cần mạng) | 0% (Cần mạng) | 100% (Offline hoàn toàn)|
| Yêu cầu Root máy           | Không         | Không         | Không                |
| Môi trường Decompile       | Server        | Server/JVM    | Client Mobile DVM/ART|
| Dung lượng mô hình lưu trữ | Rất lớn (Graph)| Lớn (TFLite)  | 4.6 MB (Tối ưu hóa)  |
| Độ chính xác tổng thể (F1) | 94.2%         | 95.8%         | 96.3%                |
+----------------------------+---------------+---------------+----------------------+

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Kiểm tra an toàn tệp APK tải về từ bên ngoài (Sideloading Guard): Người dùng khi tải các ứng dụng dạng file .apk từ các nguồn thứ ba (Apkpure, diễn đàn) có thể mở ứng dụng để kiểm tra mã độc tức thì trước khi quyết định cài đặt.
  • Giám sát thiết bị trong doanh nghiệp (Enterprise Mobile Device Management - MDM): Bảo vệ các thiết bị di động của nhân viên công ty khi truy cập vào mạng nội bộ mà không lo ngại rò rỉ dữ liệu mật qua đám mây của bên thứ ba.
  • Hệ thống nhúng và thiết bị IoT Android (Smart TV, POS Terminals): Triển khai trực tiếp lên các thiết bị thông minh chạy Android nhúng để tạo hàng rào phòng thủ mã độc tự động tại biên mạng.
+-----------------------------------------------------------------------------------+
|                     LỘ TRÌNH TRIỂN KHAI VÀ MỞ RỘNG HỆ THỐNG                       |
+-----------------------------------------------------------------------------------+
| Giai đoạn 1 (Tháng 1 - Tháng 3): Tối ưu hóa Custom Apktool & tích hợp TFLite Core |
| Giai đoạn 2 (Tháng 4 - Tháng 6): Đánh giá thực nghiệm tập dữ liệu CICMalDroid 2020|
| Giai đoạn 3 (Tháng 7 - Tháng 9): Xây dựng giao diện UI Home/Dashboard & Hash Cache|
| Giai đoạn 4 (Sau tốt nghiệp):    Tích hợp Federated Learning & hỗ trợ Android App |
|                                  Bundle (AAB / Split APKs)                        |
+-----------------------------------------------------------------------------------+

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Thời gian dịch ngược tệp tin APK lớn: Quá trình dịch ngược mã nguồn bằng Apktool trên các thiết bị di động có cấu hình thấp vẫn mất từ 15 - 45 giây đối với các tập tin APK có dung lượng lớn trên 50MB.
  • Kỹ thuật nạp mã động (Dynamic Class Loading): Phân tích tĩnh chưa thể bắt được các payload độc hại được tải về từ máy chủ điều khiển C&C trong lúc ứng dụng đang chạy.

Hướng nghiên cứu phát triển

  • Tích hợp thêm module Dynamic Analysis Sandbox dựa trên kỹ thuật hook hàm (Frida / Xposed Framework) cho các thiết bị đã được cấp quyền nâng cao.
  • Triển khai cơ chế Học liên kết (Federated Learning) giúp cập nhật trọng số mô hình trên thiết bị người dùng mà không cần thu thập dữ liệu cá nhân về máy chủ trung tâm.
  • Hỗ trợ định dạng đóng gói hiện đại Android App Bundle (AAB) và các tệp cài đặt phân mảnh (Split APKs).

Đối tượng hưởng lợi

  • Sinh viên & Học viên chuyên ngành ATTT/CNTT: Tiếp cận tài liệu mẫu hoàn chỉnh về quy trình porting công cụ dịch ngược và tích hợp mô hình Deep Learning từ máy chủ lên thiết bị di động.
  • Lập trình viên di động (Mobile Developers): Nắm vững kiến trúc triển khai TensorFlow Lite trên Android, kỹ thuật tối ưu hóa bộ nhớ và phương thức tương tác bảo mật với tệp APK.
  • Doanh nghiệp & Tổ chức: Sở hữu giải pháp rà quét mã độc cục bộ không phát sinh chi phí duy trì hạ tầng máy chủ đám mây, đảm bảo tuân thủ nghiêm ngặt các quy định về an toàn quyền riêng tư dữ liệu (GDPR/ISO 27001).
  • Cộng đồng nghiên cứu mã độc (Malware Researchers): Nguồn tham khảo giá trị trong việc kết hợp chuỗi ngữ nghĩa API Calls và Permissions để nhận diện các dòng mã độc biến thể mới.

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

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai ứng dụng trên điện thoại Android là gì?

Thiết bị cần chạy hệ điều hành Android phiên bản 5.0 (Lollipop - API Level 21) trở lên, dung lượng RAM khả dụng tối thiểu 1.5 GB và dung lượng bộ nhớ trong trống ít nhất 200 MB để lưu trữ mô hình và thực thi tác vụ giải nén APK tạm thời.

2. Mô hình có phân biệt được các ứng dụng sử dụng kỹ thuật làm rối mã (Obfuscation) không?

Mô hình giữ được hiệu quả cao với các kỹ thuật làm rối mã cơ bản như đổi tên định danh (ProGuard / R8), vì phương pháp nhúng ngữ nghĩa khai thác chuỗi các lời gọi phương thức hệ thống Android API (android.os.*, android.telephony.*), vốn là các hàm thư viện chuẩn không thể bị đổi tên.

3. Tại sao hệ thống không cần cấp quyền Root trên thiết bị Android?

Hệ thống đã thay thế các lệnh thực thi shell cấp thấp bằng các luồng đọc ghi tệp thuần Java dựa trên giao diện lập trình của Android SDK, vận hành hoàn toàn trong phạm vi đặc quyền ứng dụng thông thường (Standard Sandbox UID).

4. Chi phí vận hành của giải pháp này là bao nhiêu?

Chi phí vận hành phía máy chủ bằng 0 VNĐ do toàn bộ quy trình từ dịch ngược mã nguồn, trích xuất đặc trưng đến suy luận học sâu đều được thực thi phân tán bằng chính tài nguyên phần cứng cục bộ của thiết bị người dùng.

5. Cơ chế lưu vết băm SHA-256 hoạt động như thế nào?

Mỗi khi một tệp APK được kiểm tra, chuỗi băm SHA-256 duy nhất của tệp sẽ được lưu vào cơ sở dữ liệu SQLite cục bộ cùng nhãn kết quả. Khi người dùng kiểm tra lại tệp tin này, hệ thống chỉ mất chưa đầy 0.05 giây để so khớp mã băm và trả kết quả tức thì.


Kết luận

Đồ án tốt nghiệp "Phát hiện mã độc Android trên thiết bị bằng phương pháp học sâu" của nhóm tác giả Nguyễn Anh Đức và Nguyễn Phong Đại (Đại học Công nghệ Thông tin - ĐHQG-HCM) đã giải quyết thành công bài toán chuyển dịch mô hình Deep Learning phức tạp từ máy chủ lên thiết bị di động. Bằng việc kết hợp sáng tạo giữa bộ từ điển 2,814 đặc trưng lai (API Calls + Permissions), tùy biến công cụ dịch ngược Apktool chạy trên ART/DVM không cần root, cùng kỹ thuật lượng tử hóa TensorFlow Lite Post-Training Quantization, hệ thống đã đạt độ chính xác vượt trội 96.3% với độ trễ suy luận chỉ 38ms. Đây là minh chứng điển hình cho xu hướng Trí tuệ nhân tạo biên (Edge AI), mở ra hướng đi bền vững và an toàn cho việc bảo vệ thiết bị di động trong kỷ nguyên số.