Techniki unikania analizy złośliwego oprogramowania – jak malware unika detekcji
🧪 Techniki unikania analizy złośliwego oprogramowania – jak malware unika detekcji
🧠 Wprowadzenie
Współczesne złośliwe oprogramowanie nie tylko infekuje systemy – aktywnie unika wykrycia przez systemy bezpieczeństwa, analityków malware oraz środowiska sandboxowe. Techniki te określane są jako anti-analysis i stanowią jeden z filarów skutecznych ataków APT i kampanii cyberprzestępczych.
🔐 Klasyfikacja technik unikania analizy
🌀 1. Anti-VM i Anti-Sandbox
Złośliwe oprogramowanie wykrywa, czy działa w maszynie wirtualnej (VM) lub piaskownicy (sandbox) i nie wykonuje złośliwych działań, jeśli tak jest.
🔍 Przykłady:
- Wyszukiwanie plików typowych dla VM (np.
C:\windows\system32\drivers\vmmouse.sys) - Wykrywanie procesów sandboxa (np.
sandboxiedcomlaunch.exe) - Sprawdzanie ilości procesorów/logów systemowych (VM często mają 1 rdzeń)
🧩 2. Anti-Debugging
Złośliwy kod wykrywa obecność debuggera i modyfikuje zachowanie lub kończy działanie.
🔧 Popularne techniki:
- API:
IsDebuggerPresent(),CheckRemoteDebuggerPresent() - Modyfikacja struktury PEB (Process Environment Block)
- Opóźnienia czasowe: malware czeka kilkadziesiąt sekund, by ominąć automatyczne analizy

🎭 3. Obfuskacja i packery
Kod malware jest „zaciemniany” lub kompresowany, aby ukryć funkcjonalność.
Techniki:
- Obfuscation – zamiana nazw zmiennych, ciągów i funkcji na bełkot
- Packing – kod wykonywalny ukryty wewnątrz innego kodu (np. UPX, Themida)
- Polimorfizm i metamorfizm – malware zmienia swoją strukturę za każdym uruchomieniem
⏳ 4. Opóźnione ładowanie złośliwego kodu
Złośliwe działanie uruchamiane jest dopiero po czasie, by uniknąć wykrycia w pierwszych sekundach działania w sandboxie.
Przykład:
time.sleep(60) # oczekiwanie na zakończenie analizy sandboxowej
🧬 5. Techniki kodu powłokowego (Shellcode Injection)
Malware wstrzykuje złośliwy kod do pamięci innych procesów – np. explorer.exe lub svchost.exe.
Typowe metody:
CreateRemoteThread()VirtualAllocEx()+WriteProcessMemory()
⚔️ Przeciwdziałanie technikom unikania
✅ 1. Dynamiczna analiza z opóźnieniem
- Sandboxy z funkcją „long analysis” wykrywają malware działające po czasie.
✅ 2. Analiza statyczna z deobfuskacją
- Narzędzia typu Ghidra, IDA Pro + wtyczki do rozpakowywania kodu.
✅ 3. Hybrydowe rozwiązania EDR/XDR
- Łączą dane z dysku, pamięci, sieci i procesów.
✅ 4. Emulacja zamiast klasycznej VM
- Niektóre systemy bezpieczeństwa emulują tylko środowisko API, co ciężej wykryć przez malware.
🧠 Przykład ataku
Złośliwe oprogramowanie w załączniku maila .doc:
- Ukrywa payload pod makrem z losowym kodem
- Wstrzykuje shellcode do
explorer.exe - Czeka 60 sekund na uruchomienie kodu
- Łączy się z serwerem C2 tylko poza godzinami pracy, by uniknąć monitoringu
🔚 Podsumowanie
Złośliwe oprogramowanie ewoluuje nie tylko pod kątem funkcjonalności, ale też w zakresie technologii unikania detekcji i analizy. Skuteczna obrona wymaga zaawansowanych narzędzi, ciągłego monitoringu i wiedzy o technikach takich jak obfuskacja, anti-debug, VM escape czy opóźnione ładowanie.






