Google otevřel systém pro vytváření prostředí karantény pro C / C ++

Google

Před pár dny Google oznámil otevření projektu Sandboxed APIŽe Umožňuje vám automatizovat proces vytváření izolovaného prostoru pro izolované provádění libovolných knihoven v C a C ++.

Izolace kódu z knihoven umožňuje chránit před možnými útoky na úchyty poskytované knihovnami, vytvoření další bariéry v případě, že ve vašem kódu jsou chyby zabezpečení, které lze zneužít při manipulaci s externími daty, která vstupují do knihovny. Tento kód je otevřen pod licencí Apache 2.0.

Izolacenebo se to provádí pomocí běhového modulu Sandbox2, ve kterých se používají jmenné prostory, cgroups a seccomp-bpf.

Kód doručený do izolovaného prostoru, který běží v samostatném procesu, pro který je přístup k systémovým voláním a prostředkům, stejně jako soubory a síťová připojení, je omezená.

Procesy získávají přístup pouze k schopnostem systému, které jsou přímo vyžadovány k provedení izolovaného kódu.

Sandbox2 definuje komponenty pro spuštění procesunebo použijte pravidla izolace a podpořte následné provedení.

Pískoviště2 lze jej použít odděleně od rozhraní Sandbox API k izolaci nejen knihoven, ale také libovolných procesů.

Kromě zvýšení ochrany je pozitivním bodem při eliminaci kódu v samostatných procesech možnost samostatné regulace limitů na spotřebu paměti knihovny a CPU a také ochrana proti poruchám: knihovna nezpůsobí selhání celé aplikace.

O Sandboxed API

Sandboxed API je plugin pro Sandbox2 což zjednodušuje přenos existujících knihoven ke spuštění v izolovaném režimu.

API sandboxing poskytuje zprostředkující softwarové rozhraní, které umožňuje spouštět kód knihovny v prostředí izolovaného prostorustejně jako organizování hovoru do knihovny v prostředí karantény a zajištění dodání výsledků knihovny do hlavního programu.

Se přistupuje k izolované knihovně prostřednictvím specializovaného RPC založeného na protokolu ProtoBuffs.

A vývojářům knihoven je nabídnuta sada možností, které umožňují přístup k proměnným, deskriptory souborů, vyrovnávací paměti a funkce knihovny izolované od základní aplikace, včetně nástrojů pro automatickou a řízenou synchronizaci paměti pro sdílení polí a struktur.

sapi-přehled

Když je softwarová knihovna, která analyzuje taková data, dostatečně složitá, může se stát obětí určitých typů chyb zabezpečení: chyby poškození paměti nebo jiné typy problémů souvisejících s logikou analýzy (například problémy s procházením cesty). Tyto chyby zabezpečení mohou mít vážné bezpečnostní důsledky.

Navíc, K monitorování provozu izolovaných procesů a jejich restartování v případě selhání je k dispozici rozhraní API.

Pro izolovanou knihovnu se automaticky generuje anotační kód izolovaných funkcí pro montážní systém Bazel a programové rozhraní (SAPI) pro interakci mezi základními a izolovanými procesy.

Vývojář musí také vytvořit soubor záhlaví s izolačními pravidly, která definují všechna povolená systémová volání a operace (čtení, zápis, otevírání souborů, přístup k času, schopnost instalovat obslužné rutiny signálu, podpora alokace paměti přes malloc atd.).

Soubory a adresáře, ke kterým by měla mít knihovna přístup, se určují samostatně.

Instalace

V současné době je projekt k dispozici pouze pro Linux, ale v budoucnu slibují přidání podpory pro systémy macOS a BSD a v dlouhodobém horizontu i pro Windows. Ano chcete-li nainstalovat sandboxed api, můžete postupovat podle uvedených pokynů v tomto odkazu.

Z plánů je také třeba poznamenat schopnost izolovat knihovny v jiných jazycích než C a C ++, další podpora běhu pro izolaci (např. na základě virtualizace hardwaru) a schopnost používat CMake a další montážní systémy (podpora je nyní omezena na systém sestavení Bazel).

zdroj: https://security.googleblog.com


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.