środa, 28 czerwca 2017

Atak ransomware - kilka przydatnych informacji Update: 28 06 2017 godzina 16:00

Poniżej przedstawiamy aktualne podsumowanie ataku ransomware Petya razem z kilkoma rekomendacjami dla osób obsługujących incydent:
  • OCHRONA: Instalacja wszystkich poprawek dla systemu Microsoft Windows. Możliwe, że w pierwszej fazie ataku wykorzystywana jest podatność (ofiara otrzymuje wiadomość email z załącznikiem – dokument doc/xls). Inny wariant – infekcja przez złośliwą aktualizację oprogramowania firmy M.E.DOC. Jeśli firmy są połączone przez VPN (z zagranicznym oddziałem) to w naszej sieci może nie być informacji o tej wiadomości lub złośliwej aktualizacji.
  • OCHRONA: Zalecamy wyłączenie protokołu SMBv1.
  • OCHRONA: Blokada dostępu do zasobów sieciowych Admin$. Złośliwe oprogramowanie w sieci wewnętrznej podłącza się do zasobów \\*\ADMIN$ i w katalogu \??\C:\Windows zapisuje pliki wykonywalne. Poniżej przykład zdarzeń 5140 i 5145 z kategorii File Share/Detailed File Share. Jeśli dzienniki zdarzeń nie zostały usunięte to będziemy mieli informację o komputerze który zainfekował pierwszy oraz o użytych danych uwierzytelniających.




Wgrywane pliki:

C:\Windows\Perfc.dat (biblioteka dll z głównym kodem malware)
C:\Windows\PSEXESVC.EXE – aplikacja psexesvc

W kodzie malware perfc jest wyłącznie odwołanie do Admin$ co może oznaczać, że wystarczy zablokować Admin$:


  • OCHRONA: Zalecane jest wyłączenie zdalnej obsługi przez WMI.
  • OCHRONA: Zalecamy utworzenie pliku perfc oraz perfc.dat w C:\Winodws. Inne zainfekowane komputery łączące się do komputera gdzie jest perfc nie będą wgrywały i uruchamiały tego pliku. Możliwe, że to częściowo pomoże tym co jeszcze nie są zainfekowani.
  • OCHRONA: Blokada uruchamiania plików z katalogu TEMP. Malware zapisuje plik wykonywalny w katalogu C:\Windows\Temp\B30B.tmp i uruchamia go. Mogą być inne nazwy plików. Jest to najprawdopodobniej plik dll który jest zawarty w perfc. Można go odczytać bezpośrednio z perfc zaczynając od offsetu 0x16060


  • OCHRONA: Blokada uruchamiana plików psexe, psexesvc, dllhost.dat.
  • OCHRONA: Zmiana haseł dla wszystkich kont uprzywilejowanych. Złośliwy kod wykorzystuje te dane do propagacji (załadowania i uruchomienia na innych komputerach). Jeśli mamy możliwość analizy zainfekowanego komputera to można z dzienników zdarzeń odczytać używane przez malware konta. Należy pamiętać, że konta uprzywilejowane pozwalają na szyfrowanie wszystkich plików oraz modyfikują MBR.
  • OCHRONA: Blokada na poziomie urządzeń sieciowych w sieci wewnętrznej portów TCP/UDP 445/135/137/138/139
  • OCHRONA: Blokada na hostach możliwości nawiązywania połączeń przez dllhost.dat. Z poziomu firewall w systemie Windows można też zablokować WMI.
  • Odtworzenie: Jest możliwe odtworzenie tablicy MBR i uruchomienie systemu (utworzenie tablicy partycji + odtworzenie rozmiarów partycji). W systemach tych nie ma malware dodanego do autostartu. Pliki są zaszyfrowane. Dla przypomnienia aby zidentyfikować partycje NTFS możemy użyć sygnatury "0xEB52904E". Jeśli natomiast ktoś chce zamontować partycję pod systemem linux to używamy parametru offset=$((wielkość*512)
  • Odtworzenie: Gdy przywrócimy MBR można uruchamiać komputer. Z naszych obserwacji wynika, że gdy w C:\Windows istnieje plik perfc, inne komputery (zainfekowane) po sprawdzeniu obecności pliku nie wykonują kolejnych działań (wgrania i uruchomienia malware) 
  • Odtworzenie: Gdy widzimy na ekranie komunikat CHKDSK – należy wyłączyć komputer. Choć najprawdopodobniej jest i tak za późno.
  • Odtworzenie: Nie widzimy aby malware usuwał Volume Shadow Copy
  • Detekcja: Sekwencja zdarzeń logowania: 4672, 4624 oraz 4634 pozwala również na identyfikację użytych danych uwierzytelniających do załadowania malware. Również zdarzenia 4648 - A logon was attempted using explicit credentials. Gdy malware używa co najmniej dwóch przejętych kont.
  • Detekcja: Tworzone są procesy (ID zdarzeń 4688) z Token Elevation Type  = 1 (Rundll32.exe,SearchFilterHost.exe,SearchProtocolHost.exe,System32\Cmd.exe,Conhost.exe,C:\Windows\Temp\B30B.tmp,Schtasks.exe,C:\Windows\dllhost.dat)
  • Detekcja: Tworzone jest zadanie, które ma po x minut (w poniższym przykładzie 1h) wywołać komendę shutdown.exe /r /f. ID Zdarzenia 4698. Z analizy dzienników zdarzeń oraz dysków wynika, że malware przed restartem szyfruje pliki i propaguje się. Z opisu zadania możemy uzyskać informacje na jakim koncie działał ransomware.
Task Information:
Task Name: \{BD9FB3E9-XXXX-XXXX-XXXX-XXXXXXXXXX}
Task Content: <?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2017-06-27T11:53:35</Date>
<Author>account</Author>
</RegistrationInfo>
<Triggers>
<TimeTrigger>
<StartBoundary>2017-06-27T12:54:00</StartBoundary>
<Enabled>true</Enabled>
</TimeTrigger>
</Triggers>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<Duration>PT10M</Duration>
<WaitTimeout>PT1H</WaitTimeout>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
<Priority>7</Priority>
<Settings>
<Actions Context="Author">
<Exec>
<Command>C:\windows\system32\shutdown.exe</Command>
<Arguments>/r /f</Arguments>
</Exec>
</Actions>
<Principals>
<Principal id="Author">
<UserId>DOMENA\accountname</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
</Task>

Komenda z pliku perfc

  • Detekcja: Przy szyfrowaniu w dzienniku zdarzeń będą zdarzenia 4656 – A handle to an object was requested. W account name będzie informacja o koncie używanym do szyfrowania. Object Name będzie nazwa szyfrowanego pliku.
  • Detekcja: Zdarzenie 4674 (Log security) – Sensitive Privilage Use - wywołane przez proces dllhost.dat
  • Detekcja: Uwaga 1. Pliki dziennika zdarzeń mogą być usunięte na niektórych zainfekowanych komputerach.
  • Odtworzenie: Uwaga 2. Pojawiają się pierwsze fałszywe deszyfratory.
  • Szyfrowanie: W pliku perfc.dat jest zaszyty klucz publiczny RSA który jest używany do zaszyfrowania klucza 128 BIT AES. Ten klucz (inny dla każdej partycji lub hosta) jest używany do szyfrowania plików. 
  • Szyfrowanie: Z niepotwierdzonych informacji wynika, że ten atak nie zakładał możliwości odszyfrowywania plików.