Kategorie:
22

Luka Zero Day we wszystkich wersjach Microsoft IIS! [Aktualizacja]

Soroush Dalili, brytyjski specjalista od bezpieczeństwa aplikacji internetowych oraz systemów operacyjnych z rodziny Windows, opublikował informacje dotyczące nowej luki Zero Day odkrytej przez siebie we wszystkich wersjach Microsoft Internet Information Services.

Odkryty błąd ma związek ze sposobem, w jaki serwer IIS przetwarza nazwy plików zawierające znak średnika. Wiele serwisów zezwalających użytkownikom na przesyłanie do serwera własnych plików (np. plików .jpg służących jako awatary) odrzuca potencjalnie niebezpieczne formaty, takie jak choćby pliki zawierające aktywne strony ASP (.asp). Odkryta luka pozwala na łatwe obejście takiego mechanizmu zabezpieczającego, poprzez dodanie do nazwy potencjalnie niebezpiecznego pliku znaku średnika wraz z akceptowanym przez serwer rozszerzeniem (np. avatar.asp;.jpg). Taki plik zostanie zaakceptowany i pobrany przez serwer tak jak zwykły plik .jpg. Jednak w momencie jego otwarcia, plik taki zostanie przez IIS zinterpretowany jako kod ASP i wykonany przez moduł asp.dll.

Ze wstępnych informacji wynika, że wszystkie serwery IIS pozbawione dodatkowej kontroli formatu pliku są w wyniku powyższej luki podatne na wykonanie dowolnego kodu. Secunia, duńska firma zajmująca się między innymi śledzeniem oraz klasyfikowaniem nowych zagrożeń, potwierdziła do tej pory istnienie błędu w pełni zaktualizowanym systemie Windows Server 2003 R2 SP2 (IIS 6). Przedstawiciel firmy Microsoft zapewnił natomiast, że gigant z Redmond rozpoczął już analizę zgłoszonego problemu.

Wobec braku poprawki zamykającej lukę lub oficjalnego poradnika zabezpieczeń firmy Microsoft, administratorzy serwerów IIS powinni rozważyć odebranie praw wykonania z lokacji, do których trafiają pliki ładowane przez użytkowników serwisów.

[Aktualizacja]
Soroush Dalili zaktualizował swą publikację. Z najnowszych informacji wynika, że błąd obecny jest w IIS w wersji 6 oraz starszych. Wersja 7.5 nie jest podatna na opisany atak, natomiast wersja 7 nie została jeszcze do końca przetestowana.

Informacje na temat najnowszej luki Zero Day w Microsoft IIS, jako pierwszy w Polsce opublikował serwis HARD CORE SECURITY LAB!

Więcej informacji: http://soroush.secproject.com/downloadab...report.pdf

«
»

Znalazłeś literówkę? Zgłoś ją używając formularza!


Jeśli uważasz, że ten nius jest nieobiektywny, przedstawia nieprawdziwe wydarzenie, jest spamem lub nie spełnia standardów serwisu, napisz raport.

Niusy na podobny temat:

Komentarze (RSS)

Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.

20 komentarzy

zwiń wątek TheBlackMan  25 grudnia 2009 o godz. 16:26 #
Gravatar

No to klopsik.

Ciekawe jak szybko będzie łata i czy w ogóle będzie łata do starszych wersji IIS.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek Najek  25 grudnia 2009 o godz. 17:47 #
Gravatar

Już jest nie oficjalna poza tym jak ktoś się zna na asp wie jak łatwo się, przed tym ustrzec – a procesy IIS można też zamknąć w osobnym środowisku. Taka dziura, nie dziura.. jak administrator sierota to nawet najwymyślniejsze zabezpieczenia zbyteczne

 
 
zwiń wątek spy000yps  25 grudnia 2009 o godz. 17:52 #
Gravatar

LOL.

Niewątpliwie błąd jest po stronie serwera IIS, jednak to robiący serwis pozwala na jego wykorzystanie. Jak można się przekonać przy lekturze "Secure file upload in PHP web applications Alla Bezroutchko June 13, 2007" zrobienie bezpiecznego uploadu plików na serwer nie jest trywialną sprawą. Ograniczanie się do sprawdzania rozszerzenia pliku od zawsze było słabym pomysłem… ;)

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek oO  25 grudnia 2009 o godz. 19:16 #
Gravatar

Ale robiący serwis pozwala jedynie na wgranie pliku jpg. I jest tego *pewien*, że jest plik z rozszerzeniem .jpg, więc *na pewno* nie wykonywalny skrypt.

To, że kretyni z microsoftu zrobili tak, że plik "avatar.asp;.jpg" interpretowany jest przez serwer jako plik z rozszerzeniem .asp to ich, i tylko ich, wina.

zwiń wątek Najek  25 grudnia 2009 o godz. 19:48 #
Gravatar

