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