Google otworzył system do tworzenia środowisk piaskownicy dla C / C ++

Google

Kilka dni temu Google ogłosił otwarcie projektu Sandboxed APIŻe Umożliwia zautomatyzowanie procesu tworzenia piaskownicy w celu izolowanego wykonywania dowolnych bibliotek w językach C i C ++.

Izolowanie kodu z bibliotek pozwala zabezpieczyć się przed możliwymi atakami na klamki udostępniane przez biblioteki, tworząc dodatkową barierę na wypadek, gdyby w kodzie znajdowały się luki w zabezpieczeniach, które można wykorzystać poprzez manipulowanie danymi zewnętrznymi, które trafiają do biblioteki. Kod jest otwarty na licencji Apache 2.0.

Izolacjalub odbywa się to w środowisku wykonawczym Sandbox2, w którym używane są przestrzenie nazw, cgroups i seccomp-bpf.

Kod dostarczany do piaskownicy, która działa w oddzielnym procesie, dla którego ma dostęp do wywołań systemowych i zasobów, podobnie jak pliki i połączenia sieciowe, jest ograniczona.

Procesy uzyskują dostęp tylko do funkcji systemu, które są bezpośrednio wymagane do wykonania izolowanego kodu.

Sandbox2 definiuje komponenty do uruchomienia procesulub zastosuj reguły izolacji i wesprzyj późniejsze wykonanie.

Piaskownica2 może być używany niezależnie od interfejsu Sandbox API do izolowania nie tylko bibliotek, ale także dowolnych procesów.

Oprócz zwiększenia ochrony pozytywnym punktem w eliminacji kodu w oddzielnych procesach jest możliwość osobnej regulacji limitów wykorzystania pamięci biblioteki i procesora, a także ochrona przed awariami: awaria w biblioteka nie powoduje awarii całej aplikacji.

Informacje o interfejsie API Sandboxed

Sandboxed API to wtyczka Sandbox2 co upraszcza transport istniejących bibliotek do pracy w trybie izolowanym.

Interfejs API w trybie piaskownicy zapewnia pośredni interfejs oprogramowania, który umożliwia uruchamianie kodu biblioteki w środowisku piaskownicya także zorganizowanie rozmowy telefonicznej z biblioteką w środowisku sandbox i zapewnienie dostarczenia wyników biblioteki do programu głównego.

Se uzyskuje dostęp do izolowanej biblioteki za pośrednictwem wyspecjalizowanego RPC opartego na protokole ProtoBuffs.

A programistom bibliotek oferuje się zestaw opcji, które umożliwiają dostęp do zmiennych, deskryptory plików, bufory i funkcje biblioteczne odizolowane od aplikacji podstawowej, w tym narzędzia do automatycznej i kontrolowanej synchronizacji pamięci w celu współdzielenia tablic i struktur.

sapi-Overview

Gdy biblioteka oprogramowania analizująca takie dane jest wystarczająco złożona, może paść ofiarą pewnych rodzajów luk w zabezpieczeniach: błędów uszkodzenia pamięci lub innych problemów związanych z logiką analizy (na przykład problemy z przemierzaniem ścieżek). Te luki mogą mieć poważne konsekwencje dla bezpieczeństwa.

Ponadto, Udostępniono interfejs API do monitorowania działania izolowanych procesów i ponownego ich uruchamiania w przypadku awarii.

Dla wyodrębnionej biblioteki automatycznie generowany jest kod adnotacji wydzielonych funkcji dla systemu montażowego Bazel i interfejsu programu (SAPI) do interakcji między procesami podstawowymi i izolowanymi.

Deweloper musi również utworzyć plik nagłówkowy z regułami izolacji, które definiują wszystkie dozwolone wywołania systemowe i operacje (odczyt, zapis, otwieranie plików, dostęp do czasu, możliwość instalacji programów obsługi sygnałów, obsługa alokacji pamięci przez malloc itp.).

Pliki i katalogi, do których biblioteka powinna mieć dostęp, są określane osobno.

Instalacja

Obecnie projekt jest dostępny tylko dla Linuksa, ale w przyszłości obiecują dodać wsparcie dla systemów macOS i BSD, aw dłuższej perspektywie i dla Windows. tak chcesz zainstalować interfejs API w trybie piaskownicy, postępuj zgodnie z podanymi instrukcjami w tym linku.

Z planów jest również odnotowany umiejętność wyodrębniania bibliotek w językach innych niż C i C ++, dodatkowe wsparcie w czasie wykonywania dla izolacji (np. w oparciu o wirtualizację sprzętową) oraz możliwość korzystania z CMake i innych systemów montażowych (obsługa jest teraz ograniczona do systemu budowania Bazel).

źródło: https://security.googleblog.com


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.