Узнайте, как безопасно открывать чужие репозитории с помощью sbx. Изолируйте код, отслеживайте сетевые запросы и защитите свои секреты. Попробуйте прямо сейчас!
Вы когда-нибудь открывали чужой репозиторий и задумывались, что код может выполниться на вашей машине? VS Code автоматически запускает задачи из .vscode/tasks.json, npm install выполняет скрипты prepare и postinstall, а .devcontainer собирает Docker-образ. Всё это происходит без вашего ведома. В этой статье я расскажу, как инструмент sbx позволяет безопасно просматривать код, изолируя его в песочнице.
Когда вы открываете репозиторий, вы доверяете его коду. Но злоумышленник может включить вредоносные скрипты, которые выполнятся при открытии папки. Например, в .vscode/tasks.json можно указать runOn: folderOpen, и задача запустится сразу. Аналогично, npm install может выполнить произвольные команды через prepare или postinstall. Это серьёзная угроза для разработчиков, которые часто просматривают чужой код.
sbx — это инструмент, который решает проблему безопасного просмотра кода. Он клонирует репозиторий в одноразовый Docker-контейнер, подключает ваш редактор (VS Code, Cursor, Windsurf) через Dev Containers и предоставляет контейнеру доступ к сети по умолчанию. Секреты и ключи не передаются в контейнер, а все сетевые запросы отображаются в терминале в реальном времени. Если код пытается обратиться к неизвестному хосту, выполнение приостанавливается и спрашивает вашего разрешения.
В контейнере размещаются фальшивые SSH-ключи и API-токены в стандартных местах. Если код обращается к ним, контейнер немедленно останавливается, потому что легитимный код никогда не читает эти файлы. Это позволяет обнаружить попытки кражи секретов.
sbx — это один Go-бинарник, не требующий демона. Установите его и запустите:
sbx open <url>После этого вы окажетесь в своём редакторе, работая с кодом в изолированной среде. Когда закончите, нажмите Ctrl-C — контейнер и все изменения будут удалены.
Важно понимать, что sbx — это не виртуальная машина. Он использует общее ядро хоста, поэтому это граница пространства имён и файрвола, а не защита от побега через ядро. Также TLS-соединения к хостам, которые вы разрешили, не инспектируются — секрет может покинуть песочницу через разрешённое соединение. Разработчик планирует исправить это в будущем. Пока поддерживаются только редакторы семейства VS Code, JetBrains ещё не поддерживается.
Если вы часто просматриваете чужой код, установите sbx и используйте его для безопасного открытия репозиториев. Это займёт несколько минут, но защитит вашу систему от вредоносных скриптов. Попробуйте sbx на следующем PR или задании — и вы увидите, как легко и безопасно работать с незнакомым кодом. Не забудьте изучить модель угроз и оставить обратную связь автору, если найдёте уязвимости.
Хочешь закрепить знания на практике?
Решай задачи на Algolit — интерактивная платформа для обучения
Начать бесплатно →