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

Sự bùng nổ của các thiết bị di động thông minh đã biến điện thoại và máy tính bảng thành phương tiện thiết yếu trong đời sống thường nhật. Theo số liệu thống kê từ International Data Corporation (IDC), số lượng thiết bị di động bán ra trên thị trường toàn cầu đạt gần 346 triệu thiết bị mỗi quý, trong đó các thiết bị chạy hệ điều hành Android chiếm hơn 85% tổng thị phần. Báo cáo của đơn vị thống kê web StatCounter trong giai đoạn từ tháng 06/2020 đến tháng 06/2021 cũng ghi nhận Android chiếm 72,83% thị phần thương mại toàn cầu, trong khi iOS chiếm 26,35% và các hệ điều hành khác chiếm dưới 1%.

Do bản chất là hệ điều hành mã nguồn mở cùng số lượng người dùng lớn, Android trở thành mục tiêu hàng đầu cho các cuộc tấn công khai thác lỗ hổng bảo mật. Thiết bị di động hiện nay đảm nhận đầy đủ chức năng của một máy tính cá nhân, lưu trữ nhiều thông tin nhạy cảm như dữ liệu định danh, tài khoản ngân hàng và thông tin mạng xã hội, dẫn đến nguy cơ cao bị các loại mã độc, phần mềm gián điệp đánh cắp hoặc phá hoại dữ liệu.

Để kiểm soát các mối đe dọa, hai kỹ thuật phân tích truyền thống thường được áp dụng là phân tích tĩnh và phân tích động, tuy nhiên cả hai đều tồn tại nhiều hạn chế kỹ thuật:

  • Phân tích tĩnh: Thường gặp khó khăn lớn trước kỹ thuật làm rối mã nguồn (obfuscation), sự thiếu vắng mã nguồn gốc của ứng dụng thương mại, đồng thời không thể xác định được các hành vi diễn ra tại thời gian thực (như địa chỉ URL kết nối thực tế hay số điện thoại nhận tin nhắn SMS).
  • Phân tích động: Dễ bị vô hiệu hóa bởi các kỹ thuật chống phân tích trên môi trường ảo hóa (Anti-VM) do mã độc cài cắm nhằm né tránh việc kiểm tra trong môi trường sandbox.

Xuất phát từ các thách thức trên, đề tài xác định việc ứng dụng kỹ thuật hooking là giải pháp cho phép giám sát trực tiếp hành vi ứng dụng tại thời gian thực. Mục tiêu cụ thể của khóa luận bao gồm:

  1. Xây dựng ứng dụng hỗ trợ giám sát hành vi ứng dụng chạy trên hệ điều hành Android tại thời gian thực, kịp thời phát hiện các truy cập dữ liệu bất hợp pháp hoặc các hành vi kết nối mạng, gửi tin nhắn gây rò rỉ dữ liệu cá nhân ra bên ngoài để đưa ra cảnh báo.
  2. Thực hiện giám sát một số giao diện lập trình ứng dụng (API) thông dụng và đặc trưng, bao gồm: kết nối URL, gửi tin nhắn SMS, truy cập bộ nhớ tạm (clipboard) và khởi động một Activity.
  3. Xây dựng công cụ chuyên dụng hỗ trợ chuyên gia kiểm thử xâm nhập (pentester) trong quá trình đánh giá an toàn thông tin của các đối tượng ứng dụng cần kiểm thử.
  4. Xây dựng ứng dụng hoàn chỉnh cho người dùng cuối, cho phép người dùng tương tác trực tiếp với ứng dụng mục tiêu tại thời gian thực thông qua các tùy chọn phản ứng phù hợp (Cho phép / Chặn / Cảnh báo - Allow / Block / Warning), đồng thời cung cấp giao diện hiển thị nhật ký (logs) ghi lại các hành vi đã diễn ra.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Các API hệ thống đặc trưng trên nền tảng Android và hai công cụ hooking đại diện cho hai phương thức tiếp cận khác nhau là Frida và Xposed Framework.
  • Phạm vi nghiên cứu: Nghiên cứu triển khai trên hệ điều hành Android Red Velvet SDK 30 (Android 11), ứng dụng được thiết lập hoạt động trong cả môi trường kiểm thử (trình giả lập Android Emulator / thiết bị ảo AVD) và trên thiết bị vật lý đã được root.

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

