Firefox i Edge już odporne na wykradzenie haseł z pamięci. Z Chrome trzeba poczekać
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łai klucze kryptograficzne. Nie dość groźne? Sęk w tym, że Intelstwierdził też, że ataki te nie mogą zostać przeprowadzonezdalnie – a to już prawdą nie jest, chyba że zredefiniujemy samopojęcie zdalnego ataku.
05.01.2018 15:16
W swoim oficjalnym FAQ Intel wyjaśnia,że nowe ataki (czy też metody analizy software, które niewynikają z błędów w produktach Intela, lecz jedynie wykorzystądane o poprawnej pracy technik przetwarzania danych typowych dlanowoczesnych 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 musidziałać na lokalnej maszynie.
Dość osobliwe to rozumieniekoncepcji zdalnego ataku – do tej pory luki w przeglądarkachpozwalające na ataki typu drive-by (czyli po odwiedzeniu stronyinternetowej) były klasyfikowane właśnie jako ataki zdalne.Mozilla potwierdziła tymczasem najgorsze obawy, jakie wszyscy mieliwobec podatności Meltdown i Spectre, można je przeprowadzićzdalnie. Wystarczy zachęcić ofiarę do odwiedzenia stronyinternetowej hostującej złośliwy kod w JavaScripcie.
Luke Wagner, programistaFirefoksa, mówiotwarcie – nasze eksperymenty potwierdziły, że jestmożliwe wykorzystanie podobnych technik przez zasoby webowe doodczytania prywatnych informacji przynależących do różnychźródeł. To potwierdzenietego, co pisali odkrywcy Spectre: atak ten może zostaćwykorzystany do naruszenia sandboxu przeglądarki (…) napisaliśmyprogram w JavaScripcie, który skutecznie odczytywał dane zprzestrzeni adresowej procesu przeglądarki, która go uruchomiła.Oznacza to jedno – złośliwy kod może odczytać np. loginy, hasłai ciasteczka logowania przechowywane przez przeglądarkę.
Przeprowadzenie ataku Spectrewymaga jednak dużej precyzji, łączy on bowiem spekulatywnewykonywanie kodu z wydobywaniem informacji bocznymi kanałamiwynikającymi z samej mikroarchitektury procesora. Napastnik musizlokalizować ciąg poleceń w przestrzeni adresowej procesu, którypo 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ągupoleceń, co prowadzi do wycieku danych ofiary do pamięci cache– anastępnie pozyskania tych danych, przeniesienia ich na transmiter.
Firefox
By jednak to zrobić, napastnikmusi 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ępnychbezpoś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 Firefoksie57.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 innymitechnikami, które mają całkowicie powstrzymać wycieki, a nietylko je utrudniać.
Microsoft Edge i Internet Explorer 11
Wydana poza terminem łatka KB4056890 na Windowsa 10 wersja 1709przynosi praktycznie te same zabezpieczenia,które wprowadziła Mozilla. Precyzję zegarów zmniejszono z 5mikrosekund do 20 mikrosekund, dodając do odczytu zmienne zakłóceniado maksymalnie 20 mikrosekund.
W Microsoft Edge wyłączono też wsparcie dla obiektuSharedBufferArray. John Hazen, menedżer projektu Microsoft Edgetwierdzi, że ten przydatny dla aplikacji webowych obiekt możejednak 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ę onazwie StrictSite Isolation, której włączenie powoduje oddzielenie odsiebie witryn internetowych w oddzielne przestrzenie adresowe.Powstrzymuje ona ataki Spectre, jednak za cenę problemów znarzędziami deweloperskimi, zwiększenia zużycia pamięci imożliwych problemów z logowaniem na niektórych stronachinternetowych oraz zachowaniem pływających ramek.
Aby włączyć Strict Site Isolation, należy w pasku adresowymwpisać chrome://flags, znaleźć tę funkcję na liścieeksperymentów i kliknąć Włącz, a następnie zrestartowaćprzeglądarkę.
Wraz z wydaniem Chrome 64, planowanym na 23 stycznia, zastosowanezostaną dodatkowe zabezpieczenia, których natury Google póki conie wyjaśniło. Wspomniano jedynie, że wyłączona zostanie obsługaobiektu SharedBufferArray.
Jest się czego bać?
Jeśli nie mogliście dotądskorzystać z łatki na Windowsa, zalecamy więc zainstalowanieFirefoksa57.0.4 – jest obecnie jedyną uniwersalnie dostępnąprzeglądarką, która oferuje rozwiązania utrudniające atakSpectre.
A jak wygląda prawdopodobieństwo takiego ataku? Tu zdania wśródekspertów są podzielone. Prawdopodobny jest oczywiście masowyatak, np. za pomocą jakiejś sieci reklamowej wysyłającej złośliwyJavaScript na partnerskie strony internetowe. Im szybciej napastnicyuporają 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łkowiciepodatna.
Z drugiej jednak strony pojawiają się głosy, że takie atakinigdy nie będą masowe, kiepsko się skalują. Znaleźć mająjedynie zastosowanie w spearphishingowych operacjach przeciwkokonkretnym ofiarom. Jak zauważaholenderski badacz Martijn Grooten, słynna luka Heartbleednigdy nie została wykorzystana na masową skalę.