Open Redirect i phishing

Do tych rozważań skłonił mnie wpis Nasza-Klasa i atak typu phishing, choć od dawna mam wątpliwości co do wpływu błędów takich jak open redirect na ryzyko. Mówiąc prościej – zastanawiam się o ile skuteczniejszy jest atak phishingowy na serwis, w którym istnieje błąd typu open redirect od ataku na serwis, w którym takiego błędu nie ma. Bo sam fakt, że jakiś błąd znajduje się (wyżej lub niżej) na liście typu 2010 CWE/SANS Top 25 Most Dangerous Programming Errors nie koniecznie przekłada się na to, jak dane wystąpienie podatności określonego typu należy wycenić. Trochę już w tym temacie pisałem we wpisie Scenariusze wykorzystania Cross-Site Scripting.

Co mówi teoria

Teoria jest prosta i dobrze obrazuje ją przykład pokazany na Niebezpieczniku we wspomnianym wpisie. Użytkownik widzi URL, który zaczyna się od znanego mu fragmentu (tu: http://nasza-klasa.pl), więc mu ufa. Nie bardzo interesuje się też tym, co znajduje w dalszej jego części, zresztą “istotna” część może zostać zakodowana w taki sposób, że przeciętny użytkownik nie zobaczy w niej nic podejrzanego.

Po kliknięciu na odpowiednio spreparowany link użytkownik łączy się co prawda z “prawdziwą” stroną, jednak zostaje przekierowany pod inny adres. Podatność open redirect polega na tym, że to atakujący kontroluje gdzie jego ofiara zostanie przekierowana. W szczególności może być to podstawiona przez atakującego strona logowania, tak jak w omawianym przykładzie.

Odnośnie teorii warto również przeczytać CWE-601: URL Redirection to Untrusted Site ('Open Redirect').

Jak wygląda(?) praktyka

Phishing może przybierać wiele form. Jego skuteczność może zależeć między innymi od tego, jak dobrze dopasowany jest do ofiary. W podstawowej wersji opiera się jednak na czystej statystyce. Wiadomości rozsyłane są na ślepo ale za to w dużej ilości. Jeśli atakowana grupa jest duża, znajdzie się w niej pewna populacja, która na atak da się nabrać, nawet jeśli wiadomość wygląda topornie. Co ciekawe atakujący często nie skupiają się na przygotowaniu odpowiednio wyglądających adresów, a mimo wszystko ktoś się na taki haczyk łapie.

Wspominałem już wcześniej również o tym, że według badań, a przynajmniej ich części, certyfikaty EV nie wpływają na zmniejszenie skuteczności phishingu (Evolving understanding of Extended Validation's effect on phishing). Wątpliwości można mieć również choćby odnośnie skuteczności kodów SMS w bankowości internetowej. Nie chodzi mi tu bynajmniej o wydumane ataki (patrz: Co identyfikuje rachunek czyli ile cyfr (nie)wystarczy), ale o to, że użytkownicy nie weryfikują informacji o parametrach autoryzowanej transakcji, które dostają razem z kodem.

W świetle powyższych przykładów mam wątpliwość co do słuszności założenia, iż open redirect ułatwia phishing ponieważ użytkownicy widzą prawidłowy URL (przynajmniej na początku “ataku”) i darzą otrzymany link większym zaufaniem. Co z tego, jeśli 90%25 z nich nie widzi różnicy, jak niegdyś gospodynie w reklamie pewnego proszku do prania. Nie twierdzę, że nie ma to żadnego wpływu na efekt ataku, podejrzewam jednak, że istnienie lub brak open redirect nie zmienia w istotny sposób ROI z ataku.

Oczywiście nie musi być to prawdą w pewnych szczególnych przypadkach, na przykład w sytuacji, gdy użytkownicy korzystający z atakowanego serwisu odznaczają się wyższą niż przeciętna świadomością w zakresie bezpieczeństwa. Jeśli jednak pod uwagę brać serwisy “masowe” (Nasza-Klasa, Facebook, Allegro ale również bankowość internetowa, poczta, itp.) populacja potencjalnych ofiar o świadomości zdecydowanie niższej niż przeciętna jest atrakcyjną i liczną grupą docelową.

Druga moja wątpliwość dotyczy już kwesti czysto technicznej. Phishing zakłada rozesłanie wiadomości e-mail, a te mogą być w formacie HTML. W takim przypadku tekst (w tym przypadku “URL”) prezentowany użytkownikowi może być zupełnie inny, niż rzeczywisty adres, pod który prowadzi dany link. Maile w formacie HTML obsługiwane są przez większość programów pocztowych, że o webmailach nie wspomnę.

No to jaki wpływ ma ten open redirect?

No właśnie, jaki? W świetle połączenia dwóch przesłanek: 90%25 użytkowników nie widzi różnicy oraz adres, który widzi użytkownik, wcale nie musi być prawdziwy mam proste pytanie: jaką “wartość dodaną” wnosi ze sobą open redirect? Ponownie zaznaczam, że chodzi mi o przypadek ogólny, a nie atak “szyty na miarę”. Jakieś sugestie?

Dla wyjaśnienia – nie sugeruję, że błędów typu open redirect nie należy poprawiać. Uważam jednak, że w większości przypadków z czystym sumieniem poprawie takich błędów można nadać niski priorytet.

Korzystając z tematu można też wspomnieć o wbudowanych w przeglądarki mechanizmach, które mogą pomóc użytkownikom zauważyć atak. Jednym z nich jest domain highlighting (patrz: Address Bar Improvements in Internet Explorer 8 Beta 1) dostępny w IE8 oraz Chrome (może i w innych przeglądarkach, dla Firefoxa na przykład dostępne jest odpowiednie rozszerzenie). Oczywiście jak każdy mechanizm zależny od użytkownika podpada pod przypadek “90%25 nie widzi różnicy”. Inna możliwość to ostrzeganie użytkowników o przekierowaniu, a przynajmniej o niektórych jego przypadkach. Taki mechanizm też nie koniecznie musi się sprawdzić, bo... irytuje użytkowników: How to Disable Firefox 3.5/3.1 Webpage Redirection Warning Alert. I w ten sposób doszliśmy do tańczących świnek i króliczków.

Oryginał tego wpisu dostępny jest pod adresem Open Redirect i phishing

Autor: Paweł Goleń