Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Kemampuan Ambien

Kemampuan memungkinkan proses Linux untuk melepaskan sebagian besar hak istimewa seperti root sambil mempertahankan subset hak istimewa yang mereka perlukan untuk menjalankan fungsinya. Implementasi asli dari kemampuan membuat proses fork + exec tidak mungkin mewarisi kemampuan kecuali file yang sedang dieksekusi memiliki kemampuan file yang dikonfigurasi. Kemampuan file, pada gilirannya, menghadirkan risiko keamanan karena proses apa pun yang menjalankan file dengan kapabilitas file akan dapat memperoleh kapabilitas tersebut.

Kemampuan ambien memungkinkan layanan sistem yang diluncurkan oleh init untuk mengonfigurasi kapabilitas dalam file .rc mereka, membawa konfigurasi ke dalam satu file alih-alih memecah konfigurasi di file fs_config.c . Ini berarti bahwa untuk layanan apa pun yang diluncurkan oleh init, Anda dapat menggunakan file .rc terkait dengan layanan tersebut untuk mengonfigurasi kapabilitas layanan tersebut.

Kapabilitas ambien adalah mekanisme yang disukai untuk menyetel kapabilitas untuk layanan yang diluncurkan oleh init (metode ini menyimpan semua aspek untuk konfigurasi layanan dalam satu file .rc ). Kami merekomendasikan menggunakan kapabilitas ambient daripada mengonfigurasi kapabilitas sistem file menggunakan bagian caps di file config.fs .

Saat mengatur kapabilitas untuk layanan yang tidak diluncurkan oleh init , lanjutkan untuk mengkonfigurasi kapabilitas sistem file menggunakan fs_config.c .

Mengaktifkan kemampuan ambien

Untuk mengaktifkan kapabilitas ambien untuk layanan tertentu, gunakan kata kunci capabilities di init. Untuk detail bahasa init saat ini, lihat init README.md .

Misalnya, untuk mengaktifkan kapabilitas ambien untuk wificond layanan AOSP, file .rc untuk layanan wificond menyiapkan pengguna dan grup yang sesuai dan memberikan layanan kapabilitas yang ditentukan menggunakan kata kunci capabilities :

service wificond /system/bin/wificond
    class main
    user wifi
    group wifi net_raw net_admin
    capabilities NET_RAW NET_ADMIN

Implementasi referensi

Implementasi referensi adalah kernel umum Android https://android.googlesource.com/kernel/common/

Tambalan yang diperlukan

Tambalan yang diperlukan telah di-backport ke semua cabang kernel umum Android yang relevan.

Patch kemampuan ambien utama https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=58319057b7847667f0c9585b9de0e8932b0fdb08 telah di-backport di:

Perbaikan keamanan kecil https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7f76ea2ef6739ee484a165ffbac98deb855d3d3 telah di-backport di:

Validasi

Pengujian unit bionik mencakup pengujian unit untuk kemampuan ambien. Selain itu, menggunakan kata kunci "kapabilitas" di Android init untuk suatu layanan, lalu memeriksa bahwa layanan tersebut mendapatkan kapabilitas yang diharapkan akan memungkinkan pengujian waktu proses fitur ini.