Hajiz: rootless Linux-песочница на Rust — проверяйте скрипты без sudo
В офисе DevOps‑специалисту нужно быстро проверить новый скрипт, который пришёл от подрядчика. Он не знает, безопасен ли он, и не хочет ставить его под root. Hajiz – это инструмент, который позволяет запустить любой бинарник в изолированной среде без привилегий. Это значит, что даже если скрипт будет пытаться изменить систему, он останется в пределах sandbox. Чтобы воспользоваться им, сначала проверьте, что ваше ядро поддерживает Landlock и cgroups v2.
Источник: Habr
Что репозиторий действительно даёт команде
Hajiz – это небольшая утилита, написанная на Rust, которая собирает несколько механизмов безопасности ядра в одну связную систему с моделью «default‑deny» (всё запрещено, только явно разрешённое).
Linux‑namespaces создают изолированные пространства имён (пользователь, монтирование, IPC, UTS, сеть).
Landlock ограничивает доступ к файловой системе и, начиная с ядра 6.7, к TCP‑портам.
seccomp‑BPF фильтрует системные вызовы, блокируя опасные.
eBPF‑аудит автоматически учит, какие syscalls нужны приложению, и генерирует политику.
cgroups v2* ограничивает ресурсы (память, CPU, PIDs).
Таким образом, Hajiz даёт полностью rootless sandbox, который не требует демона, setuid‑хелпера, kernel‑модуля и sudo.
Где он может вписаться в рабочий процесс
Если вы уже используете Docker, то Hajiz может стать более лёгким и прозрачным решением для отдельных задач. Docker требует root (или setuid‑пользователя) и запускает контейнеры через демона, что иногда усложняет аудит.
Docker – полнофункциональный контейнерный движок, но с более сложной конфигурацией и большим набором зависимостей.
bubblewrap – простая утилита, создающая sandbox через namespaces, но без автоматического аудита и ограничений TCP‑портов.
firejail* – похож на bubblewrap, но добавляет seccomp‑BPF и поддержку профилей.
Hajiz сочетает в себе простоту bubblewrap, расширенные возможности firejail и собственный механизм аудита, который учит, какие syscalls нужны приложению, и генерирует политику. Это делает его особенно полезным, когда нужно быстро проверить непроверенный бинарник без лишних настроек.
Как проверить без превращения в игрушку
- Проверьте ядро
- Landlock доступен с ядра 5.13.
- Ограничения TCP‑портов работают только с ядром ≥ 6.7.
- cgroups v2 должен быть включён (
/sys/fs/cgroup).
bash uname -r grep -i landlock /boot/config-$(uname -r) cat /proc/cgroups | grep cgroup2
- Установите Rust (если ещё нет)
bash curl https://sh.rustup.rs -sSf | sh source $HOME/.cargo/env - Скачайте и соберите Hajiz
bash git clone https://github.com/hag19/hajiz cd hajiz cargo build --release sudo mv target/release/hajiz /usr/local/bin/ - Запустите простейший тест
bash hajiz --fs /usr:ro --fs /tmp:rw /usr/bin/python3 -c "print('Hello, sandbox!')"
Вы увидите вывод Hello, sandbox! и убедитесь, что скрипт не может изменить /usr.
- Проверьте сетевой режим
--net none– полностью офлайн.--net loopback– доступ только к127.0.0.1.--net full– доступ к хосту, но с ограничением портов через Landlock.
bash hajiz --net full --allow-connect-port 443 --allow-connect-port 80 \ /usr/bin/curl https://example.com
- Проверьте seccomp‑режимы
--seccomp-hardening-allow– блокирует опасные syscalls, остальные разрешены.--seccomp-whitelist– явно разрешает только указанные syscalls.--seccomp-strict– разрешает толькоread,write,exit,sigreturn.
bash hajiz --seccomp-whitelist --allow-group io --allow-syscall getrandom \ /usr/bin/myapp
- Проверьте ограничения ресурсов
bash hajiz --max-mem 512M --max-cpu 50 --max-pids 64 /usr/bin/myapp - Проверьте аудит eBPF
При первом запуске Hajiz будет записывать все syscalls, которые использует приложение, и генерировать политику. После завершения вы увидите файлpolicy.json(или аналогичный), который можно использовать для последующих запусков.
Что рисков проверить до внедрения
| Риск | Что проверить | Как проверить |
|---|---|---|
| Низкая версия ядра | Landlock и TCP‑порт‑ограничения | uname -r и grep landlock |
| Отсутствие cgroups v2 | Ограничения ресурсов | cat /proc/cgroups |
| Отсутствие поддержки eBPF | Аудит syscalls | bpftool prog list |
| Отсутствие поддержки seccomp | Фильтрация syscalls | cat /proc/sys/kernel/seccomp |
| Отсутствие поддержки Landlock | Ограничения файловой системы | cat /proc/sys/kernel/landlock |
| Отсутствие поддержки TCP‑порт‑ограничений | Ограничения портов | cat /proc/sys/kernel/landlock |
| Небольшое сообщество | Поддержка и обновления | Проверить активность репозитория |
| Отсутствие коммерческой поддержки | Риски при критических ошибках | Оценить внутренние ресурсы поддержки |
Если любой из пунктов не выполняется, то использование Hajiz может быть ограничено или потребовать доработки ядра.
Что решение читателя может сделать дальше
- Тестировать в дев‑окружении – запустите несколько типичных скриптов и убедитесь, что они работают и не выходят из sandbox.
- Сравнить с Docker – оцените, насколько проще и быстрее запускать Hajiz без необходимости поднятия контейнера.
- Оценить производительность – измерьте время запуска и потребление ресурсов.
- Определить сценарии применения – например, запуск CI‑скриптов, проверка сторонних бинарников, изоляция тестовых сервисов.
- Планировать интеграцию – добавить команду
hajizв CI‑pipeline, настроить правила Landlock и seccomp для конкретных задач.
Если после тестов вы убедитесь, что Hajiz удовлетворяет требованиям, можно перейти к пилотному внедрению в продакшн.
Источники
Дополнительные рекомендации по использованию
Для более глубокого понимания возможностей Hajiz рекомендуется изучить документацию в репозитории проекта. Там вы найдёте примеры конфигураций для различных сценариев, включая запуск веб-серверов, баз данных и других сервисов в изолированной среде. Также обратите внимание на раздел с часто задаваемыми вопросами, где описаны типичные проблемы и их решения.
Заключение
Hajiz представляет собой современный инструмент для создания изолированных сред выполнения, который сочетает в себе несколько механизмов безопасности ядра Linux. Благодаря своей лёгкости и отсутствию необходимости в привилегиях root, он может стать полезным дополнением к инструментарию DevOps-специалиста, особенно в сценариях, где требуется быстрая проверка непроверенного кода или изоляция отдельных процессов.
Что почитать дальше
- AI-фотографии 2026: как работает генерация изображений, где применять и какие ограничения
- Где AI-агенты уже работают без контроля: отчёт MIT и Microsoft
- ИИ-агент и предиктивный обзвон в отделе продаж: где автоматизация даёт +25–30% успешных дозвоно́в, а где только шум
- ИИ-инструменты в журналистике: что уже автоматизировано в редакциях, какие риски и какие навыки нужны журналистам
- Нейросеть взломала ресурсы разведки США за часы: что делать специалисту по безопасности