Máte pravdu. Chroot sám o sobě není dokonalý. Pokud útočník získa roota v chrootu, existuje mnoho možností jak se dostat ven.
Proto v chrootu musí být jen nezbytné věci. Proto mám v ukázce zabránění přidání shellu (i když na ní aplikace závisí) Do /dev obvykle přidávám jen /dev/stdout, /dev/stdin, /dev/null, /dev/zero a /dev/log.
Abychom bezpečnost chrootu zvýšili, používáme již zmíněný GrSecurity patch. Ten umožňuje lepší zabezpečení v chrootu (úplný seznam najdete na http://www.grsecurity.net/features.php):
A navíc umožňuje:
GrSecurity, SELinux a i vámi zmiňovaný Novell AppArmor umožňují omezování přístupu bez kopie pro chroot. Osobně si myslím, že podobné systémy mají budoucnost. Většího nasazení, ovšem dosáhnou až když budou bezpečnostní pravidla součástí instalačních balíčků.
Ono rozběhnout pravidla pro apache + PHP + všechny moduly do PHP, není úplně snadné. Když pak nainstalujete další službu do apache nebo nainstalujete aktualizace, musíte pravidla znovu rozšiřovat. A musíte znovu zjišťovat co všechno je potřeba. Pokud by seznam pravidel byl součástí instalačního balíčku a jen by se povolené aplikace sloučili do jednoho souboru (jak to už je jiná věc). Čímž by se jednoduchost použití dostala na úroveň jaileru a výsledek by byl lepší.
V tomto směru můžeme poděkovat firmě RedHat za integraci do své distribuce. Posunula tuto problematiku zase blíže uživateli.
Bezpečnost je hezká věc, ale vždy si člověk musí klást otázku: Kolik to bude stát, když k průniku dojde. A pokud je vybudování bezpečnosti vyšší než způsobené škody ...