Google a deschis un sistem pentru a crea medii de tip sandbox pentru C / C ++

Google

Acum câteva zile Google a anunțat deschiderea proiectului Sandboxed APIvă permite să automatizați procesul de creare a sandbox-ului pentru executarea izolată a bibliotecilor arbitrare în C și C ++.

Izolarea codului dvs. din biblioteci permite protejarea împotriva posibilelor atacuri asupra mânerelor furnizate de biblioteci, creând o barieră suplimentară în cazul în care există vulnerabilități în codul dvs. care pot fi exploatate prin manipulări cu datele externe care intră în bibliotecă. Codul este deschis sub licența Apache 2.0.

Izolareasau se face folosind în timpul de rulare Sandbox2, în care se utilizează spațiile de nume, grupurile de grupuri și seccomp-bpf.

Codul livrat în sandbox care rulează într-un proces separat, pentru care accesul la apeluri și resurse de sistem, precum și fișierele și conexiunile de rețea, sunt limitate.

Procesele au acces doar la capabilitățile sistemului care sunt necesare direct pentru a executa cod izolat.

Sandbox2 definește componentele pentru a rula procesulsau, aplicați regulile de izolare și susțineți execuția ulterioară.

Cutie cu nisip2 poate fi utilizat separat de API-ul Sandbox pentru a izola nu numai bibliotecile, ci și procesele arbitrare.

În plus față de creșterea protecției, un punct pozitiv în eliminarea codului în procese separate este posibilitatea unei reglementări separate a limitelor consumului de memorie al bibliotecii și al procesorului, precum și protecția împotriva eșecurilor: o defecțiune în biblioteca nu provoacă blocarea întregii aplicații.

Despre API Sandboxed

Sandboxed API este un plugin pentru Sandbox2 ceea ce simplifică transportul bibliotecilor existente pentru a rula în mod izolat.

API Sandboxed oferă o interfață software intermediară care vă permite să rulați codul bibliotecii într-un mediu sandboxprecum și organizarea unui apel către o bibliotecă într-un mediu sandbox și asigurarea livrării rezultatelor bibliotecii către programul principal.

Se accesează biblioteca izolată printr-un RPC specializat bazat pe protocolul ProtoBuffs.

A dezvoltatorilor de biblioteci li se oferă un set de opțiuni care permit accesul la variabile, descriptori de fișiere, tampoane și funcții de bibliotecă izolate de aplicația de bază, inclusiv instrumente pentru sincronizarea automată și controlată a memoriei pentru partajarea matricelor și structurilor.

sapi-prezentare generală

Atunci când o bibliotecă software care analizează astfel de date este suficient de complexă, poate fi victima anumitor tipuri de vulnerabilități de securitate: erori de corupere a memoriei sau alte tipuri de probleme legate de logica analizei (de exemplu, probleme de parcurgere a căilor).). Aceste vulnerabilități pot avea implicații serioase pentru securitate.

În plus, Un API este furnizat pentru a monitoriza funcționarea proceselor izolate și a le reporni în caz de eșec.

Pentru biblioteca izolată, codul de adnotări al funcțiilor izolate este generat automat pentru sistemul de asamblare Bazel și interfața programului (SAPI) pentru interacțiunea dintre procesele de bază și cele izolate.

Dezvoltatorul trebuie, de asemenea, să creeze un fișier antet cu reguli de izolare care să definească toate apelurile și operațiunile de sistem permise (citiți, scrieți, deschideți fișiere, acces la timp, posibilitatea de a instala dispozitive de gestionare a semnalelor, suport pentru alocarea memoriei prin malloc etc.).

Fișierele și directoarele la care ar trebui să aibă acces biblioteca sunt determinate separat.

Instalare

În prezent, proiectul este disponibil doar pentru Linux, dar pe viitor promit să adauge suport pentru sistemele macOS și BSD, și pe termen lung și pentru Windows. da dacă doriți să instalați API-ul sandboxed, puteți urma instrucțiunile date în acest link.

Dintre planuri, se menționează, de asemenea capacitatea de a izola bibliotecile în alte limbi decât C și C ++, suport suplimentar de runtime pentru izolare (de exemplu, bazat pe virtualizarea hardware) și capacitatea de a utiliza CMake și alte sisteme de asamblare (suportul este acum limitat la sistemul de construcție Bazel).

Fuente: https://security.googleblog.com


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.