Współczuje, administratorowi, który musiałby wspołpracować z koderem prezentującym Twój tok myślenia. Zawsze winny, ktoś inny niż ja, w udostępnianiu usług jest jedna zasada udostępniamy tyle ile konieczne + zasada ograniczonego zaufania.. jeśli koder i administrator ich nie odpuści to dziury softu nie straszne, jednak gdy choć jeden odpuści i pojawi się jakaś dziura w oprogramowaniu to los serwera może być nie ciekawy..

 
zwiń wątek spy000yps  25 grudnia 2009 o godz. 23:17 #
Gravatar

"I jest tego *pewien*, że jest plik z rozszerzeniem .jpg, więc *na pewno* nie wykonywalny skrypt."

LOL.

Nie można polegać tylko i wyłącznie na rozszerzeniu pliku.

Zresztą wydawało mi się, że zmiana nazwy plików na coś równie sensownego jak hash starej nazwy, daty uploadu i jakiegoś losowego badziewia jest standardem, który zabezpiecza przed takim atakiem…

Wina MS polega na tym, że wcześniej tego nie znaleźli sami. Udany atak na jakiś serwis stojący na iis będzie w 85% winą dewelopera, który nie czytał wystarczająco dużo o web szejkjurity i nie wie, że licho nie śpi.

zwiń wątek ak47  26 grudnia 2009 o godz. 12:59 #
Gravatar

Mechanizmy zabezpieczeń są żeby je używać. Po to przeca są. Jak musisz wynaleźć koło od nowa to już twoja sprawa. Ale faktycznie serwis który opiera się tylko na sprawdzeniu rozszerzenia i tak polegnie na czymś innym :)

 
 
 
 
zwiń wątek Najek  25 grudnia 2009 o godz. 20:34 #
Gravatar

W artykule brakuje kilku istotnych faktów:

Microsoft Internet Information Services ‐ IIS (All versions Work successfully on IIS 6 and

prior versions – IIS7 has not been tested yet – does not work on IIS7.5)

Z tego co widzie u mnie na 6.5 dziury nie ma – albo mam źle skofigurowany IIS

For Web Developers:

o Highly Recommended: Use a completely random string as a filename and set its extension

by the web application itself (by using a “switch‐case or select‐case” for example) and never

accept the user’s input as the filename.

o Only accept alpha‐numerical strings as the filename and its extension.

 For Webmasters:

o Remove “execute” permission from the upload directories (folders).

Więc o nazwaniu tego poważną dziurą.. to hmm.. kto średnio rozgraniety daję uprawnienia do wykonania uploadowanym plikom?

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek Najek  25 grudnia 2009 o godz. 20:37 #
Gravatar

Aha w Windows Server 2008 R2 domyslnie jest ISS7.5 nie wiem skąd Ci szwedzi wcisnęli tam IIS 6 i nazwali to zaktualizowana wersja :/ Bajkopisanie autora?

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek hcsl.pl  25 grudnia 2009 o godz. 20:53 #
Gravatar

Napisałem wyraźnie, że błąd został potwierdzony do tej pory przez Secunię w Windows Server 2003 R2 SP2 (IIS 6), nie pisałem nigdzie o Windows Server 2008 R2.

Natomiast, to o czym pisze Najek (All versions Work successfully on IIS 6 and prior versions – IIS7 has not been tested yet – does not work on IIS7.5) zostało dodane w publikacji dopiero po opublikowaniu tego newsa, wcześniej było tam "All versions".

Zrobię za chwilę update do newsa.

zwiń wątek Najek  26 grudnia 2009 o godz. 11:03 #
Gravatar

Ta, a w nagłówku dalej:

Zero Day odkrytej przez siebie we wszystkich wersjach Microsoft Internet Information Services.

W treści dalej:

Ze wstępnych informacji wynika, że wszystkie serwery IIS pozbawione dodatkowej kontroli formatu pliku są w wyniku powyższej luki podatne na wykonanie dowolnego kodu.

"powinni rozważyć odebranie praw wykonania z lokacji, do których trafiają pliki ładowane przez użytkowników serwisów."

WTF? Kto średnio inteligetny pozwala na wykonywanie uploadowanych plików na swoim serwerze? Co tu jest do rozważania?!

Z tym Windows Server 2008 R8 faktycznie moja wtopa (Niemniej dla 2003 też jest IIS 6.5/7 :P ), reszta wtopa autora.

zwiń wątek hcsl.pl  26 grudnia 2009 o godz. 11:40 #
Gravatar

1) W tytule masz [aktualizacja], co zachęca do przeczytania aktualizacji w tekście, zawierającej nowe fakty. Trudno przerabiać cały artykuł, który był przecież pisany zgodnie ze stanem na daną chwilę, tylko dodaje się aktualizację wyjaśniającą nowe fakty.

2) "Ze wstępnych informacji wynika, że wszystkie serwery IIS" ze wstępnych informacji tak właśnie wynikało, więc to zdanie będzie zawsze prawdziwe.

