O sposobach na obejście antywirusa przez złośliwe oprogramowane pisaliśmy w artykule tutaj. W tym artykule skupimy się na nieco innej metodzie polegającej na wyłączeniu ochrony antywirusowej na komputerze ofiary, tworzącej na nim „furtkę” do wykonywania złośliwego kodu. Pokażemy jak najnowszy trojan, znany również pod nazwami Nodersok, Novter lub Divergent aktywnie atakuje wbudowaną w system Microsoft Windows 10 usługę Windows Defender, próbując ją wyłączyć i zmodyfikować jej ustawienia.


Rola jaką współcześnie pełni Windows Defender w bezpieczeństwie komputerów

Trudno nie zgodzić się z faktami, że współczesny Windows Defender dojrzewa do pełnoprawnego rozwiązania AV i jest ściśle zintegrowany z systemem operacyjnym Windows. Inwestycje jakie poczynił Microsoft w jego rozwój sprawiły, że przekonuje się do niego coraz więcej firm rezygnując na jego rzecz z oprogramowania antywirusowego firm trzecich. Ma to swoje zalety, ale również i wady. Do zalet należy na pewno niższy koszt utrzymania aplikacji w porównaniu z płatnymi dodatkowo licencjami oprogramowania oraz to, że Windows Defender coraz lepiej wypada w porównaniach funkcjonalnych z konkurencją (zobacz raport Av-comparatives). Zaś do wad na pewno można zaliczyć to, że jeśli jest on wbudowany w system operacyjny Windows, to większość z wirusów będzie chciała w pierwszej kolejności go obejść lub wyłączyć.

Na podstawie analiz ostatnich wirusów (złośliwego oprogramowania) jakie pojawiły się w przeciągu ostatnich dwóch tygodni na rynku zauważyliśmy, że starają się one wyłączyć ochronę w czasie rzeczywistym i inne funkcje w Windows Defender. Dzięki temu w fazie infekcji komputera złośliwe oprogramowanie może pobierać dalszy złośliwy kod (payload) bez ryzyka wykrycia go przez Windows Defender, a także zablokować przyszłe aktualizacje dla systemu i sygnatury służące wykryciu nowych i istniejących wirusów.


Trojan Nodersok atakuje usługę Windows Defender

W zeszłym tygodniu w Internecie ukazały się aż trzy raporty o nowym bezplikowym trojanie, który poprzez kampanie phishingowe instaluje na komputerze ofiary środowisko Node.JS i konfiguruje go jako serwer proxy w celu oszukiwania użytkownika. Oszukuje: w procesie klikania na linki (podmienia je) oraz w innych złośliwych działaniach. Trojan ten jest nazwany przez Microsoft Nodersok, Divergent przez Cisco Talos i Novter przez Trend Micro.

Nodersok w pierwszej fazie infekcji wykonuje złośliwy skrypt PowerShell, który wyłącza Windows Defender i modyfikuje ustawienia Windows Update. Podobne zachowanie możemy zaobserwować w ostatnich wydaniach malware takich jak TrickBot, czy Gootkit. W tym artykule nie będziemy skupiać się na fazie infekcji powyższego złośliwego oprogramowania, bo możecie jej dokładny opis znaleźć pod powyższymi linkami, lecz postanowiliśmy opisać zmiany jakie wprowadzają po swojej infekcji w systemie operacyjnym Windows, w szczególności w usłudze Windows Defender.


Na co powinniśmy zwrócić uwagę?

W celu ochrony przed tego typu wirusami powinniśmy przede wszystkim należycie zabezpieczyć komputery przed możliwością wykonania złośliwych zapytań PowerShell. Pisaliśmy o tym szeroko w artykule tutaj. Jeśli z jakiś powodów na naszym komputerze malware’owi uda się wykonać skrypt, który zmodyfikuje ustawień Windows Defender powinniśmy zwrócić uwagę na:


1. Zapytania Powershell modyfikujące Windows Defender

Ustawieniami Windows Defender możemy zarządzać za pomocą PowerShell. Pełną listę znajdziesz w tym artykule Microsoft.
Status działania Windows Defender możemy sprawdzić za pomocą komendy: Get-MpComputerStatus

Interesujące dla nas będą również parametry usługi Defender. Sprawdzimy je za pomocą komendy Get-MpPreference

