Kiểm thử bảo mật ứng dụng di động, đặc biệt là Android, ngày càng trở thành một yêu cầu thiết yếu trong quy trình phát triển phần mềm hiện đại. Trang Android APK Checklist trên HackTricks tổng hợp một danh sách kiểm tra toàn diện, giúp các pentester, nhà phát triển và chuyên gia an ninh thực hiện đánh giá bảo mật ứng dụng Android một cách có hệ thống và hiệu quả. Bài blog này sẽ phân tích chi tiết nội dung checklist, các phần chính, điểm nổi bật và giá trị thực tiễn của tài liệu này.
1. Tổng Quan Nội Dung
Checklist được HackTricks xây dựng dựa trên kinh nghiệm thực tế, bao gồm các bước kiểm thử từ cơ bản đến nâng cao, cả phân tích tĩnh (static) và động (dynamic). Nội dung chính gồm:
- Học các kiến thức nền tảng về Android
- Phân tích tĩnh (Static Analysis)
- Phân tích động (Dynamic Analysis)
- Thông tin về obfuscation/deobfuscation
- Các tài nguyên hỗ trợ cộng đồng
2. Phân Tích Các Phần Chính
2.1. Học Kiến Thức Nền Tảng Android
Checklist khuyến nghị người kiểm thử nên nắm vững các khái niệm cơ bản về:
- Kiến trúc Android: Hiểu về Dalvik, Smali, các entry point, component như Activity, Service, Content Provider, Broadcast Receiver.
- ADB (Android Debug Bridge): Cách sử dụng ADB để tương tác với thiết bị.
- Chỉnh sửa Smali: Kỹ năng sửa mã Smali để kiểm thử các hành vi ứng dụng.
2.2. Phân Tích Tĩnh (Static Analysis)
Đây là bước quan trọng để xác định các điểm yếu tiềm năng mà không cần chạy ứng dụng:
- Kiểm tra obfuscation & anti-tampering: Xác định các kỹ thuật làm khó phân tích mã nguồn.
- Kiểm tra root/emulator detection: Ứng dụng nhạy cảm nên kiểm tra thiết bị đã root hay đang chạy trên giả lập.
- Tìm kiếm chuỗi nhạy cảm: Password, API key, URL, token, Bluetooth UUID, đặc biệt chú ý đến Firebase API.
- Đọc file AndroidManifest.xml:
- Ứng dụng có ở chế độ debug?
- Có cho phép backup không?
- Các Activity/Service/Provider/Broadcast Receiver có bị export/expose không?
- Có định nghĩa URL Scheme không?
- Lưu trữ dữ liệu: Kiểm tra ứng dụng có lưu dữ liệu nhạy cảm không an toàn (internal/external storage).
- Hardcoded password/crypto: Có mật khẩu/khóa mã hóa hardcoded không? Thuật toán mã hóa có an toàn không?
- PIE flag: Các thư viện đã được biên dịch với PIE flag chưa?
- Sử dụng các công cụ phân tích tĩnh: Sử dụng các analyzer tự động để hỗ trợ.
2.3. Phân Tích Động (Dynamic Analysis)
Phân tích động giúp phát hiện các lỗ hổng khi ứng dụng chạy thực tế:
- Chuẩn bị môi trường kiểm thử: Có thể là online, máy ảo hoặc thiết bị thật.
- Kiểm tra rò rỉ dữ liệu: Nhật ký, clipboard, crash log có lộ thông tin nhạy cảm?
- Kiểm tra SQLite DB: Dữ liệu nhạy cảm có bị lưu trong DB không?
- Kiểm thử các entry point: Activity, Service, Content Provider, Broadcast Receiver có bị expose/exploit không?
- Kiểm tra truyền thông tin: Dữ liệu truyền đi có bị mã hóa? Có thể thực hiện tấn công Man-in-the-Middle (MitM) không?
- Phân tích HTTP/HTTPS traffic: Rất quan trọng để tìm các lỗ hổng web thông qua traffic.
- Kiểm tra Client Side Injection: Có thể kết hợp với phân tích tĩnh để tìm lỗ hổng injection phía client.
- Sử dụng Frida: Dùng Frida để thu thập dữ liệu động như password, token…
2.4. Obfuscation/Deobfuscation
Checklist cung cấp một số thông tin về cách nhận biết và xử lý mã bị obfuscate, giúp phân tích mã nguồn dễ dàng hơn.
3. Điểm Nổi Bật
- Toàn diện: Checklist bao quát cả phân tích tĩnh và động, từ kiến thức nền tảng đến kỹ thuật nâng cao.
- Thực tiễn: Các bước kiểm thử đều dựa trên các lỗ hổng phổ biến thực tế.
- Cập nhật: Liên tục bổ sung các mẹo, trick mới từ cộng đồng pentester quốc tế.
- Tài nguyên mở: Có thể đóng góp, cập nhật, chia sẻ qua Github, Discord, Telegram.
4. Lợi Ích Thực Tiễn
- Tiết kiệm thời gian: Checklist giúp pentester không bỏ sót các bước quan trọng khi kiểm thử bảo mật Android.
- Nâng cao chất lượng kiểm thử: Hạn chế rủi ro bảo mật nhờ kiểm tra toàn diện.
- Tăng khả năng phát hiện lỗ hổng: Tập trung vào các điểm yếu phổ biến, dễ bị khai thác.
- Hỗ trợ đào tạo: Là tài liệu tham khảo hữu ích cho các khóa học pentest mobile.
5. Bảng Tóm Tắt Checklist Android APK (HTML)
| Phân tích tĩnh | Phân tích động |
|---|---|
|
– Kiểm tra obfuscation – Kiểm tra root/emulator – Tìm kiếm chuỗi nhạy cảm – Đọc manifest – Kiểm tra backup/debug – Kiểm tra export/expose – Lưu trữ dữ liệu – Hardcoded password/crypto – PIE flag – Sử dụng analyzer |
– Chuẩn bị môi trường – Kiểm tra rò rỉ dữ liệu – Kiểm tra SQLite DB – Kiểm thử entry point – Kiểm tra truyền thông tin – Phân tích HTTP/HTTPS traffic – Kiểm tra injection – Sử dụng Frida |
6. Kết Luận
Checklist kiểm thử bảo mật Android từ HackTricks là một tài liệu không thể thiếu cho bất kỳ ai làm pentest hoặc phát triển ứng dụng di động. Việc áp dụng checklist này sẽ giúp nâng cao chất lượng bảo mật, hạn chế rủi ro và phát hiện sớm các lỗ hổng nghiêm trọng trong ứng dụng Android.
Source link: https://book.hacktricks.wiki/en/mobile-pentesting/android-checklist.html