3) prawa wykonania – zdarzają się różne najprostsze błędy, w przypadku odkrycia tego typu luki, warto sprawdzić, czy wszystko z prawami w tego typu katalogach jest OK.

 
 
 
 
zwiń wątek _qaz7  26 grudnia 2009 o godz. 11:27 #
Gravatar

"Taki plik zostanie zaakceptowany i pobrany przez serwer tak jak zwykły plik .jpg. Jednak w momencie jego otwarcia, plik taki zostanie przez IIS zinterpretowany jako kod ASP i wykonany przez moduł asp.dll."

Trzymając się tego przykładu z "obrazek.asp;.jpeg," mam pewne niejasności – rozumiem, że sparsowana nazwa pliku przez IIS to "obrazek.asp", ale:

1. samo otwarcie pliku w sensie programowym to nie to samo co otwarcie w sensie użytkowym. Dlatego zastanawiam się w jakim celu serwer miałby otwierać plik w sensie użytkowym przez aplikację skojarzoną w systemie z rozszerzeniem jpeg ?

2. Rozumiem, że przykładowy obrazek np. trzeba przetworzyć – ale wyobraźni mi nie starcza, by uwierzyć, że może ktoś może przekazywać plik do przetworzenia przez:

ShellExecute("OPEN", "nazwa_pliku_sparsowana_przez_ISS") czy

CMD->start "nazwa_pliku_sparsowana_przez_ISS"

a nie przez np.

ShellExecute( "imageprocessor.exe", "nazwa_pliku_sparsowana_przez_ISS") czy

CMD->imageprocessor.exe "nazwa_pliku_sparsowana_przez_ISS"

Niemniej jednak programistom od IIS należy się powyciąganie za uszy, gdyż systemowe funkcje windy do obsługi ścieżek(shlwapi) poprawnie parsują takie galimatjasy ze średnikami w nazwach, wiec po kiedy parsować to swoim kodem ?

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek el.pescado  26 grudnia 2009 o godz. 14:35 #
Gravatar

Ja rozumiem, że chodzi o to że:tworzymy serwis, gdzie możnaumieszcząc np. zdjęcia (coś a'la flickr). Użytkownik wysyła plik ASP o nazwie evil.asp;.jpg. Serwer sprawdza rozszerzenie (.jpg – OK) i umieszcza plik gdzieś w katalogu dostępnym przez WWW. Następnie użytkownik chce pobrać plik, przez co odwiedza w przeglądarce stronę http://example.com/upload/evil.asp;.jpg W tym momencie serwer myśli "hoho, toż to plik ASP, trzeba go uruchomić". Bęc!

zwiń wątek hcsl.pl  26 grudnia 2009 o godz. 15:00 #
Gravatar

Dokładnie, o to chodzi!

 
zwiń wątek Najek  26 grudnia 2009 o godz. 15:06 #
Gravatar

A od kiedy się daje +x do plików graficznych?

zwiń wątek maciek  26 grudnia 2009 o godz. 15:37 #
Gravatar

To Windows. Inne zwyczaje, inne tradycje! (mimo, że technologia miejscami nawet bardzo dobra)

 
zwiń wątek el.pescado  28 grudnia 2009 o godz. 19:41 #
Gravatar

Żeby niektórzy się tu nie podniecali niezdrowo: w takim Linuksie pod Apache np. skrypty PHP też nie muszą mieć +x, i też rozpoznawane są na podstawie rozszerzenia.

 
 
zwiń wątek _qaz7  26 grudnia 2009 o godz. 19:19 #
Gravatar

"(…)Bęc!"

Teraz rozumiem – dzięki ;-)

 
 
 
zwiń wątek matekm  29 grudnia 2009 o godz. 9:00 #
Gravatar

Polecam artykuł na niebezpieczniku (o niebo lepszy):
http://niebezpiecznik.pl/post/dziura-w-microsoft-

oraz link z komentarza:
http://isc.sans.org/diary.html?storyid=6139

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 

Uwaga! Niektóre komentarze, m.in. te dodane przez niezalogowanych i nowych użytkowników, są ręcznie moderowane. Jeśli Twój komentarz nie ukaże się od razu, nie dodawaj go ponownie, tylko cierpliwie poczekaj na akceptację.

W komentarzach możesz używać prostych znaczników HTML. Przykłady:
  • Link: <a href="http://osnews.pl">OSnews: niusy IT</a>,
  • Wytłuszczenie: <strong>tekst pogrubiony</strong>,
  • Kursywa: <em>tekst pochylony</em>,
  • Przekreślenie: <strike>tekst przekreślony</strike>,
  • Kod: <code>printf("blok kodu");</code>,
  • Cytat: <blockquote>cytat</blockquote>
Uwaga: jeśli dodasz nieznany znacznik, będzie on niewidoczny, gdyż system filtruje takie znaczniki.

Wszystkie autorskie niusy w serwisie publikowane są na licencji Creative Commons Uznanie autorstwa 2.5 Polska.

Twoja sugestia