Khóa luận dựa trên nền tảng kiến trúc của hệ điều hành Android và cơ chế can thiệp lời gọi hàm (function hooking) trong bộ nhớ.

Về mặt kiến trúc, Android gồm 5 thành phần chính phân bổ trên 4 tầng: Nhân Linux (Linux Kernel), các Thư viện hệ thống (libc, WebKit, SQLite, SSL...) cùng môi trường thực thi Android Runtime (Dalvik VM hoặc ART), Tầng khung ứng dụng (Application Framework gồm Activity Manager, Content Providers, Resource Manager, Notifications Manager, View System) và Tầng ứng dụng (Applications). Vòng đời hoạt động của ứng dụng xoay quanh 4 thành phần cơ bản:

  • Activity: Thành phần cung cấp giao diện người dùng tương tác trực tiếp, hoạt động với chu trình sống độc lập thông qua các trạng thái tạo lập và hủy bỏ.
  • Service: Thành phần chạy nền xử lý các tác vụ tiêu tốn thời gian mà không hiển thị giao diện người dùng.
  • Content Provider: Cơ chế quản lý và chia sẻ dữ liệu giữa các ứng dụng thông qua cơ sở dữ liệu SQLite hoặc tệp tin (gồm Native Content Provider và Custom Content Provider).
  • Broadcast Receiver: Thành phần tiếp nhận và phản hồi các thông điệp sự kiện phát ra từ hệ thống hoặc ứng dụng khác thông qua Intent.

Về phương pháp hooking, khóa luận phân loại các công cụ dựa trên các tiêu chí kỹ thuật: loại chương trình con can thiệp (Function hooking tại user-space so với System call hooking tại kernel-space), thời điểm chèn mã (Static hooking trước khi gọi hàm so với Dynamic hooking tại thời điểm runtime), phương thức xử lý dữ liệu (Passive chỉ đọc dữ liệu so với Active có thể thay đổi đối số/giá trị trả về), và vị trí thực thi (On-device chạy trực tiếp trên máy so với Off-device theo mô hình client-server).

Hai công cụ cụ thể được lựa chọn nghiên cứu và đối sánh trong đề tài gồm:

  • Frida: Đại diện cho kỹ thuật dynamic function call hooking, hoạt động theo mô hình client-server, cho phép chèn các đoạn mã JavaScript vào tiến trình mục tiêu tại thời gian thực mà không cần chỉnh sửa tệp nhị phân gốc. Frida tích hợp các công cụ hỗ trợ như frida-ps (liệt kê tiến trình), frida-trace (theo dõi lời gọi hàm), frida-discover (khám phá hàm nội bộ) và frida-kill (dừng tiến trình).
  • Xposed Framework: Đại diện cho kỹ thuật static function call hooking, can thiệp ở cấp độ hệ thống thông qua việc thay thế tệp thực thi app_process của tiến trình Zygote (tiến trình khởi nguyên cho mọi ứng dụng Android). Khi Zygote nạp tệp XposedBridge.jar vào Java classpath, framework cho phép các module tự viết can thiệp vào bất kỳ phương thức nào của hệ thống bằng các hàm beforeHookedMethod, afterHookedMethod hoặc replaceHookedMethod.
