Bối cảnh và vấn đề nghiên cứu
Sự xuất hiện của các thiết bị di động thông minh từ năm 2007, đánh dấu bởi việc Apple ra mắt chiếc iPhone đầu tiên và Google công bố hệ điều hành Android phiên bản thử nghiệm 1.0, đã tạo nên bước ngoặt lớn trong ngành công nghệ thông tin. Hệ sinh thái Android với mã nguồn mở nhanh chóng được nhiều nhà sản xuất lớn như Samsung, Oppo, Xiaomi ứng dụng, dẫn đến sự gia tăng nhanh chóng về số lượng ứng dụng trên cửa hàng Google Play. Tuy nhiên, sự phát triển này cũng kéo theo nguy cơ mất an toàn thông tin nghiêm trọng. Dẫn liệu từ báo cáo của hãng bảo mật Kaspersky cho thấy trong năm 2020 đã ghi nhận 156.710 ứng dụng mã độc, tăng hơn 224% so với năm 2019. Các ứng dụng độc hại này chủ yếu tập trung đánh cắp dữ liệu ngân hàng điện tử, mã hóa dữ liệu tống tiền hoặc lợi dụng đại dịch Covid-19 để lừa đảo người dùng.
Trong quy trình phát triển phần mềm hiện đại, kiểm thử xâm nhập đóng vai trò then chốt nhằm phát hiện sớm các lỗ hổng trước khi ứng dụng được phát hành. Mặc dù kiểm thử xâm nhập ứng dụng web đã phát triển hoàn thiện với nhiều tiêu chuẩn quốc tế, lĩnh vực kiểm thử xâm nhập trên hệ điều hành Android vẫn tồn tại nhiều hạn chế thực tiễn:
- Các quy trình kiểm thử hiện hành còn mang nặng tính lý thuyết lập trình an toàn, chưa hướng dẫn chi tiết phương pháp tấn công mô phỏng hoặc có sự trùng lặp giữa các cấp độ nguy cơ.
- Các khóa học và chứng chỉ quốc tế phổ biến chưa theo kịp sự phát triển của hệ điều hành Android, sử dụng công cụ cũ và thiếu môi trường thực hành tái hiện các lỗ hổng đương đại.
- Các công cụ rà quét tự động phổ biến hiện nay chỉ dừng lại ở mức thông báo nguy cơ tiềm ẩn mà không hỗ trợ cơ chế khai thác tự động để kiểm chứng lỗ hổng, gây tốn thời gian cho chuyên viên an ninh mạng.
Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định theo 3 nội dung chính:
- Nghiên cứu, đánh giá các quy trình hiện hành nhằm đề xuất quy trình kiểm thử xâm nhập ứng dụng Android cải tiến, có tính thực tiễn cao và bổ sung danh mục công cụ hỗ trợ tương ứng cho từng đề mục.
- Xây dựng công cụ kiểm thử tự động hỗ trợ rà quét và khai thác lỗ hổng cấu hình cơ sở dữ liệu thời gian thực Firebase trong ứng dụng Android.
- Thiết kế và triển khai ứng dụng thực hành cục bộ (lab) nhằm mô phỏng các lỗ hổng an toàn thông tin phổ biến, hỗ trợ người học theo dõi tiến độ và kiểm chứng hiệu quả của công cụ kiểm thử.
Đối tượng nghiên cứu của đồ án là quy trình kiểm thử xâm nhập, các phương thức tấn công khai thác lỗ hổng trên ứng dụng Android, các công cụ kiểm thử mã nguồn mở và cơ chế kiểm soát an toàn của hệ điều hành Android. Phạm vi nghiên cứu tập trung vào các ứng dụng phân phối dưới định dạng tệp tin APK trên nền tảng Android, dựa trên các tài liệu, khóa học và công cụ an ninh mạng được khảo sát và ghi nhận tính đến thời điểm tháng 12 năm 2021.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết của đề tài dựa trên định nghĩa chuẩn về kiểm thử xâm nhập: phương thức đánh giá mức độ an toàn của hệ thống công nghệ thông tin thông qua việc mô phỏng các cuộc tấn công thực tế trong một khung thời gian quy định trước (thường từ vài tuần đến một tháng). Nghiên cứu xác lập ba khái niệm nền tảng trong an toàn thông tin:
- Lỗ hổng (vulnerabilities): Điểm yếu trong phần mềm, phần cứng hoặc cấu hình cho phép đối tượng tấn công xâm nhập hệ thống.
- Khai thác (exploits): Hành vi tận dụng lỗ hổng, lỗi phần mềm hoặc dữ liệu bất thường để thực hiện các hành động không mong muốn như leo thang đặc quyền, đánh cắp thông tin hoặc gây từ chối dịch vụ.
- Trọng tải (payloads): Phần dữ liệu đặc thù được truyền đi để kích hoạt và khai thác thành công lỗ hổng bảo mật.
Về tiêu chuẩn nghiệp vụ, nghiên cứu tham chiếu bộ hướng dẫn kiểm thử bảo mật di động MSTG (Mobile Security Testing Guide) do tổ chức OWASP (Open Web Application Security Project) ban hành, bao gồm 8 nhóm kiểm soát chính: kiến trúc (ARCH), lưu trữ dữ liệu (STORAGE), mật mã (CRYPTO), xác thực và phiên (AUTH), mạng (NETWORK), tương tác nền tảng (PLATFORM), chất lượng mã nguồn (CODE) và khả năng phục hồi/tự vệ (RESILIENCE). Ngoài ra, đề tài liên hệ đến tiêu chuẩn bảo mật dữ liệu thẻ thanh toán PCI-DSS và tiêu chuẩn quản lý khóa NIST SP 800-57.
Phương pháp nghiên cứu kết hợp giữa phân tích lý thuyết, đối sánh định lượng và thực nghiệm kỹ thuật:
- Phương pháp phân tích và khảo sát hiện trạng: Phân tích 2 bộ quy trình kiểm thử (OWASP MSTG và quy trình của công ty chuyên sâu Oversecured); khảo sát và chấm điểm định lượng 3 chương trình đào tạo chứng chỉ quốc tế (CEH v11 của EC-Council, MASPT v2 của eLearnSecurity, CMWAPT của Infosec Institute) cùng hơn 10 khóa học trực tuyến khác trên thang điểm 7 tiêu chí; khảo sát, phân loại 11 công cụ kiểm thử an ninh ứng dụng di động.
- Phương pháp thực nghiệm và phát triển kỹ thuật: Tinh gọn và thiết lập bộ quy trình kiểm thử chuẩn hóa; lập trình công cụ tự động hóa rà quét và khai thác Firebase Database; lập trình ứng dụng Android cục bộ ("PTIT pentest lab") để kiểm thử thực nghiệm các kịch bản tấn công dịch ngược và khai thác dữ liệu.
Nguồn dữ liệu sử dụng trong đồ án bao gồm tài liệu kỹ thuật của OWASP MSTG, cơ sở dữ liệu lỗ hổng của Oversecured, tài liệu các khóa học CEH, MASPT, CMWAPT, số liệu thống kê an ninh mạng năm 2020 từ Kaspersky, các báo cáo tiền thưởng lỗ hổng bảo mật (Bug Bounty) thực tế từ nền tảng HackerOne (điển hình là lỗ hổng ghi nhật ký của ứng dụng Shopify được trao thưởng 2.000 USD, lỗi Webview của Twitter Lite, lỗi Service của IRCCloud), cùng kết quả đo kiểm trực tiếp trên các công cụ như MobSF, Apktool, Burp Suite, Objection và Frida.
Thiết kế và triển khai
Nhằm giải quyết các khoảng trống kỹ thuật được phát hiện trong quá trình khảo sát, tác giả đã tiến hành thiết kế và phát triển hai thành phần kỹ thuật phục vụ trực tiếp cho kiểm thử xâm nhập ứng dụng Android.
Công cụ kiểm thử tự động Firebase Scan
Công cụ Firebase Scan được thiết kế để giải quyết hạn chế của công cụ mã nguồn mở phổ biến MobSF (vốn chỉ có khả năng rà quét phát hiện cấu hình cho phép đọc công khai nhưng không hỗ trợ trích xuất cơ sở dữ liệu hay kiểm tra quyền ghi).
- Yêu cầu chức năng: Tự động hóa tiếp nhận tệp tin mã nguồn APK hoặc đường dẫn cơ sở dữ liệu Firebase Realtime Database; phân tích các chuỗi tài nguyên chuỗi (
strings.xml); thực hiện kiểm tra quyền đọc (read) và quyền ghi (write); trích xuất toàn bộ dữ liệu cấu trúc JSON nếu cơ sở dữ liệu mở quyền đọc; tự động tạo dữ liệu mẫu để thử nghiệm ghi dữ liệu nếu mở quyền ghi.
- Quy trình xử lý: Sau khi nhận dữ liệu đầu vào từ người dùng hoặc qua cơ chế dịch ngược APK, công cụ tiến hành gửi các yêu cầu HTTP tới điểm cuối Firebase tương ứng kèm theo phần mở rộng
.json. Kết quả phản hồi được phân tích để xác định mức độ bảo mật của cấu hình và tương tác trực tiếp với người dùng tại giao diện dòng lệnh.
| Tiêu chí so sánh |
Công cụ MobSF |
Công cụ Firebase Scan |
| Phát hiện đường dẫn Firebase trong ứng dụng |
Có hỗ trợ |
Có hỗ trợ |
| Kiểm tra quyền đọc dữ liệu (Read) |
Có hỗ trợ |
Có hỗ trợ |
| Kiểm tra quyền ghi dữ liệu (Write) |
Không hỗ trợ |
Có hỗ trợ |
| Tự động trích xuất nội dung cơ sở dữ liệu |
Không hỗ trợ |
Có hỗ trợ |
| Phương thức tương tác khai thác |
Tĩnh/Báo cáo |
Tương tác trực tiếp qua dòng lệnh |
Ứng dụng thực hành PTIT Pentest Lab
Ứng dụng PTIT Pentest Lab được xây dựng dưới dạng một ứng dụng di động Android nguyên bản, đóng vai trò môi trường giả lập cục bộ an toàn để luyện tập các kỹ thuật tấn công và xác minh tính hiệu quả của công cụ kiểm thử.
- Thiết kế hệ thống: Gồm màn hình xác thực đăng nhập, màn hình theo dõi và quản lý tiến độ hoàn thành bài tập, menu phân loại các bài lab theo từng nhóm lỗ hổng thực tế. Mỗi bài tập hiển thị đầy đủ thông tin về cơ chế phát sinh lỗi, đánh giá mức độ rủi ro, hậu quả tiềm tàng, mã khai thác mẫu, phương án vá lỗi và điều kiện cờ (flag) để ghi nhận hoàn thành.
- Kịch bản triển khai thử nghiệm: Tác giả triển khai bài thực hành dịch ngược số 1 (Reverse Engineering Lab 1). Quy trình kiểm thử thực tế được thực hiện bằng cách dùng công cụ Apktool để giải nén tệp tin APK của ứng dụng lab, phân tích mã nguồn trung gian (Smali) và các tệp cấu hình tài nguyên để tìm kiếm chuỗi thông tin đăng nhập của tài khoản quản trị viên (admin) bị mã hóa cứng trong mã nguồn. Sau khi trích xuất thành công tài khoản và đăng nhập vào ứng dụng, hệ thống tự động xác nhận bài tập hoàn thành và cập nhật trạng thái trên thanh tiến độ.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 hệ thống hóa các khái niệm căn bản về kiểm thử xâm nhập trên nền tảng Android, đồng thời thực hiện khảo sát toàn diện hiện trạng ba trụ cột: quy trình, đào tạo và công cụ.
Tác giả tiến hành so sánh đối đầu giữa hai quy trình kiểm thử phổ biến: quy trình của tổ chức OWASP và quy trình của công ty Oversecured. Quy trình OWASP MSTG được đánh giá cao nhờ cấu trúc phân nhóm khoa học, bao quát toàn diện các khía cạnh an toàn thông tin, tuy nhiên lại tồn tại điểm hạn chế là nặng về hướng dẫn lập trình an toàn, thiếu tính thực chiến tấn công và chứa một số tiêu chí không thực tế (ví dụ: mục MSTG-STORAGE-9 yêu cầu che màn hình đa nhiệm chỉ phù hợp với tiêu chuẩn PCI; mục MSTG-PLATFORM-5 hướng dẫn kiểm thử XSS trên Webview nhưng không nêu rõ payload chuyên biệt cho Android). Ngược lại, quy trình của Oversecured tập trung sâu vào các lỗ hổng lập trình cụ thể nhưng thiếu hệ thống mã định danh chuẩn, danh mục kiểm thử bị phân mảnh theo mức độ nguy hiểm dẫn đến trùng lặp nhiều nội dung và bỏ sót các yêu cầu kiểm thử tổng thể.
Khảo sát hệ thống đào tạo chứng chỉ quốc tế được lượng hóa qua việc đánh giá 3 chương trình tiêu biểu (CEH v11, MASPT v2, CMWAPT) cùng hơn 10 khóa học trực tuyến khác theo 7 tiêu chí trên thang điểm từ 1 đến 5:
| Tiêu chí đánh giá (Thang điểm 1 - 5) |
CEH |
MASPT |
CMWAPT |
| 1. Nội dung bao gồm đầy đủ kiến thức cơ bản |
3 |
4 |
4 |
| 2. Giải thích kỹ các kiến thức |
5 |
3 |
2 |
| 3. Có các ví dụ thực tế |
1 |
3 |
1 |
| 4. Đưa ra các quy trình kiểm thử trong thực tế |
1 |
1 |
1 |
| 5. Hướng dẫn thực hiện kiểm thử xâm nhập |
1 |
1 |
1 |
| 6. Giới thiệu các công cụ kiểm thử |
2 |
3 |
4 |
| 7. Các bài lab tái hiện những lỗ hổng còn xuất hiện trong thực tế |
1 |
3 |
1 |
| Tổng điểm đánh giá |
14 |
18 |
14 |
Kết quả khảo sát công cụ ghi nhận 11 phần mềm thuộc 4 nhóm công năng chính: hỗ trợ kết nối (ADB, Brida), dịch ngược mã nguồn (Bytecode Viewer, JADX, Apktool, Frida), rà quét lỗ hổng tự động (MobSF, Mariana Trench, Drozer, Qark) và chặn bắt gói tin mạng (Burp Suite). Trong đó, một số công cụ như Drozer, Qark hay Bytecode Viewer đã suy giảm mức độ sử dụng do sự xuất hiện của các giải pháp thay thế hiệu quả hơn như MobSF và JADX. Từ các hạn chế được chỉ ra, chương 1 xác lập 3 hướng đi cốt lõi: hoàn thiện quy trình kiểm thử mới, xây dựng công cụ quét Firebase và phát triển bộ lab thực hành.
Chương 2: Kiểm thử ứng dụng Android
Chương 2 trình bày chi tiết quy trình kiểm thử xâm nhập ứng dụng Android được tác giả đề xuất dựa trên việc kế thừa, sàng lọc và phát triển từ bộ khung OWASP MSTG. Tác giả thực hiện loại bỏ các tiêu chí lỗi thời không còn giá trị thực tiễn (như kiểm tra hàm addJavascriptInterface trên Android 4.1 trở xuống hay lớp SecureRandom trên Android 4.2 trở xuống), gộp các đề mục trùng lặp và bổ sung các hạng mục kiểm thử mới phát sinh theo công nghệ hiện đại.
Quy trình mới được cấu trúc thành các nhóm nội dung nghiệp vụ:
- Lưu trữ dữ liệu và quyền riêng tư (STORAGE-1 đến STORAGE-8): Cải tiến các mục kiểm tra lưu trữ dữ liệu nhạy cảm không cần thiết (STORAGE-1, gộp MSTG-STORAGE-3 và 4), lưu trữ tại bộ nhớ ngoài (STORAGE-2), lộ dữ liệu qua bộ nhớ đệm (STORAGE-3), giao diện người dùng (STORAGE-4), nhật ký hệ thống (STORAGE-5). Tác giả phân tích trường hợp lỗ hổng thực tế của ứng dụng Shopify ghi thông tin nhạy cảm vào nhật ký hệ thống và được trao thưởng 2.000 USD tiền thưởng trên HackerOne. Đề mục mới STORAGE-8 được bổ sung nhằm đánh giá cấu hình mất an toàn của cơ sở dữ liệu thời gian thực Firebase.
- Thuật toán mã hóa (CRYPTO-1 đến CRYPTO-4): Tập trung kiểm thử việc mã hóa cứng khóa bí mật trong mã nguồn, sử dụng chế độ mã hóa không an toàn (ECB), dùng chung khóa mã hóa cho nhiều mục đích và sử dụng bộ sinh số ngẫu nhiên yếu.
- Xác thực và quản lý phiên (AUTH-1 đến AUTH-10): Kiểm tra các lỗi thực thi xác thực tại máy khách thay vì máy chủ từ xa, mã định danh phiên không ngẫu nhiên, cấu trúc token JWT không an toàn, phiên làm việc không bị hủy khi đăng xuất, thiếu cơ chế giới hạn số lần đăng nhập sai và thiếu xác thực đa yếu tố (2FA).
- Giao thức kết nối (NETWORK-1 đến NETWORK-6): Kiểm tra kênh truyền dữ liệu rõ (HTTP), cấu hình chứng chỉ TLS/SSL thiếu an toàn, quy trình xác minh chứng chỉ X.509 và kỹ thuật ghim chứng chỉ số (SSL Pinning). Tác giả cung cấp kịch bản vượt qua cơ chế SSL Pinning bằng cách phối hợp công cụ Burp Suite và Objection.
- Tương tác nền tảng (PLATFORM-1 đến PLATFORM-13): Tách biệt rõ ràng các thành phần giao tiếp liên tiến trình (IPC) của Android thành các mục kiểm thử độc lập bao gồm Activity (PLATFORM-7), Broadcast Receiver (PLATFORM-8) và Service (PLATFORM-9) thay vì gộp chung như tiêu chuẩn cũ; bổ sung kiểm thử chế độ gỡ lỗi từ xa của Webview (PLATFORM-10), thuộc tính cấp quyền truy cập tệp tin mất an toàn (PLATFORM-11), cờ sao lưu dữ liệu ứng dụng
allowBackup (PLATFORM-12) và cờ gỡ lỗi debuggable (PLATFORM-13).
- Chất lượng mã nguồn và cấu hình bản phát hành (CODE-1 đến CODE-5): Đánh giá việc ký ứng dụng bằng chứng thư số hợp lệ (sử dụng MobSF để rà quét), kiểm tra việc loại bỏ cờ gỡ lỗi, tệp tin gỡ lỗi nhị phân, thông báo lỗi dài dòng và kiểm tra các thư viện của bên thứ ba chưa được cập nhật bản vá.
- Phương pháp bảo vệ ứng dụng (RESILIENCE): Rà soát các cơ chế tự bảo vệ gồm phát hiện thiết bị đã bị can thiệp quyền quản trị (root), phát hiện môi trường máy ảo giả lập, chống đính kèm trình gỡ lỗi (debugger), kỹ thuật làm rối mã nguồn và tính toàn vẹn của tệp tin thực thi.
Chương 3: Xây dựng công cụ kiểm thử
Chương 3 trình bày chi tiết quy trình phân tích yêu cầu, thiết kế kiến trúc và thử nghiệm công cụ kiểm thử tự động mang tên Firebase Scan. Công cụ ra đời nhằm giải quyết bài toán kiểm thử cấu hình dịch vụ đám mây Firebase Realtime Database - một thành phần phụ trợ (backend) được sử dụng rất phổ biến trong các ứng dụng di động nhưng thường xuyên bị lập trình viên cấu hình sai quy tắc phân quyền (Rules).
Tác giả mô tả chi tiết lưu đồ thuật toán hoạt động của công cụ:
- Tiếp nhận tham số đầu vào là tệp tin APK của ứng dụng mục tiêu hoặc trực tiếp đường dẫn cơ sở dữ liệu Firebase.
- Tự động dịch ngược tài nguyên ứng dụng để bóc tách chuỗi URL Firebase kết thúc bằng cú pháp
.firebaseio.com hoặc trích xuất từ tài nguyên chuỗi hệ thống.
- Gửi truy vấn kiểm tra quyền đọc dữ liệu: Nếu máy chủ phản hồi mã trạng thái HTTP 200 kèm nội dung JSON, công cụ xác định tồn tại lỗ hổng mở quyền đọc và tiến hành tải về toàn bộ cấu trúc dữ liệu.
- Gửi truy vấn kiểm tra quyền ghi dữ liệu: Công cụ đẩy một cấu trúc dữ liệu thử nghiệm lên cơ sở dữ liệu. Nếu phản hồi ghi thành công, công cụ đưa ra cảnh báo nguy cơ toàn bộ dữ liệu có thể bị kẻ tấn công sửa đổi hoặc xóa bỏ hoàn toàn.
- Hiển thị kết quả đánh giá bảo mật trực quan trên giao diện dòng lệnh và cho phép chuyên viên kiểm thử thao tác tương tác trực tiếp với dữ liệu khai thác.
Kết quả thử nghiệm thực tế cho thấy Firebase Scan hoạt động ổn định, tốc độ rà quét và trích xuất dữ liệu nhanh chóng, khắc phục được sự phụ thuộc vào các thao tác thủ công khi khai thác kiểm chứng lỗ hổng.
Chương 4: Xây dựng lab thử nghiệm
Chương 4 tập trung vào quy trình thiết kế và vận hành ứng dụng PTIT Pentest Lab. Ứng dụng được xây dựng theo kiến trúc hướng module, cung cấp giao diện trực quan hỗ trợ đào tạo thực hành cho sinh viên chuyên ngành An toàn thông tin.
Các module chức năng chính của ứng dụng lab bao gồm:
- Module xác thực và định danh: Quản lý phiên làm việc của người thực hành.
- Module bảng điều khiển (Dashboard): Hiển thị tỷ lệ phần trăm tiến độ đã hoàn thành dựa trên số lượng cờ (flag) chính xác được nộp lên hệ thống.
- Module phân loại bài tập: Liệt kê danh sách các kịch bản lỗ hổng thực tế tương ứng với các nhóm kiểm thử đã đề xuất ở Chương 2 (dịch ngược mã nguồn, lưu trữ dữ liệu không an toàn, phân quyền IPC...).
Tác giả ghi nhận chi tiết quy trình thử nghiệm bài lab dịch ngược số 1 (Reverse 1): Người thực hiện sử dụng bộ công cụ dịch ngược Apktool trên máy tính để bung gói tệp APK thành các tệp tin cấu trúc và mã Smali. Thông qua việc phân tích tệp strings.xml và các lớp xử lý giao diện đăng nhập, người kiểm thử xác định được thông tin tên đăng nhập và mật khẩu của tài khoản quản trị viên (admin) được lưu trữ dưới dạng bản rõ (plaintext). Sử dụng thông tin này đăng nhập thành công vào ứng dụng lab, hệ thống sẽ ghi nhận cờ hoàn thành và cập nhật trạng thái của bài thực hành từ chưa hoàn thành sang hoàn thành trên giao diện quản trị tiến độ.
Chương 5: Kết luận
Chương 5 đúc kết toàn bộ khối lượng nghiên cứu đã hoàn thành trong khuôn khổ đồ án tốt nghiệp, khẳng định việc hoàn thành đầy đủ các mục tiêu đề ra:
- Xây dựng thành công quy trình kiểm thử xâm nhập ứng dụng Android có tính thực tiễn, khắc phục các bất cập của quy trình OWASP MSTG và Oversecured, tích hợp hướng dẫn công cụ cụ thể cho từng hạng mục.
- Chế tạo công cụ Firebase Scan hỗ trợ rà quét và tự động hóa quá trình khai thác lỗ hổng cấu hình cơ sở dữ liệu Firebase.
- Xây dựng ứng dụng PTIT Pentest Lab phục vụ hiệu quả cho công tác học tập, luyện tập kỹ năng kiểm thử bảo mật di động.
Đồng thời, chương này định hình các định hướng phát triển kỹ thuật trong tương lai nhằm nâng cấp công cụ và mở rộng phạm vi bài tập thực hành.
Kết quả và đóng góp
Công trình đồ án đã đạt được những kết quả kỹ thuật cụ thể, được xác thực thông qua các số liệu và sản phẩm thực nghiệm có trong văn bản:
- Hệ thống hóa và chuẩn hóa quy trình kiểm thử xâm nhập Android: Tác giả đã rà soát 8 nhóm yêu cầu với hàng chục tiêu chí kiểm thử của OWASP MSTG, tiến hành loại bỏ các tiêu chuẩn đã lỗi thời do sự thay đổi của hệ điều hành Android (như các hàm bảo mật cũ trên phiên bản Android 4.1 và 4.2), gộp các nội dung kiểm thử lưu trữ dữ liệu bị phân tán, và đặc biệt là tách biệt các thành phần cốt lõi của Android IPC (Activity, Service, Broadcast Receiver) thành các đề mục độc lập (PLATFORM-7, PLATFORM-8, PLATFORM-9) nhằm nâng cao độ chính xác khi đánh giá thực tế.
- Khảo sát định lượng hệ sinh thái kiểm thử di động: Cung cấp bảng đánh giá chi tiết 3 khóa học quốc tế nổi tiếng dựa trên 7 tiêu chí định lượng (MASPT đạt 18/35 điểm, CEH và CMWAPT cùng đạt 14/35 điểm), chỉ ra lỗ hổng lớn của các chương trình đào tạo hiện nay là thiếu tính thực chiến và không cung cấp quy trình kiểm thử áp dụng được vào công việc thực tế. Đồng thời, đồ án đã phân loại và đánh giá hiệu năng thực tế của 11 công cụ kiểm thử di động phổ biến.
- Phát triển thành công công cụ Firebase Scan: Giải quyết trọn vẹn điểm yếu của công cụ phân tích tự động MobSF trong việc kiểm thử dịch vụ đám mây Firebase Realtime Database. Công cụ không chỉ dừng ở việc cảnh báo quyền đọc mà còn tự động kiểm tra quyền ghi và hỗ trợ trích xuất toàn bộ dữ liệu cấu hình sai.
- Triển khai ứng dụng đào tạo PTIT Pentest Lab: Xây dựng thành công ứng dụng thực hành an toàn thông tin chuyên biệt cho sinh viên, tích hợp hệ thống theo dõi tiến độ và kiểm chứng thành công kịch bản tấn công dịch ngược mã nguồn bằng Apktool để khai thác thông tin xác thực quản trị.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên phạm vi và nội dung được trình bày trong văn bản đồ án, các hạn chế và hướng phát triển được xác định như sau:
- Hạn chế về tính năng công cụ kiểm thử: Công cụ Firebase Scan mới chỉ tập trung xử lý tự động hóa đối với một dạng lỗ hổng cấu hình dịch vụ đám mây cụ thể (Firebase Realtime Database), chưa tích hợp cơ chế rà quét và khai thác tự động cho các lớp lỗ hổng giao tiếp nền tảng khác như Webview, Intent injection hay Content Provider.
- Hạn chế về số lượng kịch bản lab: Ứng dụng PTIT Pentest Lab trong phạm vi báo cáo mới chỉ hoàn thiện và thử nghiệm điển hình với bài lab dịch ngược mã nguồn số 1; hệ thống cần tiếp tục xây dựng và tích hợp đầy đủ các kịch bản lỗ hổng còn lại theo danh mục quy trình đã đề xuất.
- Hạn chế về tính tương thích: Các đánh giá kỹ thuật và công cụ nghiên cứu gắn liền với hệ sinh thái Android và các công cụ ghi nhận tại thời điểm tháng 12 năm 2021, chưa đánh giá tác động của các cơ chế bảo mật trên các phiên bản Android mới hơn.
- Hướng nghiên cứu tiếp: Tiếp tục mở rộng tính năng của công cụ Firebase Scan để hỗ trợ kiểm thử thêm các dịch vụ lưu trữ đám mây khác; phát triển hoàn thiện toàn bộ các bài thực hành trên ứng dụng PTIT Pentest Lab bao phủ trọn vẹn các nhóm lỗ hổng trong quy trình kiểm thử; nghiên cứu nâng cấp quy trình và công cụ để thích ứng với các thay đổi bảo mật của các phiên bản hệ điều hành Android tiếp theo.
Giá trị tham khảo
Đồ án tốt nghiệp cung cấp nguồn tài liệu tham khảo kỹ thuật hữu ích cho nhiều nhóm đối tượng trong lĩnh vực công nghệ thông tin và an toàn không gian mạng:
- Sinh viên chuyên ngành An toàn thông tin và Công nghệ thông tin: Tài liệu là tài nguyên học tập giá trị khi cần tiếp cận phương pháp luận kiểm thử thâm nhập di động một cách có hệ thống, khắc phục được sự thiếu hụt về mặt quy trình thực chiến mà các khóa học quốc tế hiện nay chưa giải quyết trọn vẹn.
- Chuyên viên kiểm thử an toàn thông tin (Pentester): Phần bảng đối chiếu quy trình kiểm thử cải tiến tại Chương 2 (với các mã định danh từ STORAGE, CRYPTO, AUTH, NETWORK, PLATFORM đến CODE) cùng danh mục công cụ hỗ trợ kèm theo có thể được sử dụng trực tiếp làm tài liệu kiểm tra (checklist) tiêu chuẩn trong các dự án đánh giá bảo mật ứng dụng Android thực tế.
- Lập trình viên ứng dụng di động Android: Các phân tích chuyên sâu về lỗ hổng rò rỉ dữ liệu qua nhật ký hệ thống (trường hợp ứng dụng Shopify), cấu hình sai Webview (trường hợp Twitter Lite), sai sót trong cấu hình Firebase và phân quyền Service/Broadcast Receiver giúp kỹ sư phần mềm nắm rõ các rủi ro mã nguồn để chủ động thiết kế kiến trúc an toàn ngay từ giai đoạn phát triển ban đầu.
Câu hỏi thường gặp
1. Những bất cập chính của quy trình kiểm thử do tổ chức OWASP đề xuất mà tác giả đã chỉ ra là gì?
Quy trình của OWASP MSTG tuy bao quát nhưng có xu hướng tập trung vào các quy tắc lập trình an toàn thay vì thao tác kiểm thử xâm nhập thực tế; rất ít giới thiệu công cụ kiểm thử đi kèm; nhiều đề mục chưa có hướng dẫn phương pháp tấn công chi tiết; đồng thời tồn tại những yêu cầu kiểm thử không phù hợp với thực tế chung (ví dụ mục MSTG-STORAGE-9 yêu cầu che màn hình ứng dụng khi đa nhiệm thực tế chỉ áp dụng bắt buộc cho tiêu chuẩn thẻ thanh toán PCI).
2. Điểm số đánh giá tổng thể của 3 khóa học bảo mật di động quốc tế (CEH, MASPT, CMWAPT) được phân bổ ra sao?
Qua việc chấm điểm dựa trên 7 tiêu chí (thang điểm từ 1 đến 5 cho mỗi tiêu chí), khóa học MASPT của eLearnSecurity đạt tổng điểm cao nhất là 18/35 điểm (nội dung chuyên sâu nhưng công cụ và bài lab đã cũ). Khóa học CEH của EC-Council đạt 14/35 điểm (giải thích kỹ lý thuyết nhưng nặng tính giới thiệu, thiếu thực hành). Khóa học CMWAPT của Infosec Institute đạt 14/35 điểm (giới thiệu công cụ thực tế tốt nhưng nội dung kiểm thử ứng dụng di động quá sơ sài).
3. Công cụ Firebase Scan do tác giả tự phát triển giải quyết điểm yếu cụ thể nào của công cụ MobSF?
Công cụ phân tích bảo mật tự động MobSF chỉ có khả năng rà quét phát hiện đường dẫn Firebase trong ứng dụng và kiểm tra quyền đọc dữ liệu, hoàn toàn không hỗ trợ kiểm tra quyền ghi dữ liệu cũng như không hỗ trợ trích xuất nội dung cơ sở dữ liệu. Công cụ Firebase Scan khắc phục triệt để các hạn chế này bằng cách tự động hóa cả hai bước: kiểm tra quyền đọc/ghi và tự động kết nối trích xuất toàn bộ dữ liệu JSON hoặc gửi dữ liệu thử nghiệm để chứng minh lỗ hổng.
4. Quy trình thực hiện bài thực hành dịch ngược số 1 trên ứng dụng PTIT Pentest Lab diễn ra như thế nào?
Người kiểm thử sử dụng công cụ Apktool để dịch ngược tệp tin APK của ứng dụng lab về dạng mã nguồn Smali và tệp tài nguyên XML. Bằng cách phân tích tệp strings.xml và mã xử lý logic giao diện, người thực hiện tìm thấy thông tin đăng nhập của tài khoản quản trị viên (admin) được lưu trữ trực tiếp dưới dạng văn bản rõ. Sử dụng tài khoản này đăng nhập thành công vào ứng dụng, hệ thống lab sẽ ghi nhận cờ hoàn thành và cập nhật trạng thái bài tập trên màn hình quản lý tiến độ.
5. Vì sao tác giả kiến nghị loại bỏ các đề mục kiểm tra liên quan đến phiên bản Android 4.1 và 4.2 trong quy trình kiểm thử mới?
Các đề mục như kiểm tra việc sử dụng phương thức addJavascriptInterface trên Android 4.1 trở xuống hoặc kiểm tra lớp sinh số ngẫu nhiên SecureRandom trên Android 4.2 trở xuống đã bị loại bỏ vì trên thực tế các phiên bản hệ điều hành này đã quá cũ, hầu như không còn thiết bị nào trên thị trường hoạt động với các phiên bản này, do đó việc duy trì các tiêu chí kiểm thử đó không còn mang lại giá trị thực tế trong công tác đánh giá an toàn thông tin hiện đại.
Kết luận
Đồ án tốt nghiệp "Kiểm thử xâm nhập ứng dụng Android" của sinh viên Trần Minh Nhật đã giải quyết trọn vẹn khoảng trống giữa lý thuyết tiêu chuẩn và nghiệp vụ an toàn thông tin thực chiến trên nền tảng di động. Bằng việc phân tích sâu sắc các bất cập của các bộ quy trình chuẩn như OWASP MSTG và các chương trình đào tạo quốc tế, tác giả đã đề xuất một khung quy trình kiểm thử cải tiến có tính ứng dụng cao, đồng thời hiện thực hóa giải pháp thông qua công cụ tự động hóa Firebase Scan và ứng dụng thực hành PTIT Pentest Lab. Công trình là tài liệu học thuật và kỹ thuật hoàn chỉnh, phản ánh nghiêm túc quá trình nghiên cứu thực nghiệm và đóng góp thiết thực cho công tác đào tạo cũng như hoạt động đánh giá an toàn thông tin ứng dụng di động.