Rust sudah menjadi favorit untuk pengembangan Android

Google meluncurkan baru saja inklusi bahasa pemrograman Rust di antara bahasa yang diizinkan untuk pengembangan Android.

Karena kompiler Rust disertakan dalam pohon sumber Android pada tahun 2019, tetapi dukungan bahasanya tetap bersifat eksperimental. Beberapa komponen Rust pertama yang dikirimkan ke Android adalah implementasi baru dari mekanisme komunikasi antar proses Binder dan tumpukan Bluetooth.

Implementasi Rust dilakukan sebagai bagian dari proyek untuk memperkuat keamanan, promosikan teknik pengkodean yang aman dan tingkatkan efisiensi dalam mengidentifikasi masalah saat bekerja dengan memori di Android. Teramati bahwa sekitar 70% dari semua kerentanan berbahaya yang teridentifikasi di Android disebabkan oleh kesalahan saat bekerja dengan memori.

Penggunaan bahasa Rust, bahwa berfokus pada manajemen memori yang aman dan menyediakan manajemen memori otomatis, ini akan mengurangi risiko kerentanan yang disebabkan oleh kesalahan selama penanganan memori, seperti mengakses area memori setelah dibebaskan dan melewati batas buffer.

Penanganan memori yang aman dipastikan di Rust pada waktu kompilasi dengan memeriksa referensi, melacak kepemilikan objek dan umur objek (cakupan), serta mengevaluasi kebenaran akses ke memori pada waktu proses.

Karat juga menyediakan sarana untuk melindungi dari luapan integer, memerlukan inisialisasi nilai variabel wajib sebelum digunakan, menangani kesalahan dengan lebih baik di pustaka standar, mengadopsi konsep referensi dan variabel yang tidak dapat diubah secara default, dan menawarkan penulisan statis yang kuat untuk meminimalkan kesalahan logika.

Di Android, pengelolaan memori aman disediakan dalam bahasa Kotlin dan Java sudah didukung, tetapi tidak cocok untuk mengembangkan komponen sistem karena biaya overhead yang berat.

Rust memungkinkan untuk mencapai kinerja yang mendekati bahasa C dan C ++, memungkinkannya digunakan untuk mengembangkan bagian tingkat rendah dari platform dan komponen untuk berinteraksi dengan perangkat keras.

Untuk memastikan keamanan kode C dan C ++, Android menggunakan isolasi sandbox, analisis statis, dan pengujian fuzzing. Kemampuan isolasi kotak pasir terbatas dan telah mencapai batas kemampuannya (fragmentasi lebih lanjut dalam proses tidak praktis dari sudut pandang konsumsi sumber daya).

Di antara batasan penggunaan sandbox, mereka menyebutkan overhead yang tinggi dan konsumsi memori yang lebih tinggi yang disebabkan oleh kebutuhan untuk menghasilkan proses baru, serta latensi tambahan yang terkait dengan penggunaan IPC.

Pada saat yang sama, kotak pasir tidak menghilangkan kerentanan dalam kode, tetapi hanya mengurangi risiko dan memperumit serangan, karena eksploitasi memerlukan identifikasi tidak hanya satu, tetapi beberapa kerentanan.

Metode pengujian kode terbatas karena, untuk mendeteksi kesalahan, Anda perlu membuat kondisi untuk manifestasi masalah. Tidak mungkin untuk mencakup semua opsi yang memungkinkan, begitu banyak kesalahan yang tidak diperhatikan.

Untuk proses sistem di Android, Google menganut 'aturan dua', menurut dimana kode tambahan apapun tidak boleh memenuhi lebih dari dua dari tiga kondisi- Bekerja dengan data masukan yang belum diverifikasi, gunakan bahasa pemrograman yang tidak aman (C / C ++), dan jalankan tanpa isolasi kotak pasir keras (dengan hak istimewa yang lebih tinggi).

Mengikuti aturan ini bahwa kode untuk memproses data eksternal harus dikurangi menjadi hak istimewa paling rendah (terisolasi) atau ditulis dalam bahasa pemrograman yang aman.

Google tidak bermaksud untuk menulis ulang kode tersebut C / C ++ ada di Rust, tapi dia berencana menggunakan bahasa ini untuk mengembangkan kode baru.

Masuk akal untuk menggunakan Rust untuk kode baru, karena secara statistik sebagian besar kesalahan muncul dalam kode baru atau yang baru saja diubah. Secara khusus, sekitar 50% kesalahan memori yang terdeteksi di Android terdeteksi dalam kode yang ditulis kurang dari setahun yang lalu.

sumber: https://security.googleblog.com


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Miguel Rodriguez dijo

    Ironisnya, ketika pesaing terbesar Anda akhirnya mengadopsi sesuatu yang Anda bantu kembangkan untuk tujuan Anda sendiri… Rust sedang naik daun.