Zsarolóvírusok keresése

Érintett szolgáltatás:

  • Microsoft Defender XDR

A zsarolóvírusok gyorsan fejlődtek, mivel egyszerű, az egyes számítógép-felhasználókat érintő, kereskedelmi kártevők, amelyek súlyosan érintik az iparágakat és a kormányzati intézményeket. Bár a Microsoft Defender XDR számos olyan képességet biztosít, amelyek észlelik és blokkolják a zsarolóprogramokat és a kapcsolódó behatolási tevékenységeket, a biztonsági rések jeleinek proaktív ellenőrzése segíthet a hálózat védelmének megőrzésében.

További információ az ember által működtetett zsarolóprogramokról

A Microsoft Defender XDR speciális veszélyforrás-keresésével olyan lekérdezéseket hozhat létre, amelyek megkeresik a zsarolóprogram-tevékenységhez társított egyes összetevőket. Kifinomultabb lekérdezéseket is futtathat, amelyek a tevékenység jeleit keresik, és megmérik ezeket a jeleket, hogy azonnali figyelmet igénylő eszközöket találjanak.

Zsarolóprogram-tevékenység jelei

A Microsoft biztonsági kutatói számos, kifinomult betolakodók által indított zsarolóprogram-kampányban különböző gyakori, mégis finom összetevőket figyeltek meg. Ezek a jelek többnyire rendszereszközök használatával készülnek fel a titkosításra, megakadályozzák az észlelést, és egyértelmű törvényszéki bizonyítékokat tartalmaznak.

Zsarolóprogramokkal kapcsolatos tevékenység Gyakori eszközök Szándék
Folyamatok leállítása taskkill.exe, net stop Győződjön meg arról, hogy a titkosításra szánt fájlokat nem zárolják a különböző alkalmazások.
Szolgáltatások kikapcsolása sc.exe – Győződjön meg arról, hogy a titkosításra szánt fájlokat nem zárolják a különböző alkalmazások.
- Megakadályozza, hogy a biztonsági szoftverek megzavarják a titkosítást és más zsarolóprogram-tevékenységeket.
– Állítsa le a biztonsági mentési szoftvereket a helyreállítható másolatok létrehozásában.
Naplók és fájlok törlése cipher.exe, wevtutil, fsutil.exe Távolítsa el a törvényszéki bizonyítékokat.
Árnyékmásolatok törlése vsadmin.exe, wmic.exe Távolítsa el a titkosított fájlok helyreállításához használható meghajtó árnyékmásolatait.
Biztonsági másolatok törlése és leállítása wbadmin.exe Törölje a meglévő biztonsági mentéseket, és állítsa le az ütemezett biztonsági mentési feladatokat, megakadályozva a titkosítás utáni helyreállítást.
Rendszerindítási beállítások módosítása bcdedit.exe Kapcsolja ki a figyelmeztetéseket és az automatikus javításokat a titkosítási folyamat által okozott rendszerindítási hibák után.
Helyreállítási eszközök kikapcsolása schtasks.exe, regedit.exe, Kapcsolja ki a Rendszer-visszaállítás és más rendszer-helyreállítási lehetőségeket.

Zsarolóprogram-tevékenység egyedi jeleinek ellenőrzése

Számos zsarolóprogram-viselkedést alkotó tevékenység, beleértve az előző szakaszban leírt tevékenységeket is, jóindulatú lehet. Ha a következő lekérdezésekkel megkeresi a zsarolóprogramokat, futtasson egynél több lekérdezést annak ellenőrzéséhez, hogy ugyanazok az eszközök különböző jeleket mutatnak-e a zsarolóprogramok lehetséges tevékenységére.

Több folyamat leállítása ataskkill.exe használatával

Ez a lekérdezés a taskkill.exe segédprogrammal legalább 10 különálló folyamat leállítására tett kísérletet keres. Lekérdezés futtatása

// Find attempts to stop processes using taskkill.exe
DeviceProcessEvents
| where Timestamp > ago(1d)
| where FileName =~ "taskkill.exe" 
| summarize taskKillCount = dcount(ProcessCommandLine), TaskKillList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 2m)
| where taskKillCount > 10

Folyamatok leállítása a net stop használatával

Ez a lekérdezés a net stop paranccsal legalább 10 különálló folyamat leállítására tett kísérleteket keres. Lekérdezés futtatása

// Find attempts to stop processes using net stop
DeviceProcessEvents
| where Timestamp > ago(1d)
| where FileName =~ "net.exe" and ProcessCommandLine has "stop"
| summarize netStopCount = dcount(ProcessCommandLine), NetStopList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 2m)
| where netStopCount > 10

Adatok törlése több meghajtón acipher.exe használatával

Ez a lekérdezés ellenőrzi, hogy megkísérel-e adatokat törölni több meghajtón acipher.exehasználatával. Ezt a tevékenységet általában zsarolóprogramok végzik, hogy megakadályozzák az adatok titkosítás utáni helyreállítását. Lekérdezés futtatása

// Look for cipher.exe deleting data from multiple drives
DeviceProcessEvents
| where Timestamp > ago(1d)
| where FileName =~ "cipher.exe" 
// cipher.exe /w flag used for deleting data 
| where ProcessCommandLine has "/w" 
| summarize CipherCount = dcount(ProcessCommandLine),
CipherList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 1m) 
// cipher.exe accessing multiple drives in a short timeframe 
| where CipherCount > 1

Törvényszéki bizonyítékok törlése eseménynaplókból a wevtutil használatával

Ez a lekérdezés legalább 10 naplóbejegyzés törlésére tett kísérletet keres az eseménynaplókból a wevtutil használatával. Lekérdezés futtatása

// Look for use of wevtutil to clear multiple logs
DeviceProcessEvents
| where Timestamp > ago(1d)
| where ProcessCommandLine has "WEVTUTIL" and ProcessCommandLine has "CL"
| summarize LogClearCount = dcount(ProcessCommandLine), ClearedLogList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 5m)
| where LogClearCount > 10

Szolgáltatások kikapcsolása asc.exe használatával

Ez a lekérdezés legalább 10 meglévő szolgáltatás kikapcsolására tett kísérleteket keres asc.exehasználatával. Lekérdezés futtatása

// Look for sc.exe disabling services
DeviceProcessEvents
| where Timestamp > ago(1d)
| where ProcessCommandLine has "sc" and ProcessCommandLine has "config" and ProcessCommandLine has "disabled"
| summarize ScDisableCount = dcount(ProcessCommandLine), ScDisableList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 5m)
| where ScDisableCount > 10

A rendszer-visszaállítás kikapcsolása

Ez a lekérdezés azonosítja a rendszer-visszaállítás leállítására tett kísérleteket, és megakadályozza, hogy a rendszer visszaállítási pontokat hozzon létre, amelyek a zsarolóprogramokkal titkosított adatok helyreállítására használhatók. Lekérdezés futtatása

DeviceProcessEvents
//Pivoting for rundll32  
| where InitiatingProcessFileName =~ 'rundll32.exe'   
//Looking for empty command line   
and InitiatingProcessCommandLine !contains " " and InitiatingProcessCommandLine != ""  
//Looking for schtasks.exe as the created process  
and FileName in~ ('schtasks.exe')  
//Disabling system restore   
and ProcessCommandLine has 'Change' and ProcessCommandLine has 'SystemRestore' 
and ProcessCommandLine has 'disable'

Biztonsági másolat törlése

Ez a lekérdezés azonosítja a wmic.exe használatát az árnyékmásolat-pillanatképek titkosítás előtti törléséhez. Lekérdezés futtatása

DeviceProcessEvents
| where FileName =~ "wmic.exe"
| where ProcessCommandLine has "shadowcopy" and ProcessCommandLine has "delete"
| project DeviceId, Timestamp, InitiatingProcessFileName, FileName,
ProcessCommandLine, InitiatingProcessIntegrityLevel, InitiatingProcessParentFileName

Zsarolóprogram-tevékenység több jelének ellenőrzése

Ahelyett, hogy több lekérdezést külön futtat, egy átfogó lekérdezést is használhat, amely a zsarolóprogram-tevékenység több jelét ellenőrzi az érintett eszközök azonosításához. A következő összevont lekérdezés:

  • A zsarolóprogramok tevékenységének viszonylag konkrét és finom jeleit is keresi
  • Méri ezeknek a jeleknek a jelenlétét
  • Azonosítja azokat az eszközöket, amelynek nagyobb az esélye arra, hogy zsarolóprogramokat célozzanak meg

