10:24
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):

Odpowiedź działu bezpieczeństwa Facebooka

Odpowiedź działu bezpieczeństwa Facebooka

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.

Publikacja postu-eksperymentu na fanpage Niebezpiecznika

Publikacja postu-eksperymentu na fanpage Niebezpiecznika

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).

Treść postu eksperymentu

Treść postu eksperymentu robiąca grunt pod phishing

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.

WAŻNE! Obydwie wersje apletu nie logowały jakichkolwiek haseł, zapisywaliśmy jednak długość wprowadzonego ciągu znaków, aby w trakcie analizy wyników, z pewnym prawdopodobnieństwem móc wytypować tych, którzy wpiszą, zapewne z ciekawości co się stanie, nie swoje hasło a “testowy” ciąg znaków (takie osoby można próbować zidentyfikować jeśli wprowadziły ciągi znaków krótsze niż 6 znaków — Facebook zakłada minimalną długość hasła na 6 znaków). Aplet nie pytał też w ogóle o login ;)

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

Podczas interpretacji wyników warto wziąć pewną poprawkę na to, że nasi “fani” to ludzie, którzy mają większą niż przeciętni użytkownicy portalu Facebook, wiedzę na temat zagrożeń w sieci i są wyczuleni na próby ataków. Siłą rzeczy ciężej jest ich oszukać (chociaż czasem to się udaje).

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).
Statystyki facebookowego phishingu - pierwsza wersja apletu

Statystyki facebookowego phishingu – pierwsza wersja apletu

Rozkład długości

Rozkład liczby wysłanych formularzy w zależności od długości wprowadzonego ciągu znaków

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).
Liczba osób podających hasła w drugiej wersji apletu

Liczba osób podających hasła w drugiej wersji apletu

Rozklad długości wprowadzanych haseł w trakcie drugiej wersji ataku

Rozkład liczby wysłanych formularzy w zależności od długości wprowadzonego ciągu znaków

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.

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).

Dodatkowo, warto zauważyć jeszcze jedną ciekawą rzecz. Przeciętny post na Niebezpieczniku dociera do ok. 40 000 internautów — ten z atakiem, pomimo aktywnego “udostępniania”, komentowania i “lajkowania”, dotarł tylko do 1/8 przeciętnego zasięgu. Nie węszymy tu ręcznej manipulacji po stronie Facebooka, stawiamy raczej hipotezę, że osadzanie treści flashowych od niezaufanych źródeł ma negatywny wpływ na Edge Rank:

Zasięg przeciętnego posta na Facebooku Niebezpiecznika

Zasięg przeciętnego posta na Facebooku Niebezpiecznika

Zasięg posta z "atakiem", osadzającego aplet Flash z serwerów niezaufanego partnera

Zasięg posta z “atakiem”, osadzającego aplet Flash z serwerów niezaufanego partnera

Macie jakieś pomysły na dalsze udoskonalenia “ataku”?

Przeczytaj także:


Dowiedz się, jak zabezpieczyć swoje dane i pieniądze przed cyberprzestępcami. Wpadnij na nasz kultowy ~3 godzinny wykład pt. "Jak nie dać się zhackować?" i poznaj kilkadziesiąt praktycznych i przede wszystkim prostych do zastosowania porad, które skutecznie podniosą Twoje bezpieczeństwo i pomogą ochronić przed atakami Twoich najbliższych. Uczestnicy tego wykładu oceniają go na: 9,34/10!

Na ten wykład powinien przyjść każdy, kto korzysta z internetu na smartfonie lub komputerze, prywatnie albo służbowo. Wykład prowadzimy prostym językiem, wiec zrozumie go każdy, także osoby spoza branży IT. Dlatego na wykład możesz spokojnie przyjść ze swoimi rodzicami lub mniej technicznymih znajomych. W najbliższych tygodniach będziemy w poniższych miastach:

Zobacz pełen opis wykładu klikając tutaj lub kup bilet na wykład klikając tu.

50 komentarzy

Dodaj komentarz
  1. […] Aktualizacja Opublikowaliśmy wyniki eksperymentu. […]

  2. zobaczyłem ten post dopiero teraz. zajebista sprawa

  3. 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

  4. Ja wpisalem tam randomowy ciag znakow, byl baaardzo dlugi wiec nie zdziwie sie jesli to byl ten ostatni na wykresie ;)

  5. 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

  6. 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.

  7. 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 ;]

  8. Hah nie ide za większością !! Jestem w tych 6% ;D

    A tak naprawde to za bardzo wam ufam ;] Muszę przestać ;]

  9. 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ń.. =)

  10. 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…

  11. 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.

  12. gimbusy wszystko podają na Facebooku, nawet jakby przyszło wpisać na jakiej ulicy mieszkasz to nie patrzyli by się na nic..

  13. 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.

  14. 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.

  15. Niebezpiecznik hackuje internautów :D

  16. 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”.

  17. 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.

  18. 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ę;)

  19. A jak się osadza flasha z podglądem na facebooku? Wystarczy
    dać link do pliku .swf?

  20. 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

  21. nie mam flasza, nie mam booka – windowsa też nie mam :)

    • Życia też.

  22. 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…

  23. Ż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

  24. 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

  25. Niebezpiecznik ma duzo wspólnego z noname i podziemiem tora.

  26. […] 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. […]

  27. Pięknie. Niezły mieliście pomysł. Czekam na więcej takich akcji.

  28. Hej, w jaki sposób mogę zobaczyć demo tego phishingu?

  29. […] również lekturę opisu eksperymentu dotyczącego phishingu, jaki kilka miesięcy temu przeprowadziliśmy na Facebooku — jest w nim dużo ciekawych […]

  30. 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 :)

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: