Google je otvorio sistem za stvaranje zaštićenih okruženja za C / C ++

Google

Prije nekoliko dana Google je najavio otvaranje Sandboxed API projektaque Omogućava vam automatizaciju procesa stvaranja pješčanika za izolirano izvršavanje proizvoljnih knjižnica u C i C ++.

Izoliranje vašeg koda iz biblioteka omogućava zaštitu od mogućih napada na ručke koje pružaju biblioteke, stvarajući dodatnu prepreku u slučaju da u vašem kodu postoje ranjivosti koje se mogu iskoristiti kroz manipulacije s vanjskim podacima koji ulaze u knjižnicu. Kôd je otvoren pod licencom Apache 2.0.

Izolacijaili se obavlja pomoću Sandbox2 runtime, u kojem se koriste imenski prostori, cgroups i seccomp-bpf.

Kôd isporučen u zaštićenom okruženju koji se izvodi u odvojenom procesu, za koji postoji pristup sistemskim pozivima i resursima, kao i datoteke i mrežne veze, je ograničen.

Procesi dobivaju pristup samo sistemskim mogućnostima koje su izravno potrebne za izvršavanje izoliranog koda.

Sandbox2 definira komponente za pokretanje procesaili, primijeniti pravila izolacije i podržati naknadno izvršenje.

sandbox2 može se koristiti odvojeno od Sandbox API-ja za izolaciju ne samo biblioteka, već i proizvoljnih procesa.

Pored povećane zaštite, pozitivna poanta u uklanjanju koda u odvojenim procesima je i mogućnost zasebne regulacije ograničenja potrošnje memorije biblioteke i CPU-a, kao i zaštita od kvarova: kvar u biblioteka ne uzrokuje pad cijele aplikacije.

O Sandboxed API-ju

Sandboxed API je dodatak za Sandbox2 što pojednostavljuje transport postojećih biblioteka da se izvodi u izoliranom načinu.

API sandboxing pruža srednje softversko sučelje koje vam omogućava pokretanje koda biblioteke u okruženju sa zaštićenim okruženjemkao i organiziranje poziva biblioteci u okruženju pješčanika i osiguravanje isporuke rezultata biblioteke glavnom programu.

Se pristupa izoliranoj biblioteci kroz specijalizirani RPC zasnovan na protoBuffs protokolu.

A programerima biblioteka nudi se niz opcija koje omogućavaju pristup varijablama, deskriptori datoteka, međuspremnici i funkcije knjižnice izolirane od osnovne aplikacije, uključujući alate za automatsku i kontroliranu sinhronizaciju memorije za dijeljenje nizova i struktura.

sapi-pregled

Kada je softverska biblioteka koja analizira takve podatke dovoljno složena, može postati žrtvom određenih vrsta sigurnosnih ranjivosti: grešaka u oštećenju memorije ili drugih vrsta problema povezanih s logikom analize (na primjer, problemi s prelaskom puta). Te ranjivosti mogu imati ozbiljne sigurnosne implikacije.

Takođe, Predviđen je API za praćenje rada izoliranih procesa i njihovo ponovno pokretanje u slučaju kvarova.

Za izoliranu biblioteku, kod napomena izoliranih funkcija automatski se generira za sistem sklopa Bazel i programsko sučelje (SAPI) za interakciju između osnovnih i izoliranih procesa.

Programer također mora stvoriti datoteku zaglavlja s pravilima izolacije koja definiraju sve dozvoljene sistemske pozive i operacije (čitanje, pisanje, otvaranje datoteka, pristup vremenu, mogućnost instaliranja obrađivača signala, podrška za dodjelu memorije putem malloc-a, itd.).

Datoteke i direktoriji kojima bi biblioteka trebala imati pristup određuju se odvojeno.

Instalacija

Trenutno je projekt dostupan samo za Linux, ali u budućnosti obećavaju dodati podršku za macOS i BSD sisteme, a dugoročno i za Windows. Da ako želite instalirati zaštićeni api, možete slijediti dane upute na ovom linku.

Od planova se takođe napominje mogućnost izolacije biblioteka na jezicima koji nisu C i C ++, dodatna runtime podrška za izolaciju (npr. zasnovano na hardverskoj virtualizaciji) i mogućnost korištenja CMake-a i drugih sistema montaže (podrška je sada ograničena na Bazel sistem gradnje).

Izvor: https://security.googleblog.com


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.