Do tej pory na pewno słyszałeś o „Spectre”, złowieszczo nazwanej luce w zabezpieczeniach, która dotyczy prawie wszystkich współczesnych procesorów. I słusznie, ponieważ luka dotyczy nikczemnych aplikacji i stron internetowych uzyskujących dostęp do danych z obszarów, w których tak naprawdę nie powinny. Aby poradzić sobie z tym problemem, przeglądarki opracowały różne mechanizmy bezpieczeństwa, a jedną z takich implementacji specyficznych dla przeglądarki Chrome jest Site Isolation.
Po raz pierwszy wprowadzony w Chrome v63 jako opcjonalna funkcja bezpieczeństwa, Site Isolation działa teraz domyślnie od wersji 67. Technicznie rzecz biorąc, jest dość biegły w łagodzeniu spekulacyjnych ataków wykonawczych (na których opiera się Spectre) dzięki procesom piaskownicy, których używa.
Ale tak jak wszystko, co dobre, ma swoją cenę — a konkretnie wydajność. Czy zatem wyłączenie izolacji witryn poprawi działanie Chrome? Czy warto rezygnować z bezpieczeństwa? Dowiedzmy Się.
Widmo i izolacja witryny
Tak jak każda inna przeglądarka, Google Chrome umożliwia otwieranie wielu stron internetowych przy użyciu różnych kart. Przed wdrożeniem Site Isolation karty służyły do udostępniania wspólnych procesów — co ma sens, ponieważ powielanie zadań byłoby marnowaniem zasobów systemowych. Jest to jednak sytuacja idealna do przeprowadzenia złośliwego ataku opartego na wadliwej konstrukcji procesora — Spectre.
Nowoczesne mikroprocesory wykorzystują wykonywanie spekulatywne do wstępnego ładowania danych z pamięci systemowej do znacznie szybszej pamięci podręcznej procesora w celu poprawy ogólnej wydajności. Daje to jednak wyjątkową okazję złośliwemu kodowi do skłonienia procesora do pobrania wrażliwych danych do jego pamięci podręcznej poprzez wykorzystanie współdzielonych procesów. Gdy dane znajdą się w pamięci podręcznej procesora, nie są chronione (w przeciwieństwie do pamięci systemowej) i mogą zostać łatwo skradzione.

Załóżmy, że masz otwartych kilka kart — jedną z kontem bankowym, a drugą z losową witryną. Teoretycznie ta ostatnia, pod warunkiem, że ma złośliwe zamiary, może zanurzyć się w pamięci podręcznej procesora używanej przez poprzednią kartę, a następnie ładować i odczytywać informacje, od danych logowania po klucze kryptograficzne.
Chociaż trudno sobie wyobrazić, że taki incydent ma miejsce ze względu na ograniczoną pamięć podręczną procesora (która stanowi zaledwie niewielki ułamek w porównaniu z pamięcią systemową), złośliwy kod zamiast tego określa dokładnie, jakie dane ukraść, porównując różnicę między szybkościami dostępu do procesora. W końcu, jeśli rzeczy są szybsze niż zwykle, jest to spowodowane tym, że dane już znajdują się w pamięci podręcznej procesora na podstawie dokładnych spekulacji.

Po wykryciu luki w zabezpieczeniach Spectre przeglądarki zaczęły stosować różne obejścia (takie jak zegary o niższej rozdzielczości w celu zmniejszenia dokładności określania prędkości dostępu do procesora), aby odrzucić ukierunkowane ataki. Jednak nie są one idealnym sposobem na przeciwdziałanie zagrożeniom opartym na Spectre, stąd powód izolacji witryny.
Site Isolation, jak sama nazwa wskazuje, w pełni izoluje karty od siebie, tworząc osobne procesy dla wszystkich elementów iframe (osadzone linki zewnętrzne), w tym tych, które są wspólne dla innych kart. Ponieważ współdzielone procesy odgrywają dużą rolę w monitorowaniu złośliwego kodu i odczytywaniu informacji z innych kart, korzystanie z niezależnych procesów przez funkcję Site Isolation dobrze sprawdza się w łagodzeniu takich luk.
Patrząc na nasz poprzedni przykład, przy włączonej izolacji witryn portal konta bankowego działa na zupełnie innym procesie i nie udostępnia nic podobnego do drugiej karty. Ta „izolacja” ogranicza do minimum możliwość kradzieży informacji w przypadku naruszenia.
Zwiększony narzut pamięci
Musisz się więc zastanowić, czy izolacja witryny nie ma wpływu na wydajność ze względu na dodatkową pamięć systemową zużywaną przez każdy niezależny proces — kartę przeglądarki. Według Google Online Security Blog implementacja zabezpieczeń zużywa do 10-13% więcej pamięci RAM, niż gdyby funkcja nie była aktywna.
Sprawdźmy, jak dokładna jest ta liczba w praktyce. Bez włączonej funkcji Site Isolation poniższy zrzut ekranu pokazuje kilka witryn internetowych, które używają wielu podobnych elementów iframe. Tylko dwie zakładki mają oddzielne bieżące zadania, bez niezależnych procesów dla żadnego elementu iframe.
Uwaga:

