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