Ustawienia Exploit Protection dla przeglądarek

We wtorek (9.03.2021) miałem okazję uczestniczyć w Webinarium Zaufanej Trzeciej Strony na temat bezpieczeństwa przeglądarek. Była to bardzo dobrze spędzona godzina, bo Adam dostarczył oglądającym cały stos argumentów i faktów do rozważenia przed wybraniem właściwej aplikacji do przeglądania stron w Internecie. Ciężko ująć absolutnie wszystkie aspekty przeglądania sieci w godzinnej prelekcji (i jeszcze odpowiedzieć na pytania — dzięki!), więc o niektórych rzeczach na pewno nie było czasu opowiedzieć, na przykład o używaniu rozszerzeń. To akurat ciekawy temat i chętnie bym zobaczył jakiś występ na ten temat :)

Z kolei webinarium przypomniało mi, że jakiś czas temu zabrałem się za zabezpieczanie swojego środowiska do przeglądania i akurat w przypadku Windows zagłębiłem się w coś, co się nazywa “Exploit Protection”.

Co to takiego? Dawno, dawno temu Microsoft wypuścił przydatną aplikację dla ludzi pragnących dodać choć trochę więcej odporności swoim programom w Windows przeciwko typowym atakom, takim jak przepełnienie bufora. Nazywała się “Enhanced Mitigation Experience Toolkit”, w skrócie EMET i zawierała wiele — i ciągle dodawanych nowych — technik zmniejszania możliwości ataku w systemie. Oczywiście nie był to złoty środek na pozbycie się raz na zawsze zagrożenia exploitami, ale zdarzało się, że aplikacje chronione EMET-em potrafiły oprzeć się niektórym atakom 0-day. Dobranie odpowiednich technik ochronnych było czasem drogą przez mękę, ponieważ niektóre z nich potrafiły zabić funkcjonalność danej aplikacji (lub na przykład odmawiały startu), ale było to jednak potężne narzędzie.

Rozwiązanie co prawda zakończyło swój żywot, ale tylko jako osobna aplikacja. Ktoś szczęśliwie zdecydował, że idea przetrwa i zostanie dodana do Windows Defendera. Jeśli macie Windows w wesji 1709 lub wyższej, możecie użyć następcy EMET-a, czyli właśnie Exploit Protection w Windows Defenderze. Funkcja ta znajduje się w Zabezpieczeniach Windows i jest dość łatwo dostępna. Jednak by wprowadzać w niej zmiany, będziecie potrzebowali praw administratora.

Warto przejrzeć ustawienia systemu i — jeśli naprawdę wiecie co robicie — zdecydować się chociażby na włączenie nieaktywnych funkcji.

Jednak prawdziwe mięsko do zabezpieczania aplikacji znajduje sie w sekcji “Ustawienia programu”. Dodaje się je bowiem pojedynczo wskazując lokalizację pliku lub nazwę i ustawia zestaw zabezpieczeń osobno.

Po dodaniu programu możecie zacząć eksperymentować z opcjami ochrony. Nie będzie to łatwe, ponieważ jeśli nie kojarzycie, co każda kontrolka robi, musicie uruchamiać swoją aplikację i sprawdzać, czy w ogóle działa oraz czy nie pracuje zbyt wolno. Tak, niektóre funkcje potrafią spowolnić pracę aplikacji. Dawniej było to szczególnie widoczne gdy Windows znajdował się w maszynie wirtualnej. Z moich dawnych doświadczeń wynikało, że jedną z winnych funkcji bywały EAF i IAF. Dobrze jest sprawdzić, czy ich używanie robi jakąś różnicę w wydajności.

Przygotowałem dla Was przykładowe kontrolki, które działają w przypadku dwóch przeglądarek: Mozilla Firefox i Microsoft Edge Chromium. Ustawienia tej drugiej powinny również pasować do Google Chrome lub po prostu Chromium. Muszę przyznać, że kosztowało to wiele klikania i podawania hasła admina (nie testowałem przeglądarek z uprzywilejowanego konta, tak na wszelki wypadek), oraz eliminacji winowajców porażek. Spróbowałem poszukać jakiegoś zgrabnego zestawu wskazówek gdzieś w Internecie, ale… MS zrobił nam krzywdę swoimi tłumaczeniami technicznych zwrotów (co to jest “Weryfikuj użycie dojścia?” :D)

