18/10/2013
Zapewne część z Was, która śledzi nas na Facebooku, widziała kilka dni temu nasz post-eksperyment. Dziś publikujemy jego wyniki. Ile osób udało się nabrać? Kto podał prawdziwe hasło? O tym poniżej:
Facebook pozwala na phishing
Szymon, członek niebezpiecznikowego zespołu pentesterów, znalazł ciekawy wektor ataku na użytkowników Facebooka. Zgodnie z praktyką responsible disclosure, opis tego ataku został zgłoszony do Facebooka. Dział bezpieczeństwa tej firmy nie uważa jednak, aby problem był istotny (i pozwolił na upublicznienie opisu problemu):
Na czym polega atak?
W szczegółach błąd został opisany przez nas tutaj, a w skrócie chodzi o to, że na Facebooku, w ramach posta, można osadzić własny aplet Flasha (jako tzw. “Self Hosted Object”). Apletu nie da się jednak wykorzystać do klasycznych ataków typu: kradzież ciasteczek, ponieważ ustawiono atrybut AllowScriptAccess tagu embed na wartość never. Ponieważ jednak aplet może zawierać dowolną treść, a w szczególności łudząco przypominać wyglądem fragmenty Facebooka, można za jego pomocą wykonać atak typu phishing na użytkownika.
Nasz eksperyment
Postanowiliśmy zweryfikować, ile osób nabierze się na tak przygotowany aplet, proszący o podanie hasła pod pretekstem upewnienia się, że mamy do czynienia z pełnoletnim użytkownikiem (miał zostać wyświetlony film tylko dla dorosłych).
Wpis, który umożliwiał załadowanie przygotowanej aplikacji Flash został opublikowany na testowym koncie, z którego post został najpierw udostępniony na prywatnym koncie Piotrka, a potem po zapoznaniu się z opiniami i uwagami osób, które miały okazję zapoznać się z tą wersją, przygotowana została nowa wersja ataku, tym razem opublikowana na oficjalnym fanpage Niebezpiecznika.
W pierwszej wersji ataku (na koncie Piotrka) po wpisaniu hasła w fałszywej, ale łudząco podobnej do Facebooka formatce, użytkownicy od razu byli informowani, że zostali “nabrani”.
Oto wersja demo – dokładnie taka sama, jak w poście
W drugiej wersji ataku (tej na fanpage Niebezpiecznika), po pierwszym wprowadzeniu hasła prezentowaliśmy zawsze jeszcze raz ten sam ekran proszący o hasło, z komunikatem “Twoje hasło było nieprawidłowe”. Takie działanie miało na celu odsiać dowcipnisi i utwierdzić użytkowników w przekonaniu, że nie jest to nasz żart, tylko rzeczywisty “mechanizm bezpieczeństwa” Facebooka. Ci którzy wpisaliby poprawne hasło za pierwszym razem, zapewne pomyśleliby, że zrobili literówkę i dlatego Facebook prosi ich o wprowadzenie hasła jeszcze raz.
Oto wersja demo – dokładnie taka sama, jak w poście
Wyniki eksperymentu
Pierwsza wersja apletu
-
Treść w języku angielskim
Jednokrotna prośba o podanie hasła
Przeprowadzono w dniach: 26.09.2013 – 03.10.2013
Profil: piotrkonieczny (i inne, które udostępniły posta na swoich profilach).
Druga wersja apletu
-
Treść w języku polskim
Dwukrotna prośba o podanie hasła
Przeprowadzono w dniach: 01.10.2013 – 03.10.2013
Profil: niebezpiecznik (i inne, które udostępniły posta na swoich profilach).

