Google cam kết thúc đẩy công bằng chủng tộc cho các cộng đồng Đen. Xem thế nào.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Linux được tăng cường bảo mật trong Android

Là một phần của mô hình bảo mật Android, Android sử dụng Linux tăng cường bảo mật (SELinux) để thực thi kiểm soát truy cập bắt buộc (MAC) trên tất cả các quy trình, ngay cả các quy trình chạy với quyền root / superuser (khả năng của Linux). Nhiều công ty và tổ chức đã đóng góp cho việc triển khai SELinux của Android. Với SELinux, Android có thể bảo vệ và hạn chế các dịch vụ hệ thống tốt hơn, kiểm soát quyền truy cập vào dữ liệu ứng dụng và nhật ký hệ thống, giảm tác động của phần mềm độc hại và bảo vệ người dùng khỏi các lỗ hổng tiềm ẩn trong mã trên thiết bị di động.

SELinux hoạt động theo nguyên tắc từ chối mặc định: Bất kỳ điều gì không được phép rõ ràng đều bị từ chối. SELinux có thể hoạt động ở hai chế độ toàn cầu:

  • Chế độ dễ dãi, trong đó phủ nhận sự cho phép được ghi lại nhưng không được thực thi.
  • Chế độ thực thi , trong đó từ chối cấp phép được ghi lại thi hành.

Android bao gồm SELinux trong chế độ thực thi và chính sách bảo mật tương ứng hoạt động theo mặc định trên AOSP. Trong chế độ thực thi, các hành động không được phép sẽ bị ngăn chặn và tất cả các hành vi vi phạm đã cố gắng được nhân kernel ghi vào dmesglogcat . Khi phát triển, bạn nên sử dụng các lỗi này để tinh chỉnh phần mềm và chính sách của mình trước khi thực thi chúng. Để biết thêm chi tiết, xem Thực hiện SELinux .

SELinux cũng hỗ trợ chế độ cho phép theo từng miền trong đó các miền (quy trình) cụ thể có thể được cho phép trong khi đặt phần còn lại của hệ thống ở chế độ thực thi toàn cầu. Một miền chỉ đơn giản là một nhãn xác định một quy trình hoặc tập hợp các quy trình trong chính sách bảo mật, trong đó tất cả các quy trình được gắn nhãn với cùng một tên miền được xử lý chính xác bởi chính sách bảo mật. Chế độ cho phép trên mỗi miền cho phép ứng dụng tăng dần của SELinux vào một phần ngày càng tăng của hệ thống và phát triển chính sách cho các dịch vụ mới (trong khi vẫn giữ phần còn lại của hệ thống thực thi).

Lý lịch

Mô hình bảo mật Android dựa một phần vào khái niệm hộp cát ứng dụng . Mỗi ứng dụng chạy trong hộp cát riêng của mình. Trước Android 4.3, các hộp cát này được xác định bằng cách tạo UID Linux duy nhất cho mỗi ứng dụng tại thời điểm cài đặt. Android 4.3 trở lên sử dụng SELinux để xác định thêm ranh giới của hộp cát ứng dụng Android.

Trong Android 5.0 trở lên, SELinux được thực thi đầy đủ, dựa trên bản phát hành cho phép của Android 4.3 và thực thi một phần của Android 4.4. Với thay đổi này, Android đã chuyển từ thực thi trên một tập hợp giới hạn các tên miền quan trọng ( installd , netd , voldzygote ) sang mọi thứ (hơn 60 tên miền). Đặc biệt:

  • Mọi thứ đều ở chế độ thực thi trong Android 5.x trở lên.
  • Không có quá trình nào khác ngoài init nên chạy trong miền init .
  • Bất kỳ sự từ chối chung nào (đối với block_device , socket_device , default_service ) chỉ ra rằng thiết bị cần một miền đặc biệt.

Android 6.0 đã làm cứng hệ thống bằng cách giảm tính cho phép của chính sách của chúng tôi để bao gồm sự cách ly tốt hơn giữa người dùng, lọc IOCTL, giảm mối đe dọa đối với các dịch vụ bị lộ, thắt chặt hơn nữa các tên miền SELinux và quyền truy cập cực kỳ hạn chế /proc .

Android 7.0 đã cập nhật cấu hình SELinux để tiếp tục khóa hộp cát ứng dụng và giảm bề mặt tấn công. Bản phát hành này cũng đã phá vỡ ngăn xếp trung gian nguyên khối thành các quy trình nhỏ hơn để giảm phạm vi quyền của họ. Để biết thêm chi tiết, hãy xem Bảo vệ Android với nhiều hệ thống phòng thủ hạt nhân Linux hơnLàm cứng ngăn xếp phương tiện truyền thông .

Android 8.0 đã cập nhật SELinux để hoạt động với Treble , phân tách mã nhà cung cấp cấp thấp hơn khỏi khung hệ thống Android. Bản phát hành này đã cập nhật chính sách của SELinux để cho phép các nhà sản xuất thiết bị và nhà cung cấp SOC cập nhật các phần của chính sách, xây dựng hình ảnh của họ ( vendor.img , boot.img , v.v.), sau đó cập nhật những hình ảnh độc lập với nền tảng hoặc ngược lại.

Mặc dù có thể có phiên bản nền tảng (khung) cao hơn / mới hơn đang chạy trên thiết bị, nhưng trường hợp ngược lại không được hỗ trợ; hình ảnh nhà cung cấp ( vendor.img/odm.img ) không thể có phiên bản mới hơn nền tảng ( system.img ). Vì vậy, một phiên bản nền tảng mới hơn có thể giới thiệu các vấn đề tương thích của Selinux vì chính sách SELinux của nền tảng nằm ở phiên bản mới hơn các phần chính sách của nhà cung cấp SELinux. Mô hình Android 8.0 cung cấp phương pháp duy trì khả năng tương thích để ngăn chặn các OTA đồng thời không cần thiết.

Tài nguyên bổ sung

Để được trợ giúp xây dựng các chính sách TỰ TIN hữu ích, hãy tham khảo các tài nguyên sau: