Robocikowo>ROBOCIKOWO
Bezpieczeństwo

Sandbox Escape

AktywnyOpublikowany
Klasa podatności i technik, w których kod uruchamiany w izolowanym środowisku (kontener, VM, interpreter, przeglądarka) przełamuje izolację i uzyskuje dostęp do systemu-hosta lub zasobów poza granicą bezpieczeństwa.
Kluczowa innowacja
Ujmuje granicę izolacji (sandbox) jako aktywną powierzchnię ataku: kod celowo uruchamiany w środowisku uznanym za „bezpieczne do wykonywania niezaufanego kodu” może tę granicę przełamać i sięgnąć do systemu-hosta.
Kategoria
Bezpieczeństwo
Poziom abstrakcji
Wzorzec
Poziom operacji
Środowisko agentoweToolingWdrożenie
Zastosowania
Piaskownice wykonywania kodu przez agentów AI / interpretery kodu LLMSystemy wielodostępne (multi-tenant) w chmurzeIzolacja niezaufanego kodu w przeglądarkach (JavaScript, WASM)Runnery CI/CD wykonujące niezaufane skryptyAnaliza malware w izolowanym środowiskuKonteneryzacja obciążeń produkcyjnych

Jak działa

Ucieczka z piaskownicy przebiega zwykle wg jednego z kilku wzorców. (1) Eksploatacja jądra/hypervisora: kontenery współdzielą jądro hosta, więc błąd w jądrze lub w środowisku uruchomieniowym pozwala eskalować uprawnienia (np. CVE-2019-5736 w runc — nadpisanie binarki runc na hoście przez manipulację /proc/self/exe i uzyskanie roota hosta). W przypadku VM celem jest emulowany sprzęt hypervisora (np. VENOM, CVE-2015-3456, przepełnienie w kontrolerze stacji dyskietek QEMU umożliwiające wykonanie kodu poza gościem). (2) Błędna konfiguracja: uruchomienie kontenera jako root/--privileged, zamontowanie gniazda Dockera lub ścieżek hosta, brak profilu seccomp/AppArmor, nadużycie funkcji jądra (np. CVE-2022-0492 — nadużycie release_agent w cgroups v1 do obejścia izolacji namespace). (3) Ucieczka z interpretera/aplikacji: obejście ograniczeń języka (dostęp do modułów systemowych, refleksja, wywołania natywne) lub błąd silnika (np. korupcja pamięci w V8/JS przeglądarki jako pierwszy etap łańcucha). (4) Kanały boczne i mikroarchitektura: ataki jak Spectre (CVE-2017-5753) wykorzystują spekulatywne wykonanie i predykcję rozgałęzień, przełamując granice izolacji na poziomie sprzętu (np. odczyt pamięci spoza piaskownicy JS). W kontekście agentów AI typowy łańcuch to: model generuje złośliwy lub podatny kod → kod wykonuje się w piaskownicy → wykorzystuje jedną z powyższych słabości → uzyskuje dostęp do hosta, sekretów (klucze API, tokeny) lub sieci wewnętrznej.

Rozwiązany problem

Adresuje model zagrożeń dla wykonywania niezaufanego kodu: gdy system musi uruchomić kod, którego nie kontroluje (kod wygenerowany przez LLM, wtyczka, plik użytkownika, reklama w przeglądarce), izolacja ma powstrzymać skutki uboczne. Sandbox Escape opisuje, kiedy i jak ta gwarancja zawodzi — zrozumienie tej klasy jest warunkiem projektowania bezpiecznych środowisk wykonawczych dla agentów AI, systemów wielodostępnych (multi-tenant) i przeglądarek.

Komponenty

Granica izolacjiGranica bezpieczeństwa, którą atak stara się przełamać.

Mechanizm oddzielający kod w piaskownicy od hosta: przestrzenie nazw i cgroups jądra, seccomp, AppArmor/SELinux, hypervisor lub separacja uprawnień OS.

Oficjalna

Powierzchnia ataku / brokerPunkt wejścia eksploitu.

