Google membuka sistem untuk membuat persekitaran kotak pasir untuk C / C ++

Google

Beberapa hari yang lalu Google mengumumkan pembukaan projek Sandboxed APIItu membolehkan anda mengautomasikan proses penciptaan kotak pasir untuk pelaksanaan perpustakaan sewenang-wenang di C dan C ++.

Mengasingkan kod anda dari perpustakaan memungkinkan untuk melindungi daripada kemungkinan serangan pada pegangan yang disediakan oleh perpustakaan, mewujudkan halangan tambahan sekiranya terdapat kerentanan dalam kod anda yang dapat dieksploitasi melalui manipulasi dengan data luaran yang memasuki perpustakaan. Kod dibuka di bawah lesen Apache 2.0.

Pengasinganatau ia dilakukan dengan menggunakan dalam jangka masa Sandbox2, di mana ruang nama, kumpulan, dan seccomp-bpf digunakan.

Kod dihantar ke kotak pasir yang dijalankan dalam proses yang terpisah, di mana akses ke panggilan sistem dan sumber daya, serta sambungan fail dan rangkaian, adalah terhad.

Proses memperoleh akses hanya ke kemampuan sistem yang secara langsung diperlukan untuk melaksanakan kod terpencil.

Kotak pasir mentakrifkan komponen untuk menjalankan prosesatau, menerapkan peraturan pengasingan dan menyokong pelaksanaan berikutnya.

Kotak Pasir2 ia boleh digunakan secara terpisah dari Sandbox API untuk mengasingkan bukan sahaja perpustakaan, tetapi juga proses sewenang-wenangnya.

Selain meningkatkan perlindungan, titik positif dalam penghapusan kod dalam proses terpisah adalah kemungkinan peraturan terpisah mengenai batasan penggunaan memori perpustakaan dan CPU, serta perlindungan terhadap kegagalan: kegagalan dalam perpustakaan tidak menyebabkan keseluruhan aplikasi rosak.

Mengenai Sandboxed API

Sandboxed API adalah pemalam untuk Sandbox2 yang memudahkan pengangkutan perpustakaan yang ada untuk dijalankan dalam mod terpencil.

API kotak pasir menyediakan antara muka perisian perantaraan yang membolehkan anda menjalankan kod perpustakaan di persekitaran kotak pasirserta mengatur panggilan ke perpustakaan di lingkungan kotak pasir dan memastikan penghantaran hasil perpustakaan ke program utama.

Se mengakses perpustakaan terpencil melalui RPC khusus berdasarkan protokol ProtoBuffs.

A pembangun perpustakaan ditawarkan satu set pilihan yang membolehkan akses kepada pemboleh ubah, deskriptor fail, penyangga dan fungsi perpustakaan yang diasingkan dari aplikasi asas, termasuk alat untuk penyegerakan memori automatik dan terkawal untuk berkongsi susunan dan struktur.

gambaran keseluruhan sapi

Apabila perpustakaan perisian yang menganalisis data tersebut cukup kompleks, ia dapat menjadi mangsa kerentanan keselamatan tertentu: ralat kerosakan memori atau jenis masalah lain yang berkaitan dengan logik analisis (misalnya, masalah melintasi jalan).). Kerentanan tersebut boleh membawa implikasi keselamatan yang serius.

Selain itu, API disediakan untuk memantau operasi proses terpencil dan memulakannya semula sekiranya berlaku kegagalan.

Untuk perpustakaan terpencil, kod anotasi fungsi terpencil dihasilkan secara automatik untuk sistem pemasangan Bazel dan antara muka program (SAPI) untuk interaksi antara proses asas dan terpencil.

Pembangun juga mesti membuat fail header dengan peraturan pengasingan yang menentukan semua panggilan dan operasi sistem yang dibenarkan (baca, tulis, buka fail, akses ke masa, kemampuan memasang pengendali isyarat, sokongan untuk peruntukan memori melalui malloc, dll.).

Fail dan direktori yang harus diakses oleh perpustakaan ditentukan secara berasingan.

Pemasangan

Pada masa ini, projek ini hanya tersedia untuk Linux, tetapi di masa depan mereka berjanji untuk menambahkan sokongan untuk sistem macOS dan BSD, dan dalam jangka panjang, dan untuk Windows. Ya anda ingin memasang api kotak pasir anda boleh mengikuti arahan yang diberikan dalam pautan ini.

Dari rancangan itu, ia juga diperhatikan keupayaan untuk mengasingkan perpustakaan dalam bahasa selain C dan C ++, sokongan jangka masa tambahan untuk pengasingan (mis. berdasarkan virtualisasi perkakasan) dan kemampuan untuk menggunakan CMake dan sistem pemasangan lain (sokongan kini terhad pada sistem bazel build).

Fuente: https://security.googleblog.com


Tinggalkan komen anda

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

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  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.