Landrun: песочница для Linux-процессов без контейнеров
👋 Приветствую в мире цифровой безопасности!
Расскажу о еще одном супер полезном инструменте.
⏺Landrun - это лёгкий sandbox для запуска Linux-программ через встроенный механизм ядра Landlock. По смыслу похож на Firejail, но без root, контейнеров и сложных профилей. Процесс сам запускается с ограничениями: какие файлы читать, куда писать, какие порты открывать и куда подключаться.
⏺Главная идея Landlock: не дать программе лишние права с самого начала.
Например, вместо запуска:
python3 script.py
где Python видит всю систему, можно ограничить его:
landrun \
--rox /usr \
--ro /etc \
--rw /tmp \
python3 script.py
Теперь интерпретатор может запускать библиотеки из /usr, читать конфиги из /etc и писать только в /tmp.
⏺Полностью закрытая среда:
landrun ls
Без указанных разрешений программа получает максимальные ограничения. Даже обычный ls не сможет нормально работать, пока явно не дать ему доступ.
⏺Только чтение каталога:
landrun \
--rox /usr/bin \
--ro /var/www \
ls /var/www
Программа сможет посмотреть файлы сайта, но не изменить их.
⏺Разрешить запись только в одну папку:
landrun \
--rox /usr \
--ro /lib,/lib64 \
--rw /opt/app/data \
./app
Даже если приложение уязвимо, оно сможет создавать файлы только внутри /opt/app/data.
⏺Ограничение сети:
landrun \
--rox /usr \
--ro /etc \
--connect-tcp 443 \
curl https://example.com
В таком режиме процесс сможет подключаться только к TCP-порту 443.
Можно также ограничить серверные приложения:
landrun \
--rox /usr/bin,/usr/lib \
--ro /etc/nginx \
--rwx /var/log/nginx \
--bind-tcp 443 \
nginx -g "daemon off;"
Nginx получит только доступ к своим бинарникам, конфигурации, логам и порту 443.
⏺Проблема sandbox’ов - зависимости. Программа может использовать десятки библиотек, которые нужно разрешить отдельно. Landrun умеет найти их автоматически:
landrun \
--ldd \
--add-exec \
/usr/bin/curl
Он добавит сам бинарник и необходимые shared libraries.
⏺Аудит отказов:
landrun \
--log-level debug \
--rox /usr \
strace -f ls
Помогает понять, какой файл или ресурс приложению нужен, чтобы собрать минимальную политику доступа.
ZeroDay | Белый Хакер | #Инструмент