Đặc trưng kỹ thuật Frida Xposed Framework
Kiểu hooking (Subroutine Type) Function Call Function Call
Thời điểm thực thi (Hook Insertion) Dynamic (Động tại runtime) Static (Tĩnh nạp trước)
Xử lý dữ liệu (Instrumentation Type) Passive và Active Passive và Active
Vị trí thực thi (Hooking Location) On-device và Off-device On-device
Quyền quản trị (Root privileges) Không bắt buộc với mọi tính năng Bắt buộc phải có quyền root
Hệ điều hành hỗ trợ Windows, Linux, macOS, iOS, Android Android
Giấy phép mã nguồn (Source Code) Mã nguồn mở (Open-Source) Mã nguồn mở (Open-Source)
Chi phí (Pricing Model) Miễn phí Miễn phí
Hỗ trợ API (API Support) Đa dạng phiên bản API 14 đến API 30

Thiết kế và triển khai hệ thống

Hệ thống giám sát và khai thác trong khóa luận được thiết kế thành hai nhánh giải pháp riêng biệt, phục vụ hai nhóm đối tượng: chuyên gia phân tích/kiểm thử xâm nhập (sử dụng Frida) và người dùng cuối (sử dụng module Xposed).

1. Phân hệ phân tích và kiểm thử xâm nhập bằng Frida

Phân hệ hoạt động theo mô hình client-server:

  • Frida-client: Cài đặt trên máy tính của chuyên gia phân tích, điều khiển quá trình tiêm mã và thu thập log thông qua giao thức kết nối với thiết bị.
  • Frida-server: Chạy dưới quyền root trên thiết bị Android mục tiêu (máy ảo hoặc máy thật).
  • Cơ chế can thiệp: Chuyên gia viết các tập lệnh bằng JavaScript để can thiệp vào bộ nhớ của ứng dụng đang chạy. Các chức năng được hiện thực hóa gồm:
    • Hook phương thức startActivity() của lớp android.app.Activity để ghi nhận toàn bộ tiến trình chuyển đổi giao diện và tham số Intent đi kèm.
    • Sử dụng API nội tại của Frida để quét và liệt kê toàn bộ các lớp (class) đang được nạp vào máy ảo Java/ART của ứng dụng.
    • Hook các phương thức xử lý sự kiện onClick() nhằm phát hiện các hành động bấm nút của người dùng.
    • Khai thác lỗ hổng xác thực trên ứng dụng ngân hàng di động (Mobile Banking) giả lập: ghi đè kết quả trả về của hàm kiểm tra mã PIN để vượt qua màn hình đăng nhập (bypass PIN), đồng thời tự động hóa quá trình vét cạn (brute-force) mã PIN 4 chữ số trực tiếp trong bộ nhớ.

2. Phân hệ giám sát và cảnh báo thời gian thực bằng Xposed Framework

Phân hệ được thiết kế dưới dạng một Xposed Module hoàn chỉnh, tích hợp giao diện người dùng và cơ sở dữ liệu lưu vết cục bộ:

  • Cấu hình tầng hệ thống:
    • Tích hợp thư viện de.robv.android.xposed:api:82 thông qua cấu hình compileOnly trong tệp build.gradle.
    • Khai báo các thẻ <meta-data> trong tệp AndroidManifest.xml nhằm xác định cờ nhận diện module đối với Xposed Framework: xposedmodule=true, xposeddescription="KLTN2021 - Xposed Module", xposedminversion=90.
    • Thiết lập tệp chỉ mục assets/xposed_init chứa đường dẫn định danh đầy đủ của lớp thực thi hook (entry point).
    • Vận hành trên nền tảng EdXposed (phiên bản kế thừa của Xposed gốc trên Android 11 / API 30) thông qua Magisk và Riru core.
  • Cấu trúc lưu trữ dữ liệu: Sử dụng hệ quản trị cơ sở dữ liệu SQLite với bảng dữ liệu logs_info để ghi nhận các hành vi nhạy cảm bắt được từ hệ thống.
Tên trường (Field) Kiểu dữ liệu Ý nghĩa
id INTEGER PRIMARY KEY Khóa chính tự tăng
package_name TEXT Tên định danh gói ứng dụng bị giám sát
action_name TEXT Tên hành vi hoặc phương thức API bị can thiệp
content TEXT Chi tiết dữ liệu truyền vào (URL, nội dung SMS, clipboard...)
status TEXT Trạng thái phản ứng (Allow, Block, Warning)
timestamp DATETIME Thời điểm phát sinh hành vi
  • Triển khai kỹ thuật hook các API đặc trưng:
    • Clipboard API: Hook phương thức của dịch vụ ClipboardManager để phát hiện ứng dụng đọc ngầm dữ liệu bộ nhớ tạm, hiển thị thông báo tức thời cho người dùng.
    • Dịch vụ gửi tin nhắn SMS: Hook phương thức sendTextMessage của lớp android.telephony.SmsManager. Module trích xuất nội dung tin nhắn gửi đi và số điện thoại người nhận; nếu phát hiện chuỗi văn bản chứa thông tin mật khẩu, hệ thống sẽ kích hoạt cảnh báo nguy cơ rò rỉ dữ liệu.
    • Khởi tạo Intent và liên kết mạng: Hook các cấu trúc gọi Intent để kiểm soát địa chỉ URL kết nối. Hệ thống thực hiện đối soát URL với danh sách đen (blacklist) đã định nghĩa; nếu URL nằm trong danh sách độc hại, module chặn kết nối và phát cảnh báo, ngược lại nếu an toàn sẽ hiển thị trạng thái bình thường.
    • Truy cập phần cứng và tài nguyên hệ thống ngầm: Bắt các Intent ngầm kích hoạt mở máy ảnh (Camera), thiết lập hẹn báo thức hoặc truy xuất lịch hệ thống mà không có sự tương tác chủ động từ người dùng.

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

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

Chương 1 trình bày tính cấp thiết của việc bảo vệ an toàn thông tin trên thiết bị di động trong bối cảnh Android chiếm lĩnh thị phần áp đảo (trên 85% theo IDC và 72,83% theo StatCounter). Tác giả phân tích các hạn chế cố hữu của hai phương pháp phân tích mã độc tĩnh (dễ bị vô hiệu hóa bởi kỹ thuật làm rối mã, thiếu mã nguồn, không bắt được dữ liệu thời gian thực) và phân tích động (bị cản trở bởi kỹ thuật chống máy ảo Anti-VM). Trên cơ sở đó, chương này xác định rõ mục tiêu nghiên cứu, phạm vi triển khai trên hệ điều hành Android Red Velvet SDK 30, và đối tượng nghiên cứu là kỹ thuật hooking thông qua hai công cụ Frida và Xposed Framework.

Phần tiếp theo của chương hệ thống hóa lý thuyết về hệ điều hành Android: khái niệm thiết bị di động, lịch sử phát triển từ phiên bản Android 1.0 đến Android 11 (Android R / Red Velvet Cake, phát hành tháng 09/2020), các đặc điểm kết nối và lưu trữ SQLite, kiến trúc 4 tầng phân lớp, chi tiết 4 thành phần ứng dụng cốt lõi (Activity, Service, Content Provider, Broadcast Receiver) cùng nguyên lý vận hành của trình giả lập Android Emulator và thiết bị ảo AVD.

Chương 2. Tổng quan về kỹ thuật hooking

Chương 2 tập trung phân tích bản chất kỹ thuật của hooking như một phương pháp can thiệp luồng thực thi thông qua việc chèn mã vào trước, trong hoặc sau khi gọi hàm gốc. Tác giả tổng hợp mô hình phân loại công cụ hooking dựa trên nghiên cứu của Juan Lopez và cộng sự theo các trục: loại chương trình con (function hooking và system call hooking), thời điểm can thiệp (static và dynamic), phương thức xử lý (passive và active), vị trí thực thi (on-device và off-device), yêu cầu quyền root và mô hình chi phí.

Chương này đi sâu vào phân tích công cụ Frida với kiến trúc client-server và các công cụ dòng lệnh (frida-ps, frida-trace, frida-discover, frida-kill). Đồng thời, tác giả trình bày chi tiết về Xposed Framework, các biến thể tương thích theo phiên bản Android (Back-ported Xposed cho Gingerbread 2.3; Xposed Framework gốc của @rovo89 cho Android 4.0 đến 8.0; EdXposed của @meowcat hỗ trợ từ Android 8.0 đến Android 11 thông qua Magisk và Riru). Cơ chế can thiệp tiến trình Zygote thông qua sửa đổi app_process và nạp XposedBridge.jar được giải thích rõ nét, cùng quy trình 5 bước để xây dựng và kích hoạt một Xposed Module.

Chương 3. Xây dựng ứng dụng triển khai thử nghiệm

Chương 3 mô tả quá trình thiết kế và hiện thực hóa một ứng dụng Android đóng vai trò đối tượng thử nghiệm có kiểm soát. Ứng dụng này được xây dựng với đầy đủ các thành phần giao diện đồ họa chuẩn của Android bao gồm: View và ViewGroup (LinearLayout, RelativeLayout, ConstraintLayout), các thành phần điều khiển tương tác như Button, trường nhập dữ liệu EditText, và danh sách cuộn ListView kết nối qua Adapter.

Chương này cũng phân loại các dạng Intent và thuộc tính đi kèm, thiết lập các chức năng mô phỏng hành vi người dùng (nhập dữ liệu, gọi chuyển màn hình Activity, thực hiện thao tác gửi nhận thông tin) nhằm cung cấp môi trường ổn định để các công cụ hooking ở chương kế tiếp tiến hành can thiệp, giám sát và khai thác.

Chương 4. Xây dựng hệ thống giám sát hành vi ứng dụng

Chương 4 là chương thực nghiệm trọng tâm, triển khai hai hệ thống giám sát và phân tích hành vi. Trong phần thực nghiệm với Frida, tác giả áp dụng mã nguồn JavaScript để hook phương thức startActivity(), trích xuất toàn bộ danh sách các lớp đang hoạt động trong tiến trình, và hook sự kiện onClick(). Tiếp đó, tác giả thực hiện kịch bản tấn công thực tế trên ứng dụng Mobile Banking: can thiệp logic trả về để vượt qua cơ chế kiểm tra mã PIN và triển khai thuật toán brute-force tự động dò tìm mã PIN 4 chữ số.

Trong phần xây dựng hệ thống giám sát trên Xposed Framework, chương trình bày mô hình kiến trúc của module, cấu trúc bảng cơ sở dữ liệu logs_info, và danh sách các lớp, phương thức, hàm dựng hệ thống bị can thiệp. Kết quả thực nghiệm được ghi nhận chi tiết qua các kịch bản: phát hiện và cảnh báo hành vi truy cập Clipboard API; phát hiện và đưa ra cảnh báo nguy hiểm khi ứng dụng gọi phương thức sendTextMessage gửi tin nhắn SMS có chứa mật khẩu; kiểm soát Intent gọi liên kết mạng đối chiếu với danh sách đen (URL blacklist); và giám sát các hành vi ngầm kích hoạt mở Camera, đặt báo thức hoặc truy xuất dữ liệu Lịch hệ thống.

Chương 5. Đánh giá và kết luận

Chương 5 tổng kết toàn bộ các kết quả đạt được của đề tài, bao gồm việc làm chủ kỹ thuật hooking trên cả hai phương diện tĩnh và động, xây dựng thành công công cụ hỗ trợ pentest bằng Frida và ứng dụng giám sát thời gian thực cho người dùng cuối bằng Xposed Module. Tác giả thẳng thắn chỉ ra các khó khăn và hạn chế kỹ thuật: rào cản về việc bắt buộc thiết bị phải root để chạy Xposed/Magisk, vấn đề phân mảnh phiên bản Android, sự lỗi thời của một số API Xposed gốc trên các phiên bản hệ điều hành mới, và tác động tiềm ẩn đến hiệu năng thiết bị. Cuối cùng, chương đưa ra các định hướng phát triển nhằm mở rộng danh mục API giám sát và nâng cấp giải pháp thành một sản phẩm an toàn thông tin toàn diện.

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

