Насколько возможно написать эффективную тюрьму для OpenBSD без изменения ее исходного кода?
Я исследовал возможные операционные системы для размещения веб-сайтов и заинтересован в безопасности. Мне очень нравится тюремная система FreeBSD, и я понимаю, что OpenBSD прекратила свою тюремную систему несколько лет назад из-за возможного использования условий гонки. Мой общий вопрос: возможно ли написать джейл на C, который не зависит от изменения исходного кода OpenBSD? Или для корректной работы джейла необходимо внести изменения в ядро и т. Д.?
Например, можно ли написать оболочку для новой виртуальной машины в OpenBSD (vmm), которая, по сути, сделает невозможным доступ пользователя к чему-либо за пределами виртуальной машины? Или это в принципе невозможно, потому что всегда найдется способ проникнуть в систему из-за того, как закодирован OpenBSD или как С взаимодействует с ним?
1 ответ
Возможно ли написать джейл на C, который не зависит от изменения исходного кода OpenBSD? Или нужно внести коррективы в ядро и т.п., чтобы джейл работал нормально?
Нет и Да.
Весь смысл тюрем состоит в том, чтобы разделить систему на несколько независимых мини-систем. Все они используют одно и то же ядро и значительно меньше накладных расходов, чем виртуальная машина.
OpenBSD поддерживаетchroot(8)
но функциональность тюрьмы намного больше, чем chroot. Например, если ваша среда chroot будет скомпрометирована, вы можете вырваться из среды chroot. Это позволит получить корневой контроль над всей системой. Если у вас есть скомпрометированный джейл, у них есть только root на джейле.