Futtatáskor ez az összevont lekérdezés azoknak az eszközöknek a listáját adja vissza, amelyek több támadási előjelet mutattak. Az egyes zsarolóprogram-tevékenységek száma is megjelenik. Az összevont lekérdezés futtatásához másolja azt közvetlenül a speciális veszélyforrás-keresési lekérdezésszerkesztőbe.

// Find attempts to stop processes using taskkill.exe
let taskKill = DeviceProcessEvents
| where Timestamp > ago(1d)
| where FileName =~ "taskkill.exe" 
| summarize taskKillCount = dcount(ProcessCommandLine), TaskKillList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 2m)
| where taskKillCount > 10;
// Find attempts to stop processes using net stop
let netStop = DeviceProcessEvents
| where Timestamp > ago(1d)
| where FileName =~ "net.exe" and ProcessCommandLine has "stop"
| summarize netStopCount = dcount(ProcessCommandLine), NetStopList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 2m)
| where netStopCount > 10;
// Look for cipher.exe deleting data from multiple drives
let cipher = DeviceProcessEvents
| where Timestamp > ago(1d)
| where FileName =~ "cipher.exe" 
// cipher.exe /w flag used for deleting data 
| where ProcessCommandLine has "/w" 
| summarize CipherCount = dcount(ProcessCommandLine), 
CipherList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 1m) 
// cipher.exe accessing multiple drives in a short timeframe 
| where CipherCount > 1;
// Look for use of wevtutil to clear multiple logs
let wevtutilClear = DeviceProcessEvents
| where Timestamp > ago(1d)
| where ProcessCommandLine has "WEVTUTIL" and ProcessCommandLine has "CL"
| summarize LogClearCount = dcount(ProcessCommandLine), ClearedLogList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 5m)
| where LogClearCount > 10;
// Look for sc.exe disabling services
let scDisable = DeviceProcessEvents
| where Timestamp > ago(1d)
| where ProcessCommandLine has "sc" and ProcessCommandLine has "config" and ProcessCommandLine has "disabled"
| summarize ScDisableCount = dcount(ProcessCommandLine), ScDisableList = make_set(ProcessCommandLine) by DeviceId, bin(Timestamp, 5m)
| where ScDisableCount > 10;
// Main query for counting and aggregating evidence
DeviceProcessEvents
| where Timestamp > ago(1d)
| where FileName =~ "vssadmin.exe" and ProcessCommandLine has_any("list shadows", "delete shadows")
or FileName =~ "fsutil.exe" and ProcessCommandLine has "usn" and ProcessCommandLine has "deletejournal"
or ProcessCommandLine has("bcdedit") and ProcessCommandLine has_any("recoveryenabled no", "bootstatuspolicy ignoreallfailures")
or ProcessCommandLine has "wbadmin" and ProcessCommandLine has "delete" and ProcessCommandLine has_any("backup", "catalog", "systemstatebackup")
or (ProcessCommandLine has "wevtutil" and ProcessCommandLine has "cl") 
or (ProcessCommandLine has "wmic" and ProcessCommandLine has "shadowcopy delete")
or (ProcessCommandLine has "sc" and ProcessCommandLine has "config" and ProcessCommandLine has "disabled")
| extend Bcdedit = iff(ProcessCommandLine has "bcdedit" and ProcessCommandLine has_any("recoveryenabled no", "bootstatuspolicy ignoreallfailures"), 1, 0)
| extend ShadowCopyDelete = iff (ProcessCommandLine has "shadowcopy delete", 1, 0)
| extend VssAdminShadows = iff(ProcessCommandLine has "vssadmin" and ProcessCommandLine has_any("list shadows", "delete shadows"), 1, 0)
| extend Wbadmin = iff(ProcessCommandLine has "wbadmin" and ProcessCommandLine has "delete" and ProcessCommandLine has_any("backup", "catalog", "systemstatebackup"), 1,0)
| extend Fsutil = iff(ProcessCommandLine has "fsutil" and ProcessCommandLine has "usn" and ProcessCommandLine has "deletejournal", 1, 0)
| summarize FirstActivity = min(Timestamp), ReportId = any(ReportId), Commands = make_set(ProcessCommandLine) by DeviceId, Fsutil, Wbadmin, ShadowCopyDelete, Bcdedit, VssAdminShadows, bin(Timestamp, 6h)
// Joining extra evidence
| join kind=leftouter (wevtutilClear) on $left.DeviceId == $right.DeviceId
| join kind=leftouter (cipher) on $left.DeviceId == $right.DeviceId
| join kind=leftouter (netStop) on $left.DeviceId == $right.DeviceId
| join kind=leftouter (taskKill) on $left.DeviceId == $right.DeviceId
| join kind=leftouter (scDisable) on $left.DeviceId == $right.DeviceId
| extend WevtutilUse = iff(LogClearCount > 10, 1, 0)
| extend CipherUse = iff(CipherCount > 1, 1, 0)
| extend NetStopUse = iff(netStopCount > 10, 1, 0)
| extend TaskkillUse = iff(taskKillCount > 10, 1, 0)
| extend ScDisableUse = iff(ScDisableCount > 10, 1, 0)
// Adding up all evidence
| mv-expand CommandList = NetStopList, TaskKillList, ClearedLogList, CipherList, Commands, ScDisableList
// Format results
| summarize BcdEdit = iff(make_set(Bcdedit) contains "1" , 1, 0), NetStop10PlusCommands = iff(make_set(NetStopUse) contains "1", 1, 0), Wevtutil10PlusLogsCleared = iff(make_set(WevtutilUse) contains "1", 1, 0),
CipherMultipleDrives = iff(make_set(CipherUse) contains "1", 1, 0), Fsutil = iff(make_set(Fsutil) contains "1", 1, 0), ShadowCopyDelete = iff(make_set(ShadowCopyDelete) contains "1", 1, 0),
Wbadmin = iff(make_set(Wbadmin) contains "1", 1, 0), TaskKill10PlusCommand = iff(make_set(TaskkillUse) contains "1", 1, 0), VssAdminShadow = iff(make_set(VssAdminShadows) contains "1", 1, 0), 
ScDisable = iff(make_set(ScDisableUse) contains "1", 1, 0), TotalEvidenceCount = count(CommandList), EvidenceList = make_set(Commands), StartofBehavior = min(FirstActivity) by DeviceId, bin(Timestamp, 1d)
| extend UniqueEvidenceCount = BcdEdit + NetStop10PlusCommands + Wevtutil10PlusLogsCleared + CipherMultipleDrives + Wbadmin + Fsutil + TaskKill10PlusCommand + VssAdminShadow + ScDisable + ShadowCopyDelete
| where UniqueEvidenceCount > 2