Khóa luận đã hoàn thành việc nghiên cứu, cài đặt thực nghiệm và kiểm chứng tính khả thi của kỹ thuật hooking trên hệ điều hành Android Red Velvet SDK 30, đạt được các kết quả cụ thể:

1. Kết quả thực nghiệm kiểm thử xâm nhập bằng Frida

  • Khai thác thành công cơ chế xác thực của ứng dụng Mobile Banking thử nghiệm bằng cách can thiệp luồng thực thi trong bộ nhớ, vượt qua màn hình xác thực mã PIN mà không cần nhập đúng mật khẩu.
  • Thực hiện vét cạn thành công mã PIN 4 chữ số thông qua việc lặp gọi hàm kiểm tra trực tiếp tại runtime mà không kích hoạt cơ chế khóa ứng dụng.
  • Hook và ghi nhận thành công các lời gọi phương thức startActivity() và sự kiện onClick(), hỗ trợ chuyên gia lập bản đồ chức năng và liệt kê toàn bộ các lớp (class) đang vận hành trong tiến trình mục tiêu.

2. Kết quả thực nghiệm hệ thống giám sát bằng Xposed Framework

  • Xây dựng thành công module can thiệp sâu vào tầng hệ thống dựa trên nền tảng EdXposed và Magisk trên Android 11.
  • Hiện thực hóa cơ chế giám sát và phản ứng đa dạng đối với các hành vi nguy hiểm tại thời gian thực:
Nhóm hành vi can thiệp API / Thành phần hook Kết quả thực nghiệm và phản ứng hệ thống
Truy cập bộ nhớ tạm Clipboard API Phát hiện ứng dụng đọc ngầm dữ liệu clipboard, hiển thị thông báo tức thời cho người dùng.
Gửi tin nhắn SMS SmsManager.sendTextMessage Trích xuất số điện thoại và nội dung; phát cảnh báo nguy hiểm khi phát hiện nội dung có chứa mật khẩu người dùng.
Kết nối mạng URL Intent duyệt web So khớp URL với danh sách đen; chặn truy cập (Block) hoặc cảnh báo nếu nằm trong blacklist; hiển thị thông báo an toàn nếu URL hợp lệ.
Kích hoạt phần cứng ngầm Intent gọi Camera Bắt sự kiện ứng dụng ngầm khởi động giao diện máy ảnh và đưa ra cảnh báo cho người dùng.
Truy cập lịch & báo thức Intent Calendar / Alarm Phát hiện hành vi tự động thiết lập báo thức hoặc truy xuất lịch hệ thống mà không có thao tác trực tiếp của người dùng.
  • Thiết lập giao diện quản lý nhật ký tập trung dựa trên cơ sở dữ liệu SQLite logs_info, cho phép người dùng cuối tra cứu lại toàn bộ lịch sử các hành vi đã bị can thiệp cùng các tùy chọn kiểm soát: Cho phép (Allow), Chặn (Block), hoặc Cảnh báo (Warning).

3. Đóng góp khoa học và thực tiễn tự nhận định

  • Đề tài đã hệ thống hóa và so sánh toàn diện hai công cụ hooking tiêu biểu trên nền tảng Android (Frida và Xposed), làm rõ ranh giới ứng dụng giữa phân tích động phục vụ kiểm thử xâm nhập và can thiệp tĩnh cấp hệ thống phục vụ giám sát người dùng cuối.
  • Khóa luận đóng vai trò là bước đệm thực nghiệm trong việc ứng dụng kỹ thuật hooking vào bài toán phòng chống thất thoát dữ liệu (DLP) và phân tích mã độc di động tại Việt Nam trên các phiên bản Android hiện đại.

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

