RLBox, teknologi isolasi perpustakaan baru yang digunakan oleh Mozilla

Logo Firefox

Peneliti Universitas Stanford, yang Universitas California di san diego y la Universitas Texas di Austin Mereka telah berkembang satu set alat yang mereka beri nama "RLBox", bahwa dapat digunakan sebagai tingkat isolasi tambahan untuk memblokir kerentanan di pustaka fungsi.

RLBox bertujuan untuk memecahkan masalah keamanan perpustakaan pihak ketiga tidak tepercaya yang tidak dikontrol oleh pengembang, tetapi kerentanan yang dapat disusupi oleh proyek utama.

Mozilla berencana menggunakan RLBox di Firefox 74 build untuk Linux dan kompilasi dari macOS di Firefox 75 untuk mengisolasi eksekusi pustaka Grafit, yang bertanggung jawab mewakili sumber.

Pada saat yang sama, RLBox tidak khusus untuk Firefox dan dapat digunakan untuk mengisolasi perpustakaan apa pun dalam proyek sewenang-wenang.

Tentang RLBox

Mekanisme operasi RLBox bermuara pada kompilasi kode C / C ++ dari perpustakaan terisolasi menjadi kode WebAssembly perantara level rendah, yang kemudian dikeluarkan sebagai modul WebAssembly, yang otoritasnya diatur untuk mengikat hanya ke modul ini (misalnya, pustaka untuk memproses string tidak dapat membuka soket atau file jaringan) Konversi kode C / C ++ a WebAssembly dilakukan menggunakan wasi-sdk.

Untuk eksekusi langsung, modul WebAssembly dikompilasi ke dalam kode mesin menggunakan kompiler Lucet dan berjalan dalam "proses nano" terpisah dari sisa memori aplikasi. Kompiler Lucet didasarkan pada kode yang sama dengan mesin Cranelift JIT yang digunakan di Firefox untuk menjalankan WebAssembly.

Modul yang dirakit bekerja di area memori terpisah dan tidak memiliki akses ke ruang alamat lainnya. Dalam kasus mengeksploitasi kerentanan di perpustakaan, penyerang akan dibatasi dan tidak akan dapat mengakses area memori dari proses utama atau mentransfer kontrol di luar kotak pasir.

API tingkat tinggi disediakan untuk pengembang, yang memungkinkan Anda memanggil fungsi perpustakaan dalam mode isolasi.

Los Pengontrol WebAssembly hampir tidak memerlukan sumber daya tambahan dan berinteraksi dengannya tidak jauh lebih lambat daripada memanggil fungsi biasa (fungsi pustaka dijalankan dalam bentuk kode asli, dan kelebihan beban hanya terjadi saat menyalin dan memeriksa data dalam proses berinteraksi dengan kotak pasir).

Fungsi perpustakaan terisolasi tidak dapat dipanggil secara langsung, dan untuk mengaksesnya, Anda harus menggunakan lapisan panggilan_kotak_pasir ().

Pada gilirannya, jika mereka perlu memanggil fungsi eksternal dari pustaka, fungsi ini harus didefinisikan secara eksplisit menggunakan metode register_callback (secara default, RLBox menyediakan akses ke fungsi pustaka standar).

Untuk memastikan pengoperasian memori yang aman, mengisolasi eksekusi kode tidak cukup dan Anda perlu memberikan verifikasi aliran data yang dikembalikan.

Nilai yang dihasilkan dalam lingkungan terisolasi ditandai sebagai tidak dapat diandalkan, dibatasi oleh tag tercemar, dan memerlukan verifikasi dan salin ke memori aplikasi untuk "pembersihan".

Tanpa pembersihan, upaya untuk menggunakan data yang tercemar dalam konteks yang membutuhkan data reguler (dan sebaliknya) mengarah pada kesalahan yang dihasilkan pada tahap kompilasi.

Argumen fungsi kecil, nilai kembalian, dan struktur diteruskan dengan menyalin antara memori proses dan memori kotak pasir. Untuk kumpulan data yang besar, memori dialokasikan dalam lingkungan yang terisolasi dan pointer "referensi kotak pasir" langsung dikembalikan ke proses utama.

Perkembangan RLBox didistribusikan di bawah lisensi MIT. RLBox saat ini mendukung Linux dan macOS dan diharapkan kompatibel dengan Windows nanti.

Jika Anda ingin tahu lebih banyak tentang teknologi baru yang akan diterapkan Mozilla di Firefox ini, Anda dapat melihat perkembangannya sekaligus menguji API Di tautan berikut.


tinggalkan Komentar Anda

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

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  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.