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 | Белый Хакер | #Инструмент