Jak vykonat skript suid
Juraj Rehak
glip na planet.sk
Pondělí Únor 7 10:52:59 CET 2000
> > Nerad to rikam, ale mate tam IMHO diru velkou jak vrata do hangaru, ve
> > kterem Amici montovali rakety Saturn 5. A jestli do toho programu pridate
To znie dobre... a pravdivo ;]
> > prikaz setreuid(geteuid(), -1), ktery tady byl doporucovan (a uz nic
> > jineho), tak tu diru akorat poradne posichrujete.
Samozrejme... tuto moznost som navrhol preto, ze si bol autor vedomy, ze
to nie je bezpecne (a okrem toho to nechcel pustat pod rootom :)
> > To, ze nejde delat set[ug]id skripty, ma jednu trivialni a jednu hlubsi
> > pricinu (nejmene). Ta trivialni je ta, ze bez urcitych triku ze strany
> > jadra je tam race condition (1. jadro otevre skript, 2. podiva se na
> > nej, 3. zavre skript, 4. jadro spusti se intepreter se jmenem skriptu,
> > 5. interpreter otevre skript...pritom mezi 1. a 5. muze dojit k tomu, ze
> > jmeno zacne znamenat neco jineho), ta hlubsi je v tom, ze skutecna
Znova suhlas. Len musim upozornit, ze napriek subjectu sa tu bavime o
spustani scriptu exec-om z suid binarky ;] Tam tento problem nevidim.
Security je vec druha ;]
> > semantika programu ve skriptovacim jazyce (specialne sh a spol.) je
> > typicky velice zavisla na "zivnotnim prostredi" procesu (environment,
> > umask, cwd, rlimity, otevrene soubory, obsluha signalu a urcite jeste
> > neco), ktere je prakticky uplne v rukach nepritele. Program, ktery
> > provede dostatecne bezpecnou sanaci tohoto prostredi, neni vubec
> > trivialni zalezitost.
>
> to uz muze byt horsi, ale vzhledem k tomu ze skript nebere zadne parametry
> tak na prostredi moc nezavisi ?
Zavisi.
Kazdopadne by som spustanie skriptov zo suid binarky nehadzal uplne do
kosa. Je to na zvazeni admina, ci mu usetrena robota (myslim rozdiel medzi
napisanim scriptu a C-ckoveho kodu, ktory len tak mimochodom moze byt
rovnako deravy :) stoji za to riziko a nakolko velke vlastne to riziko je.
Maly priklad: Naposledy som 'suid skript' pouzil asi pred mesiacom. Islo o
server nepristupny z I-netu (teda teoreticky ano ak niekto predtym nabura
este 2 ine stroje :) Na tej masine ma shell konto len par ludi, ktori ju
hackovat urcite nebudu a robil sa suid na bezneho usera. Aj to som
nakoniec upravil len na sgid, pricom tu sgid binarku mohli spustit len
uzivatelia z urcitej skupiny (prava na adresar :) a samotny skript bol
citatelny len pre skupinu, pod ktorou sa spustal (dost tazko sa exploituje
skript, ktoreho obsah nepoznam). Usetrilo mi to kopu roboty a myslim, ze
na bezpecnosti sa to velmi neodzrkadlilo.
PS: pod rootom by som to radsej nespustal ;]
--
. , Glip
. ,`o--. --
____.....------.' .,' ,,~'' `,------.....____
''''` `---.:: ,': ; ,' ;`. ;;.---' '````
` `:__`-._ `.`., _,-'__;' ' SysAdmin TEMPEST s.r.o.
` `---`---'`'`---'---' ' Phone: +421-7-69254111
glip na planet.sk____________ \`--'/`,,___________http://glip.planet.sk/
``` '''
Další informace o konferenci Linux