Jag utpressningstrojan
Viktigt
Den förbättrade Microsoft 365 Defender-portalen är nu tillgänglig. Med den här nya upplevelsen kommer Defender för Endpoint, Defender för Office 365, 365 Microsoft 365 Defender och annat till Microsoft Defender for Cloud Apps. Läs om de senaste.
Gäller för:
- Microsoft 365 Defender
Utpressningstrojaner har snabbt utvecklats från att vara enkla varor som skadlig programvara påverkar enskilda datoranvändare till ett företagshot som allvarligt påverkar branscher och myndigheter. Även Microsoft 365 Defender många funktioner för att identifiera och blockera utpressningstrojaner och associerade intrångsaktiviteter, kan proaktiva kontroller för intrångstecken skydda nätverket.
Med avancerad sökning i Microsoft 365 Defender kan du skapa frågor som hittar enskilda artefakter som är kopplade till utpressningstrojaner. Du kan också köra mer avancerade frågor som kan leta efter tecken på aktivitet och väga dessa tecken för att hitta enheter som kräver omedelbar uppmärksamhet.
Tecken på utpressningstrojaner
Microsoft-säkerhetsvakter har observerat flera vanliga men diskreta artefakter i många utpressningstrojaner som startats av avancerade utpressningspersoner. Dessa skyltar innebär oftast användning av systemverktyg för att förbereda kryptering, förhindra identifiering och tydliga bevis för bevis.
| Utpressningstrojaner | Vanliga verktyg | Avsikter |
|---|---|---|
| Stoppa processer | taskkill.exe, nettostopp | Se till att filer som är riktade för kryptering inte är låsta av olika program. |
| Inaktivera tjänster | sc.exe | – se till att filer som är riktade för kryptering inte är låsta av olika program. – förhindra att säkerhetsprogramvara stör kryptering och annan utpressningstrojaner. - Stoppa säkerhetskopiering av programvara från att skapa återställningsbara kopior. |
| Ta bort loggar och filer | cipher.exe, wevtutil, fsutil.exe | Ta bort tekniska bevis. |
| Ta bort skuggkopior | vsadmin.exe, wmic.exe | Ta bort skuggkopior på enheten som kan användas för att återställa krypterade filer. |
| Ta bort och stoppa säkerhetskopior | wbadmin.exe | Ta bort befintliga säkerhetskopior och stoppa schemalagda säkerhetskopieringsuppgifter, vilket förhindrar återställning efter kryptering. |
| Ändra startinställningar | bcdedit.exe | Stäng av varningar och automatiska reparationer efter fel i starten som kan orsakas av krypteringsprocessen. |
| Inaktivera återställningsverktyg | schtasks.exe, regedit.exe, | Inaktivera Systemåterställning och andra systemåterställningsalternativ. |
Kontrollera enskilda tecken på utpressningstrojaner
Många aktiviteter som utgör utpressningstrojaner, inklusive de aktiviteter som beskrivs i föregående avsnitt, kan vara från fall till fall. När du använder följande frågor för att hitta utpressningstrojaner kör du fler än en fråga för att kontrollera om samma enhet har olika tecken på möjlig utpressningstrojanaktivitet.
Stoppa flera processer med taskkill.exe
Den här frågan söker efter försök att stoppa minst 10 olika processer med hjälptaskkill.exe verktyg. Kör fråga
// 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
Stoppa processer med hjälp av nettostopp
Den här frågan söker efter försök att stoppa minst 10 olika processer med hjälp av kommandot för nettostopp. Kör fråga
// 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
Borttagning av data på flera enheter med cipher.exe
Den här frågan söker efter försök att ta bort data på flera enheter med hjälp avcipher.exe. Den här aktiviteten utförs vanligtvis av utpressningstrojaner för att förhindra återställning av data efter kryptering. Kör fråga
// 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
Avröjning av bevis från händelseloggar med wevtutil
Den här frågan söker efter försök att rensa minst 10 loggposter från händelseloggar med wevtutil. Kör fråga
// 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
Inaktivera tjänster med sc.exe
Den här frågan söker efter försök att inaktivera minst 10 befintliga tjänster med hjälp avsc.exe. Kör fråga
// 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
Inaktivera Systemåterställning
Den här frågan identifierar försök att stoppa Systemåterställning och förhindra att systemet skapar återställningspunkter, som kan användas för att återställa data som krypteras med utpressningstrojaner. Kör fråga
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'
Säkerhetskopiera borttagning
Den här frågan identifierar hur du wmic.exe ta bort ögonblicksbilder av skuggkopior innan krypteringen. Kör fråga
DeviceProcessEvents
| where FileName =~ "wmic.exe"
| where ProcessCommandLine has "shadowcopy" and ProcessCommandLine has "delete"
| project DeviceId, Timestamp, InitiatingProcessFileName, FileName,
ProcessCommandLine, InitiatingProcessIntegrityLevel, InitiatingProcessParentFileName
Kontrollera om det finns flera tecken på utpressningstrojaner
I stället för att köra flera frågor separat kan du också använda en omfattande fråga som söker efter flera tecken på utpressningstrojaner för att identifiera påverkade enheter. Följande konsoliderade fråga:
- Letar efter både relativt betong- och diskreta tecken på utpressningstrojaner
- Väga förekomsten av dessa tecken
- Identifierar enheter som har större chans att bli utpressningstrojaner
När den här konsoliderade frågan körs returneras en lista över enheter som har flera attacktecken. Antalet av varje typ av utpressningstrojaner visas också. Om du vill köra den här konsoliderade frågan kopierar du den direkt till den avancerade frågeredigeraren för sökning.
// 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
Förstå och modifiera frågeresultaten
Den konsoliderade frågan returnerar följande resultat:
- DeviceId– identifierar den enhet som påverkas
- TimeStamp– första gången ett tecken på utpressningstrojaner observerades på enheten
- Specifika tecken på aktivitet – antalet för varje tecken som visas i flera kolumner, till exempel BcdEdit eller FsUtil
- TotalEvidenceCount– antal observerade tecken
- UniqueEvidenceCount– antal typer av observerade tecken
Frågeresultat som visar påverkade enheter och antal olika tecken på utpressningstrojaner
Som standard visas endast enheter som har fler än två typer av utpressningstrojaner i frågeresultatet. Om du vill se alla enheter med tecken på utpressningstrojaner ändrar du följande operator och where anger siffran noll (0). Ange ett högre antal om du vill se färre enheter.
| where UniqueEvidenceCount > 2
Relaterade ämnen
- Översikt över avancerad jakt
- Lär dig frågespråket
- Arbeta med frågeresultat
- Använda delade frågor
- Förstå schemat
- Använda metodtips för frågor
Ytterligare resurser för utpressningstrojaner
Viktig information från Microsoft:
- Det växande hotet om utpressningstrojaner– Microsoft On the Issues-blogginlägget den 20 juli 2021
- Utpressningstrojaner som drivs av människor
- Skydda snabbt mot utpressningstrojaner och utpressning
- 2021 Microsoft Digital Defense Report (se sidorna 10–19)
- Utpressningstrojan: Ett genomgripande och pågående hot hotanalysrapport i Microsoft 365 Defender-portalen
Microsoft 365:
- Använda skydd mot utpressningstrojaner för din Microsoft 365-klientorganisation
- Maximera återhämtning av utpressningstrojaner med Azure och Microsoft 365
- Återställa efter en attack med utpressningstrojan
- Skydd mot skadlig kod och utpressningstrojan
- Skydda din Windows dator från utpressningstrojaner
- Hantera utpressningstrojaner i SharePoint Online
- Hotanalysrapporter för utpressningstrojaner i Microsoft 365 Defender-portalen
Microsoft Azure:
- Azure Defenses för attacker med utpressningstrojan
- Maximera återhämtning av utpressningstrojaner med Azure och Microsoft 365
- Plan för säkerhetskopiering och återställning för att skydda mot utpressningstrojaner
- Skydda mot utpressningstrojaner med Microsoft Azure (26-minutersvideo)
- Återställa från identitetskompromettering
- Avancerad identifiering av flerstegsattack i Microsoft Sentinel
- Fusionidentifiering för utpressningstrojaner i Microsoft Sentinel
Microsoft Defender for Cloud Apps:
Blogginlägg för Microsoft Security-teamet:
3 steg för att förhindra och återhämta från utpressningstrojaner (september 2021)
En guide för att bekämpa mänskligt drivna utpressningstrojaner: Del 1 (september 2021)
Viktiga steg för hur Microsofts DART-team (Detection and Response Team) genomför undersökningar av utpressningstrojaner.
En guide för att bekämpa mänskligt drivna utpressningstrojaner: Del 2 (september 2021)
Rekommendationer och metodtips.
-
Se avsnittet Utpressningstrojaner.
Attacker med utpressningstrojan som drivs av människor: En katastrof som kan förhindras (mars 2020)
Innehåller attack kedjeanalyser av de faktiska attackerna.
Svar på utpressningstrojaner – att betala eller inte betala? (december 2019)
Norsk Hydro svarar på utpressningstrojaner med transparens (december 2019)