Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sandboxec — Легковесная песочница команд для Linux, безопасная по умолчанию, построенная на Landlock. | Kitploit
Инструменты/GitHubGitHub/sandboxec/sandboxec
Оборонительные ИнструментыБезопасность контейнеровСкриптинг и автоматизацияВиртуализация для безопасностиУтилиты и фреймворки
GitHubsandboxec/sandboxec

sandboxec

Легковесная песочница команд для Linux, безопасная по умолчанию, построенная на Landlock.

Репозиторий
6935 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

sandboxec

Release tests Platform License

sandboxec

Лёгкая песочница для команд в Linux, построенная на Landlock.

Без демона. Без root. Без сборки образов.

Используйте её для выполнения рискованных команд с меньшим радиусом поражения: сторонние CLI, непроверенные скрипты, сгенерированный код и одноразовые утилиты.

Цель

Запуск непроверенного кода — это часто выбор «всё или ничего».

Контейнеры и виртуальные машины — отличные инструменты, но для быстрой изоляции на уровне одной команды они могут быть избыточны. Контейнеры добавляют накладные расходы на образы и среду выполнения. Виртуальные машины обеспечивают более сильную изоляцию, но с более высокими затратами на настройку и ресурсы.

sandboxec фокусируется на более узкой задаче: изолировать одну команду на текущем хосте с низкими накладными расходами и явными правилами разрешения.

См. также:

  • D. Siswanto, «The most practical, fast, tiny command sandboxing for AI agents», Dwi Siswanto, 17 февр. 2026. https://dw1.io/blog/2026/02/17/sandboxec/

Зачем нужен sandboxec?

  • Изолируйте существующие бинарные файлы без изменения кода приложений.
  • Ограничивайте доступ к файловой системе и TCP с помощью правил на основе разрешений.
  • Применяйте политику непосредственно перед выполнением команды, чтобы дочерние процессы наследовали ограничения.
  • Сохраняйте простые локальные рабочие процессы для CI-заданий, локальных скриптов и инструментов разработчика.

Когда его использовать?

Хорошо подходит:

  • Запуск стороннего CLI в локальном репозитории.
  • Выполнение сгенерированного кода в CI.
  • Тестирование скриптов установки перед тем, как доверить им полный доступ к хосту.
  • Обёртка для инструментов сборки, которым нужна лишь малая часть файловой системы.

Когда нет?

  • Требуется более сильная изоляция, чем предоставляет песочница процессов Landlock.
  • Требуется многопользовательская изоляция между недоверенными пользователями/нагрузками.
  • Требуется изоляция/квоты ресурсов (CPU, память, диск, I/O).
  • Требуются собственные корневые файловые системы, полноценные образы среды выполнения или виртуализация на уровне ОС.

В таких случаях используйте контейнеры или виртуальные машины.

Требования

  • Ядро Linux >= 5.13+ (с поддержкой Landlock)

Совместимость с ядром

ВозможностьLandlock ABIМинимальное ядро
Ограничения файловой системыv1+5.13+
Ограничения TCP bind/connect

Модель безопасности

sandboxec ограничивает, что процесс может:

  • Читать / Записывать / Выполнять в файловой системе.
  • Привязывать / Подключаться в сети (TCP).

Ограничения применяются непосредственно перед запуском целевой команды. После этого они действуют на данный процесс и его дочерние процессы.

[!IMPORTANT] Инструмент предназначен для уменьшения ущерба от ошибочных, рискованных или вредоносных пользовательских программ, сужая круг того, к чему они могут обращаться. Следовательно, он НЕ защищает от:

  • Ошибок ядра или привилегированных локальных атакующих.
  • Истощения ресурсов (CPU, память, диск).
  • Всех возможных взаимодействий с хостом, выходящих за рамки настроенных элементов управления Landlock.

Воспринимайте его как практический слой изоляции.

Установка

  • С помощью скрипта:

    root@kitploit:~
    curl -sSL https://get.sandbox.ec | sh
    
  • С помощью компилятора Go:

    root@kitploit:~
    go install go.sandbox.ec/[email protected]
    

[!NOTE] Требуется Go версии 1.24.0 или новее.

  • Или скачайте готовый бинарник со страницы релизов.

  • Или соберите из исходников:

