Re: Niebezpieczna dziura w httpd

Autor: Krzysztof Mlynarski (krzysio_at_hebe.umcs.lublin.pl)
Data: Mon 27 Feb 1995 - 14:19:00 MET


Andrzej Gorbiel wrote:
>
> Usterka dotyczy wylacznie wersji na system Unix. Jest dosc subtelna.
> Serwer nie sprawdza dlugosci polecenia, ktore wysyla laczacy sie z nim
> uzytkownik sieci. Jesli polecenie nie miesci sie w buforze, powoduje
> zamazanie informacji na tzw. stosie programu (czesc pamieci
> przechowujaca robocze dane).
>
> Zwykle grozi to zaburzeniem dzialania programu, jednak umiejetnie
> wykorzystana dziura pozwala potencjalnemu wlamywaczowi przejac kontrole
> nad komputerem.

Nie jest to takie proste, jak mogloby sie wydawac.

1. Podkladanie losowych danych na stos moze najwyzej wygenerowac core'a.
Prawde mowiac nie udalo mi sie zmusic "wadliwego" httpd do wykonania
jakiejs sensownej komendy shell'a. Moze komus sie to udalo?

2. Aby dzialanie takie bylo naprawde bardzo niebezpieczne, kod "zamazujacy"
musi stanowic faktyczny kod maszynowy procesora komputera, na ktorym chodzi
dany httpd. Powstaje pytanie.. ilu ludzi w *.pl zna np. kod maszynowy
procesora MIPS R4000, Motoroli 88000 itd...? Jesli juz nawet zna, to ile
z tych osob zna dana wersje systemu operacyjnego na takim komputerze na tyle,
aby cos umiec w nim celowo zmienic i/lub ile takich osob zna dokladna mape
sprzetowa konkretnego komputera?

3. W CERT Advisory wyraznie jest napisane, ze uzywajac tego bledu mozna
dzialac w systemie, jako uzytkownik, pod ktorym dziala httpd - powodzenia!
Np. moj httpd chodzi, jako user: nobody w grupie: guests. Uzytkownik ten ma
jako shell /dev/null, a zadne pliki w sytemie nie sa przez niego
modyfikowalne oprocz logow httpd wlasnie.

> Informacje o bledzie podal we wtorek Wall Street Journal. Potwierdzily
> ja zarowno CIAC, jak i CERT -- dwie amerykanskie organizacje zajmujace
> sie bezpieczenstwem systemow komputerowych. W ich biuletynach
> administratorzy moga przeczytac, w jaki sposob uniknac ryzyka wlamania,
> poki blad nie doczeka sie oficjalnej poprawki ze strony NCSA.

Owszem.. podano tam sposob zalatania tej dziury i chwala im za to. Nie jest
to jednak tak niebezpieczny blad, jak ogloszony ostatnio przez CERT
(CA:95-05) nowy blad w wiekszosci sendmail'i, ktory naprawde wyglada dosc
groznie i radze Kolegom szybka kompilacje sendmail'a 8.6.10, lub
skontaktowanie sie ze swoimi dostawcami sprzetu w sprawie otrzymania
wlasciwych patch'y.

> W 1988 blizniaczy blad w programie finger (podajacym podstawowa
> informacje o uzytkowniku komputera) zostal wykorzystany w slynnym
> Internet Worm (Robak Internetu). Samoreplikujacy sie ``robak'',
> uwolniony przez autora -- Roberta Morrisa, studenta Cornel University, w
> ciagu kilkudziesieciu godzin calkowicie sparalizowal siec w USA.
> ``Infekcja'' objela wtedy lacznie 6000 komputerow, a straty wyniosly 96
> milionow dolarow.

Nie wydaje mi sie, aby wpisywanie smieci na stos httpd moglo byc uzyte do
np. rozsylania kopiujacych sie e-mail'i... istnieja prostsze metody
tworzenia tego typu poczty nie wykorzystujace zawilych praktyk ze stosem
programu.

> Dopiero od tego zdarzenia sprawa bezpieczenstwa Internetu na powaznie
> zainteresowaly sie agencje rzadowe. Aby w przyszlosci zapobiec podobnym
> incydentom, powstala wtedy CERT (Computer Emergency Response Team).

Zdaje sie, ze powyzszy tekst naprawde napisali dziennikarze :)))

> =============================================================================
> CA-95:04 CERT Advisory
> February 17, 1995
> NCSA HTTP Daemon for UNIX Vulnerability
> -----------------------------------------------------------------------------
>
> The CERT Coordination Center has received reports that there is a
> vulnerability in the NCSA HTTP Daemon V.1.3 for UNIX. Because of this
> vulnerability, the daemon can be tricked into executing shell commands.
>
> If you have any questions regarding this vulnerability, please send
> e-mail to Beth Frank at the NCSA, efrank_at_ncsa.uiuc.edu.
>
> -----------------------------------------------------------------------------
>
> I. Description
>
> A vulnerability in the NCSA HTTP Daemon allows it to be tricked into
> executing shell commands.
>
> II. Impact
>
> Remote users may gain unauthorized access to the account (uid) under
> which the httpd process is running.

Wlasnie!

> III. Solution
>
> The following solution was provided by the HTTPD Team at SDG at
> NCSA.
>
> Step 1:
>
> In the file httpd.h, change the string length definitions
> from:
> /* The default string lengths */
> #define MAX_STRING_LEN 256
> #define HUGE_STRING_LEN 8192
> to:
> /* The default string lengths */
> #define HUGE_STRING_LEN 8192
> #define MAX_STRING_LEN HUGE_STRING_LEN

Ciekawe co sie stanie, jesli sie przekroczy 8192 znaki?

                                                Pozdrawiam,
                                                   -Krzysio

--
  +---------------------------------------------------------------+
  | E-mail:                        =Unix/Network Security Expert= |
  | krzysio_at_hebe.umcs.lublin.pl    IRC:  Krzysio    Radio: SQ5ASM |
  | root_at_hebe.umcs.lublin.pl       Voice phone:   +48-81-37-56-76 |
  | 3W home page: http://hebe.umcs.lublin.pl/Krzysio/Krzysio.html |
  |                                                               |
  |     "You can't kill ... what was killed before ..."           |
  |                                     - unknown vampire         |
  +---------------------------------------------------------------+


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