RLBox, teknologi pengasingan perpustakaan baru yang digunakan oleh Mozilla

Logo Firefox

Penyelidik Universiti Stanford, yang Universiti California di san diego y la Universiti Texas di Austin Mereka telah berkembang satu set alat yang mereka beri nama "RLBox", bahawa boleh digunakan sebagai penebat tahap tambahan untuk menyekat kerentanan dalam perpustakaan fungsi.

RLBox bertujuan untuk menyelesaikan masalah keselamatan perpustakaan pihak ketiga tidak dipercayai yang tidak dikendalikan oleh pemaju, tetapi kerentanan di mana projek utama boleh berkompromi.

Mozilla merancang untuk menggunakan RLBox dalam binaan Firefox 74 untuk Linux dan penyusunan daripada macOS dalam Firefox 75 untuk mengasingkan pelaksanaan perpustakaan Grafit, yang bertanggungjawab untuk mewakili sumber.

Pada masa yang sama, RLBox tidak khusus untuk Firefox dan dapat digunakan untuk mengasingkan perpustakaan dalam projek sewenang-wenangnya.

Mengenai RLBox

Mekanisme operasi RLBox berkembang untuk menyusun kod C / C ++ dari perpustakaan terpencil menjadi kod WebAssembly perantaraan tahap rendah, yang kemudian dikeluarkan sebagai modul WebAssembly, yang otoritasnya ditetapkan hanya untuk mengikat modul ini (misalnya, perpustakaan untuk memproses rentetan tidak dapat membuka soket atau fail rangkaian) penukaran kod C / C ++ a WebAssembly dilakukan dengan menggunakan wasi-sdk.

Untuk pelaksanaan langsung, modul WebAssembly disusun menjadi kod mesin menggunakan penyusun Lucet dan ia berjalan dalam "nanoprocess" yang terpisah dari memori aplikasi yang lain. Penyusun Lucet didasarkan pada kod yang sama dengan enjin Cranelift JIT yang digunakan di Firefox untuk menjalankan WebAssembly.

Modul yang dipasang berfungsi di kawasan memori yang berasingan dan ia tidak mempunyai akses ke ruang alamat yang lain. Sekiranya berlaku kerentanan di perpustakaan, penyerang akan terhad dan tidak dapat mengakses kawasan memori proses utama atau memindahkan kawalan di luar kotak pasir.

API peringkat tinggi disediakan untuk pembangun, yang membolehkan anda memanggil fungsi perpustakaan dalam mod pengasingan.

The Pengawal WebAss Assembly hampir tidak memerlukan sumber tambahan dan berinteraksi dengan mereka tidak jauh lebih lambat daripada memanggil fungsi biasa (fungsi perpustakaan dijalankan dalam bentuk kod asli, dan beban berlebihan hanya berlaku ketika menyalin dan mengesahkan data dalam proses berinteraksi dengan lingkungan kotak pasir).

Fungsi perpustakaan terpencil tidak boleh dipanggil secara langsung, dan untuk mengaksesnya, anda mesti menggunakan invoke_sandbox_fungsi ().

Pada gilirannya, jika mereka perlu memanggil fungsi luaran dari perpustakaan, fungsi ini mesti ditentukan secara eksplisit menggunakan kaedah register_callback (secara lalai, RLBox menyediakan akses ke fungsi perpustakaan standard).

Untuk memastikan operasi memori yang selamat, mengasingkan pelaksanaan kod tidak mencukupi dan juga anda perlu memberikan pengesahan aliran data yang dikembalikan.

Nilai yang dihasilkan dalam persekitaran terpencil ditandai sebagai tidak boleh dipercayai, dibatasi oleh tanda tercemar, dan memerlukan pengesahan dan salinan ke memori aplikasi untuk "pembersihan."

Tanpa pembersihan, percubaan untuk menggunakan data yang tercemar dalam konteks yang memerlukan data biasa (dan sebaliknya) membawa kepada penghasilan kesalahan pada tahap penyusunan.

Argumen fungsi kecil, nilai kembali, dan struktur dilewatkan dengan menyalin antara memori proses dan memori kotak pasir. Untuk set data yang besar, memori dialokasikan dalam persekitaran terpencil dan penunjuk "kotak pasir" langsung dikembalikan ke proses utama.

Perkembangan RLBox diedarkan di bawah lesen MIT. RLBox kini menyokong Linux dan macOS dan dijangka serasi dengan Windows kemudian.

Sekiranya anda ingin mengetahui lebih lanjut mengenai teknologi baru ini yang Mozilla rancangkan untuk dilaksanakan di Firefox, anda boleh melihat perkembangannya dan juga menguji API Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.