Google åpnet et system for å lage sandkassemiljøer for C / C ++

Google

For noen dager siden Google kunngjorde åpningen av Sandboxed API-prosjektetAt lar deg automatisere prosessen med å opprette sandkasse for isolert kjøring av vilkårlige biblioteker i C og C ++.

Å isolere koden din fra biblioteker gjør det mulig å beskytte mot mulige angrep på håndtakene som tilbys av bibliotekene, skape en ekstra barriere i tilfelle det er sårbarheter i koden din som kan utnyttes gjennom manipulasjoner med de eksterne dataene som kommer inn i biblioteket. Koden er åpen under Apache 2.0-lisensen.

Isolasjoneneller det gjøres ved bruk av Sandbox2-kjøretiden, der navneområdene, cgroups og seccomp-bpf brukes.

Koden levert til sandkassen som kjører i en egen prosess, for hvilken tilgang til systemanrop og ressurser, samt filer og nettverkstilkoblinger, er begrenset.

Prosesser får bare tilgang til systemfunksjoner som er direkte nødvendige for å utføre isolert kode.

Sandbox2 definerer komponentene for å kjøre prosesseneller, bruk isolasjonsreglene og støtt den påfølgende utførelsen.

Sandkasse2 den kan brukes separat fra Sandbox API for å isolere ikke bare biblioteker, men også vilkårlige prosesser.

I tillegg til å øke beskyttelsen, er et positivt punkt i eliminering av koden i separate prosesser muligheten for en separat regulering av grensene for minneforbruket til biblioteket og CPU, samt beskyttelsen mot feil: en feil i biblioteket fører ikke til at hele applikasjonen krasjer.

Om Sandboxed API

Sandboxed API er et Sandbox2-plugin som forenkler transporten av eksisterende biblioteker for å kjøre i isolert modus.

API-sandboksing gir et mellomliggende programvaregrensesnitt som lar deg kjøre bibliotekoden i et sandkassemiljøi tillegg til å organisere en samtale til et bibliotek i et sandkassemiljø og sikre levering av bibliotekresultatene til hovedprogrammet.

Se får tilgang til det isolerte biblioteket gjennom en spesialisert RPC basert på ProtoBuffs-protokollen.

A bibliotekutviklere tilbys et sett med alternativer som gir tilgang til variabler, filbeskrivere, buffere og biblioteksfunksjoner isolert fra baseapplikasjonen, inkludert verktøy for automatisk og kontrollert minnesynkronisering for deling av matriser og strukturer.

sapi-oversikt

Når et programvarebibliotek som analyserer slike data er komplekst nok, kan det bli offer for visse typer sikkerhetsproblemer: minnekorrupsjonsfeil eller andre typer problemer relatert til analyselogikken (for eksempel path traversal-problemer).). Disse sårbarhetene kan ha alvorlige sikkerhetsimplikasjoner.

Videre En API er gitt for å overvåke driften av isolerte prosesser og starte dem på nytt i tilfelle feil.

For det isolerte biblioteket genereres merkekoder for de isolerte funksjonene automatisk for Bazel-monteringssystemet og programgrensesnittet (SAPI) for samspillet mellom de grunnleggende og isolerte prosessene.

Utvikleren må også opprette en headerfil med isolasjonsregler som definerer alle tillatte systemanrop og operasjoner (lese, skrive, åpne filer, tilgang til tid, muligheten til å installere signalbehandlere, støtte for minnetildeling via malloc, etc.).

Filene og katalogene biblioteket skal ha tilgang til bestemmes separat.

Installasjon

Foreløpig er prosjektet bare tilgjengelig for Linux, men i fremtiden lover de å legge til støtte for macOS og BSD-systemer, og på lang sikt, og for Windows. Ja Hvis du vil installere sandboxed API, kan du følge instruksjonene i denne lenken.

Av planene er det også notert muligheten til å isolere biblioteker på andre språk enn C og C ++, ekstra kjøretidsstøtte for isolasjon (f.eks. basert på maskinvarevirtualisering) og muligheten til å bruke CMake og andre monteringssystemer (støtte er nå begrenset til Bazel build-systemet).

Fuente: https://security.googleblog.com


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.