[!WARNING] Ветка master содержит последние изменения кода, которые могут не пройти тщательное тестирование и контроль качества — поэтому возможна нестабильность или неожиданное поведение.

root@kitploit:~
git clone https://github.com/sandboxec/sandboxec.git
cd sandboxec/
# git checkout v0.3.0
make build
# ./bin/sandboxec --help

Использование

root@kitploit:~
sandboxec [ОПЦИИ] [КОМАНДА [АРГУМЕНТ...]]

Примеры:

root@kitploit:~
sandboxec --fs rx:/usr /usr/bin/echo hello
sandboxec --fs rx:/usr -- /usr/bin/ls /usr
sandboxec --fs rx:/usr --net c:<PORT> -- /usr/bin/curl http://127.0.0.1:<PORT>
sandboxec --mode mcp --fs rx:/usr --fs rw:$PWD --net c:443

Опции

Доступные инструменты MCP:

  • exec: Выполнить команду и вернуть stdout, stderr и exit_code.
    • Входные данные: command (обязательно), args (необязательный массив).
    • Путь выполнения использует среду выполнения sandboxec с действующей политикой, полученной из флагов CLI или YAML-конфигурации.

[!NOTE]

  • --restrict-scoped требует Landlock ABI v6+.
  • --unsafe-host-runtime расширяет разрешённый доступ к среде выполнения и библиотекам, ослабляя гарантии минимальных привилегий.
  • В режиме --mode mcp аргументы обёрнутой команды не принимаются.

Формат правил

Правила файловой системы

Формат: RIGHTS:PATH

Допустимые права:

  • read или r
  • read_exec или rx
  • write или w
  • read_write или rw
  • read_write_exec или rwx

[!NOTE] Ограничения файловой системы требуют поддержки Landlock (Linux 5.13+).

Сетевые правила

Формат: RIGHTS:PORT

Допустимые права:

  • bind или b
  • connect или c
  • bind_connect или bc

[!NOTE] Сетевые ограничения (bind / connect) требуют новую поддержку Landlock (ABI v4+, обычно Linux 6.7+).

[!IMPORTANT] Если работающее ядро не поддерживает запрошенные возможности, используйте --best-effort для корректного понижения функциональности.

Поведение правил

  • Правила работают по принципу разрешительного списка: если не разрешено, то запрещено. Это так.
  • Несколько записей --fs и --net накапливаются.
  • Правила должны включать все зависимости времени выполнения, необходимые вашей команде.

Конфигурация

Конфигурация — только YAML.

Ключи

root@kitploit:~
abi: 6
best-effort: false
ignore-if-missing: false
restrict-scoped: false
unsafe-host-runtime: false
fs:
  - rx:/bin
net:
  - c:443
mode: run

Поиск конфигурации

  • Если задан --config, используется этот файл.
  • Если задан --named-config, значение сопоставляется с профилем в репозитории sandboxec/profiles.
  • В противном случае выполняется поиск sandboxec.yaml или sandboxec.yml в:
    1. $XDG_CONFIG_HOME/sandboxec
    2. $HOME/.config/sandboxec
    3. /etc/sandboxec

Если файл конфигурации не найден, используются значения по умолчанию.

Правила приоритета

  • --config и --named-config нельзя использовать вместе.
  • Флаги CLI переопределяют значения конфигурации для скалярных опций.
  • --fs и --net заменяют списки конфигурации, если эти флаги заданы.
  • Если эти флаги не заданы, правила берутся из конфигурации.

Пример профиля

root@kitploit:~
abi: 6
best-effort: true
ignore-if-missing: true
restrict-scoped: false
unsafe-host-runtime: false
fs:
  - rx:/bin
  - rx:/usr
  - rx:/lib
  - rx:/usr/lib
  - rw:/tmp
net:
  - c:443

Репозиторий профилей

Ищете готовые политики? Смотрите репозиторий sandboxec/profiles.

Коды возврата

  • 0: Обёрнутая команда завершилась успешно.
  • N: Обёрнутая команда завершилась с кодом N.
  • 1: sandboxec не удалось настроиться (ошибка разбора, ошибка Landlock).

