Cách xem quyền của ứng dụng Android trước khi cài đặt APK
Khi bạn cài đặt một ứng dụng từ Cửa hàng Google Play, Android sẽ hiển thị bản tóm tắt đơn giản về những gì ứng dụng có thể truy cập. Tải APK từ nguồn không phải của Play và bạn không có mạng lưới an toàn như vậy, trừ khi bạn tự đọc bản kê khai. "Ứng dụng hình nền có thực sự cần quyền truy cập SMS và micrô không?" chính xác là loại câu hỏi mà hướng dẫn này sẽ giúp bạn trả lời.
Phần tiếp theo là quy trình làm việc tương tự mà nhóm của chúng tôi sử dụng khi phân loại một APK lạ: mở nó, đọc các mục uses-permission, giải mã các cấp độ bảo vệ và so sánh những gì ứng dụng nói nó cần với những gì danh mục của nó thường yêu cầu. Công cụ thông tin APK trực tuyến của chúng tôi thực hiện giải mã XML nhị phân cho bạn nên toàn bộ quá trình mất khoảng mười giây.
Tại sao phải bận tâm về quyền kiểm tra?
Các nhà phát triển độc hại lấy các ứng dụng miễn phí phổ biến, thay đổi chúng và phát hành lại chúng trên các trang web của bên thứ ba. Mặc dù ứng dụng có thể trông và hoạt động bình thường nhưng mã ẩn của ứng dụng có thể đang sao chép danh sách liên hệ của bạn hoặc ghi lại âm thanh nền của bạn. Bằng cách xem các quyền cài đặt sẵn, bạn có thể phát hiện ra những dấu hiệu màu đỏ về "sự tăng quyền".
Cách kiểm tra bất kỳ tệp APK nào (Trực tuyến)
Công cụ thông tin APK của chúng tôi đọc toàn bộ tệp kê khai tệp của bạn trong trình duyệt của bạn; tệp không bao giờ được tải lên máy chủ và không có mã nào được thực thi. Đây là cách sử dụng nó:
Quá trình:
- Đi đến Trang thông tin APK.
- Chọn tệp .apk của bạn.
- Đợi quá trình phân tích kết thúc (thường là 5 giây).
- Cuộn xuống Phần quyền.
- Hãy tìm các cờ có rủi ro cao như: READ_SMS, PROCESS_OUTGOING_CALLS hoặc ACCESS_FINE_LOCATION.
Danh sách cờ đỏ cấp phép
Nếu ứng dụng Máy tính hoặc Đèn pin yêu cầu READ_CONTACTS hoặc RECORD_AUDIO, hãy xóa tệp ngay lập tức. Không có lý do chính đáng nào để các ứng dụng này có dữ liệu đó.
Hiểu cấp độ cấp phép của Android
Không phải tất cả các quyền đều được tạo ra như nhau. Android phân loại chúng thành ba cấp độ:
- Bình thường: Các quyền có mức độ rủi ro thấp không đe dọa trực tiếp đến quyền riêng tư (ví dụ: SET_ALARM). Android tự động cấp những thứ này.
- Nguy hiểm: Quyền có rủi ro cao (Danh bạ, Vị trí, Máy ảnh). Những phải này sẽ được bạn xác nhận khi ứng dụng chạy.
- Chữ ký/Hệ thống: Rủi ro cực kỳ cao. Những ứng dụng này chỉ khả dụng đối với các ứng dụng được nhà sản xuất thiết bị hoặc chính hệ điều hành ký.
Phương pháp thủ công (Sử dụng Trình xem ZIP)
Nếu bạn có một số kỹ năng kỹ thuật, bạn có thể tự kiểm tra các quyền:
- Đổi tên app.apk thành app.zip và mở nó.
- Tìm AndroidManifest.xml. (Lưu ý: Nó ở định dạng nhị phân và sẽ trông giống như vô nghĩa trong trình soạn thảo văn bản).
- Sử dụng công cụ như Máy in AXML để chuyển đổi nó thành văn bản có thể đọc được.
- Tìm kiếm các thẻ bắt đầu bằng <uses-permission>.
Khuyến nghị: Sử dụng công cụ trực tuyến của chúng tôi sẽ nhanh hơn nhiều để giải mã điều này cho bạn ngay lập tức.
Kiểm tra ứng dụng của bạn ngay bây giờ
Biết chính xác những gì ứng dụng của bạn đang yêu cầu. Không có bí mật, không có rủi ro.
Kiểm tra quyền APKNhững gì thực sự được lưu trữ trong AndroidManifest.xml
Tệp kê khai là nguồn thông tin chính xác cho mọi quyền, thành phần và tính năng mà ứng dụng khai báo. Bên trong APK, tệp ở dạng XML nhị phân, không phải văn bản thuần túy bạn thấy trong mã nguồn, vì vậy không thể đọc được bằng trình soạn thảo văn bản thông thường. Công cụ Thông tin APK của chúng tôi giải mã XML nhị phân và hiển thị các thẻ có liên quan. Những cái quan trọng nhất là:
- <uses-permission android:name="..."/>: mọi quyền mà ứng dụng có thể yêu cầu. Danh sách đầy có ở đây, bao gồm cả những danh sách mà ứng dụng có thể không bao giờ thực sự sử dụng trong thời gian chạy.
- <uses-permission-sdk-23 ... />: tương tự nhưng chỉ được yêu cầu khi ứng dụng chạy trên Android 6 trở lên. Các thiết bị cũ hơn được cho phép âm thầm mà không cần nhắc nhở.
- <uses-feature android:name="..." android:required="true|false"/>: tính năng phần cứng mà ứng dụng sử dụng (máy ảnh, GPS, NFC). Khi được đánh dấu yêu cầu, Play Store sẽ ẩn ứng dụng khỏi các thiết bị thiếu tính năng này.
- <application android:debuggable="true">: lá cờ đỏ khổng lồ trong APK phát hành. Một ứng dụng có thể gỡ lỗi hiển thị bộ nhớ và trạng thái xử lý của nó cho bất kỳ ai có quyền truy cập ADB. Từ chối.
- <activity android:exported="true"> về các hoạt động nhạy cảm: cho phép các ứng dụng khác khởi chạy màn hình đó. Đối với một ứng dụng bảo mật, điều này thường báo hiệu việc mã hóa cẩu thả.
Cấp độ bảo vệ quyền: Bảng cheat
Android gán cho mọi quyền một "mức độ bảo vệ". Việc biết yêu cầu thuộc cấp độ nào sẽ cho bạn biết hệ điều hành sẽ xử lý yêu cầu đó nghiêm túc đến mức nào.
| Mức độ bảo vệ | Trải nghiệm người dùng | Ví dụ |
|---|---|---|
| Bình thường | Cấp âm thầm tại thời điểm cài đặt. Không có lời nhắc. | INTERNET, VIBRATE, ACCESS_NETWORK_STATE, WAKE_LOCK |
| nguy hiểm | Lời nhắc thời gian chạy khi tính năng này được sử dụng lần đầu tiên. Có thể thu hồi trong Cài đặt. | CAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| chữ ký | Chỉ được cấp cho các ứng dụng được ký bằng cùng chứng chỉ với ứng dụng cấp hoặc hệ điều hành. | BIND_VPN_SERVICE, INSTALL_PACKAGES (chỉ dành cho hệ thống) |
| chữ ký|đặc quyền | Chỉ khả dụng cho các ứng dụng được cài đặt sẵn trong thư mục priv-app của hình ảnh hệ thống. | QUẢN LÝ_USERS, READ_LOGS |
| ứng dụng / vai trò | Yêu cầu một luồng Cài đặt riêng để bật. | HỆ THỐNG_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE |
Quyền "Ẩn" thực sự có nghĩa là gì
Một quan niệm sai lầm phổ biến là cho rằng một số quyền là bí mật. Không phải vậy: mọi quyền mà ứng dụng có thể sử dụng đều phải được khai báo trong AndroidManifest.xml và HĐH từ chối cấp bất kỳ quyền nào không được liệt kê ở đó. Những gì mọi người thường ám chỉ khi nói từ "ẩn" là một trong hai điều sau:
- Quyền cấp bình thường là im lặng. Chúng được cấp khi cài đặt mà không có bất kỳ sự tương tác nào của người dùng. Bản tóm tắt của Cửa hàng Play thậm chí không hiển thị một số trong số đó. Chúng “ẩn” theo nghĩa “dễ bỏ qua”, chứ không phải theo nghĩa “không tiết lộ”.
- Ứng dụng Quyền tùy chỉnh do ứng dụng xác định. có thể khai báo các thẻ <permission> của riêng chúng và yêu cầu chúng trên các thành phần bên trong. Chúng tồn tại để liên lạc giữa các ứng dụng và bản thân chúng không phải là mối lo ngại về quyền riêng tư, nhưng chúng có thể bị lạm dụng nếu một ứng dụng phổ biến tuyên bố quyền tùy chỉnh với mức bảo vệ sai và sau đó một ứng dụng khác sử dụng nó làm cửa sau.
Dù bằng cách nào, câu trả lời đều giống nhau: đọc bảng kê khai, không tin vào mô tả Cửa hàng Play.
Ví dụ đã hoạt động: Kiểm tra APK thực
Giả sử bạn có example.apk trong thư mục Tải xuống. Đây là quy trình làm việc chính xác:
- Mở Công cụ thông tin APK trong trình duyệt của bạn.
- Thả APK vào khu vực tải lên. Quá trình xử lý diễn ra cục bộ; tập tin không rời khỏi thiết bị của bạn.
- Đọc phần Quyền. Mỗi mục hiển thị tên hằng số (android.permission.READ_CONTACTS và mô tả dễ hiểu về những gì quyền đó cho phép).
- So sánh danh sách với danh mục của ứng dụng. Đại khái, mong đợi:
- CAMERA Ứng dụng máy ảnh:, RECORD_AUDIO (cho video), ghi BỘ LƯU TRỮ/MEDIA
- Ứng dụng nhắn tin: INTERNET, READ_CONTACTS, SEND_SMS (chỉ khi dựa trên SMS), RECORD_AUDIO (đối với ghi chú thoại), CAMERA (để gửi ảnh)
- INTERNET Trò chơi:, đôi khi RECORD_AUDIO (để trò chuyện thoại trong trò chơi), các quyền liên quan đến thanh toán; hiếm khi có điều gì khác
- Ứng dụng tiện ích (máy tính, đèn pin, thời tiết): INTERNET (dành cho quảng cáo), ACCESS_NETWORK_STATE, có thể là LOCATION (chỉ thời tiết). Bất cứ điều gì ngoài đó đều đáng nghi ngờ.
- Nếu bất cứ điều gì trong danh sách không phù hợp với danh mục, đừng cài đặt. Không có lý do chính đáng nào để máy tính cần truy cập SMS.
Logic tương tự được áp dụng cho dù tệp là APK, XAPK (nơi chúng tôi đọc APK cơ sở bên trong) hay gói APKS (nơi chúng tôi đọc tệp kê khai của từng phần tách).
Thực hiện nó từ dòng lệnh
Nếu bạn thích tuyến đầu cuối, SDK Android sẽ gửi aapt2, kết xuất một tệp kê khai từ bất kỳ APK nào ở dạng XML thuần túy:
aapt2 dump badging example.apk | grep "uses-permission"
Hoặc sử dụng apksigner để xác minh chứng chỉ ký cùng lúc:
apksigner verify --print-certs example.apk
Công cụ trình duyệt thực hiện điều tương tự đối với những người dùng không muốn cài đặt SDK chỉ để kiểm tra một tệp duy nhất.
Câu hỏi thường gặp (FAQ)
Tôi có thể từ chối quyền sau khi cài đặt APK không?
Đúng. Trên Android 6.0 trở lên, bạn có thể truy cập Cài đặt > Ứng dụng > [Tên ứng dụng] > Quyền để bật hoặc tắt các quyền nguy hiểm riêng lẻ.
Các tệp XAPK có các quyền khác nhau không?
XAPK chứa một hoặc nhiều APK. Mỗi APK bên trong đều có bảng kê khai riêng. Công cụ của chúng tôi sẽ phân tích APK chính trong gói để hiển thị cho bạn các quyền liên quan.
Tại sao mọi ứng dụng đều yêu cầu "Truy cập mạng"?
Hầu hết tất cả các ứng dụng đều cần truy cập Internet để phân tích, báo cáo lỗi hoặc quảng cáo. Mặc dù phổ biến nhưng đó cũng là cách dữ liệu bị đánh cắp được gửi đến máy chủ của hacker.
Kiểm tra quyền của tệp kê khai trước khi bạn nhấn vào cài đặt
Bạn không thể phán xét những gì bạn không thể nhìn thấy. Dành mười giây cho xem quyền của APK trước khi bạn tải, đó là sự khác biệt giữa việc biết ứng dụng có thể tiếp cận những gì và chỉ đơn giản là hy vọng nó hoạt động. Đọc danh sách trước và cài đặt thứ hai.