Python: защита ненадежных скриптов / подпроцессов с помощью chroot и chjail?

Я пишу веб-сервер на основе Python, который должен быть способен выполнять «плагины». так что функциональность может быть легко расширена.

Для этого я подумал, что в подходе должно быть несколько папок (по одной на каждый плагин) и несколько сценариев shell / python, названных в честь предопределенных имен для различных событий, которые могут произойти.

Одним из примеров является наличиеon_pdf_uploaded.py файл, который выполняется при загрузке PDF на сервер. Для этого я бы использовал Pythonsubprocess инструменты.

Для удобства и безопасности это позволило бы мне использовать переменные среды Unix для предоставления дополнительной информации и установки рабочего каталога (cwd) процесса, чтобы он мог обращаться к нужным файлам без необходимости искать их местоположение.

Поскольку код плагина исходит из ненадежного источника, я хочу сделать его максимально безопасным. Моя идея состояла в том, чтобы выполнить код в подпроцессе, но поместить его в изолированную тюрьму с другим пользователем, чтобы он не мог получить доступ к любым другим ресурсам на сервере.

К сожалению, я ничего не смог найти по этому поводу, и я не хотел бы полагаться на ненадежный сценарий, чтобы поставить себя в тюрьму.

Кроме того, я также не могу поместить основной / вызывающий процесс в тюрьму chroot, поскольку код плагина может выполняться одновременно в нескольких процессах, пока сервер отвечает на другие запросы.

Итак, вот вопрос: как я могу выполнить подпроцессы / сценарии в изолированной тюрьме с минимальными привилегиями, чтобы защитить остальную часть сервера от повреждения из-за неисправного, ненадежного кода?

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос