RLBox, nowa technologia izolacji bibliotek używana przez Mozillę

Logo Firefox

Naukowcy z Uniwersytetu StanfordaThe Uniwersytet Kalifornijski w san diego y la Uniwersytet Teksasu w Austin Rozwinęli się zestaw narzędzi, którym nadali nazwę „RLBox”, oferuje nasz konfigurator może służyć jako dodatkowy poziom izolacji do blokowania luk w bibliotekach funkcji.

RLBox ma na celu rozwiązanie problemu bezpieczeństwa bibliotek innych firm Niezaufane, które nie są kontrolowane przez programistów, ale luki w zabezpieczeniach, w które główny projekt mógłby się włamać.

Mozilla planuje używać RLBox w kompilacjach Firefoksa 74 dla Linuksa i kompilacje macOS w przeglądarce Firefox 75 aby odizolować wykonanie biblioteki Graphite, która jest odpowiedzialna za reprezentowanie źródeł.

Jednocześnie RLBox nie jest specyficzny dla przeglądarki Firefox i może być używany do izolowania dowolnej biblioteki w dowolnych projektach.

O RLBox

Mechanizm operacyjny RLBox sprowadza się do skompilowania wyizolowanego kodu C / C ++ biblioteki do pośredniego kodu WebAssembly niskiego poziomu, który jest następnie wydawany jako moduł WebAssembly, którego uprawnienie jest ustawione na powiązanie tylko z tym modułem (na przykład biblioteka do przetwarzania łańcuchów nie może otworzyć gniazda lub pliku sieciowego) Konwersja kodu C / C ++ a WebAssembly jest wykonywana za pomocą wasi-sdk.

Do bezpośredniego wykonania, moduł WebAssembly jest kompilowany do kodu maszynowego przy użyciu kompilatora Lucet i działa w „nanoprocesie” niezależnym od reszty pamięci aplikacji. Kompilator Lucet jest oparty na tym samym kodzie, co silnik Cranelift JIT używany w przeglądarce Firefox do uruchamiania WebAssembly.

Zmontowany moduł pracuje w osobnym obszarze pamięci i nie ma dostępu do reszty przestrzeni adresowej. W przypadku wykorzystania luki w bibliotece atakujący będzie ograniczony i nie będzie mógł uzyskać dostępu do obszarów pamięci procesu głównego ani przenieść kontroli poza piaskownicę.

Dla programistów udostępniono interfejs API wysokiego poziomu, który umożliwia wywoływanie funkcji biblioteki w trybie izolacji.

L Kontrolery WebAssembly prawie nie wymagają dodatkowych zasobów a interakcja z nimi nie jest dużo wolniejsza niż wywołanie zwykłych funkcji (funkcje biblioteczne działają w postaci kodu natywnego, a przeciążenie występuje tylko podczas kopiowania i weryfikacji danych w procesie interakcji ze środowiskiem piaskownicy).

Funkcji izolowanej biblioteki nie można wywołać bezpośrednio, a aby uzyskać do nich dostęp, należy użyć warstwy invoke_sandbox_function().

Z kolei, jeśli chcą wywołać funkcje zewnętrzne z biblioteki, funkcje te muszą być jawnie zdefiniowane za pomocą metody register_callback (domyślnie RLBox zapewnia dostęp do standardowych funkcji bibliotecznych).

Aby zapewnić bezpieczne działanie pamięci, izolowanie wykonywania kodu nie wystarczy y también musisz zapewnić weryfikację zwróconych strumieni danych.

Wartości generowane w izolowanym środowisku są oznaczane jako zawodne, ograniczone przez skażone znaczniki i wymagają weryfikacji i skopiowania do pamięci aplikacji w celu „wyczyszczenia”.

Bez czyszczenia próba użycia zanieczyszczonych danych w kontekście wymagającym regularnych danych (i odwrotnie) prowadzi do generowania błędów na etapie kompilacji.

Małe argumenty funkcji, wartości zwracane i struktury są przekazywane przez kopiowanie między pamięcią procesu a pamięcią piaskownicy. W przypadku dużych zestawów danych pamięć jest przydzielana w izolowanym środowisku, a bezpośredni wskaźnik „odwołania do piaskownicy” jest zwracany do procesu głównego.

Rozwój RLBox jest rozpowszechniany na licencji MIT. RLBox obsługuje obecnie systemy Linux i macOS i oczekuje się, że będzie kompatybilny z systemem Windows później.

Jeśli chcesz dowiedzieć się więcej o tej nowej technologii, którą Mozilla planuje zaimplementować w Firefoksie, możesz skonsultować się z jej rozwojem, a także przetestować API W poniższym linku.


Zostaw swój komentarz

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

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  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.