Chrome będzie zużywał więcej RAM-u. Wszystko przez łatki na Spectre

Strona główna Aktualności

O autorze

Już w styczniu Firefox i Edge zostały uodpornionone na ataki z wykorzystaniem podatności Spectre. Chronić najpopularniejszą przeglądarkę, Chrome’a, można było skutecznie na własne życzenie – poprzez włączenie jednej z flag. Pół roku musieliśmy czekać na zdecydowany krok Google – odtąd flaga izolująca procesy renderowania stron jest włączona domyślnie. Ma to jednak konsekwencje, które mogą nie spodobać się części użytkowników.

Już na początku roku deweloperzy Mozilli dowiedli, że lukę Spectre można wykorzystać zdalnie do przejęcia wrażliwych danych. Architektura procesorów pozwala wykraść informacje z pamięci cache, w tym wrażliwe dane i hasła. Wymagało co prawda spekulatywnego wykonania kodu, niemniej zarówno Microsoft, jak i Mozilla nie zbagatelizowali problemu i szybko uodpornili swoje programy. Google opublikowało komunikat dopiero teraz. Dowiadujemy się z niego, że dla 99% przeglądarek na Windowsie, Linuksie i macOS-ie domyślnie włączona została izolacja procesów renderowania stron.

W praktyczne oznacza to, że separowanie renderowania pojedynczych elementów dokumentów w oddzielne procesy. Standardem jest już dziś izolowanie kart, niemniej w przypadku Chrome’a do oddzielnych procesów trafią na przykład pływające ramki i strony, na których ramki zostały osadzone. W ten sposób Chrome zyskuje nowe zabezpieczenie przeciw atakom cross-site scripting – nawet jeśli użytkownik trafi na skrypt chcący wykraść dane z wykorzystaniem Spectre, na przykład na stronie osadzonej w pływającej ramce, to atakujący nie będzie miał dostępu do witryny okalającej.

Zwiększenie bezpieczeństwa nie zostało jednak uzyskane bezkosztowo. Zapłacimy za nie większym apetytem Chrome’a na RAM. Przez znaczące zwiększenie liczby procesów przeglądarka będzie wykorzystywała od 10 do 13% więcej pamięci podręcznej, niż w przypadku instalacji z wyłączoną izolacją stron. Dodatkowe problemy i ograniczenia napotkają użytkownicy narzędzi deweloperskich:

Izolacja stron to znacząca zmiana w tym, co dzieje się pod maską Chrome’a, ale na ogół nie powinna być zauważalna dla większości użytkowników i webdeveloperów (poza znanymi błędami). Po prostu oferuje więcej ochrony pomiędzy stronami zakulisowo. Izolacja stron powoduje, że Chrome tworzy więcej procesów renderujących, a w rezultacie powstają kompromisy wydajnościowe: plusem jest, że każdy proces renderujący będzie mniejszy, krótszy i w mniejszym stopniu skorelowany z innymi, ale występuje też około od 10% do 13% zwiększenia zapotrzebowania na RAM podczas realnego obciążenia. Nasz zespół ciężko pracuje nad optymalizacją, by Chrome był zarówno szybki, jak i bezpieczny.

Jak Google chce szukać rozwiązania „zakulisowych kompromisów wydajnościowych”? Wspomnieliśmy już, że izolacja stron domyślnie działa na 99% instalacji pulpitowej przeglądarki. To właśnie na bazie testów porównawczych z pozostałym 1% dokonywana będzie stopniowa optymalizacja. I nie dotyczy to wyłącznie desktopów. Google zapowiedziało bowiem, że od wersji 68 domyślnie izolacja zostanie włączona także w Chromie na Androidzie. Na własne życzenie można ją teraz uruchomić po przejściu na stronę chrome://flags i włączeniu flagi chrome://flags/#enable-site-per-process. Najnowszą wersję Chrome’a znajdziecie w naszej bazie oprogramowania.

© dobreprogramy