./+DEINSTALL: Permission denied

Dan Lukes dan at obluda.cz
Sat May 27 20:58:00 CEST 2006


Miroslav Lachman napsal/wrote, On 05/27/06 19:27:
> Ja si myslim, ze je to na 99.9% tim, ze 
> mam /var/db primountovan s option noexec a ten +DEINSTALL script je 
> samozrejme ve /var/db/pkg/jmenoportu/+DEINSTALL, tudiz se ho nepovede 
> spustit.
> /dev/ad0s1e on /var/db (ufs, local, noexec, nosuid, soft-updates)

> Nicmene by me ted od zkusenejsich zajimalo, jak to do budoucna resit? 
> Vykaslat se uplne na noexec? (prida vubec nejakou realnou bezpecnost, 
> kdyz se jakykoliv script stejne da spustit zavolanim "sh 
> /var/db/spatny_script.sh"). Presunout /var/db/pkg na jiny oddil, ktery 
> nema noexec a do /var/db na nej udelat symlink?

	To je treba asi velmi vazne rozmyslet jake nebezpeci se "noexec" flagem 
vlastne odstranuje.

	Noexec ma smysl uplatnit jen na takoveho uzivatele, ktery nema pravo 
zapisu na zadny disk, ktery by "noexec" nebyl. To znamena, ze uzivatele 
se deli do dvou kategorii - ti, kteri mohou, a ti, kteri nemohou. Temi 
prvnimi se nema smysl dale zabyvat. Pro ty druhe je mozne vytvorit jeden 
ci vice noexec svazku a soucasne na vsech jinych svazcich je treba jim 
zakazat jakekoliv pravo zapisu kamkoliv - beznym pravovym systemem.

	Jakmile ale zacnu "noexec-it" i svazky, kam mohou zapisovat uzivatele 
prvni skupiny, musim se s nimi dohodnout, ze "tam to opravdu nepujde" - 
a musim si byt jist, ze to tak skutecne je. Jinak si koleduju o problemy.

	Jinymi slovy - chci rict, ze noexec ma smysl, jakkoli je to flag 
filesystemu, pokud se k problemu pristupuje smerem "od uzivatelu" - 
nikoli smerem od filesystemu.

	Za teto situace noexec ma svuj bezpecnostni smysl a neprinasi zadne 
velke nebezpeci problemu.

	Ve skutecnosti v praxi ja osobne noexec nepouzivam ...

> (prida vubec nejakou realnou bezpecnost, kdyz se jakykoliv script stejne da spustit zavolanim "sh /var/db/spatny_script.sh")

	Neda. Tedy - samozrejme da - ale jen pokud je uzivatel opravnen 
pouzivat (spustit) sh. A to je rozhodnuti spravce, jestli mu ho 
zpristupni nebo ne.

	Samozrejme, pokud mu ho nezpristupni, nemuze ocekavat, ze danemu 
uzivateli budou fungovat systemove sh-scripty.

	Nerad bych, aby se nekdo urazil kvuli poucovani, ale "bezpecnost" je 
vzdy velmi komplikovany problem, ktery je treba nahlizet jako celek - 
jen malokdy lze nejakeho vyznamneho zvyseni bezpecnosti dosahnout zmenou 
nejakeho detailu v ramci funkcniho systemu ...

> Otravovat nekoho s zadosti o upravu, aby se ./+DEINSTALL nevolal primo, 
> ale pres zmineny "sh /var/db/pkg/jmenoportu/+DEINSTALL"?

	Ten posledni napad je prvni, co cloveka napadne - jenze - (DE)INSTALL 
script nemusi byt nutne take sheloovsky script - muze to byt jakykoliv 
jiny spustitelny program.

	To kdyz uz, tak by se to muselo zrejme resit tak, ze by se script 
nejprve prekopiroval na nejake misto (standardni nebo urcene spravcem 
systemu, kde by slo programy spoustet) a spustil by se teprve tamodsud.

						Dan


-- 
Dan Lukes                                   SISAL MFF UK
AKA: dan at obluda.cz, dan at freebsd.cz,dan at kolej.mff.cuni.cz



More information about the Users-l mailing list