Google a ouvert un système pour créer des environnements sandbox pour C / C ++

Google

Ça fait quelques jours Google a annoncé l'ouverture du projet d'API Sandboxed, qui vous permet d'automatiser le processus de création de sandbox pour l'exécution isolée de bibliothèques arbitraires en C et C ++.

Isoler votre code des bibliothèques permet de se protéger contre d'éventuelles attaques sur les poignées fournies par les bibliothèques, créant une barrière supplémentaire au cas où il y aurait des vulnérabilités dans votre code qui pourraient être exploitées par des manipulations avec les données externes qui entrent dans la bibliothèque. Le code est ouvert sous la licence Apache 2.0.

L'isolementou cela se fait en utilisant dans le runtime Sandbox2, dans lequel les espaces de noms, les groupes de contrôle et seccomp-bpf sont utilisés.

Le code livré au bac à sable qui s'exécute dans un processus séparé, pour lequel l'accès aux appels système et aux ressources, ainsi que les fichiers et les connexions réseau, est limité.

Les processus n'ont accès qu'aux capacités du système qui sont directement requises pour exécuter du code isolé.

Sandbox2 définit les composants pour exécuter le processusou appliquez les règles d'isolement et prenez en charge l'exécution suivante.

Bac à sable2 il peut être utilisé séparément de l'API Sandbox pour isoler non seulement les bibliothèques, mais également les processus arbitraires.

Outre l'augmentation de la protection, un point positif dans l'élimination du code dans des processus séparés est la possibilité d'une régulation séparée des limites sur la consommation mémoire de la bibliothèque et du CPU, ainsi que la protection contre les pannes: une panne dans la bibliothèque ne provoque pas le blocage de l'ensemble de l'application.

À propos de l'API Sandbox

L'API Sandbox est un plugin Sandbox2 ce qui simplifie le transport des bibliothèques existantes pour s'exécuter en mode isolé.

API en bac à sable fournit une interface logicielle intermédiaire qui vous permet d'exécuter le code de la bibliothèque dans un environnement sandboxainsi que d'organiser un appel à une bibliothèque dans un environnement sandbox et d'assurer la livraison des résultats de la bibliothèque au programme principal.

Se accède à la bibliothèque isolée via un RPC spécialisé basé sur le protocole ProtoBuffs.

A les développeurs de bibliothèques se voient proposer un ensemble d'options permettant d'accéder aux variables, des descripteurs de fichiers, des tampons et des fonctions de bibliothèque isolés de l'application de base, y compris des outils de synchronisation automatique et contrôlée de la mémoire pour le partage de tableaux et de structures.

sapi-vue d'ensemble

Lorsqu'une bibliothèque logicielle qui analyse de telles données est suffisamment complexe, elle peut être victime de certains types de vulnérabilités de sécurité: erreurs de corruption de mémoire ou autres types de problèmes liés à la logique d'analyse (par exemple, problèmes de traversée de chemin).). Ces vulnérabilités peuvent avoir de graves implications en matière de sécurité.

En outre, Une API est fournie pour surveiller le fonctionnement des processus isolés et les redémarrer en cas d'échec.

Pour la bibliothèque isolée, le code d'annotations des fonctions isolées est automatiquement généré pour le système d'assemblage Bazel et l'interface de programme (SAPI) pour l'interaction entre les processus de base et isolés.

Le développeur doit également créer un fichier d'en-tête avec des règles d'isolement qui définissent tous les appels et opérations système autorisés (lecture, écriture, ouverture de fichiers, accès au temps, possibilité d'installer des gestionnaires de signaux, prise en charge de l'allocation de mémoire via malloc, etc.).

Les fichiers et répertoires auxquels la bibliothèque doit avoir accès sont déterminés séparément.

installation

Actuellement, le projet n'est disponible que pour Linux, mais à l'avenir, ils promettent d'ajouter la prise en charge des systèmes macOS et BSD, et à long terme, et pour Windows. Oui vous voulez installer l'api en bac à sable, vous pouvez suivre les instructions données dans ce lien

Parmi les plans, il est également noté la possibilité d'isoler des bibliothèques dans des langages autres que C et C ++, support d'exécution supplémentaire pour l'isolation (par exemple, basé sur la virtualisation matérielle) et la possibilité d'utiliser CMake et d'autres systèmes d'assemblage (le support est maintenant limité au système de construction Bazel).

source: https://security.googleblog.com


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.