Dựa trên phạm vi và các nội dung được nhóm tác giả trình bày trong văn bản, đề tài tồn tại một số khó khăn và hạn chế kỹ thuật sau:

  • Yêu cầu quyền quản trị (Root): Để vận hành Xposed Framework hoặc EdXposed, thiết bị bắt buộc phải được root và cài đặt Magisk. Điều này làm giảm tính tiếp cận đối với người dùng phổ thông, đồng thời có thể gây mất an toàn hệ thống hoặc bị từ chối bởi các ứng dụng thương mại có tích hợp tính năng phát hiện root (Root Detection).
  • Tính tương thích và phân mảnh hệ điều hành: Nghiên cứu tập trung triển khai trên Android Red Velvet SDK 30. Một số phương thức thuộc Xposed Framework API gốc của @rovo89 đã lỗi thời trên các phiên bản Android mới, đòi hỏi phải sử dụng các phiên bản viết lại (như EdXposed) với độ ổn định chưa đạt mức tuyệt đối trên toàn bộ các bản ROM tùy biến.
  • Phạm vi giám sát API: Hệ thống mới chỉ tập trung thử nghiệm trên một nhóm API chọn lọc (SMS, Clipboard, URL, Camera, Calendar), chưa bao quát toàn bộ các API nhạy cảm khác của Android.

Hướng nghiên cứu tiếp được đề xuất:

  • Tiếp tục mở rộng danh mục API hệ thống cần giám sát, bao gồm truy xuất vị trí định vị (GPS), ghi âm (Microphone), quyền đọc danh bạ và truy cập tệp tin trong bộ nhớ ngoài.
  • Tối ưu hóa thuật toán xử lý và giao diện người dùng nhằm giảm thiểu tối đa độ trễ khi can thiệp vào các phương thức hệ thống.
  • Nghiên cứu cơ chế vận hành không đòi hỏi quyền root sâu hoặc tích hợp kỹ thuật ẩn giấu môi trường kiểm thử nhằm nâng cao tính ứng dụng thực tiễn trong cộng đồng.

Giá trị tham khảo

Bản khóa luận mang lại giá trị tham khảo rõ ràng cho các nhóm đối tượng cụ thể:

  • Sinh viên chuyên ngành An toàn thông tin, Mạng máy tính và Kỹ thuật phần mềm: Khóa luận là tài liệu học thuật thực hành chi tiết về cơ chế vận hành của hệ điều hành Android, đặc biệt là cấu trúc tiến trình Zygote, chu trình sống của Activity và cách thức tổ chức các thành phần ứng dụng.
  • Chuyên viên phân tích mã độc và kiểm thử xâm nhập (Pentester): Phần nội dung tại Chương 2 và Chương 4 cung cấp hướng dẫn thực tế về việc thiết lập môi trường Frida, kỹ thuật viết script JavaScript can thiệp bộ nhớ runtime, cũng như quy trình khai thác các lỗ hổng xác thực trên ứng dụng di động.
  • Nhà phát triển module Android: Tài liệu cung cấp quy trình 5 bước hoàn chỉnh để cấu hình, biên dịch và triển khai module trên nền tảng Xposed/EdXposed sử dụng Android SDK hiện đại.

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

1. Khóa luận phân biệt cơ chế can thiệp giữa Frida và Xposed Framework qua những yếu tố kỹ thuật nào?

Frida là công cụ hooking động (Dynamic function call hooking), hoạt động theo mô hình client-server, cho phép tiêm mã JavaScript trực tiếp vào tiến trình ứng dụng đang chạy trong bộ nhớ mà không làm thay đổi tệp nhị phân hay cấu trúc hệ điều hành, phù hợp cho phân tích động và pentest. Ngược lại, Xposed Framework là công cụ hooking tĩnh cấp hệ thống (Static function call hooking), can thiệp trực tiếp vào quá trình khởi tạo tiến trình Zygote thông qua tệp app_process và XposedBridge.jar, đòi hỏi thiết bị phải root và nạp trước khi ứng dụng khởi chạy, phù hợp cho việc giám sát thường trực và thay đổi hành vi toàn diện trên thiết bị.

