Jak dokładnie działa robak Facebook?


27

Początkowo zakładałem, że moja przyjaciółka z FB rozpowszechnia złośliwy link, ponieważ niewinnie zaakceptowała aplikację i nadała jej uprawnienia, ale twierdzi, że tak nie jest. Zobacz wymianę:

Przyjaciel: „Nie klikaj linku, który ode mnie dostałeś! Jest zarażony! Mam go od (imię zmienione) ! Przepraszam! Muszę się zatrzymać ******!”
Ja: „Zaakceptowałeś aplikację FB. Wszystko, co musisz zrobić, to przejść do Konta -> Ustawienia prywatności -> Aplikacje i strony internetowe i odrzucić aplikację naruszającą zasady. Dlatego nie robię aplikacji FB, kropka.”
Przyjaciel: to nie jest aplikacja. nie na liście ... to robak

Jak to działa? Shenanigans JavaScript, gdy osoba kliknie link?

Odpowiedzi:


31

Tak, dokładnie JavaScript. Właśnie spotkałem takiego robaka i próbowałem go odkodować.

Rzeczywistym problemem jest:

Najnowszy robak Facebook działa, zachęcając użytkowników do odwiedzenia strony, co powoduje, że wstawiają ciąg JavaScript do paska adresu, a tym samym go wykonują.

Więc nigdy nie kopiuj kodu JavaScript do paska adresu. To jest główny problem. I nie klikaj żadnych linków, którym nie ufasz. Lub przynajmniej otwórz te linki w nowym oknie za pomocą trybu prywatności (Firefox) lub trybu incognito (Chrome), aby nie mógł uzyskać dostępu do sesji na Facebooku.


Co zrobili nasi hakerzy, aby ludzie nie zdawali sobie sprawy z tego, co robią?

Ucieczka ze skryptu

Ciąg, który kopiujesz do paska adresu URL, w większości prowadzi do innego uruchamianego JavaScript. Ten skrypt jest faktycznie dekodowany na byty. Więc zamiast używać znaków ciągu, cały skrypt został umieszczony w ciągu znaków i uciekł, aby nikt nie mógł go odczytać.

Na przykład, gdybym miał bardzo złośliwą funkcję, uciekłbym z niej, a użytkownik zobaczyłby tylko:

funkcja% 20 test% 28% 29% 20% 7B% 20alert% 20% 28% 22LOL% 22% 29% 3B% 20% 7D

i byłoby to bez szwanku

test funkcji () {alert („LOL”); }

Dlatego skrypt odskakuje „siebie” przed jego wykonaniem.

Zaciemniając to

Teraz robi się brzydko: przed ucieczką zły kod JavaScript jest zaciemniony, z nazwami funkcji jak _____xi zmiennymi jak aLDIWEJ. W dalszym ciągu ma to sens dla JavaScript, ale jest całkowicie nieczytelne dla ludzi. Odbywa się to ponownie, aby zamaskować intencje naszych hakerów na Facebooku.

W tym momencie kod mógł wyglądać mniej więcej tak:

wprowadź opis zdjęcia tutaj

Co robi skrypt

Cóż, skrypt wykonuje bieżącą sesję na Facebooku. Ponieważ jesteś zalogowany na stronie, może zrobić wszystko w Twoim imieniu. Na przykład, co może zrobić za pomocą interfejsu API Facebooka:

  • tworząc wydarzenie takie jak „OMG, widzę, kto mnie śledził!”
  • rozmawiać z ludźmi
  • aktualizacje statusu publikowania
  • itp.

Wszystko to dzieje się przez wywołanie niektórych stron API Facebooka (niektóre strony PHP, które zapomniałem).


5

Krótko mówiąc ... to wirus ... jak każdy inny. Metodą, której używa do replikacji, jest publikowanie postów na koncie po wykonaniu ze strony innej osoby. W zależności od używanej przeglądarki i / lub systemu operacyjnego oraz posiadanych luk, wszystko jest możliwe. Zasadniczo po uruchomieniu skryptu w przeglądarce (który można rozpocząć od prostego kliknięcia) z kolei używa twoich danych uwierzytelniających z pamięci podręcznej do publikowania postów na stronie ... która zawiera ten sam / podobny link, który kliknąłeś początkowo.

Oprócz wyłączenia javascript / flash / i kilku innych rzeczy (wymaganych przez Facebook) nie będziesz w stanie uchronić się przed takimi exploitami.

Szybkie i nieprzyzwoite obejście ... zanim klikniesz linki w postach innych osób ... sprawdź, dokąd to zmierza. Unikaj wszelkich linków, które kończą się znakiem skrótu („#”) lub zawierają jakieś odwołanie do javascript ... lub nie mają żadnego faktycznego linku do niego. (tzn. nie wydaje się przechodzić do żadnego adresu URL)

Lub zawsze możesz przyjąć moje podejście ... i całkowicie unikać Facebooka / Twittera / etc ... Muszę jeszcze znaleźć coś w każdej z tych usług, do których przypisałbym jakąkolwiek wartość lub importerów. Znajomi i rodzina wiedzą, jak wysłać e-mailem ... a jeszcze lepiej ... odebrać telefon. (tylko moja opinia na temat tego, co jest warte)


1
niezbyt dokładne ... istnieje wiele sposobów, aby się przed tym uchronić. Możesz na przykład użyć wtyczki takiej jak NoScript, aby nie wykonywać javascript. Możesz otworzyć link w nowym oknie za pomocą trybu prywatności / trybu incognito, a nowe okno nie będzie miało dostępu do sesji na Facebooku. Jeśli twoje bezpieczeństwo polega jedynie na unikaniu podejrzanych linków, nie jest to zbyt skuteczne. Jeśli zamiast tego prawidłowo użyjesz bezpiecznych narzędzi do przeglądania, nie będziesz musiał żyć w strachu przed tym, co czai się za każdym kliknięciem linku.
Brian Schroth

@Brian Schroth: Jak powiedziałem w moim poście, „poza wyłączeniem javascript / flash / ....” NoScript robi dokładnie to. Masz rację, że tylko patrzenie na cel linku nie uchroni cię przed wieloma exploitami ... Tryb incognito i nie ochroni cię przed zarażeniem wirusem ... a także spowoduje problemy podczas próby śledzenia łączy między sesjami. W rzeczywistości ... ludzie powinni żyć w strachu przed tym, co leży poza linkami. Powinni poświęcić chwilę na zastanowienie się nad tym, co klikają.
TheCompWiz

1
NoScript nie wyłącza Javascript. Zapewnia drobiazgową kontrolę nad tym, co robi i nie wykonuje javascript. Twoja odpowiedź sugeruje, że jeśli „wyłączysz Javascript”, nie będziesz już mógł korzystać z Facebooka. Ale jeśli używasz NoScript, możesz zezwolić na skrypty facebook.com, jednocześnie chroniąc je przed JavaScriptem na stronie losowego złośliwego oprogramowania.
Brian Schroth,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.