Re: Wady unixa, bylo: M$ Exchange

Autor: Szymon Sokol (szymon_at_galaxy.uci.agh.edu.pl)
Data: Tue 13 Aug 1996 - 13:50:52 MET DST


Andrzej Resztak <resz_at_helios.man.lublin.pl> wrote:

: Wspolny kod to powinien byc jeden z glownych celow przy projektowaniu
: systemu wielozadaniowego/wielouzytkowego, tymczasem w Unixie
: do niedawna to bylo niewykonalne. Jesli mam program wykorzystywany
: przez 40 uzytkownikow (a mam), to wiecie ile on zajmuje pamieci?
No, jeśli został źle skompilowany... z man ld(1):
         + dynamically-bound, sharable object files (.so), are also
         referred to as "shared libraries," which are created from
         previous ld executions.
[ale zgadzam się, że w jakichś wykopaliskowych Unixach mogło nie być
"sharable objects"]

: I na koniec, wytlumaczcie mi, jak jest mozliwe w Unixie
: przepelnienie stosu i zamazanie danych. Chyba albo stos
: przydziela sie statycznie, albo dynamicznie, ale wtedy
: dba, zeby nie wchodzil na inne dane lub kod programu.
: A tu co troche sa jakies patche do aplikacji, bo mozna
: uzyskac uprawnienia root-a przepelniajac stos.
Nie, nie - nie w tym rzecz. Nie słyszałem jeszcze żeby się dało coś
zamazać przepełniając stos. Te błędy, które ostatnio wykryto w wielu
programach (idea stara jak świat, Internet Worm wykorzystywał tę samą
dziurę w fingerd), polegają na tym, że przepełnia się *bufor* używany
przez funkcję gets(3) lub podobną - taką, która nie sprawdza długości
wczytanego tekstu vs. długość tablicy char[] przekazanej jako bufor.
A że owa zmienna zwykle jako "automatic" znajduje się na stosie,
rezultatem jest nadpisanie tego, co na stosie znajduje się za ową
zmienną - w tym adresu powrotnego z funkcji. I wracamy zgoła nie tam,
skąd przyszliśmy... Ale to NIE jest przepełnienie *stosu*. I w
zasadzie wszyscy Unixowi programiści powinni już wiedzieć, że zamiast
gets(3) należy używać fgets(3) (która sprawdza przepełnienie bufora).

A temat rzeczywiście mało się nadaje na polipa, ale... gdzie w
takim razie się nadaje? 8-)

-- 
                   Szymon Sokol -- Network Manager
U   U M   M M   M  University of Mining and Metallurgy, Computer Center
U   U MM MM MM MM  Mickiewicza 30, 30-059 Krakow, POLAND.    FAX +48 12 338907
 UUU  M M M M M M  http://galaxy.uci.agh.edu.pl/~szymon/     TEL +48 12 172894


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 15:58:57 MET DST