Streszczenie: Niewidoczne zagrożenia mogą łatwo przekształcić rozszerzenie przeglądarki Chrome w atak typu RCE na poziomie hosta

Od momentu wprowadzenia na rynek, rozszerzenia przeglądarek traktowane są jako lekkie narzędzia zwiększające produktywność – nieszkodliwe dodatki, które mieszczą się gdzieś pomiędzy zakładkami a ustawieniami. Są instalowane niedbale, aktualizowane po cichu i rzadko poddawane przeglądowi, gdy już staną się częścią codziennego toku pracy użytkownika.

Co więcej, rozszerzenia przeglądarki są często postrzegane jako zagrożenia bezpieczeństwa niskiego stopnia, ponieważ są silnie odizolowane od systemu, w którym działają, przez przeglądarkę i działają w środowisku typu sandbox wewnątrz przeglądarki internetowej.

Jest to nieaktualne założenie, gdyż badania te wykazują, że nawet rozszerzenie niemające żadnych uprawnień może obejść piaskownicę przeglądarki i doprowadzić do instalacji złośliwego oprogramowania bezpośrednio na komputerze.

Naukowcy z LayerX odkryli, jak dowolne rozszerzenie przeglądarki, nawet jeden bez żadnych uprawnień dostępu w ogóle może być używany do instalowania złośliwego oprogramowania na hoście docelowym. Atakujący musi jedynie dodać niewidzialny skrypt do legalnego pobrania, które jest uruchamiane w momencie uruchomienia pobierania. W rezultacie użytkownicy infekują się złośliwym oprogramowaniem w celu zdalnego wykonania kodu, nawet tego nie zauważając. 

Ponieważ ten wektor eksploatacji wymaga brak specjalnych uprawnień przez rozszerzenia, może być używany przez dowolne złośliwe rozszerzenie, narażając praktycznie każdego użytkownika rozszerzenia do eksploatacji.

Martwa plamka, od której zaczęliśmy

Rozszerzenia Chrome działają w oparciu o pomijany model bezpieczeństwa. Skrypty treści, domyślnie włączone, zostały zaprojektowane do jednego celu: dostępu do stron internetowych i ich modyfikacji. Nie jest to błąd ani błędna konfiguracja, lecz kluczowy element działania rozszerzeń. Każde rozszerzenie działające na stronie ma praktycznie taki sam poziom dostępu, jak kod JavaScript tej strony.

Na pierwszy rzut oka wydaje się to rozsądne. Rozszerzenia muszą modyfikować strony, aby dodawać funkcje, dodawać elementy interfejsu użytkownika lub usprawniać przepływy pracy. W rzeczywistości jest to główny cel ich projektowania.

Ta sama możliwość ma jednak swoje ograniczenie. Jeśli rozszerzenie potrafi zrobić to samo, co strona internetowa, złośliwe rozszerzenie może przekształcić każdą legalną stronę internetową w powierzchnię ataku, niezauważalnie i na dużą skalę. To był punkt wyjścia naszego dochodzenia.

Kiedy każde pobranie staje się wektorem ataku

Zadaliśmy proste pytanie: jaka jest najbardziej wartościowa czynność, jaką może wykonać osoba o złych zamiarach z poziomu przeglądarki, nie prosząc o uprawnienia, które mogłyby wzbudzić podejrzenia?

Odpowiedzią jest oczywiście wykonanie kodu.

Wykorzystując nieograniczoną naturę skryptów treści, stworzyliśmy rozszerzenie, które dyskretnie modyfikuje każde pobranie pliku zainicjowane z dowolnej strony internetowej. Użytkownik klika legalny link do pobrania w zaufanej domenie, korzystając z przeglądarki, której ufa. Plik pobiera się dokładnie tak, jak oczekiwano.

Ale to nie jedyne, co się dzieje.

Bez przerywania działania oryginalnej aplikacji, bez wywoływania ostrzeżeń i bez konieczności jakiekolwiek dodatkowe uprawnieniaRozszerzenie dodaje kod kontrolowany przez atakującego do każdego pobranego pliku wykonywalnego. Oryginalny program nadal działa normalnie, a użytkownik widzi dokładnie to, czego oczekuje. Od tego momentu gra jest skończona.



W naszej demonstracji ładunek po prostu otwiera aplikację kalkulatora jako nieszkodliwy wskaźnik wizualny. W rzeczywistych warunkach mógłby on umożliwiać utrwalanie, przemieszczanie się w poziomie, eksfiltrację danych lub pełne zdalne sterowanie maszyną.

Chociaż rozszerzenia przeglądarki są rzekomo odizolowane od systemu plików i chronione przez przeglądarkę, technika ta pozwala rozszerzeniu wydostać się z piaskownicy. W tym momencie przeglądarka przestaje pełnić funkcję bariery. Rozszerzenie staje się w rzeczywistości trojanem zdalnego dostępu.

Wideo POC:

Dlaczego jest to szczególnie niebezpieczne

To, co sprawia, że ​​ten atak jest niepokojący, to jego niewidzialność:

  • Nie wymaga żadnych podejrzanych uprawnień.
  • Nie powoduje żadnych ostrzeżeń przeglądarki.
  • Nie modyfikuje oryginalnej strony internetowej w żaden widoczny dla człowieka sposób.
  • Użytkownikowi wydaje się, że pobieranie przebiega normalnie.

Każde rozszerzenie, nawet te wcześniej legalne, mogłoby wprowadzić takie zachowanie w aktualizacji, a użytkownicy nie otrzymaliby żadnego wiarygodnego sygnału, że cokolwiek się zmieniło.

Ten atak nie opiera się na phishingu ani dezorientacji użytkownika. Wykorzystuje on słabe ogniwo w łańcuchu zaufania przeglądarki. Użytkownicy ufają swojej przeglądarce i pewnym stronom internetowym, ale jeśli nie mogą ufać swoim rozszerzeniom, ani przeglądarka, ani strona internetowa nie będą w stanie skutecznie chronić użytkownika. Instalacja niezaufanego rozszerzenia jest funkcjonalnie równoważna z instalacją złośliwego oprogramowania.

Co więcej, ataku tego nie da się wykryć za pomocą narzędzi opartych na proxy/VPN, ponieważ domena, do której uzyskano dostęp, jest w pełni legalna i nie jest nawiązywany kontakt ze zdalnym serwerem w celu pobrania złośliwego kodu. Co więcej, atak jest w pełni wieloprzeglądowy i może dotknąć każdą przeglądarkę opartą na Chromium lub Mozilli.

Ujawnienie i reakcja branży

Zgłosiliśmy nasze odkrycia firmom Google i Mozilla za pośrednictwem ich programów ujawniania luk w zabezpieczeniach, zgodnie z procedurami „odpowiedzialnego ujawniania”.

Google stwierdziło, że „ataki socjotechniczne nie mieszczą się w modelu zagrożeń dla Chrome”. 

Mozilla odpowiedziała, że „jeśli udzielisz rozszerzeniu dostępu do wszystkich stron internetowych, może ono modyfikować zawartość stron internetowych, w tym zmieniać miejsca docelowe linków”.

Oba stwierdzenia są technicznie poprawne, ale podkreślają również zasadniczy problem, który niniejsze badanie próbuje naświetlić: rozszerzenie, poprzez sam fakt jego pobrania, uzyskuje ogromną, niejawną moc. 

Obecny model bezpieczeństwa rozszerzeń nie wyjaśnia użytkownikowi, jaki wpływ na przeglądanie stron internetowych i bezpieczeństwo całego systemu mają rozszerzenia, którym nie można zaufać.

Istnieją niezliczone sposoby wykorzystania rozszerzeń w celu obejścia zaufania użytkownika.

Przeglądarka po cichu stała się podstawowym środowiskiem wykonawczym, kanałem dystrybucji i płaszczyzną sterowania, pozostając w dużej mierze niemonitorowana przez tradycyjne narzędzia bezpieczeństwa. Rozszerzenia znajdują się na styku zaufania użytkownika i wpływu na system.

Jak użytkownicy i przedsiębiorstwa mogą się chronić

Ten typ exploita ujawnia ograniczenia tradycyjnego podejścia do bezpieczeństwa rozszerzeń, które opiera się na zewnętrznej analizie parametrów rozszerzenia, bazującej na jego uprawnieniach, reputacji itd. Ponieważ nie ma żadnych uprawnień, najprawdopodobniej otrzymałoby ono niską ocenę ryzyka. 

Tylko monitorowanie faktycznego zachowania rozszerzenia może ujawnić jego złośliwe zamiary. Oznacza to, że użytkownicy i organizacje muszą przejść od statycznej analizy rozszerzeń do aktywnej analizy opartej na zachowaniu, tak jak robią to w przypadku złośliwego oprogramowania.


Źródło: Roy Paz i Aviad Gispan, którzy przyczynili się do przeprowadzenia badań.