Bối cảnh và vấn đề nghiên cứu
Trong xu thế phát triển của công nghệ thông tin, điện thoại thông minh (smartphone) đã trở thành công cụ thiết yếu của đại đa số người dùng, đảm nhận nhiều chức năng quan trọng và lưu trữ trực tiếp các dữ liệu cá nhân nhạy cảm như tài khoản ngân hàng, thông tin định danh cá nhân, ví điện tử và thư điện tử. Sự gia tăng nhanh chóng về tính năng và độ phức tạp của hệ điều hành di động cũng làm gia tăng bề mặt tấn công, phát sinh các lỗ hổng bảo mật mà các đối tượng tấn công có thể khai thác nhằm trục lợi hoặc trao đổi dữ liệu trên thị trường chợ đen.
Kỹ thuật kênh truyền phi chính thống (covert channel) được định nghĩa là phương thức giao tiếp cho phép truyền tải thông tin giữa các tiến trình mà không tuân theo hoặc vi phạm chính sách bảo mật hệ thống (system security policy). Kỹ thuật này che giấu thông tin dưới các kênh tài nguyên không được thiết kế cho việc truyền tin, giúp việc trao đổi dữ liệu thoát khỏi sự giám sát của các cơ chế kiểm soát truy cập (access control) thông thường trên hệ điều hành di động. Mặc dù các kỹ thuật covert channel đã được cộng đồng an toàn thông tin quốc tế nghiên cứu rộng rãi, các tài liệu và công trình nghiên cứu về chủ đề này tại Việt Nam vẫn còn rất hạn chế.
Trong phần tổng quan nghiên cứu liên quan, tác giả điểm qua ba công trình tiêu biểu:
- Nghiên cứu của Li và cộng sự về kênh truyền bí mật theo thời gian (covert timing channel) trên giao thức mạng TCP/IP, khai thác độ trễ giữa các gói tin (Inter-Arrival Time - IAT) để ẩn giấu các bit nhị phân.
- Công trình nghiên cứu ứng dụng SnapCatch của Yuanzhu Chen và cộng sự, phát hiện kênh truyền bí mật thông qua việc chuyển đổi thời gian trễ thành biểu diễn ảnh màu hai chiều và sử dụng máy học để phân loại.
- Nghiên cứu ứng dụng độc hại SoundComber của Kehuan Zhang và cộng sự, sử dụng hai ứng dụng tách biệt: một ứng dụng chỉ yêu cầu quyền truy cập micro để thu thập dữ liệu nhạy cảm (không yêu cầu quyền Internet nhằm tránh bị phát hiện), sau đó truyền dữ liệu qua kênh bí mật tới ứng dụng thứ hai có quyền Internet để gửi thông tin ra ngoài.
Xuất phát từ thực tiễn trên, khóa luận xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể được đánh số như sau:
- Nghiên cứu cơ sở lý thuyết về kỹ thuật covert channel, các định nghĩa và thuật ngữ chuyên ngành liên quan.
- Tổng hợp kiến thức từ các tài liệu tham khảo để định hình hướng triển khai mô hình ứng dụng.
- Nghiên cứu kiến trúc nền tảng và môi trường thực thi của hệ điều hành Android, cơ chế khởi chạy ứng dụng của hệ thống.
- Nắm vững công cụ phát triển Android Studio, môi trường Java Development Kit (JDK) và ngôn ngữ lập trình Java.
- Thảo luận và xây dựng ý tưởng, mô hình tổng thể của các cặp ứng dụng khai thác kênh truyền bí mật.
- Triển khai lập trình thực tế các cặp ứng dụng Android thử nghiệm cho từng kỹ thuật covert channel đã nghiên cứu.
- Đánh giá tính khả thi và đo lường kết quả truyền dữ liệu giữa các ứng dụng thử nghiệm, đề xuất biện pháp khắc phục sai số.
- Phân tích cơ chế hoạt động và luồng truyền dữ liệu của các kỹ thuật tấn công để định hình phương án phòng thủ.
- Xây dựng chương trình phân tích và phát hiện các ứng dụng Android sử dụng kỹ thuật covert channel.
- Tổng kết, đánh giá hiệu năng của chương trình phát hiện và đề xuất định hướng hoàn thiện trong tương lai.
Đối tượng nghiên cứu của đề tài là các kỹ thuật giao tiếp phi chính thống (covert channel) và cơ chế phân tích tĩnh mã nguồn trên hệ điều hành Android. Phạm vi nghiên cứu giới hạn trong môi trường hệ điều hành di động Android, tập trung vào việc mô phỏng 4 kỹ thuật truyền tin ngầm cục bộ trên thiết bị và xây dựng công cụ phát hiện dựa trên phân tích tĩnh tệp gói ứng dụng (APK).
Cơ sở lý thuyết và phương pháp
Về cơ sở lý thuyết, khóa luận hệ thống hóa kiến trúc phân lớp của hệ điều hành Android gồm các thành phần cốt lõi:
- Nhân Linux (Linux Kernel): Cung cấp các chức năng quản lý bộ nhớ, phân luồng, mô hình cấp quyền người dùng, biệt lập tiến trình (sandbox) và cô lập tài nguyên giữa các định danh người dùng.
- Hardware Abstraction Layer (HAL): Định nghĩa các giao diện chuẩn để kết nối phần mềm với các mô-đun phần cứng (như camera, bluetooth) thông qua các lệnh gọi API.
- Android Runtime (ART): Môi trường thực thi các tệp Dalvik Executable (DEX), kế thừa Dalvik Virtual Machine từ phiên bản Android 5.0 trở lên. ART hỗ trợ cơ chế biên dịch Ahead-Of-Time (AOT) giúp biên dịch mã máy trước khi chạy để tối ưu hiệu năng và giảm tiêu thụ điện năng, kết hợp cùng cơ chế Just-In-Time (JIT).
- Thư viện C/C++ thuần và Java API Framework: Cung cấp các giao diện lập trình cốt lõi như Activity Manager, Resource Manager, Notification Manager, View System và Content Provider.
- Cơ chế giao tiếp liên tiến trình (IPC): Các tiến trình chạy biệt lập trong từng sandbox riêng biệt trao đổi dữ liệu thông qua Binder, Intent, Services và Content Provider.
Về lý thuyết kênh truyền bí mật, văn bản phân loại covert channel thành hai nhóm chính:
- Storage Channels (Kênh lưu trữ): Tiến trình gửi trực tiếp hoặc gián tiếp ghi dữ liệu vào một vị trí lưu trữ tài nguyên dùng chung, tiến trình nhận đọc lại dữ liệu đó mà không cần cấp quyền chia sẻ trực tiếp.
- Timing Channels (Kênh thời gian): Tiến trình gửi truyền tải tín hiệu thông qua việc biến đổi mức độ sử dụng tài nguyên hệ thống theo thời gian (như độ trễ xử lý gói tin hoặc tần suất truy cập phần cứng).
Về phương pháp nghiên cứu, đề tài kết hợp phương pháp thực nghiệm kỹ thuật và phân tích tĩnh:
- Phương pháp thực nghiệm: Thiết kế và triển khai 4 cặp ứng dụng Proof-of-Concept (PoC) độc lập bằng ngôn ngữ Java trên Android Studio, mô phỏng cơ chế truyền thông tin nhạy cảm qua Clipboard, độ sáng màn hình, âm lượng hệ thống và nhật ký cuộc gọi.
- Phương pháp phân tích mã nguồn tĩnh (Static Analysis): Xây dựng công cụ kiểm tra dựa trên ngôn ngữ Python để quét tệp
AndroidManifest.xml và các tệp mã nguồn Java nhằm tìm kiếm dấu hiệu vi phạm chính sách bảo mật dựa trên các tập luật (rules) định sẵn.
- Nguồn dữ liệu: Dữ liệu văn bản ký tự, chuỗi nhị phân mô phỏng trong thực nghiệm và các trường dữ liệu hệ thống trích xuất từ Android API.
Thiết kế và triển khai
Khóa luận triển khai chi tiết 4 mô hình kênh truyền bí mật và 1 hệ thống phát hiện tĩnh, cụ thể như sau:
-
Kênh truyền sử dụng bộ nhớ tạm (Clipboard):
- Ứng dụng gửi: Tiếp nhận chuỗi ký tự từ trường
EditText, sử dụng đối tượng ClipboardManager kết hợp phương thức ClipData.newPlainText() để đưa dữ liệu vào khay nhớ tạm hệ thống thông qua hàm manager.setPrimaryClip(clipData).
- Ứng dụng nhận: Khởi tạo
ClipboardManager, sử dụng manager.getPrimaryClip().getItemAt(0) để trích xuất dữ liệu dạng văn bản thuần và hiển thị lên giao diện qua TextView.
-
Kênh truyền sử dụng độ sáng màn hình (Screen Brightness):
- Giá trị độ sáng màn hình trên Android nằm trong dải số nguyên từ 0 đến 255. Do bảng mã ASCII chỉ chạy từ 0 đến 127, dữ liệu ký tự được ép kiểu trực tiếp sang số nguyên (
(int) chr).
- Ứng dụng gửi: Yêu cầu quyền
android.permission.WRITE_SETTINGS, gọi phương thức Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, value) để thay đổi độ sáng màn hình tương ứng với mã số của từng ký tự.
- Ứng dụng nhận: Mở rộng lớp
ContentObserver để lắng nghe sự kiện onChange(), đọc giá trị độ sáng vừa cập nhật bằng Settings.System.getInt(..., Settings.System.SCREEN_BRIGHTNESS, 0), sau đó ép kiểu ngược lại từ số nguyên sang ký tự ((char) getscreen) để tái cấu trúc văn bản ban đầu.
-
Kênh truyền sử dụng âm lượng hệ thống (Audio Volume):
- Do dải âm lượng hệ thống của Android chỉ nằm trong khoảng từ 0 đến 15, tác giả không thể truyền trực tiếp giá trị số nguyên của bảng mã ASCII. Giải pháp kỹ thuật được đưa ra là chuyển đổi từng ký tự sang dạng chuỗi nhị phân 7 bit.
- Ứng dụng gửi: Duyệt qua từng bit (0 hoặc 1), gọi hàm
audioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, value, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE). Để giải quyết hiện tượng mất dữ liệu khi gặp các bit giống nhau liên tiếp (khiến hệ thống không kích hoạt lại sự kiện thay đổi giá trị), ứng dụng gửi được thiết kế để tự động thay đổi âm lượng sang một giá trị trung gian đệm (khác 0 và 1) sau mỗi bit truyền đi.
- Ứng dụng nhận: Lắng nghe sự kiện
onChange() của ContentObserver trên kênh STREAM_SYSTEM. Ứng dụng tích hợp bộ lọc chỉ giữ lại các mức âm lượng bằng 0 hoặc 1 (bỏ qua giá trị đệm), thu thập đủ chuỗi 7 bit thì thực hiện giải mã thành ký tự hoàn chỉnh thông qua hàm Integer.parseInt(tmp, 2).
-
Kênh truyền sử dụng lịch sử cuộc gọi (Phone Call Log):
- Ứng dụng gửi: Yêu cầu quyền
android.permission.WRITE_CALL_LOG. Sử dụng đối tượng ContentValues để chèn bản ghi vào bảng cuộc gọi hệ thống qua CallLog.Calls. Dữ liệu bí mật được cố tình ghi vào trường TRANSCRIPTION đi kèm thuộc tính loại cuộc gọi đi (OUTGOING_TYPE), đồng thời gán số điện thoại mục tiêu cụ thể. Dữ liệu trong trường TRANSCRIPTION hoàn toàn không hiển thị trên giao diện nhật ký cuộc gọi mặc định của người dùng.
- Ứng dụng nhận: Yêu cầu quyền
android.permission.READ_CALL_LOG. Sử dụng ContentResolver truy vấn nhật ký cuộc gọi, duyệt con trỏ while (cs.moveToNext()) để lọc đúng bản ghi khớp với số điện thoại đích và trích xuất nội dung bí mật từ trường TRANSCRIPTION.
| Kỹ thuật Covert Channel |
Quyền hệ thống yêu cầu (Permissions) |
Dải giá trị khai thác |
Phương thức mã hóa dữ liệu |
Đặc điểm nhận diện & Rủi ro |
| Clipboard |
Không yêu cầu quyền đặc biệt |
Vùng đệm Clipboard hệ thống |
Văn bản thuần (Plaintext) |
Dễ triển khai nhưng dễ bị lộ nếu người dùng thực hiện thao tác Paste ngẫu nhiên. |
| Độ sáng màn hình |
android.permission.WRITE_SETTINGS |
Khoảng giá trị [0, 255] |
Ép kiểu ASCII trực tiếp sang số nguyên |
Truyền trực tiếp theo từng ký tự, kích hoạt sự kiện onChange() qua ContentObserver. |
| Âm lượng hệ thống |
Không yêu cầu quyền nhạy cảm cao |
Khoảng giá trị [0, 15] |
Mã hóa nhị phân 7 bit/ký tự |
Phải chèn giá trị đệm để tránh nuốt bit liên tiếp; tốc độ truyền dữ liệu chậm. |
| Lịch sử cuộc gọi |
WRITE_CALL_LOG, READ_CALL_LOG |
Trường TRANSCRIPTION của CallLog |
Văn bản thuần (Plaintext) |
Ẩn hoàn toàn trên giao diện người dùng; có thể giả mạo số quen thuộc mà không phát sinh cuộc gọi thật. |
- Thiết kế chương trình phát hiện xâm nhập:
- Được viết bằng ngôn ngữ Python, áp dụng kỹ thuật phân tích tĩnh mã nguồn giải nén từ tệp APK.
- Luồng hoạt động: Đọc và phân tích tệp cấu hình
AndroidManifest.xml để nhận diện các quyền hệ thống được yêu cầu (WRITE_SETTINGS, READ_CALL_LOG, WRITE_CALL_LOG...). Sau đó duyệt qua toàn bộ các tệp .java đã decompile để gọi các hàm kiểm tra chuyên biệt: hàm phát hiện truy cập CallLog.Calls, hàm phát hiện điều khiển độ sáng màn hình (SCREEN_BRIGHTNESS), hàm kiểm tra thay đổi âm lượng (AudioManager), và hàm quét thao tác trên ClipboardManager.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 trình bày tính cấp thiết của đề tài bảo mật thông tin trên thiết bị di động trong kỷ nguyên số hóa. Tác giả phân tích khái niệm kênh truyền bí mật (covert channel), thực trạng nghiên cứu còn mới mẻ tại Việt Nam, và lược khảo ba công trình tiêu biểu của Li và cộng sự (kênh thời gian TCP/IP), Yuanzhu Chen (công cụ SnapCatch ứng dụng xử lý ảnh và máy học), và Kehuan Zhang (phần mềm độc hại SoundComber khai thác micro). Từ đó, chương xác định mục tiêu và 10 nhiệm vụ nghiên cứu cụ thể của khóa luận.
Chương 2: Cơ sở lý thuyết
Chương 2 mô tả chi tiết nền tảng hệ điều hành Android, phân tích các tầng kiến trúc cốt lõi từ nhân Linux, tầng trừu tượng hóa phần cứng (HAL), máy ảo Android Runtime (ART) với cơ chế biên dịch AOT/JIT, bộ thư viện C/C++ thuần cho đến khung ứng dụng Java API Framework. Chương cũng làm rõ cơ chế bảo vệ phân quyền, mô hình sandbox và các phương thức giao tiếp liên tiến trình (IPC) bao gồm Binder, Intent, Services và Content Provider. Phần cuối chương dành để định nghĩa và phân loại kênh truyền bí mật thành hai dạng: Kênh lưu trữ (Storage Channels) và Kênh thời gian (Timing Channels).
Chương 3: Triển khai một số kênh giao tiếp phi chính thống trên Android
Chương 3 trình bày toàn bộ quá trình thiết kế, sơ đồ hoạt động, phân tích cấu trúc mã nguồn và đánh giá ưu - nhược điểm của 4 kỹ thuật covert channel trên môi trường Android thực tế:
- Kỹ thuật sử dụng Clipboard Manager: Cơ chế lưu trữ văn bản thuần và truyền tin không qua giải mã.
- Kỹ thuật điều khiển độ sáng màn hình: Tận dụng dải giá trị [0, 255] của
Settings.System.SCREEN_BRIGHTNESS để ánh xạ mã ASCII từ 0 đến 127.
- Kỹ thuật điều biến âm lượng hệ thống: Áp dụng cơ chế mã hóa nhị phân 7 bit trên thang âm lượng [0, 15] của
AudioManager.STREAM_SYSTEM và kỹ thuật chèn giá trị đệm chống mất bit.
- Kỹ thuật lợi dụng lịch sử cuộc gọi: Cơ chế ẩn giấu thông tin văn bản thuần trong trường
TRANSCRIPTION của CallLog.Calls nhằm đánh lừa người dùng.
Chương 4: Phát hiện giao tiếp phi chính thống trên Android
Chương 4 giới thiệu chương trình phát hiện mã độc covert channel viết bằng ngôn ngữ Python. Tác giả phân tích cấu trúc luồng xử lý của chương trình dựa trên phương pháp phân tích tĩnh mã nguồn: đọc tệp AndroidManifest.xml để trích xuất quyền và duyệt các tệp .java nhằm xác định các hàm kiểm tra đặc thù (detect call log, detect screen, detect audio). Chương kết thúc bằng phần đánh giá sơ bộ về hiệu quả nhận diện các mẫu mã nguồn nguy hiểm.
Chương 5: Thử nghiệm
Chương 5 ghi lại kết quả thực nghiệm của các cặp ứng dụng tấn công và chương trình phát hiện:
- Thử nghiệm gửi và nhận dữ liệu qua Clipboard thành công trên giao diện đồ họa.
- Thử nghiệm gửi và nhận chuỗi ký tự qua việc thay đổi độ sáng màn hình.
- Thử nghiệm ghi và đọc dữ liệu bí mật thông qua trường
TRANSCRIPTION của Phone Call Log.
- Thử nghiệm truyền dữ liệu nhị phân từng bit qua việc tăng giảm âm lượng hệ thống.
- Thử nghiệm chương trình phát hiện trên các ứng dụng mẫu và ghi nhận bảng số liệu kiểm tra mức độ phát hiện kênh truyền bí mật đối với từng kỹ thuật.
Chương 6: Kết luận và hướng phát triển
Chương 6 tổng kết các kết quả đạt được của khóa luận trong việc mô phỏng thành công các hình thức tấn công covert channel trên hệ điều hành Android và xây dựng chương trình phát hiện tĩnh. Đồng thời, nhóm tác giả chỉ ra các điểm tồn tại về mặt thời gian xử lý và đề xuất định hướng phát triển trong tương lai nhằm hoàn thiện độ chính xác của cơ chế cảnh báo.
Kết quả và đóng góp
Về mặt thực nghiệm kỹ thuật, khóa luận đã đạt được các kết quả cụ thể:
- Hiện thực hóa thành công 4 cặp ứng dụng Android độc lập mô phỏng chính xác các kỹ thuật giao tiếp phi chính thống: Clipboard, độ sáng màn hình, âm lượng hệ thống và lịch sử cuộc gọi.
- Giải quyết bài toán hạn chế dải giá trị âm lượng [0, 15] bằng giải pháp phân tách nhị phân 7 bit kết hợp kỹ thuật chèn mức âm lượng đệm, đảm bảo các bit trùng nhau (
00 hoặc 11) không bị nuốt khi hệ thống kích hoạt sự kiện onChange().
- Phát hiện và khai thác thành công trường dữ liệu ẩn
TRANSCRIPTION trong bảng CallLog.Calls, cho phép giấu tin văn bản mà không hiển thị nội dung ra màn hình nhật ký cuộc gọi mặc định của người dùng và không cần phát sinh cuộc gọi thực tế qua nhà mạng.
- Xây dựng hoàn chỉnh một công cụ phát hiện tĩnh bằng ngôn ngữ Python, có khả năng bóc tách tệp APK, phân tích quyền trong
AndroidManifest.xml và quét các lệnh gọi API nhạy cảm trong mã nguồn Java để đưa ra cảnh báo nguy cơ.
Về mặt đóng góp học thuật và thực tiễn, đề tài cung cấp một nghiên cứu thực nghiệm có hệ thống về covert channel trên nền tảng di động tại Việt Nam, mang lại góc nhìn trực quan về các nguy cơ rò rỉ dữ liệu tiềm ẩn nằm ngoài phạm vi giám sát của các cơ chế kiểm soát truy cập truyền thống.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận tự chỉ ra một số hạn chế kỹ thuật trong quá trình thực nghiệm:
- Tốc độ truyền tin của kỹ thuật covert channel qua âm lượng còn rất chậm. Do mỗi ký tự phải chia thành 7 bit nhị phân độc lập kèm theo các bước chuyển đổi mức âm lượng đệm để kích hoạt sự kiện, việc truyền tải một chuỗi văn bản dài mất nhiều thời gian xử lý.
- Độ ổn định của kênh truyền Clipboard phụ thuộc vào hành vi người dùng; nếu người dùng vô tình thực hiện thao tác chép/dán văn bản khác, dữ liệu bí mật đang truyền sẽ bị gián đoạn hoặc bị phát hiện.
- Chương trình phát hiện mới dừng lại ở mức phân tích tĩnh (Static Analysis) dựa trên luật kiểm tra quyền và lời gọi API trong mã nguồn decompiled, chưa tích hợp cơ chế phân tích động (Dynamic Analysis) để theo dõi hành vi ứng dụng trong thời gian thực.
Hướng nghiên cứu tiếp theo được tác giả đề xuất là tối ưu hóa thuật toán truyền tín hiệu âm lượng để rút ngắn thời gian gửi tin, đồng thời mở rộng và nâng cấp chương trình phát hiện nhằm tăng cường độ chính xác, hạn chế cảnh báo sai đối với các ứng dụng hợp lệ.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo thực nghiệm giá trị đối với sinh viên chuyên ngành An toàn thông tin, Mạng máy tính và Truyền thông, cũng như các kỹ sư phát triển phần mềm di động Android:
- Lập trình viên và chuyên gia an toàn thông tin: Có thể tham khảo trực tiếp cấu trúc mã nguồn tại Chương 3 để hiểu rõ cách thức mã độc lợi dụng các API hệ thống (
ClipboardManager, Settings.System, AudioManager, CallLog.Calls) để vượt qua cơ chế cách ly tiến trình (sandbox) của Android.
- Chuyên viên phân tích mã độc di động (Malware Analyst): Có thể tham khảo mô hình phân tích tĩnh và các quy tắc nhận diện tại Chương 4 để xây dựng các tập luật phát hiện ứng dụng độc hại trong các công cụ quét mã tự động.
Câu hỏi thường gặp
1. Tại sao kỹ thuật covert channel qua âm lượng phải chuyển dữ liệu sang nhị phân 7 bit thay vì truyền trực tiếp số nguyên như độ sáng màn hình?
Dải âm lượng hệ thống của Android (STREAM_SYSTEM) chỉ nằm trong khoảng từ 0 đến 15, không đủ độ rộng để chứa các giá trị số nguyên của bảng mã ASCII (từ 0 đến 127). Ngược lại, độ sáng màn hình (SCREEN_BRIGHTNESS) có dải giá trị từ 0 đến 255, bao trọn toàn bộ bảng mã ASCII nên có thể ép kiểu trực tiếp từ ký tự sang số nguyên mà không cần thông qua bước giải mã nhị phân.
2. Tác giả giải quyết hiện tượng mất tín hiệu khi truyền hai bit nhị phân liên tiếp giống nhau qua kênh âm lượng bằng cách nào?
Sự kiện onChange() của ContentObserver trên ứng dụng nhận chỉ được kích hoạt khi giá trị âm lượng có sự thay đổi. Nếu hai bit liên tiếp mang cùng giá trị (ví dụ 11 hoặc 00), âm lượng giữ nguyên sẽ khiến ứng dụng nhận không thể bắt được bit thứ hai. Tác giả đã giải quyết bằng cách: sau mỗi lần thiết lập mức âm lượng cho từng bit (0 hoặc 1), ứng dụng gửi sẽ tự động nâng âm lượng lên một giá trị đệm khác 0 và 1, giúp ứng dụng nhận nhận biết được từng bit riêng biệt và không bị nuốt tín hiệu.
3. Vì sao trường TRANSCRIPTION trong Phone Call Log được lựa chọn để ẩn giấu thông tin thay vì các trường khác?
Mặc dù bảng CallLog.Calls có nhiều trường có thể ghi dữ liệu như Number, Date, Duration, nhóm tác giả lựa chọn trường TRANSCRIPTION vì trường này không được hiển thị trên giao diện người dùng mặc định khi mở ứng dụng nhật ký cuộc gọi. Do đó, ngay cả khi người dùng kiểm tra danh sách cuộc gọi, họ cũng không nhận ra sự xuất hiện của thông điệp bí mật.
4. Chương trình phát hiện covert channel của nhóm tác giả hoạt động dựa trên cơ chế nào và dùng ngôn ngữ gì?
Chương trình được xây dựng bằng ngôn ngữ Python, áp dụng phương pháp phân tích tĩnh mã nguồn từ tệp APK giải nén. Chương trình quét tệp AndroidManifest.xml để nhận diện các quyền hệ thống nhạy cảm (WRITE_SETTINGS, WRITE_CALL_LOG, READ_CALL_LOG), đồng thời duyệt toàn bộ các tệp mã nguồn Java để kiểm tra sự tồn tại của các hàm và lệnh gọi API đặc trưng liên quan đến Clipboard, độ sáng màn hình, âm lượng và nhật ký cuộc gọi.
Kết luận
Khóa luận của sinh viên Nguyễn Chí Đức và Nguyễn Quốc Bảo đã nghiên cứu và hiện thực hóa thành công 4 kỹ thuật giao tiếp phi chính thống (covert channel) trên hệ điều hành Android, chứng minh nguy cơ rò rỉ dữ liệu nhạy cảm thông qua các thành phần hệ thống quen thuộc như Clipboard, độ sáng màn hình, âm lượng và lịch sử cuộc gọi. Song song với việc phân tích cơ chế tấn công, công trình đã xây dựng một công cụ phát hiện tĩnh bằng Python hỗ trợ cảnh báo các ứng dụng có dấu hiệu khai thác kênh truyền bí mật. Đây là tài liệu tham khảo mang tính thực nghiệm cao, đóng góp cơ sở dữ liệu hữu ích cho công tác đào tạo và nghiên cứu an toàn thông tin trên nền tảng di động.