Marcin Maj z Dziennika Internautów zainteresował się sprawą luk bezpieczeństwa odnalezionych w Allegro. Udało mu się skontaktować z rzecznikiem Allegro - Bartkiem Szambelanem, w celu potwierdzenia doniesień o dziurach, które prezentowałem w Aukcje.org (moje maile Bartek zwykle ignoruje - mimo sympatycznych i bardzo rzeczowych rozmów telefonicznych).
Co ważnego wynika z publikacji Dziennika Internautów dla aukcjonerów?…
Po pierwsze, pierwszy raz oficjalnie potwierdzono istnienie luk w skryptach allegro.pl - pół roku trwało, zanim ktokolwiek z serwisu zdecydował się na taki krok. To nie boli - zwłaszcza, że szybka reakcja na ostatnie doniesienia pokazuje pewną sprawność programistów z Poznania. Dziur nie powinno być wcale, ale wpadki - trafiają się każdemu.
Po drugie - allegro zaczęło jeszcze mocniej „dmuchać na zimne”. Świadczy o tym wprowadzenie domyślnego logowania przez SSL. To dobry ruch (ruch - bo implementacja jest … jakby ją napisały poznańskie koziołki), choć ani logowanie przez SSL, ani wyłączenie/wykasowanie Java Scriptu nie są w stanie zatrzymać pewnych tricków.
Trzecia sprawa - wspomniane powyżej, ale także w tytule publikacji wyłączanie Java Scriptu. IMHO do całej sprawy należy podchodzić z rozsądkiem. Luki opisane pół roku temu nie potrzebowały JS. Podobnie - co widać z wymiany postów z lpilorz (Łukasz Pilorz) - pewne modyfikacje ataków XSS i CSRF pozwalają obejść wyłączony JS… i ukryć zagrożenie pod postacią niewinnego linku, ilustracji.
Obecnie Allegro całkiem sprawnie filtruje JS w treściach zamieszczanych przez użytkowników (w opisach aukcji, na stronach „o mnie”, na forach) - przynajmniej na razie nie ma żadnego uzasadnienia, aby wyłączać Java Script w trakcie wizyt w Allegro.pl .
Zapraszam do lektury:
Poprzedni news: D.A.Rempex - Aukcja Grafiki i Map
Następny news: Paypal … jeszcze chwilka…

