Firefox i Edge już odporne na wykradzenie haseł z pamięci. Z Chrome trzeba poczekać

Strona główna Aktualności
image

O autorze

Wczoraj dział Public Relations Intela przypominał, że podatności w jego procesorach nie są wcale takie groźne, ponieważ nie dają napastnikom możliwości uszkodzenia, zmodyfikowania czy skasowania danych. Po części jest to prawda – po prostu pozwalają one odczytać z pamięci wrażliwe dane, hasła i klucze kryptograficzne. Nie dość groźne? Sęk w tym, że Intel stwierdził też, że ataki te nie mogą zostać przeprowadzone zdalnie – a to już prawdą nie jest, chyba że zredefiniujemy samo pojęcie zdalnego ataku.

W swoim oficjalnym FAQ Intel wyjaśnia, że nowe ataki (czy też metody analizy software, które nie wynikają z błędów w produktach Intela, lecz jedynie wykorzystą dane o poprawnej pracy technik przetwarzania danych typowych dla nowoczesnych platform, potencjalnie naruszając bezpieczeństwo mimo że system działa zgodnie z założeniami) nie są możliwe do zdalnego exploitowania, złośliwy kod musi działać na lokalnej maszynie.

Dość osobliwe to rozumienie koncepcji zdalnego ataku – do tej pory luki w przeglądarkach pozwalające na ataki typu drive-by (czyli po odwiedzeniu strony internetowej) były klasyfikowane właśnie jako ataki zdalne. Mozilla potwierdziła tymczasem najgorsze obawy, jakie wszyscy mieli wobec podatności Meltdown i Spectre, można je przeprowadzić zdalnie. Wystarczy zachęcić ofiarę do odwiedzenia strony internetowej hostującej złośliwy kod w JavaScripcie.

Luke Wagner, programista Firefoksa, mówi otwarcienasze eksperymenty potwierdziły, że jest możliwe wykorzystanie podobnych technik przez zasoby webowe do odczytania prywatnych informacji przynależących do różnych źródeł. To potwierdzenie tego, co pisali odkrywcy Spectre: atak ten może zostać wykorzystany do naruszenia sandboxu przeglądarki (…) napisaliśmy program w JavaScripcie, który skutecznie odczytywał dane z przestrzeni adresowej procesu przeglądarki, która go uruchomiła. Oznacza to jedno – złośliwy kod może odczytać np. loginy, hasła i ciasteczka logowania przechowywane przez przeglądarkę.

Przeprowadzenie ataku Spectre wymaga jednak dużej precyzji, łączy on bowiem spekulatywne wykonywanie kodu z wydobywaniem informacji bocznymi kanałami wynikającymi z samej mikroarchitektury procesora. Napastnik musi zlokalizować ciąg poleceń w przestrzeni adresowej procesu, który po wykonaniu będzie działał jako transmiter ujawniający zawartość pamięci atakowanej przeglądarki. Następnie musi nakłonić procesor do spekulatywnego i niepoprawnego wykonania tego ciągu poleceń, co prowadzi do wycieku danych ofiary do pamięci cache– a następnie pozyskania tych danych, przeniesienia ich na transmiter.

Firefox

By jednak to zrobić, napastnik musi dokładnie wiedzieć, kiedy mechanizm przewidywania rozgałęzień w kodzie niepoprawnie przewidzi dalszy przebieg kodu. Aby utrudnić napastnikom życie, Mozilla zdecydowała się zmniejszyć dokładność wewnętrznych zegarów Firefoksa – zarówno tych dostępnych bezpośrednio przez funkcje w rodzaju performance.now(), jak i tych, które można wykorzystać do zbudowania własnych metod pomiaru.

Co najważniejsze, Mozilla już to zrobiła. W Firefoksie 57.0.4 zmniejszono dokładność zegarów do 20 mikrosekund, wyłączono też obsługę obiektu SharedArrayBuffer, wykorzystywanego do współdzielenia pamięci między skryptami. Obecnie deweloperzy Firefoksa prowadzą badania nad innymi technikami, które mają całkowicie powstrzymać wycieki, a nie tylko je utrudniać.

Microsoft Edge i Internet Explorer 11

Wydana poza terminem łatka KB4056890 na Windowsa 10 wersja 1709 przynosi praktycznie te same zabezpieczenia, które wprowadziła Mozilla. Precyzję zegarów zmniejszono z 5 mikrosekund do 20 mikrosekund, dodając do odczytu zmienne zakłócenia do maksymalnie 20 mikrosekund.

W Microsoft Edge wyłączono też wsparcie dla obiektu SharedBufferArray. John Hazen, menedżer projektu Microsoft Edge twierdzi, że ten przydatny dla aplikacji webowych obiekt może jednak wrócić, jeśli uda się potwierdzić, że nie może zostać wykorzystany do zaatakowania użytkowników.

Google Chrome

Obecna stabilna wersja Chrome (63) zawiera opcjonalną funkcję o nazwie Strict Site Isolation, której włączenie powoduje oddzielenie od siebie witryn internetowych w oddzielne przestrzenie adresowe. Powstrzymuje ona ataki Spectre, jednak za cenę problemów z narzędziami deweloperskimi, zwiększenia zużycia pamięci i możliwych problemów z logowaniem na niektórych stronach internetowych oraz zachowaniem pływających ramek.

Aby włączyć Strict Site Isolation, należy w pasku adresowym wpisać chrome://flags, znaleźć tę funkcję na liście eksperymentów i kliknąć Włącz, a następnie zrestartować przeglądarkę.

Wraz z wydaniem Chrome 64, planowanym na 23 stycznia, zastosowane zostaną dodatkowe zabezpieczenia, których natury Google póki co nie wyjaśniło. Wspomniano jedynie, że wyłączona zostanie obsługa obiektu SharedBufferArray.

Jest się czego bać?

Jeśli nie mogliście dotąd skorzystać z łatki na Windowsa, zalecamy więc zainstalowanie Firefoksa 57.0.4 – jest obecnie jedyną uniwersalnie dostępną przeglądarką, która oferuje rozwiązania utrudniające atak Spectre.

A jak wygląda prawdopodobieństwo takiego ataku? Tu zdania wśród ekspertów są podzielone. Prawdopodobny jest oczywiście masowy atak, np. za pomocą jakiejś sieci reklamowej wysyłającej złośliwy JavaScript na partnerskie strony internetowe. Im szybciej napastnicy uporają się z taką operacją, tym będzie skuteczniejsza, szczególnie że najpopularniejsza kombinacja systemu i przeglądarki, tj. Windows 7 i Chrome 63, wciąż jest na Spectre całkowicie podatna.

Z drugiej jednak strony pojawiają się głosy, że takie ataki nigdy nie będą masowe, kiepsko się skalują. Znaleźć mają jedynie zastosowanie w spearphishingowych operacjach przeciwko konkretnym ofiarom. Jak zauważa holenderski badacz Martijn Grooten, słynna luka Heartbleed nigdy nie została wykorzystana na masową skalę.

© dobreprogramy