Google ha aperto un sistema per creare ambienti sandbox per C / C ++

Google

Qualche giorno fa Google ha annunciato l'apertura del progetto API sandbox, che consente di automatizzare il processo di creazione della sandbox per l'esecuzione isolata di librerie arbitrarie in C e C ++.

Isolamento del codice dalle librerie permette di proteggersi da eventuali attacchi alle maniglie fornite dalle biblioteche, creando una barriera aggiuntiva nel caso in cui ci siano vulnerabilità nel codice che possono essere sfruttate tramite manipolazioni con i dati esterni che entrano nella libreria. Il codice è aperto con la licenza Apache 2.0.

L'isolamentooppure è fatto utilizzando all'interno del runtime Sandbox2, in cui vengono utilizzati gli spazi dei nomi, cgroups e seccomp-bpf.

Il codice consegnato alla sandbox che viene eseguito in un processo separato, per il quale si accede alle chiamate di sistema e alle risorse, così come i file e le connessioni di rete, è limitato.

I processi accedono solo alle funzionalità di sistema direttamente richieste per eseguire codice isolato.

Sandbox2 definisce i componenti per eseguire il processooppure, applicare le regole di isolamento e supportare la successiva esecuzione.

sandbox2 può essere utilizzato separatamente dall'API Sandbox per isolare non solo le librerie, ma anche i processi arbitrari.

Oltre ad aumentare la protezione, un punto positivo nell'eliminazione del codice in processi separati è la possibilità di una regolazione separata dei limiti sul consumo di memoria della libreria e della CPU, nonché la protezione contro i guasti: un guasto in la libreria non causa l'arresto anomalo dell'intera applicazione.

Informazioni sull'API sandbox

L'API sandbox è un plug-in Sandbox2 che semplifica il trasporto delle librerie esistenti per l'esecuzione in modalità isolata.

API sandbox fornisce un'interfaccia software intermedia che consente di eseguire il codice della libreria in un ambiente sandboxoltre a organizzare una chiamata a una libreria in un ambiente sandbox e garantire la consegna dei risultati della libreria al programma principale.

Se accede alla libreria isolata tramite un RPC specializzato basato sul protocollo ProtoBuffs.

A agli sviluppatori di librerie viene offerta una serie di opzioni che consentono l'accesso alle variabili, descrittori di file, buffer e funzioni di libreria isolate dall'applicazione di base, inclusi strumenti per la sincronizzazione automatica e controllata della memoria per la condivisione di array e strutture.

sapi-panoramica

Quando una libreria software che analizza tali dati è abbastanza complessa, può essere vittima di alcuni tipi di vulnerabilità della sicurezza: errori di danneggiamento della memoria o altri tipi di problemi relativi alla logica di analisi (ad esempio, problemi di attraversamento del percorso). Tali vulnerabilità possono avere gravi implicazioni per la sicurezza.

Inoltre, Viene fornita un'API per monitorare il funzionamento dei processi isolati e riavviarli in caso di guasti.

Per la libreria isolata, il codice delle annotazioni delle funzioni isolate viene generato automaticamente per il sistema di assemblaggio Bazel e l'interfaccia del programma (SAPI) per l'interazione tra i processi di base e isolati.

Lo sviluppatore deve anche creare un file di intestazione con regole di isolamento che definiscano tutte le chiamate di sistema e le operazioni consentite (lettura, scrittura, apertura di file, accesso al tempo, possibilità di installare gestori di segnali, supporto per l'allocazione di memoria tramite malloc, ecc.).

I file e le directory a cui la libreria dovrebbe avere accesso vengono determinati separatamente.

Installazione

Attualmente, il progetto è disponibile solo per Linux, ma in futuro promettono di aggiungere il supporto per i sistemi macOS e BSD e, a lungo termine, e per Windows. sì si desidera installare l'API in modalità sandbox è possibile seguire le istruzioni fornite in questo link

Dei piani, si nota anche la capacità di isolare le librerie in linguaggi diversi da C e C ++, supporto di runtime aggiuntivo per l'isolamento (ad es. basato sulla virtualizzazione hardware) e la capacità di utilizzare CMake e altri sistemi di assemblaggio (il supporto è ora limitato al sistema di compilazione Bazel).

fonte: https://security.googleblog.com


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.