2. Xposed Framework can thiệp vào thành phần nào trong kiến trúc Android để bắt các API hệ thống?

Xposed can thiệp vào tiến trình Zygote — tiến trình khởi nguyên chịu trách nhiệm nhân bản (fork) để tạo ra mọi tiến trình ứng dụng mới trong hệ thống Android Runtime (ART). Khi thiết bị khởi động, Xposed thay thế tệp thực thi app_process tại thư mục /system/bin/ để nạp tệp XposedBridge.jar vào Java classpath. Cơ chế này giúp Xposed hòa nhập thành một phần của hệ thống, từ đó lắng nghe và can thiệp vào mọi lời gọi API xuất phát từ các ứng dụng con.

3. Trong thử nghiệm khai thác ứng dụng Mobile Banking bằng Frida, nhóm nghiên cứu đã thực hiện các kỹ thuật gì?

Nhóm nghiên cứu đã sử dụng mã script JavaScript tiêm vào tiến trình ứng dụng Mobile Banking để thực hiện hai kỹ thuật: (1) Can thiệp và ghi đè giá trị trả về của hàm kiểm tra mã PIN trong bộ nhớ để vượt qua bước xác thực đăng nhập (PIN bypass); (2) Thực hiện tự động hóa việc vét cạn (brute-force) toàn bộ không gian khóa của mã PIN 4 chữ số trực tiếp tại runtime mà không bị giao diện người dùng giới hạn số lần thử.

4. Hệ thống giám sát xây dựng trên Xposed xử lý những hành vi nhạy cảm nào và cung cấp cơ chế phản ứng gì cho người dùng?

Hệ thống giám sát hook thành công các hành vi: đọc trộm bộ nhớ tạm (Clipboard API), gửi tin nhắn SMS chứa chuỗi ký tự mật khẩu (sendTextMessage), mở các liên kết mạng URL độc hại nằm trong danh sách đen, và các hành vi ngầm kích hoạt mở Camera, đặt báo thức hoặc truy xuất lịch hệ thống. Khi phát hiện các hành vi này, hệ thống cung cấp 3 cơ chế phản ứng thời gian thực cho người dùng lựa chọn: Cho phép thực thi (Allow), Chặn hành vi (Block), hoặc Đưa ra cảnh báo nguy hiểm (Warning), đồng thời ghi lại toàn bộ sự kiện vào bảng cơ sở dữ liệu SQLite logs_info.

5. Khóa luận được triển khai và kiểm thử trên phiên bản Android nào và sử dụng công cụ hỗ trợ nào để chạy Xposed?

Khóa luận được triển khai và kiểm thử trên phiên bản hệ điều hành Android Red Velvet SDK 30 (tương đương Android 11). Do phiên bản Xposed Framework gốc của tác giả @rovo89 chỉ hỗ trợ chính thức đến Android 8.0, nhóm tác giả đã sử dụng phiên bản kế thừa là EdXposed Framework của tác giả @meowcat, kết hợp với công cụ quản lý quyền root Magisk và mô-đun Riru core để vận hành module trên môi trường Android 11.

Kết luận

Khóa luận tốt nghiệp của nhóm tác giả Nguyễn Thị Hồng Phúc và Võ Huỳnh Hữu Sang đã giải quyết bài toán giám sát an toàn thông tin trên nền tảng di động thông qua việc làm chủ và ứng dụng kỹ thuật hooking. Bằng sự kết hợp giữa Frida cho phân tích động chuyên sâu và Xposed Framework cho giám sát thời gian thực cấp hệ thống, đề tài đã chứng minh tính khả thi trong việc phát hiện các hành vi rò rỉ dữ liệu nhạy cảm (SMS, clipboard, URL độc hại) và khai thác các điểm yếu xác thực trên Android 11. Kết quả nghiên cứu là nền tảng kỹ thuật thiết thực phục vụ công tác kiểm thử xâm nhập cũng như định hướng phát triển các giải pháp bảo vệ dữ liệu người dùng cuối trên thiết bị di động trong tương lai.