Google heeft een systeem geopend om sandbox-omgevingen voor C / C ++ te maken

Kopen Google Reviews

Een paar dagen geleden Google kondigde de opening aan van het Sandboxed API-projectDat Hiermee kunt u het proces voor het maken van een sandbox automatiseren voor geïsoleerde uitvoering van willekeurige bibliotheken in C en C ++.

Uw code isoleren van bibliotheken biedt bescherming tegen mogelijke aanvallen op de handvatten die door de bibliotheken worden geboden, waardoor een extra barrière wordt gecreëerd voor het geval er kwetsbaarheden in uw code zijn die kunnen worden misbruikt door manipulaties met de externe gegevens die de bibliotheek binnenkomen. De code is open onder de Apache 2.0-licentie.

Het isolementof het wordt gedaan met binnen de Sandbox2-runtime, waarin de naamruimten, cgroups en seccomp-bpf worden gebruikt.

De code die wordt geleverd aan de sandbox die in een afzonderlijk proces wordt uitgevoerd, waarvoor toegang tot systeemaanroepen en bronnen, evenals bestanden en netwerkverbindingen, is beperkt.

Processen krijgen alleen toegang tot systeemcapaciteiten die direct nodig zijn om geïsoleerde code uit te voeren.

Sandbox2 definieert de componenten om het proces uit te voerenof pas de isolatieregels toe en ondersteun de daaropvolgende uitvoering.

Sandbox 2 het kan afzonderlijk van de Sandbox-API worden gebruikt om niet alleen bibliotheken, maar ook willekeurige processen te isoleren.

Naast het verhogen van de bescherming, is een positief punt bij het elimineren van de code in afzonderlijke processen de mogelijkheid van een afzonderlijke regeling van de limieten voor het geheugengebruik van de bibliotheek en de CPU, evenals de bescherming tegen storingen: een storing in de bibliotheek zorgt er niet voor dat de hele applicatie crasht.

Over Sandbox-API

Sandboxed API is een plug-in voor Sandbox2 wat het transport van bestaande bibliotheken vereenvoudigt om in geïsoleerde modus te draaien.

Sandbox-API biedt een tussenliggende software-interface waarmee u de bibliotheekcode in een sandbox-omgeving kunt uitvoerenevenals het organiseren van een oproep naar een bibliotheek in een sandbox-omgeving en het verzekeren van de levering van de bibliotheekresultaten aan het hoofdprogramma.

Se heeft toegang tot de geïsoleerde bibliotheek via een gespecialiseerde RPC op basis van het ProtoBuffs-protocol.

A bibliotheekontwikkelaars krijgen een reeks opties aangeboden die toegang tot variabelen mogelijk maken, bestandsdescriptors, buffers en bibliotheekfuncties die zijn geïsoleerd van de basistoepassing, inclusief tools voor automatische en gecontroleerde geheugensynchronisatie voor het delen van arrays en structuren.

sapi-overzicht

Wanneer een softwarebibliotheek die dergelijke gegevens analyseert, complex genoeg is, kan deze het slachtoffer worden van bepaalde soorten beveiligingsproblemen: geheugenbeschadigingsfouten of andere soorten problemen die verband houden met de analyselogica (bijvoorbeeld problemen met het doorlopen van paden). Deze kwetsbaarheden kunnen ernstige gevolgen voor de veiligheid hebben.

Bovendien heeft Er is een API beschikbaar om de werking van geïsoleerde processen te bewaken en deze bij storingen opnieuw op te starten.

Voor de geïsoleerde bibliotheek wordt automatisch de annotatiecode van de geïsoleerde functies gegenereerd voor het Bazel-assemblagesysteem en de programma-interface (SAPI) voor de interactie tussen de basisprocessen en geïsoleerde processen.

De ontwikkelaar moet ook een headerbestand maken met isolatieregels die alle toegestane systeemaanroepen en -bewerkingen definiëren (lezen, schrijven, openen van bestanden, toegang tot tijd, de mogelijkheid om signaalbehandelaars te installeren, ondersteuning voor geheugentoewijzing via malloc, enz.).

De bestanden en mappen waartoe de bibliotheek toegang moet hebben, worden afzonderlijk bepaald.

Installatie

Momenteel is het project alleen beschikbaar voor Linux, maar in de toekomst beloven ze ondersteuning toe te voegen voor macOS- en BSD-systemen, en op de lange termijn, en voor Windows. Ja u wilt sandbox-api installeren, kunt u de gegeven instructies volgen op deze link.

Van de plannen wordt ook vermeld de mogelijkheid om bibliotheken te isoleren in andere talen dan C en C ++, extra runtime-ondersteuning voor isolatie (bv. gebaseerd op hardwarevirtualisatie) en de mogelijkheid om CMake en andere assemblagesystemen te gebruiken (ondersteuning is nu beperkt tot het Bazel build-systeem).

bron: https://security.googleblog.com


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.