1. Trang chủ
  2. » Công Nghệ Thông Tin

Android Security Model

73 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trường ĐH CNTT TP HCM Bảo mật web ứng dụng Nội dung • Mơ hình an tồn ứng dụng Android • Quyền hạn ứng dụng • Package Management Mơ hình an tồn Android Android Security Model ▪ Application Sandboxing ▪ Permission ▪ IPC (Inter-Process Communication) ▪ Code Signing & Platform Key Ứng dụng Android ▪ System app: ✓ Đi kèm với OS, đọc (read-only) thiết bị ✓ Nằm thư mục /system, khơng thể bị xóa hay chỉnh sửa người dùng ▪ User-installed app ✓ Nằm phân vùng read-write, thư mục /data ✓ Độc lập với Application Sandboxing ▪ Android gán UID (thường gọi app ID), thời điểm cài đặt ứng dụng ▪ Ứng dụng Android cô lập (isolated) mức: tiến trình (process) tập tin (file) ▪ Mỗi tiến trình ứng dụng Android thực thi user độc lập (với UID riêng biệt) ▪ Mỗi ứng dụng có thư mục mà có ứng dụng quyền đọc ghi (phân quyền dựa UID) ▪ Android khơng có file /etc/password, thơng tin UID định nghĩa tập tin android_filesystem_config.h https://android.googlesource.com/platform/system/core/+/master/libcutils/includ e/private/android_filesystem_config.h Application Sandboxing ▪ Các daemon hệ thống chạy ngầm ứng dụng gắn với UID, vài daemons chạy quyền root user (UID 0) ▪ UID dịch vụ hệ thống bắt đầu 1000 (AID_SYSTEM) ▪ UID ứng dụng có giá trị từ 10000 trở lên (AID_APP) ▪ Username app có quy tắc sau: ▪ app_XXX ▪ Hoặc uY_aXXX ▪ Trong đó, XXX offset tính từ AID_APP, Y Android user ID Application Sandboxing # pm list packages # dumpsys | grep -A18 "Package \[com.example.app1\]" Application Sandboxing ▪ Dữ liệu ứng dụng chứa thư mục /data/data single-user device ▪ Các ứng dụng tùy chỉnh tạo file với mong muốn cấp quyền truy cập cho ứng dụng khác cách sử dụng flag: ▪ MODE_WORLD_READABLE (ứng với bits giá trị S_IROTH tập tin) ▪ MODE_WORLD_WRITEABLE (ứng với bits giá trị S_IWOTH tập tin) Application Sandboxing • UID ứng dụng quản lý tập tin: • /data/system/packages.xml • /data/system/packages.list • Trong đó, giá trị trường sau: • Thứ 1: package name • Thứ 2: UID ứng dụng • Thứ 3: debug flag (1 debug) • Thứ 4: đường dẫn thư mục ứng dụng • Thứ 5: seinfo label (được sử dụng SELinux) • Thứ 6: Danh sách GID bổ sung mà app chạy Mỗi GID gắn với quyền (Android permission); GID tạo dựa quyền cấp cho ứng dụng Application Sandboxing • Các ứng dụng cài đặt cách sử dụng UID, gọi shared user ID → chạy tiến trình, chia sẻ liệu với • Để sử dụng UID, ứng dụng cần ký code signing key • Nếu thêm shared user ID vào app cài đặt → thay đổi UID app → hệ thống vơ hiệu hóa app → Do đó, ứng dụng cần thiết kế với shared ID từ đầu 10 Package Management • Java Code Signing (JAR file level) • Thêm signature file (.SF) chứa: - Dữ liệu ký - Chữ ký 62 Package Management • Java Code Signing (JAR file level) • Kiểm tra tập tin chữ ký JAR sử dụng chuẩn mã hóa cách sử dụng thư viện OpenSSL 63 Package Management • Java Code Signing (JAR file level) • Quá trình Ký lên tập tin JAR, sử dụng jarsigner: 64 Package Management • Java Code Signing (JAR file level) • Xem, trích xuất thơng tin người ký (Signer) 65 Package Management • Java Code Signing (JAR file level) • Sử dụng lệnh unzip với OpenSSL để trích xuất chứng ký lên file: 66 Package Management • Android Code Signing: dựa Java JAR signing • Sử dụng khóa cơng khai chứng X.509 • Chứng dùng Android tự ký (self-signed) • Các entry file APK phải ký signer (cùng certificate) thay số entry JAR signing khơng ký ký signer khác • Cơng cụ: signapk 67 Package Management: Cài đặt APK • Các thành phần package management 68 Package Management: Package Verification • Thơng báo cảnh báo xác nhận ứng dụng Android: 69 Package Management: Package Verification • Android hỗ trợ Package Verification: • PackageManagerService • Một ứng dụng tự đăng ký tính xác thực cách khai báo Broadcast Receiver có intent filter khớp với action PACKAGE_NEEDS_VERIFICATION MIME type tập tin APK (application/vnd.android.package-archive) 70 Package Management: Package Verification • Android hỗ trợ Package Verification: • Thêm quyền PACKAGE_VERIFICATION_AGENT ứng dụng khai báo làm verifier • Thêm thẻ vào file manifest liệt kê danh sách tên package khóa cơng khai verifier • PackageManagerService thực q trình xác thực có ứng dụng yêu cầu xác thực thiết lập Settings.Global.PACKAGE_VERIFIER_ENABLE true hệ thống 71 Package Management: Package Verification • Android hỗ trợ Package Verification: • APK thêm vào hàng đợi chờ cài đặt, sau truyền broadcast ACTION_PACKAGE_NEEDS_VERIFICATION tới verifier đăng ký • Broadcast chứa mã verification ID số thông tin meta-data package cần xác thực • Các agent xác thực gọi hàm verifyPendingInstall() với quyền hạn PACKAGE_VERIFICATION_AGENT để trả kết • Nếu xác thực thành cơng agent xác thực, trình cài đặt ứng dụng bắt đầu 72 Package Management: Package Verification • Google Play Implementation ✓ PackgeInstaller ✓ Hoặc adb install 73 Tài liệu tham khảo - Chương 1-2-3 Sách “Android Security Internals : An In-Depth Guide to Android's Security Architecture” Nikolay Elenkov No Starch Press 2015 - Sách “Application Security for the Android Platform: Processes, Permissions, and Other” Jeff Six 2011 74 Bài tập Chọn ứng dụng Android công ty phát triển, phân tích: - Các quyền hạn cấp ứng dụng, quyền hạn tùy chỉnh thành phần ứng dụng - Xem thông tin chữ ký file APK ứng dụng 75 Bảo mật web ứng dụng Trường ĐH CNTT TP HCM ...Nội dung • Mơ hình an tồn ứng dụng Android • Quyền hạn ứng dụng • Package Management Mơ hình an tồn Android Android Security Model ▪ Application Sandboxing ▪ Permission ▪ IPC (Inter-Process... ▪ Android khơng có file /etc/password, thơng tin UID định nghĩa tập tin android_ filesystem_config.h https:/ /android. googlesource.com/platform/system/core/+/master/libcutils/includ e/private /android_ filesystem_config.h... A) • Binder object hoạt động token bảo mật → hỗ trợ chế capability-based security model Android 19 IPC: Capability-based Security • Các ứng dụng cấp phép truy cập tới tài nguyên định cách cấp cho

Ngày đăng: 04/10/2021, 09:05

TỪ KHÓA LIÊN QUAN