Sebuah proyek untuk mengimplementasikan utilitas sudo dan su di Rust

ISRG (Internet Security Research Group), yang merupakan pendiri proyek Let's Encrypt dan mempromosikan HTTPS dan pengembangan teknologi untuk meningkatkan keamanan Internet, mempresentasikan proyek Sudo-rs untuk membuat implementasi utilitas sudo dan su yang ditulis dalam Karat yang memungkinkan Anda menjalankan perintah atas nama pengguna lain. Di bawah lisensi Apache 2.0 dan MIT, versi pra-rilis Sudo-rs telah diterbitkan, belum siap untuk penggunaan umum. Proyek yang mulai dikerjakan pada Desember 2022 ini dijadwalkan selesai pada September 2023.

Pekerjaan saat ini difokuskan pada penerapan fitur di Sudo-rs yang memungkinkannya digunakan sebagai pengganti transparan untuk sudo dalam kasus penggunaan biasa (konfigurasi sudoers default di Ubuntu, Fedora, dan Debian). Di masa mendatang, ada rencana untuk membuat pustaka yang memungkinkan penyematan fungsionalitas sudo ke dalam program lain dan menyediakan metode konfigurasi alternatif yang menghindari penguraian sintaks file konfigurasi sudoers. Berdasarkan fungsionalitas sudo yang diimplementasikan, varian utilitas su juga akan disiapkan. Selain itu, paket tersebut menyebutkan dukungan untuk SELinux, AppArmor, LDAP, alat audit, kemampuan untuk mengautentikasi tanpa menggunakan PAM, dan penerapan semua opsi baris perintah sudo.

Menurut Microsoft dan Google, sekitar 70% kerentanan disebabkan oleh manajemen memori yang tidak aman. Diharapkan dengan menggunakan bahasa Rust untuk mengembangkan su dan sudo akan mengurangi risiko kerentanan yang disebabkan oleh penanganan memori yang tidak aman dan menghilangkan terjadinya kesalahan seperti mengakses area memori setelah dibebaskan dan kelebihan buffer. Sudo-rs sedang dikembangkan oleh para insinyur dari Ferrous Systems dan Tweede Golf dengan dana yang disediakan oleh perusahaan seperti Google, Cisco, Amazon Web Services.

Penanganan aman-memori disediakan di Rust pada waktu kompilasi melalui pemeriksaan referensi, melacak kepemilikan objek dan masa pakai objek (cakupan), serta melalui evaluasi kebenaran akses memori selama eksekusi kode. Rust juga memberikan perlindungan terhadap integer overflow, membutuhkan inisialisasi wajib dari nilai variabel sebelum digunakan, menangani kesalahan dengan lebih baik di perpustakaan standar, menerapkan konsep referensi dan variabel yang tidak dapat diubah secara default, menawarkan pengetikan statis yang kuat untuk meminimalkan kesalahan logis.

Sumber: opennet.ru

Tambah komentar