A lekérdezési eredmények értelmezése és finomhangolása

Az összevont lekérdezés a következő eredményeket adja vissza:

  • DeviceId – azonosítja az érintett eszközt
  • TimeStamp – a zsarolóprogram-tevékenység első észlelése az eszközön
  • A tevékenység konkrét jelei – a több oszlopban látható egyes jelek száma, például BcdEdit vagy FsUtil
  • TotalEvidenceCount – a megfigyelt jelek száma
  • UniqueEvidenceCount – a megfigyelt jelek típusainak száma

Példa egy zsarolóprogram-tevékenység összevont lekérdezésére a Microsoft Defender portálon

Az érintett eszközöket és a zsarolóprogram-tevékenységek különböző jeleinek számát mutató lekérdezési eredmények

Alapértelmezés szerint a lekérdezés eredménye csak azokat az eszközöket listázza, amelyek több mint két típusú zsarolóprogram-tevékenységgel rendelkeznek. A zsarolóprogram-tevékenység minden jelével rendelkező eszköz megtekintéséhez módosítsa a következő where operátort, és állítsa a számot nulla (0) értékre. Ha kevesebb eszközt szeretne látni, állítson be magasabb számot.

| where UniqueEvidenceCount > 2

További zsarolóprogram-erőforrások

A Microsoft legfontosabb információi:

Microsoft 365:

Microsoft Azure:

Microsoft Defender for Cloud Apps:

A Microsoft biztonsági csapatának blogbejegyzései:

Tipp

Szeretne többet megtudni? Lépjen kapcsolatba a Microsoft biztonsági közösségével a technikai közösségünkben: Microsoft Defender XDR Tech Community.