Выход из песочницы (sandbox escape) — эксплуатация уязвимости, позволяющая коду вырваться из изолированной среды (песочницы браузера, виртуальной машины или контейнера) и действовать в основной системе с большими привилегиями.
Как работает выход из песочницы
Песочница ограничивает возможности кода: процесс рендеринга браузера не может читать файлы, гостевая виртуальная машина не может обращаться к хосту, приложение на iOS или Android не видит данные других приложений. Выход из песочницы использует изъян в самой границе изоляции, например:
- ошибку в привилегированном процессе-брокере браузера, интерфейсах IPC или ядре операционной системы, доступном из песочницы;
- уязвимость в эмулируемом оборудовании или гипервизоре (побег из ВМ);
- ошибку в среде выполнения контейнеров или в ядре, которая позволяет процессу в контейнере управлять хостом (побег из контейнера).
Поэтому современные атаки на браузеры используют цепочки эксплойтов: одна уязвимость нужна для выполнения кода в процессе рендеринга, вторая — для выхода из песочницы, а нередко и третья — для повышения привилегий в ядре.
Почему это важно
Песочницы — один из важнейших уровней защиты, поэтому выход из них очень ценен. Полные цепочки против Chrome, Safari или iOS встречаются в атаках нулевого дня коммерческих разработчиков шпионского ПО и относятся к самым дорогим призам хакерских соревнований вроде Pwn2Own. Известные примеры — VENOM (2015), ошибка в эмуляторе дисковода QEMU, позволявшая выйти из многих виртуальных машин, и уязвимость runc 2019 года, через которую вредоносный контейнер мог перезаписать бинарный файл runc на хосте и получить права root. В облаке побеги из ВМ и контейнеров угрожают изоляции между клиентами.
Как защититься
- Оперативно обновлять браузеры, гипервизоры, среды выполнения контейнеров и ядра — такие ошибки часто эксплуатируются как уязвимости нулевого дня.
- Выстраивать эшелонированную защиту: запускать контейнеры не от root, применять профили seccomp и AppArmor, разносить чувствительные нагрузки по разным хостам.
- Включать изоляцию сайтов (Site Isolation) и режим блокировки (Lockdown Mode) для пользователей из группы риска.
- Отслеживать на хостах неожиданные процессы, порождённые приложениями в песочнице.