Interfejs kontaktu piaskownicy z hostem: wywołania systemowe, emulowany sprzęt hypervisora, IPC, współdzielone deskryptory plików, API interpretera. To tu najczęściej znajduje się podatność.

Prymityw exploitaKonwersja słabości w kontrolę wykonania.

Techniczny mechanizm przełamania: korupcja pamięci, zapis/odczyt poza zakresem, nadużycie funkcji jądra, race condition lub kanał boczny.

Oficjalna

Cel na hościeOstateczny cel ucieczki.

Zasób poza granicą, do którego atak dąży: root hosta, sekrety (klucze API, tokeny), system plików hosta, sieć wewnętrzna lub inne tenanty.

Oficjalna

Implementacja

Pułapki implementacyjne
Kontener uruchomiony jako root lub --privilegedKrytyczna

Uprzywilejowany kontener praktycznie znosi izolację — daje dostęp do urządzeń hosta i możliwości jądra.

Rozwiązanie:Uruchamiaj jako użytkownik nieuprzywilejowany, dropuj capabilities, unikaj --privileged, stosuj user namespaces.
Montowanie gniazda Dockera lub ścieżek hostaKrytyczna

Zamontowanie /var/run/docker.sock lub wrażliwych ścieżek hosta do piaskownicy daje pełną kontrolę nad hostem.

Rozwiązanie:Nigdy nie montuj gniazda Dockera do niezaufanych workloadów; ogranicz montowania do minimum, tylko do odczytu.
Brak profilu seccomp / AppArmor / SELinuxWysoka

Bez filtrowania wywołań systemowych powierzchnia ataku na jądro jest maksymalna, co ułatwia eksploatację luk jądra.

Rozwiązanie:Stosuj restrykcyjne profile seccomp i MAC (AppArmor/SELinux); dopuszczaj tylko niezbędne wywołania systemowe.
Współdzielone jądro zamiast izolacji hypervisoremWysoka

Standardowe kontenery współdzielą jądro hosta, więc jeden błąd jądra kompromituje granicę. Dla niezaufanego kodu to niewystarczające.

Rozwiązanie:Dla niezaufanego kodu (np. wygenerowanego przez LLM) używaj silniejszej izolacji: gVisor, Firecracker microVM lub pełnych VM.
Przestarzałe środowisko uruchomieniowe z znanymi CVEWysoka

Niezałatane runtime (runc, QEMU, jądro) zawierają publicznie znane ucieczki, które można natychmiast wykorzystać.

Rozwiązanie:Regularnie aktualizuj i skanuj obrazy oraz komponenty runtime pod kątem CVE.

Ewolucja

2015
VENOM — ucieczka z VM przez QEMU FDC

CVE-2015-3456: błąd w kontrolerze stacji dyskietek QEMU (używanym w Xen i KVM) umożliwia gościowi wykonanie kodu poza maszyną wirtualną.

2018
Spectre — przełamanie izolacji na poziomie sprzętu
Punkt przełomowy

CVE-2017-5753 (ujawnione publicznie w 2018): spekulatywne wykonanie i predykcja rozgałęzień jako kanał boczny; pokazało, że nawet izolacja JS w przeglądarce może zostać obejściem na poziomie mikroarchitektury.

2019
runc / Docker — ucieczka z kontenera do roota hosta
Punkt przełomowy

CVE-2019-5736: nadpisanie binarki runc na hoście przez manipulację /proc/self/exe pozwala uzyskać roota hosta z wnętrza kontenera.

2022
cgroups v1 release_agent — ucieczka z kontenera

CVE-2022-0492: nadużycie funkcji release_agent w cgroups v1 jądra Linux do eskalacji uprawnień i obejścia izolacji przestrzeni nazw.

2023
Piaskownice kodu dla agentów AI wchodzą do mainstreamu
Punkt przełomowy

Wraz z interpreterami kodu w asystentach LLM i autonomicznymi agentami piaskownica wykonywania kodu (izolacja przez gVisor, Firecracker microVM, dedykowane usługi jak E2B) staje się krytycznym elementem bezpieczeństwa — a jej ucieczka nowym, istotnym wektorem ataku.