Do dzieła.

Na pierwszy ogień Firefox. Zrobił wrażenie: w moim przypadku udało się włączyć prawie 20 dodatkowych zabezpieczeń. Proponuję włączyć — o ile system tego domyślnie nie ustawił — następujące techniki ochrony:

Blokuj obrazy o niskiej integralności
Blokuj obrazy zdalne
Blokuj niezaufane czcionki
Ochrona przepływu sterowania (CFG)
Zapobieganie wykonywaniu danych (DEP)
Wyłącz punkty rozszerzeń
Filtrowanie adresów eksportu (EAF)
Wymuś losowe generowanie obrazów (obowiązkowa funkcja ASLR)
Ochrona stosu wymuszana sprzętowo
Filtrowanie adresów importu (IAF)
Generuj losowo alokacje pamięci (ASLR “od dołu do góry”)
Symuluj wykonywanie (SimExec)
Weryfikuj wywołanie interfejsu API (CallerCheck)
Weryfikuj łańcuchy wyjątków (SEHOP)
Weryfikuj użycie dojścia
Weryfikuj integralność stosu
Weryfikuj integralność zależności obrazu
Weryfikuj integralność stosu (StackPivot)

W przypadku dodatkowych opcji przy kontrolce zostawiamy je niezaznaczone. Pozostałe kontrolki są nieaktywne, jeśli system je domyślnie ustawił, możecie spróbować zostawić je tak jak są. Warto sprawdzić efekt.

Microsoft Edge Chromium (i Google Chrome) — 15 kontrolek. Podejrzewam, że jedną z przyczyn jest chyba trochę więcej zabezpieczeń w środku (na przykład Mozilla miała do pokonania bardzo długą drogę stopniowo importując do Firefoxa technologię sandbox, która działała już w Chrome). Druga oczywista przyczyna to po prostu inaczej napisana aplikacja :)

Włączamy:

Włączaj obrazy o niskiej integralności
Blokuj obrazy zdalne
Blokuj niezaufane czcionki
Ochrona integralności kodu
Ochrona przepływu sterowania (CFG)
Zapobieganie wykonywaniu danych (DEP)
Wyłącz punkty rozszerzeń
Wymuś losowe generowanie obrazów (obowiązkowa funkacja ASLR)
Ochrona stosu wymuszana sprzętowo
Generuj losowo alokacje pamięci (ASLR “od dołu do góry”)
Weryfikuj wywołanie interfejsu API (CallerCheck)
Weryfikuj łańcuchy wyjątków (SEHOP)
Weryfikuj użycie dojścia
Weryfikuj integralność stosu
Weryfikuj integralność zależności obrazu

Po włączaniu pozostają już tylko testy, dostosowywanie i ponowne testy. W kółko.

Uwaga: Powyższy zestaw kontrolek działa u mnie na moim konkretnym sprzęcie. Jednak nie znaczy to, że wszyscy będą mieli taki sam działający zbiór ustawień. Pamiętajcie jednak, że warto poświęcić czas na ten eksperyment, bo każda warstwa ochrony to trochę większy spokój, a dla atakującego kolejne utrudnienie.

Przy testach spróbujcie wchodzić na te strony, które zwykle odwiedzacie, obejrzeć dodatki w przeglądarkach czy funkcjonują właściwie itd. Gdy kiedykolwiek przeglądarka po aktualizacji przestanie działać poprawnie, może to być związane z powyższymi ustawieniami. Wtedy trzeba będzie wrócić do testowania.

Gdy już się rozgościcie w tych ustawieniach, zachęcam do objęcia tą ochroną kolejnych aplikacji, które używacie. Szczególnie tych, które komunikują się przez sieć z czymkolwiek na zewnątrz. Nie wszystko da się włączyć i dla wszystkiego, ale trzeba spróbować.
Powodzenia! :D

Patrzę i piszę. Oczekujcie mnie ☺

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store