Google va obrir un sistema per crear entorns d'espai aïllat per a C / C ++

google

Fa alguns dies Google anunci l'obertura d'el projecte de l'API Sandboxed, que permet automatitzar el procés de creació d'entorns de sandbox per a l'execució aïllada de biblioteques arbitràries en C i C ++.

L'aïllament de el codi de les biblioteques li permet protegir-se contra possibles atacs a sobre de les proporcionades per les biblioteques, Creant una barrera addicional en cas que existeixin vulnerabilitats en el seu codi que puguin ser explotades a través de manipulacions amb les dades externes que ingressen a la biblioteca. El codi està obert sota la llicència Apache 2.0.

el aislamiento es realitza utilitzant dins el runtime de Sandbox2, En el qual s'utilitzen els espais de noms, cgroups i seccomp-BPF.

El codi lliurat a la sandbox que s'executa en un procés separat, per al qual l'accés a les trucades i recursos de sistema, Així com arxius i connexions de xarxa, és limitat.

Els processos obtenen accés només a les capacitats de el sistema que requereixen directament per executar el codi aïllat.

Sandbox2 defineix els components per a executar el proceso, aplicar les regles d'aïllament i recolzar l'execució posterior.

Sandbox2 es pot usar per separat de l'API de Sandbox per aïllar no només biblioteques, sinó també processos arbitraris.

A més d'augmentar la protecció, un punt positiu en l'eliminació de el codi en processos separats és la possibilitat d'una regulació separada dels límits en el consum de memòria de la biblioteca i la CPU, així com la protecció contra falles: una falla en la biblioteca no provoca el col·lapse de tota l'aplicació.

Sobre Sandboxed API

Sandboxed API és un complement de Sandbox2 que simplifica el transport de biblioteques existents perquè s'executin en mode aïllat.

Sandboxed API proporciona una interfície de programari intermèdia que li permet executar el codi de la biblioteca en un entorn de sandbox, Així com organitzar una crida a una biblioteca en un entorn de sandbox i garantir el lliurament dels resultats de la biblioteca a el programa principal.

Se accedeix a la biblioteca aïllada a través d'un RPC especialitzat basat en el protocol ProtoBuffs.

A els desenvolupadors de biblioteques se'ls ofereix un conjunt d'opcions que permeten l'accés a variables, Descriptors d'arxius, buffers i funcions de biblioteca aïllades des de l'aplicació base, incloses eines per a la sincronització automàtica i controlada de la memòria per compartir arranjaments i estructures.

sapi-overview

Quan una biblioteca de programari que analitza aquestes dades és prou complexa, pot ser víctima de certs tipus de vulnerabilitats de seguretat: errors de corrupció de memòria o altres tipus de problemes relacionats amb la lògica d'anàlisi (per exemple, problemes de recorregut de ruta ). Aquestes vulnerabilitats poden tenir serioses implicacions de seguretat.

A més, es proporciona una API per monitoritzar l'operació de processos aïllats i reiniciar-en cas de falles.

Per a la biblioteca aïllada, es genera automàticament un codi amb anotacions de les funcions aïllades per al sistema d'acoblament Bazel i la interfície de el programa (SAPI) per a la interacció entre els processos bàsics i aïllats.

Podeu trobar l'també ha de crear un arxiu de capçalera amb regles d'aïllament que defineixin totes les trucades i operacions permeses de sistema (Lectura, escriptura, arxius oberts, accés a el temps, la capacitat d'instal·lar controladors de senyals, suport per a l'assignació de memòria a través de malloc, etc.).

Els arxius i directoris als quals la biblioteca ha de tenir accés es determinen per separat.

Instal·lació

Actualment, el projecte està disponible només per a Linux, però en el futur prometen afegir suport per als sistemes macOS i BSD, i en el llarg termini, i per a Windows. si vols instal·lar sandboxed api pots seguir les instruccions donades en aquest enllaç.

Dels plans, també s'assenyala la possibilitat d'aïllament de biblioteques en llenguatges diferents de C i C ++, suport per al runtime addicional per a l'aïllament (Per exemple, basat en virtualització de maquinari) i la possibilitat d'usar CMake i altres sistemes d'acoblament (el suport ara està limitat a sistema de compilació de Bazel).

font: https://security.googleblog.com


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.