4 poin oleh GN⁺ 2024-04-06 | Belum ada komentar. | Bagikan ke WhatsApp
  • Sandbox V8 adalah sandbox ringan dalam-proses untuk mesin V8
  • Kini sudah keluar dari tahap eksperimental dan dimasukkan ke dalam Vulnerability Reward Program (VRP) Chrome
    • Masih ada masalah keamanan yang harus diselesaikan, dan Chrome versi 123 dapat dianggap sebagai rilis "beta" dari sandbox ini

Motivasi

  • Keamanan memori tetap menjadi masalah penting, dan semua eksploit Chrome yang ditemukan dalam 3 tahun terakhir berawal dari kerentanan korupsi memori di V8
  • Sebanyak 60% dari kerentanan ini terjadi di V8, tetapi sebagian besar bukan bug korupsi memori yang "tipikal", melainkan masalah logika yang halus
  • Sebagian besar solusi keamanan memori saat ini tidak dapat diterapkan ke V8, dan peralihan ke bahasa yang aman terhadap memori seperti Rust atau fitur perangkat keras seperti memory tagging juga tidak membantu tantangan keamanan V8

Sandbox (heap) V8

  • Ide dasar sandbox ini adalah mengisolasi memori heap V8 agar korupsi memori tidak "menyebar" ke bagian lain dari proses
  • Ini dapat diimplementasikan dengan dukungan perangkat keras, tetapi karena saat ini tidak ada fitur perangkat keras yang sesuai, implementasinya berbasis perangkat lunak
  • Sandbox mengganti tipe data yang dapat mengakses seluruh memori eksternal dengan alternatif yang "kompatibel dengan sandbox"
  • Hanya heap V8 di dalam sandbox yang berada di dalam sandbox, dan ini mirip dengan model sandboxing milik WebAssembly

Performa

  • Keunggulan utama pendekatan sandbox adalah biayanya pada dasarnya rendah
  • Overhead akibat sandbox terutama berasal dari indirection tabel pointer untuk objek eksternal, dan saat ini overhead-nya kurang dari 1% pada workload umum

Pengujian

  • Kemampuan untuk menguji batas keamanan pada praktiknya berarti kemampuan untuk menguji secara manual dan otomatis apakah jaminan keamanan benar-benar tetap terjaga
  • Sandbox V8 memenuhi semuanya: model penyerang yang jelas, cara meniru penyerang, dan cara menentukan secara otomatis ketika batas keamanan gagal

Penggunaan

  • Sandbox V8 harus diaktifkan/dinonaktifkan saat build time menggunakan build flag v8_enable_sandbox.
  • Hanya tersedia pada sistem 64-bit, dan saat ini perlu mencadangkan ruang alamat virtual sebesar 1 terabyte.
  • Sandbox V8 sudah diaktifkan secara default sejak sekitar 2 tahun lalu pada Chrome versi 64-bit untuk Android, ChromeOS, Linux, macOS, dan Windows.

Kesimpulan

  • Sandbox V8 adalah mekanisme keamanan baru yang dirancang untuk mencegah korupsi memori di V8 memengaruhi memori lain dalam proses
  • Teknologi keamanan memori saat ini sebagian besar tidak dapat diterapkan pada mesin JavaScript yang sangat dioptimalkan, tetapi efektif untuk melindungi permukaan serangan sandbox V8
  • Sandbox ini adalah langkah penting menuju keamanan memori

Opini GN⁺

  • Sandbox V8 adalah respons modern terhadap kerentanan korupsi memori, dan memberikan jawaban atas masalah yang tidak dapat diselesaikan oleh teknologi keamanan memori yang ada
  • Dengan mempertimbangkan kompleksitas mesin JavaScript, sandbox ini berperan penting dalam memperkuat batas keamanan dan meningkatkan keamanan memori
  • Rendahnya overhead performa sandbox dapat menjadi hal yang menarik bagi para pengembang, dan ini akan membantu adopsi sandbox secara luas
  • Namun, teknologi sandbox juga berpotensi memperkenalkan kerentanan keamanan yang sepenuhnya baru, dan hal ini harus dikelola melalui pemantauan dan pengujian berkelanjutan
  • Implementasi sandbox yang efektif berperan penting dalam mencegah penyerang menyebarkan korupsi memori ke bagian lain sistem, dan ini akan berkontribusi pada penguatan keamanan web

Belum ada komentar.

Belum ada komentar.