Практические заметки

  • Только разрешительный список: Если путь не указан, он невидим или недоступен.
  • Зависимости: Бинарные файлы часто требуют чтения /lib, /usr/lib или файлов разделяемых объектных зависимостей (файлы .so).
  • Небезопасное поведение среды выполнения: --unsafe-host-runtime добавляет права read_exec для целей среды выполнения, полученных из PATH, и их разрешённых файлов зависимостей разделяемых библиотек, найденных для исполняемых записей. Это может значительно увеличить время запуска, особенно для короткоживущих команд.
  • Сеть: Правила управляют TCP bind/connect. Они не заменяют межсетевые экраны.
  • Область применения: Это не полноценная замена контейнеров или виртуальных машин. Это быстрый слой контроля на уровне команд для рискованных нагрузок.

Примеры

Минимальная изолированная команда

root@kitploit:~
sandboxec --fs rx:/usr -- /usr/bin/id

Ограничить только чтением+исполнением системных бинарников и чтением/записью временной папки

root@kitploit:~
sandboxec \
  --fs rx:/bin \
  --fs rx:/usr \
  --fs rw:/tmp \
  -- /bin/ls /tmp

Заблокировать команду на доступ только к локальной файловой системе

root@kitploit:~
sandboxec \
  --fs rx:/usr \
  --fs rw:$PWD \
  -- your-command

Только исходящий HTTPS (подключение на 443)

root@kitploit:~
sandboxec --fs rx:/usr --net c:443 -- /usr/bin/curl https://example.com

Использовать небезопасную среду выполнения хоста для инструментов, связанных с хостом

root@kitploit:~
sandboxec \
  --unsafe-host-runtime \
  --fs rw:$PWD \
  --fs rw:/tmp \
  --net c:443 \
  -- your-build-command

Запуск с явным файлом конфигурации

root@kitploit:~
sandboxec --config ./sandboxec.yaml -- /bin/echo ok

Запуск с именованным профилем

root@kitploit:~
sandboxec --named-config agents/claude -- claude --dangerously-skip-permissions

Шаг сборки только с исходящей загрузкой пакетов

root@kitploit:~
sandboxec \
  --fs rx:/usr \
  --fs rw:$PWD \
  --fs rw:/tmp \
  --net c:443 \
  -- your-build-command

Конфигурация MCP

root@kitploit:~
{
  "mcpServers": {
    "sandboxec": {
      "command": "/path/to/go/bin/sandboxec",
      "args": [
        "--mode", "mcp",
        "--fs", "rx:/usr",
        "--fs", "rw:/tmp",
        "--fs", "rw:/path/to/your/workspace",
        "--net", "c:443"
      ]
    }
  }
}

Устранение неполадок

  • недопустимые права fs: Проверьте написание (rx, rw и т.д.).
  • Ошибки Landlock: Ваше ядро может быть слишком старым. Попробуйте --best-effort или уберите флаги, требующие более новых ABI (например, сетевые правила на старых ядрах).

Если команды завершаются ошибкой permission denied:

  • Добавьте недостающие пути среды выполнения (/usr, /lib, /usr/lib, /etc при необходимости).
  • Проверьте возможности ядра для запрошенных типов правил.
  • Повторите с --best-effort, чтобы убедиться, что неподдерживаемые возможности ABI являются препятствием.

Лицензия

sandboxec выпущен с ♡ от @dwisiswant0 под лицензией Apache 2.0. См. LICENSE.

Скачать инструмент
v4+
6.7+
Ограничения области видимости (--restrict-scoped)v6+только новые ядра
ОпцияОписание
-c, --configПуть к YAML-файлу конфигурации.
-C, --named-configИменованный профиль конфигурации (соответствует репозиторию sandboxec/profiles).
-f, --fs RIGHTS:PATHДобавить правило файловой системы (повторяемо).
-n, --net RIGHTS:PORTДобавить сетевое правило (повторяемо).
--abi intПринудительно указать версию Landlock ABI (0 по умолчанию).
--best-effortПродолжить, даже если ядру не хватает поддержки некоторых возможностей.
--ignore-if-missingНе завершать ошибкой, если путь правила не существует.
--restrict-scopedВключить ограничения IPC в области видимости (требуется ABI v6+).
--unsafe-host-runtimeРазрешить права read_exec для путей среды выполнения хоста.
-m, --mode stringРежим исполнения (run или mcp). По умолчанию: run.
-V, --versionПоказать версию приложения.
-h, --helpПоказать справку.