Jeśli malware zdobędzie odpowiednie uprawnienia administracyjne do systemu Windows, bo na przykład konto użytkownika, na którym jesteśmy zalogowani posiada takie uprawnienia lub wirus wykorzysta jakaś podatność zero-day lub RCE, wówczas będzie mógł wykonać skrypt Powershell, w którym zmodyfikuje ustawienia Windows Defender, tak aby dalsze jego działania były niewykrywalne.
Przy czym nie musi od razu wyłączać pełnej funkcjonalności Windows Defender – takie działanie mogłoby wzbudzić podejrzenia w systemach monitorujących oraz w samych powiadomieniach dla użytkownika w ikonie Defender w status barze (pasku statusu). W celu zaciemnienia swojego działania może wykonać polecenie, w którym wykluczy ze skanowania i sprawdzania folder (lub nawet cały dysk), gdzie w późniejszym etapie umieści swoje wykonywalne pliki. W artykule
tutaj pokazaliśmy, jak pobrać i podpiąć do systemu niezauważalnie plik VHD zawierający w środku złośliwy kod. Wyobraźmy sobie sytuację, w której złośliwe oprogramowanie w jednym skrypcie wyłączy ochronę Defender’a dla konkretnej nazwy dysku (np. Y), a następnie zainicjuje go w systemie Windows pod tą literą. Ochrona Defender nie zadziała dla nowego dysku (będzie on wykluczony), więc powstanie duże zagrożenie uruchomienie złośliwej aplikacji/kodu w systemie.

Ustawienia wykluczenia ścieżki z ochrony w Windows Defender możemy wykonać za pomocą następującego polecenia PowerShell:

Set-MpPreference -ExclusionPath ”C:\temp\”

gdzie w parametrze ExclusionPath możemy podać listę ścieżek/dysków, dla których chcemy wykluczyć ochronę Windows Defender.

Warto też w tym momencie przypomnieć, że skrypty Powershell można uruchomić tak, aby wykonywały się w pamięci komputera (tzw. LotL), więc cała pierwsza faza infekcji i wykonania skryptu może nie zostać wykryta przez oprogramowanie antywirusowe. Dopiero późniejsze jego działania, takie jak pobranie złośliwych plików na dysk mogłoby nieść za sobą znamiona pozostawienia śladu. W chwili, gdy skrypt wyłączy możliwość skanowania dysku dalsza infekcja będzie miała większy sukces powodzenia.


2. Podejrzane wpisy w rejestrze systemowym

Wynikiem wykonania złośliwego skryptu PowerShell wykonującego zmiany w Windows Defender będą zmienione wpisy w rejestrze systemowym odpowiadające za ustawienia tej usługi.
Poniżej zamieściliśmy przykłady najważniejszych ustawień w rejestrze, na które powinniśmy zwrócić uwagę:

// Wyłączenie Windows Defender. Może to mieć wpływ na oprogramowanie zabezpieczające innych firm –
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsDefender
“DisableAntiSpyware” = 1

// Uniemożliwia programowi Windows Defender automatyczne usuwanie wykrytych elementów –
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsDefender\
“DisableRoutinelyTakingAction” = 1

// Wyłącza ochronę systemu Windows Defender w czasie rzeczywistym –
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsDefender\Real-TimeProtection\
“DisableRealtimeMonitoring” = 1

// Włącza automatyczne aktualizacje. –
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\
“NoAutoUpdate” = 0

// 2 = Powiadamia przed pobraniem. Innymi słowy, nie pobieraj i nie instaluj automatycznie –
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate\AU\
“AUOptions” = 2

// ScheduledInstallDay, 0 = Każdy dzień-
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate\AU\
“ScheduledInstallDay” = 0

// ScheduledInstallTime, 03:00 –
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate\AU\
“ScheduledInstallTime” = 3

// Wyłącz aktualizacje pomiędzy komputerami Windows (peer-to-peer) –
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization
“DODownloadMode” = 0

Powyższe wpisy stara się zmienić z poziomu kodu najnowszy malware Nodersok (Novter). Jak spojrzymy w jego kod zauważymy te wpisy:

Skutek powyższych zmian jest taki, że po modyfikacji tych ustawień w rejestrze systemowym usługa Windows Defender na komputerze zostanie wyłączona, a nowe aktualizacje systemu Windows nie zostaną zainstalowane automatycznie. Malware spowoduje tym samym, że komputer będzie podatny na zagrożenia i nie będzie posiadał ochrony w czasie rzeczywistym (oczywiście jeśli nie są używane inne produkty zabezpieczające firm trzecich).


Podsumowanie

Czas brutalnie zweryfikuje i będziemy się mogli przekonać, czy coraz więcej szkodliwego oprogramowania będzie chciało wykorzystywać podobne techniki w celu obejścia zabezpieczeń. Jak na razie należą one do najczęściej stosowanych przez obecne złośliwe oprogramowanie. Pamiętajmy też, że nie posiadając innej alternatywy ochrony będziemy bardziej podatni na zagrożenia.
Ochrona PowerShell (ale nie tylko) wydaję się być jedną z najbardziej skutecznych (przynajmniej zapobiegawczo) metod, lecz pamiętajmy, że zmiany w systemie możemy dokonywać także przy użyciu innych języków skryptowych.