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

Google

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

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

Izolacijaili se to radi unutar vremena izvođenja Sandbox2, u kojem se koriste imenski prostori, cgroups i seccomp-bpf.

Kôd isporučen u pješčanik koji se izvodi u zasebnom procesu, za koji je potreban pristup sistemskim pozivima i resursima, kao i datoteke i mrežne veze, ograničen je.

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

Sandbox2 definira komponente za pokretanje procesaili primijenite pravila izolacije i podržite naknadno izvršenje.

Pješčanik2 može se koristiti odvojeno od API-ja Sandbox za izoliranje ne samo knjižnica, već i proizvoljnih procesa.

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

O Sandboxed API-ju

Sandboxed API je dodatak za Sandbox2 što pojednostavnjuje transport postojećih knjižnica da se izvodi u izoliranom načinu.

Sandbox API pruža srednje programsko sučelje koje vam omogućuje pokretanje knjižničnog koda u okruženju pješčanikakao i organiziranje poziva knjižnici u okruženju pješčanika i osiguravanje dostave rezultata knjižnice glavnom programu.

Se pristupa izoliranoj knjižnici putem specijaliziranog RPC-a koji se temelji na protoBuffs protokolu.

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

sapi-pregled

Kad je softverska knjižnica koja analizira takve podatke dovoljno složena, može biti žrtva određenih vrsta sigurnosnih ranjivosti: pogrešaka u oštećenju memorije ili drugih vrsta problema povezanih s logikom analize (na primjer, problemi s zaobilaženjem puta).) Te ranjivosti mogu imati ozbiljne sigurnosne implikacije.

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

Za izoliranu biblioteku, anotacijski kod izoliranih funkcija automatski se generira za sustav 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 dopuštene sistemske pozive i operacije (čitanje, pisanje, otvaranje datoteka, pristup vremenu, mogućnost instaliranja obrađivača signala, podrška za dodjelu memorije putem malloca itd.).

Datoteke i direktoriji kojima bi knjižnica trebala imati pristup određuju se zasebno.

Montaža

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

Od planova se također napominje sposobnost izoliranja knjižnica na jezicima koji nisu C i C ++, dodatna runtime podrška za izolaciju (npr. na temelju hardverske virtualizacije) i mogućnost korištenja CMake-a i drugih sustava montaže (podrška je sada ograničena na sustav gradnje Bazel).

izvor: https://security.googleblog.com


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.