Rozkład długości podawanych haseł, uwzlędniający tylko tych użytkowników, którzy za pierwszym i drugim razem podali hasło o tej samej długości.
Wnioski
W przypadku pierwszej wersji apletu aż 137 osób tj. 31% wszystkich unikalnych użytkowników wysłało ciąg znaków o długości większej lub równej 6 znaków. Skupmy się jednak na wynikach drugiej, bardziej dopracowanej wersji apletu.
Na 656 unikatowych adresów IP, które zostały objęte badaniem w przypadku drugiej wersji apletu na fanpage Niebezpiecznika, tylko 40 podało na pierwszym i drugim ekranie dokładnie to samo hasło (aplet nie logował i nie wysyłał nigdzie wprowadzanych haseł, ale zapisywał je po stronie klienta na każdym z kroków i porównywał). Wśród tych osób było 37 osób, które podały ciągi o długości równej bądź większej niż 6 znaków (minimalna długość hasła na Facebooku) — stanowi to 29% wszystkich, którzy wysłali formularz na drugim ekranie i aż 6% wszystkich osób (unikalnych IP) które wzięły udział w badaniu.
Co ciekawe, osób, które za pierwszym razem podały ciąg niespełniający wymagań polityki haseł portalu (mniej niż 6 znaków), a za drugim co najmniej 6 znakowy było 27 (4% wszystkich unikatowych IP biorących udział w badaniu).
Dodatkowo, z naszej ankiety, przeprowadzonej w poście, do którego kierowały aplety po podaniu hasła, “wyjaśniając co się stało”, wynika, że w sumie (z obu ataków) 43 osoby przyznały się do podania poprawnego hasła. Post odwiedziło 3735 osób (był w “głębokim ukryciu” — dostać się do niego można było tylko po linkach z apletów).
Macie jakieś pomysły na dalsze udoskonalenia “ataku”?
[…] Aktualizacja Opublikowaliśmy wyniki eksperymentu. […]
zobaczyłem ten post dopiero teraz. zajebista sprawa
Mam jedną zasadę, nie podaje hasła do fejsbuka jeżeli mnie o nie proszą. Jeżeli coś wydaje mi się podejrzane to to olewam :) Mam tam fejk konto do paczenia, ale hasła w sumie i tak nie pamiętam :E
Ja wpisalem tam randomowy ciag znakow, byl baaardzo dlugi wiec nie zdziwie sie jesli to byl ten ostatni na wykresie ;)
Myślę, że merytorycznie udoskonalić phishing można podszywając jakiś bieżący temat – dziś jest to niejaka Patty i jej “koncert” w TV. ludzie chętnie obejrzą kolejny filmik z przerobionym hitem internetu. Często decyzja o zignorowaniu jakiegoś phishingowego materiału pada, bo ewidentnie filmik czy zdjęcie są jakieś “nie na temat”, nie pasują.
Kolejna rzecz, to to, że ludzie rzadko zaglądają w strefę ustawień prywatności czy aplikacji, nie pamiętają jak wyglądają procedury zatwierdzania itp. a teraz jest fala konkursów, głównie muzycznych, wymagających instalowania aplikacji (typu Must be the Music). To łatwe pole do wyłudzenia hasła, typu “zagłosuj, ale najpierw zainstaluj, ale potwierdź instalację”. No i klops.
Pozdro
Masz rację Kasiu, z tego korzystają spamerzy, jak dzieje się coś “dużego”, np. Michael Jackson umiera, albo gdzieś zatrzęsie się ziemia: https://niebezpiecznik.pl/post/trzesienie-ziemi-w-japonii-i-fala-spamu-w-wyszukiwarkach/
Michael nie żyje???
Ja sie przyznam ze podalem poprawne haslo ale za drugim razem. Na poczatku wpisalem dupa bo myslalem ze to jakis wasz dowcip ale komunikat o nieprawidlowym hasle mnie przekonal. Polknalem jak pelikan ;] kiedy do mnie dotarlo co sie stalo zmienilem haslo [na wszelki wypadek ;] i zaczalem reversowac ten aplet zeby sie upewnic ze nie haslo nie opuscilo mojego kompa. no i potwierdzam niebezpiecznik nie kradl hasel. z tego co widze to sa dokladnie te same aplety (sumy kontrolne mi sie zgadzaja) wiec kazdym moze sobie podekompilowac w sumie ciekawa zabawa. macie jakies fajne dekompilatory do flasha? ktos cos poleci?
JPEXS FF Dec – dekompiluje praktycznie wszystko. Zmienne lokalne w funkcjach mają nazwy _loc[x], ale to szczegół. Do tej pory wszystko mi się udało otworzyć. Darmowy, słyszałem że nawet source gdzieś jest. Polecam.
Ciekawe, bo mnie ani za pierwszym razem, ani teraz nie pyta o hasło. Klikam nie na obrazek, tylko na link obok – może o to chodzi?
Tak, wasz atak nie zadziałał na osoby, które klikają środkowym klawiszem myszy na linka obok i otwierają playera w nowym tabie ;)
Tak, atak polega na “podmianie” playera wewnątrz posta. Jeśli ktoś wejdzie na link docelowy, to przechodzi na stronę, gdzie hostowane są media. Tam oczywiście można robić dodatkowe ataki (wykrywając ludzi po refererze), gdyby ktoś chciał, u nas tego nie było.
Mnie także pytał o hasło i coś mi śmierdziało, więc wlazłem przez link. Zapewne gdyby sam filmik miał większy sens (jakaś konferencja bezpieczeństwa, czy coś) to nawet bym nie podejrzewał phishingu (choć i tak hasła bym nie podał), a z takim filmikiem to czymś nieświeżym leciało z daleka =p
No właśnie, też klinąłem w link obok (głównie dlatego że
nie lubię oglądać filmów w małym okienku, wolę w większym ;] ) a tu
nic się niw dzieje… choc w zasadzie sama domena wydała już mi się
dość podejrzana, nie wspominając o ciągu znaków po niej – czekalem
zatem czy zaraz storna nie poprosi o instalowanie jakiśch nowych
fajnych kodekow do ytb ;]
Hah nie ide za większością !! Jestem w tych 6% ;D
A tak naprawde to za bardzo wam ufam ;] Muszę przestać ;]
wszystko pieknie, ale czy oprócz haseł (ktore można sobie do biblioteczki domowej dodać
) byliście w stanie zidentyfikować konto użytkownika je podające? bez tego to niewielkie zagrożenie …
Bardzo celna uwaga. Nie (aplet nie ma dostępu do ciasteczek). Ale można pytać o login i hasło. Z naszego punktu widzenia nie było to potrzebne (prowadzimy eksperyment polegający na badaniu mechanizmu ujawniania przez użytkowników danych, a nie faktyczny atak phishing). Niestety jestem pewien, że ew. atakujący będą pytali o login i hasło, a nie samo hasło…
@up: można zrobić właśnie przykładową stronę typu ‘zostałeś wylogowany, aby powrócić do strony Facebook musisz ponownie się zalogować’, czy coś w ten deseń.. =)
Na FB zaglądam tylko z telefonu, a wszystko z iOS nie obsługuje flasha (nie wiem jak się zachowują inne urządzenia), więc cały misterny plan przeszedł niezauważony. Weźcie to pod uwagę przy ocenianiu ilości osób, które się “nabrały”.
Zaniżone wyniki nie koniecznie muszą być powodem inteligencji czytelników, a użyciem innego playera na urządzeniach mobilnych.
Bingo – Android Flasha też nie wspiera.
Ciekawe, czy wyświetlenie takiego appletu zależy od tego, czy Flash jest blokowany przez przeglądarkę – w takim wypadku złapani powinni być w większości użytkownicy IE…
Mi najbardziej podpadły fonty. Od razu widziałem, że coś jest nie tak, dlatego omijałem to szerokim łukiem. Jak chcecie udoskonalić atak to zadbajcie o dopracowanie wizualne.
To jest właśnie ciekawe, większość phishingu jest bardzo zaniedbanie stworzone od strony wizualnej, a wystarczyłoby posiedzieć dzień dłużej i atak mógłby być nierozpoznawalny na pierwszy rzut oka.
A jakiego fonta masz domyślnie u siebie, comic sans? :>
Nie Piotrek ;) chociażby na mac os fonty są “gładsze(?)”, a
przyciski mają zdecydowanie grubszy font (z prawej strony treści
posta jest “native” button z kodu html)
http://cap.ring0.cc/b72e9492482b433eb9c355356e8de42e.png
Domyślny, niedomyślny. Fejsik ma w arkuszach stylów:
font-family: ‘lucida grande’,tahoma,verdana,arial,sans-serif;
Lucidy nie mam, więc przełącza na Tahomę. Wasz aplet ma jakiegoś
Ariala czy Times’a.
http://screencloud.net/v/fUvx – u mnie podobnie, fonty sie
nie zgadzaja, co zawsze sygnalizuje ze cos sie dzieje – lub moze
sie dziac ;-)
Dokładnie, wszystkie fonty na facebooku są bezszeryfowe, ten Times w waszym aplecie od razu wygląda alarmująco.
gimbusy wszystko podają na Facebooku, nawet jakby przyszło wpisać na jakiej ulicy mieszkasz to nie patrzyli by się na nic..
A bierzecie tez uwage fakt ze jednak niebezpiecznik jest
raczej zaufanym miejscem? To chyba rez ma wplyw na reakcje. Moze
warto sprobowac to puscic na jakims fp ktory jest czysto
zabawowy?
Ktoś chętny? Dajcie znac na maila.
Też właśnie chciałem to poruszyć. Dużo ludzi się nabrało tracąc czujność, bo źródło było zaufane.
Heh, łezka się kręci – teraz to się zwie phishing, testy –
a pomysł stary jak Ansi C. Osobiście wpadłem na to (motyw błędnym
hasłem przy logowaniu) i pomyślnie wykorzystałem pod koniec lat
90-tych wobec DOS’owej wersji Novell’a, który nie chronił nijak
plików autoexec.bat, które zamiast login.exe wykonywały inny exe
wyglądający jak login Novella. Skuteczność była wówczas bardzo
duża… naprawdę wówczas mało kto spodziewał się tego rodzaju
ataków. Pewnie ktoś wcześniej też na to wpadł. Bo właściwie jeżeli
dobrze pomyśleć, to ciężko na to nie wpaść.
Tak, nawet dwie łezki się kręcą… Podobnie było z udawaniem getty na terminalach znakowych… Wszyscy szybko się nauczyli resetować terminal (pstryczkiem-elektryczkiem) przed zalogowaniem.
Niebezpiecznik hackuje internautów :D
Czyli jak rozumiem obecnie ci ludzie maja w systemie swoje
hasla zapisane jawnie? Bo skrypt flash zapisuje je w jawnej
postaci. Czy mam rację?
Nie patrzyłem na kod apletu, ale myślę, że zamiast hasła trzymali jego skrót (hash) i tak porównywali z drugim.
Nie mam FB, więc mnie omijają takie “atrakcje”.
Bardzo ładne statystyki, bardzo fajny pomysł. Szkoda że atak nie trafił do większej grupy osób. Przydałoby się to zrobić na fanpage jakiegos kwejka czy filmwebu. Jestem przekonany ze skutecznosc okazalaby sie duzo wieksza.
Dobra robota! Wiecej takich artów.
To wcale nie tak niedawno było. Ale jeśli dobrze pamiętam, Wasz aplet nie pokazał mi się – zablokował go NoScript. A jak nie mam wielkiej potrzeby to nie jestem skłonny do jego wyłączania. Upiekło się;)
A jak się osadza flasha z podglądem na facebooku? Wystarczy
dać link do pliku .swf?
Klikłem w linka a nie play.
https://htfplayer.aws.af.cm/player/embedplayer.do?hash=7c56f4e8bd6c26b78db3ebc5eac52e1d&client=youtube&clip=165VjNKRNdw
Jakaś bajka dla niedorozwojów na yt :D
nie mam flasza, nie mam booka – windowsa też nie mam :)
Życia też.
Zauważyłem to, wpisałem hasło guwno123. Poprosiło mnie ponownie, to wpisałem guwno312. I siedziałem głupi, kiedy się zaakceptowało, bo hasło mam x-nasto literowe…
Żałuję, że nie widziałam tego postu, bo nie jestem pewna czy bym się nabrała. Dobrze, że coś takiego robicie, bo część z nas stanie się bardziej czujna. To jak ćwiczenia p/poż. :D
Przede wszystkim jeżeli ma to być badanie, to nie robić z konta niebezpiecznika, bo to nie pierwszy raz i każdy jak wchodzi i nagle każą mu podać hasło, a zna ten portal to swierdza, a, zaburzymy to badanie
Niebezpiecznik ma duzo wspólnego z noname i podziemiem tora.
[…] Co ciekawe, scamerzy skorzystali z tego samego argumentu (“podaj by zweryfikować wiek“) przekonującego ofiarę do podawania danych, co my w naszym eksperymencie z phishingiem na Facebooku, którego wyniki opisaliśmy wczoraj. […]
Pięknie. Niezły mieliście pomysł. Czekam na więcej takich akcji.
Hej, w jaki sposób mogę zobaczyć demo tego phishingu?
[…] również lekturę opisu eksperymentu dotyczącego phishingu, jaki kilka miesięcy temu przeprowadziliśmy na Facebooku — jest w nim dużo ciekawych […]
Najbardziej podoba mi się, że wśród osób, które przypuszczalnie dwukrotnie podały prawdziwe hasło jest ktoś, kto posługiwał się hasłem 30-literowym. To, plus fakt, że był to czytelnik Niebezpiecznika wskazuje, że ta osoba ma zdrową paranoję na punkcie bezpieczeństwa ale, jak widać, guzik jej to pomogło :)