Jako pierwszy na moje zaproszenie do podsuwania roku 2006 odpowiedział Łukasz Pilorz - części z Was znany z m.in. publikacji w Dzienniku Internautów oraz z wymiany komentarzy pod newsami w Aukcje.org [1][2].
To nie jest podsumowanie roku - to raport na temat bezpieczeństwa w serwisach aukcji ad.2006. Zapraszam do lektury…
eBay, Allegro i Świstak - krótkie porównanie wybranych aspektów bezpieczeństwa polskich serwisów aukcyjnych
Poniższe zestawienie jest na pół amatorskie oraz trochę nierówne - przy testach Allegro spędziłem dobrych kilkanaście wieczorów, podczas gdy na stronach ebay.pl i swistak.pl ledwie po kilka godzin. Przepraszam właścicieli wszystkich pominiętych w tym tekście polskojęzycznych serwisów aukcyjnych.
1. Szyfrowanie połączenia
Oczywiście wszystkie trzy serwisy stosują SSL dla formularzy logowania użytkownika. Zapobiega to podsłuchaniu hasła - niestety tylko podczas logowania. Na http://www.swistak.pl/konto_nowe.html przesyłamy hasło w postaci nieszyfrowanej (możemy wymusić szyfrowanie wpisując ręcznie adres https://ssl.swistak.pl/konto_nowe.html), podobnie jest podczas zmiany dotychczasowego hasła w ustawieniach użytkownika serwisu Allegro.
Zastanawia „złamana kłódka” na szyfrowanych stronach Świstaka - okazuje się, że serwis korzysta ze skryptu statystyk gemius.pl, importując go przez nieszyfrowane połączenie HTTP. Nie powoduje to bezpośrednio możliwości ujawnienia hasła, ale:
- użytkownik, który na bezpiecznej stronie widzi złamaną kłódkę, nie będzie mógł odróżnić jej od strony fałszywej,
- bezpieczeństwo hasła staje się zależne od bezpieczeństwa serwisu statystyk - każda osoba mająca kontrolę nad importowanym skryptem (http://adnet.hit.gemius.pl/pp_gemius.js) może niepostrzeżenie przesyłać wpisywane hasła użytkowników poza serwis.
Połączenie z gemius.pl lepiej realizuje Allegro - wykorzystuje w celu zapisywania danych bezpieczny skrypt z własnej domeny, a w przypadku połączenia SSL w ogóle ze statystyk na stronie logowania rezygnuje.
2. Otwarte przekierowania
Skrypty podobne do https://ssl.allegro.pl/direct_login.php?request_server=lukasz.pilorz.net&request=/index.php to świetne narzędzie dla phisherów (powyższy jest dodatkowo podatny na XSS). Niestety podobne luki ma również eBay, mimo że są one od dłuższego czasu aktywnie wykorzystywane.
3. CSRF
Jak zauważył pan Strzembkowski, Allegro (Świstak również) w wielu miejscach nie rozróżnia danych przychodzących metodami GET i POST. Samo w sobie nie jest to luką, natomiast ułatwia ataki CSRF (niektóre z nich można dzięki temu wykonać bez użycia aktywnych skryptów w przeglądarce ofiary). O ile wysłanie spreparowanego żądania POST ze strony opisu aukcji jest praktycznie niemożliwe (dzięki skutecznemu filtrowi treści), o tyle żądanie GET jest banalne do uzyskania, na przykład przy pomocy znacznika img.
Większość istotnych formularzy broni się przed takim atakiem przy pomocy dodatkowych, nieprzewidywalnych dla atakującego parametrów. eBay zrobił to konsekwentnie, natomiast w Allegro atakujący nadal może na przykład wysłać w naszym imieniu email, lub zalicytować w aukcji. Ponadto tego typu obrona jest nieskuteczna między innymi:
Tutaj również plus dla eBay, ponieważ najistotniejsze elementy są chronione mechanizmem CAPTCHA, z dużym prawdopodobieństwem eliminującym obie powyższe metody. Niezależnie od serwisu aukcyjnego, użytkownik może się dodatkowo bronić zamykając wszystkie inne okna/zakładki przeglądarki przed zalogowaniem, wpisując adres serwisu ręcznie, oraz nie wchodząc wewnątrz serwisu na odnośniki prowadzące do zewnętrznych stron (na przykład w opisach aukcji).
4. XSS
Luki tego typu są tak powszechne, że nie dziwi specjalnie fakt, iż wszystkie trzy testowane platformy aukcyjne są podatne na XSS. W przypadku eBay skutki są mniej poważne ze względu na podział serwisu na wiele subdomen oraz wykorzystanie CAPTCHA do weryfikacji istotniejszych formularzy. W Allegro i Świstaku możliwe jest przy pomocy XSS na przykład wykradnięcie hasła następującymi metodami:
Druga z tych metod, tak jak większość ataków CSRF, jest możliwa do wykorzystania również bez żadnej luki XSS, jeżeli przeglądarka ofiary jest podatna na luki naruszające zasadę same-domain (obecnie znana i niezałatana luka tego typu, mhtml-redirect, dotyczy Internet Explorera w przypadku gdy w systemie obecne są biblioteki dll Outlooka - czyli praktycznie we wszystkich Windowsach poza Vistą).
5. Powiadomienia
Ostatnią linią obrony przed atakami XSS i CSRF jest system powiadomień o istotnych wydarzeniach dotyczących konta użytkownika: rozpoczęciu aukcji, udziale w licytacji, zmianie ustawień, itp. W Allegro ten system jest bardzo dobry, jednak eBay poszedł jeszcze dalej - poza powiadomieniem mailowym, tworzone są dodatkowo tzw. alerty, widoczne w serwisie i nieusuwalne przez pewien czas, informujące o najistotniejszych zdarzeniach. Nawet jeśli użytkownik padnie ofiarą ataku CSRF, najprawdopodobniej dowie się o tym natychmiast, nawet jeśli nie sprawdza często skrzynki pocztowej.
Świstak po raz kolejny wypada w porównaniu najsłabiej - chociażby z powodu braku powiadomienia na stary adres email przy jego zmianie.
6. No i co z tego…
Wspomniane przeze mnie problemy najprawdopodobniej nie dotkną zbyt wielu użytkowników serwisów aukcyjnych. Myślę jednak, że stopniowo coraz większy odsetek oszustw na aukcjach będzie wykorzystywać technologiczne możliwości wprowadzenia w błąd lub zwyczajnej kradzieży. Ponadto takie luki mogą być wykorzystywane nie tylko w celu uzyskania konkretnych korzyści finansowych, lecz czasem po to by zaszkodzić serwisowi i obniżyć jego wiarygodność.
W tym krótkim zestawieniu widać, że eBay przyłożył największą wagę do jakości zabezpieczeń. Miał on największe ku temu powody - wraz z ilością użytkowników rośnie stopień zagrożenia, a polska odsłona serwisu jest przecież kopią platformy aukcyjnej znanej na całym świecie. Działania phisherów są co prawda powiązane zazwyczaj z jedną wersją językową, ale ataki XSS i CSRF działają w każdej tak samo. Można więc założyć, że „małe” Allegro, choć bardziej podatne na ataki, jest w praktyce niemal tak samo bezpieczne - przynajmniej jeszcze przez jakiś czas.
Łukasz Pilorz
Więcej materiałów na temat bezpieczeństwa i luk odnalezionych w serwisach aukcji internetowych znajdziesz w dziale Bezpieczeństwo. Serdecznie dziękuję za przesłany materiał.
Poprzedni news: D.A.Rempex - XI Aukcja Sztuki Współczesnej
Następny news: Wynajem kont na Allegro? UWAGA!

RSS |
RSS komentarzy | Kontakt | O stronie | Polityka prywatności
Copyright © Jacek Z. Strzembkowski - wszelkie prawa zastrzeżone
# Pawel Krawczyk — 2/12/2006 @ 9:33:
Bardzo wartościowe zestawienie - chciałbym jeszcze zwrócić uwagę na jeden parametr, który pominąłeś w raporcie. Mianowicie Allegro (inne nie testowałem) szyfruje tylko dane z formularza wysyłającego login i hasło, które są niewątpliwie parametrem poufnym - ale nie jedynym. Potem przeglądarka wraca do połaczenia nieszyfrowanego i w każdym requeście przesyła PHPSESSID, który - w przypadku podsłuchania - daje dokładnie taki sam dostęp do sesji użytkownika jak login+hasło. Co prawda do czasu wylogowania przez autentycznego użytkownika. Proponuję więc uwzględnić w raporcie także ten parametr, ale także i ewentualne zabezpieczenia bo na przykład Allegro najwyraźniej zdaje sobie sprawę z tego niebezpieczeństwa i przed każdą krytyczną operacją (np. zmiana hasła) żąda ponownego uwierzytelnienia loginem i hasłem.
# lpilorz — 2/12/2006 @ 15:41:
Zgadza się - brak szyfrowania ciasteczka na Allegro wynika w pewnym sensie z faktu, że większość akcji zalogowanego użytkownika odbywa się za pośrednictem protokołu HTTP, bez SSL. Ciasteczko można zarówno podsłuchać, jak i wydobyć atakiem XSS. Dzięki ponownemu żądaniu hasła ciasteczka nie może wykorzystać atakujący-człowiek. Jak wynika z testów, jakie przeprowadziliśmy z panem Strzembkowskim, zautomatyzowany skrypt jest jednak w stanie podanym przeze mnie sposobem doprowadzić do zmiany hasła użytkownika w ciągu kilku sekund, wykorzystując dowolne logowanie do serwisu (również przez SSL). Test przeprowadzony był w połączeniu z luką XSS, ale praktycznie identyczny schemat jest możliwy również przy podsłuchiwaniu komunikacji.
Napisz komentarz:
Opcja komentowania dla tego artykułu została wyłączona.