different behaviour on fbsd and linux
Dan Lukes
dan at obluda.cz
Mon Feb 20 21:24:43 CET 2006
Rudolf Cejka napsal/wrote, On 02/20/06 18:01:
> Mozna by se
> mohlo jednat o branu k nejakemu pripadnemu exploitu, kdy lze programu
> vnutit ponekud nestandardni vstupni podminky, ktere urcite nikdy nikdo
> nekontroloval, protoze argc >= 1 je obecne brano jako axiom. /bin/ls budiz
> typickou ukazkou, kde se nedostatecne testuje argc != 0, misto pouziti
> mnohem korektnejsiho testu argc > 0.
Mohlo by to znamenat bezpecnostni riziko - pokud bychom volali nejaky
privilegia vyzadujici program prostrednictvim privilegizujiciho (suid)
wrapperu, ktery by kontroloval, zda cilovy program volame s pripustnymi
parametry, mohlo by se stat, ze wrapper na zaklade hodnoty argc dospeje
k zaveru, ze volani zadne "zakazane" optiony neobsahuje a tutiz volani
umozni, kdezto nekorektne napsany cilovy program neexistujici optiony
uvidi a na zaklade nich provede neco nepripustneho.
Klicove ale je, ze onen cilovy program je vadny a je volany
prostrednictvim korektniho wrapperu. Pokud je program volany primo nelze
chyby vyuzit dokonce i kdyz program je vadny. Alespon jsem na nic neprisel.
Otazka je, jak dalece by mel system predchazet chybam aplikaci. Ja
osobne si myslim, ze pokud je lacine takovou rizikovou situaci
detekovat, pak by na ni mel upozornit, ale nemel by se pokouset o zadnou
"umelou inteligenci" a sam ji napravovat. Nemam dobre zkusenosti se
systemy, ktere nedelaji to, co se po nich zada, ale konaji na zaklade
sveho intuitivniho presvedceni o tom, co si mysli, ze by uzivatel chtel,
aby udelaly.
Upozornit misto "tise napravit" je vyznamne vhodnejsi uz jen proto, ze
informace, ze nejaky program je chybny je velmi cenna. Alespon pokud se
stale bavime o bezpecnosti a stabilite ...
Ja bych za prijatelne reseni povazoval, kdyby kernel takovou vec
zdetekoval a upozornil na ni. Nic vic.
Coz je odpoved pro Romana, aniz by timto zpusobem prisel prisel o tu
vlastnost, ktera se mu tak libi, ze ho system upozorni na chybu v jeho
programu. Jen pro uplnost dodavam, ze duvod, proc na to vubec reagovat
je ten, ze skutecne existuje urcita mala pravdepodobnost, ze by nekdo
mohl vyuzit chyby v chybne napsanem programu. Jinak je nepochybne, ze
finalni reseni musi spocivat v oprave chybneho programu.
A pro uplnou uplnost - jakekoliv detekce nebo upravu nelze, Romane,
delat v knihovne a exec* funkcich - to by resilo jen takove programy,
ktere pouzivaji tyto knihovny. Ale kdyz budu psat nejaky "nehodny"
program, tak tvoji opravenou knihovnu nepouziju a zavolam si kernel primo.
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