RSS |
RSS komentarzy | Kontakt | O stronie | Polityka prywatności
Copyright © Jacek Z. Strzembkowski - wszelkie prawa zastrzeżone
# xyz — 14/9/2006 @ 22:53:
Hihi …. wiecie ci…a ja dostałem dzisiaj email z zaproszeniem na …spotkanie Allegro 2006. No nieźle … dziś jest 14 września
# DeKoDer — 15/9/2006 @ 3:55:
Na poczatek moj skromny apel:
Prosze nie siac tutaj „defektyzmu” !
Zastanawiam sie jaka wiedze fachowa posiadaja osoby piszace o tych „wielkich zagrozeniach”. Przynajmniej z tego co mozna wyczytac - nie wyglada to na pelna wiedze potrzebna do oceny tych czy innych zagrozen. Opisany przyklad ze strona „O mnie”, na ktorej znajdowalo sie IFRAME, to zadna tam dziura. Wiadomo jest, ze od dawna nie da sie w Allegro wstawic ani do tresci opisu aukcji, ani do tresci strony „O mnie” wspomnianego znacznika (oraz wielu, wielu innych). Jesli jakis uzytkownik Allegro pozostawil na swojej stronie „O mnie” niedozwolone obecnie elementy, to nie zrobi on wielkiej kariery pokazujac staaare sztuczki - co najwyzej dostanie po nosie od administratorow i sluch po nim zaginie. Kolejna bajka to mozliwosc ataku XSS/CSRF, ktory mialby komukolwiek wyrzadzic krzywde. Podane dwa przyklady z Allegro (innych nie bylo) to raczej taka „zabawka” dla kilkunastoletnich chlopcow … Bo kto rozsadny wstawi sobie do opisu aukcji obrazek wylogowujacy klientow ??? Tak, to dziala i pewnie zawsze bedzie dzialac, ale poziom zagrozenia jest ZEROWY. Przy okazji dodam, ze nie trzeba do tego uzywac programow do wystawiania aukcji (jak to sugerowano), bo takie rzeczy przechodza typowo przez filtr parsujacy (zreszta obecnie jest on chyba wspolny dla tresci z formularzy www i tych przyjmowanych z WebAPI). Ten ostatni przyklad ze skladaniem ofert rowniez nie stwarza zagrozen, zreszta zeby w ogole wiedziec to na 100% trzeba by dodatkowo znac konfiguracje PHP na serwerach Allegro. Ale nawet bez tego moge dac „pol glowy”, ze nie zadziala zaden mechanizm, ktory po wejsciu do opisu aukcji automatycznie potwierdzi zlozenie oferty (co z punktu widzenia normalnego sprzedajacego bylo by przy okazji bezsensowne).
# lpilorz — 15/9/2006 @ 18:33:
Nie do końca zgodziłbym się z Panem w temacie JavaScript. Proste ataki CSRF metodą GET nie wymagają JavaScriptu, ale można łatwo wprowadzić zabezpieczenia które nie pozwolą ich wykonać. JavaScript oraz inne aktywne elementy umożliwiają w wielu przypadkach obejście tych zabezpieczeń (unikalne wartości w formularzach, nagłówek Referer itd.), a także bardziej złożone ataki.
Przykład ataku, którego raczej nie udałoby się Panu wykonać bez skryptów: zmiana adresu email ofiary, wczytanie nazwiska panieńskiego matki z ustawień, a następnie wykorzystanie mechanizmu przypomnienia hasła do zmiany hasła ofiary. Nie twierdzę, że taki atak w ogóle jest możliwy na Allegro - to tylko przykład zastosowania XSS. Ciekawszym efektem byłoby samodzielne kopiowanie się kodu na stronę „O mnie” ofiary, i zwiększanie w ten sposób zasięgu ataku.
Większość luk znajdowanych w przeglądarkach dotyczy JavaScriptu. Kolejnym etapem poszerzenia ataku mogłoby by być infekowanie komputerów przy pomocy aukcji na Allegro (teraz faktycznie sieję defetyzm - ukłon w stronę DeKoDera - bo to naprawdę mało prawdopodobne). Poprzedzone mogłoby to być sprawdzeniem, jakich przeglądarek używają osoby odwiedzające aukcję - tu też może się przydać JavaScript (rzetelniejsza metoda, niż wstawienie obrazka lub ramki i badanie nagłówka User-Agent). I tak dalej… (zaczynam już trochę fabularyzować ;))
Również klasyczna kradzież identyfikatora sesji zwykle nie jest możliwa bez JavaScriptu (wyjątek: identyfikator przekazywany w URL + możliwość wstawiania obrazków z zewnętrznego serwera).
Podsumowując:
1. Wyłączenie JavaScriptu eliminuje 95% ataków XSS/CSRF. Fakt, że Allegro jest podatne na pewną część z pozostałych 5%, to już inna sprawa.
2. Nie jest obecnie powszechnie znana metoda wstawienia JavaScriptu na Allegro - nie znaczy to, że takiej metody nie ma.
@DeKoDer:
Nie sądzę, żeby ktokolwiek wkleił tutaj gotowy skrypt z rzeczywiście groźnym atakiem. Prosty przykład ilustrujący podatność ma większy sens - wykazuje że luka istnieje. Napisanie kodu stwarzającego rzeczywiste zagrożenie zajmuje zwykle więcej niż kilka minut, więc nikomu nie opłaca się tego robić, jeśli zgłasza lukę i spodziewa się jej załatania. Nie wspominam o kwestiach moralnych.
Odnośnie znajomości konfiguracji PHP: nie trzeba nawet wiedzieć, czy serwis jest napisany w PHP. Wystarczy - tak jak zrobił pan Strzembkowski - sprawdzić, czy działa przekazanie parametrów metodą GET.
Napisz komentarz:
Opcja komentowania dla tego artykułu została wyłączona.