Te same karty z włączoną funkcją Site Isolation są pokazane na następnym zrzucie ekranu. Jak widać, nastąpił znaczny wzrost liczby dodatkowych procesów ze względu na elementy iframe używane przez każdą witrynę. Co więcej, podobne procesy są dalej dzielone na dwa, aby zmniejszyć szanse na udany atak polegający na wykonaniu spekulatywnym. Jeśli wykonasz obliczenia (pomijając zadania Przeglądarka i Proces GPU), obie witryny zużywają około 33% więcej pamięci.

Zużycie pamięci znacznie przekracza to, co podaje Google. Weźmy jednak pod uwagę liczbę o 10-13% wyższą od długoterminowej średniej. Witryny, a nawet poszczególne strony internetowe, różnią się od siebie liczbą procesów i czasem wymaganą pamięcią. Dlatego powyższy scenariusz można uznać za odstający.
Niezależnie od tego izolacja witryny powoduje umiarkowany lub w tym przypadku znaczny wzrost obciążenia pamięci.
Bezpieczeństwo a wydajność
Wyłączenie izolacji witryn powoduje spadek wykorzystania pamięci i prawdopodobnie zwiększenie wydajności na słabszych urządzeniach. Jednak Chrome jest dość biegły w zarządzaniu dostępną pamięcią, zawieszając nieużywane karty. Biorąc pod uwagę, że wykorzystanie pamięci różni się drastycznie w zależności od witryny, nie ma jednoznacznej odpowiedzi. Na urządzeniach z dużą pamięcią systemową różnice w wydajności powinny być znikome.
Wskazówka: Dodatkowo możesz również wziąć na siebie ręczne zarządzanie kartami przed zapychaniem pamięci za pomocą rozszerzeń takich jak The Great Discarder i The Great Suspender
Ale tu jest haczyk. Ze względu na wdrożenie Site Isolation Chrome ma z czasem zrezygnować z istniejących wcześniej środków zaradczych przeciwko atakom Spectre. Dlatego wyłączenie go spowoduje jeszcze większe narażenie na złośliwe ataki.

Biorąc pod uwagę te dwie kwestie, potencjalne luki w zabezpieczeniach spowodowane przez Spectre w połączeniu ze stale rosnącym wykorzystaniem danych osobowych sprawiają, że wyłączenie izolacji witryny jest złym pomysłem. Chyba że surfujesz na maszynie z niższej półki i nie wykorzystujesz w żaden sposób danych osobowych, tylko wtedy powinieneś rozważyć wyłączenie tej ważnej funkcji bezpieczeństwa.
Wyłączanie izolacji witryn
Wyłączenie izolacji witryn naraża komputer na poważne zagrożenia bezpieczeństwa. Jeśli jednak chcesz iść dalej i wyłączyć tę funkcję, poniżej znajdują się konkretne kroki, aby to zrobić.
Ostrzeżenie:
Krok 1: Na nowej karcie wpisz chrome://flags, a następnie naciśnij klawisz Enter, aby uzyskać dostęp do eksperymentalnych flag Chrome.

Krok 2: Wpisz Izolacja witryny w pasku wyszukiwania, a następnie naciśnij Enter.

Krok 3: Powinieneś zobaczyć dwie flagi Chrome oznaczone Ścisłą izolacją witryny i Rezygnacją z wersji próbnej izolacji witryny.
- Ustaw flagę ścisłej izolacji witryn na Wyłączone. Niektóre urządzenia mogą mieć domyślnie ustawioną opcję Wyłączone — w takim przypadku nie należy nic robić.
- Ustaw flagę rezygnacji z wersji próbnej izolacji witryny na opcję rezygnacji (niezalecane).

Następnie kliknij Uruchom ponownie teraz, aby zastosować zmiany.
Krok 5: Izolacja witryn jest teraz wyłączona. Aby to sprawdzić, wpisz chrome://process-internals w nowej karcie, a następnie naciśnij Enter.

Tryb izolacji witryny powinien być wyświetlany jako wyłączony, aby oznaczyć potwierdzenie. Aby później włączyć izolację witryn, wróć i zmień flagi na poprzednie, a następnie ponownie uruchom Chrome.
Nie, nie warto ryzykować
Wyłączenie krytycznej funkcji zabezpieczeń Chrome, takiej jak izolacja witryny, w celu zmniejszenia wykorzystania pamięci, nie jest uzasadnione. Zwłaszcza biorąc pod uwagę, jak każda witryna inaczej wykorzystuje pamięć. Dlatego nie należy dążyć do marginalnego wzrostu wydajności kosztem danych osobowych. Jeśli masz problemy z wydajnością, zawsze możesz rozważyć użycie alternatywnej przeglądarki, takiej jak Firefox Quantum, która zużywa znacznie mniej pamięci w porównaniu z Chrome, zanim zrobisz coś pochopnie.
Wesprzyj naszą pracę ❤️
Jeśli spodobał Ci się ten artykuł, rozważ pozostawienie napiwku, aby pomóc nam dalej publikować wartościowe treści.



















