Suche nach Ransomware
Gilt für:
- Microsoft Defender XDR
Ransomware entwickelte sich schnell von einfacher Schadsoftware, die einzelne Computerbenutzer betrifft, zu einer Unternehmensbedrohung, die sich stark auf Branchen und Regierungsinstitutionen auswirkt. Während Microsoft Defender XDR viele Funktionen bietet, die Ransomware und zugehörige Angriffsaktivitäten erkennen und blockieren, kann die Durchführung proaktiver Überprüfungen auf Anzeichen von Kompromittierung dazu beitragen, Ihr Netzwerk zu schützen.
Mit der erweiterten Suche in Microsoft Defender XDR können Sie Abfragen erstellen, die einzelne Artefakte im Zusammenhang mit Ransomware-Aktivitäten finden. Sie können auch komplexere Abfragen ausführen, die nach Anzeichen einer Aktivität suchen und diese Anzeichen abwägen können, um Geräte zu finden, die sofortige Aufmerksamkeit erfordern.
Anzeichen einer Ransomware-Aktivität
Microsoft-Sicherheitsforscher haben verschiedene gängige, aber subtile Artefakte in vielen Ransomware-Kampagnen beobachtet, die von anspruchsvollen Eindringlingen gestartet wurden. Diese Anzeichen umfassen hauptsächlich die Verwendung von Systemtools, um die Verschlüsselung vorzubereiten, die Erkennung zu verhindern und forensische Beweise zu klären.
Ransomware-Aktivität | Allgemeine Tools | Intent |
---|---|---|
Beenden von Prozessen | taskkill.exe, net stop | Stellen Sie sicher, dass Dateien, die für die Verschlüsselung vorgesehen sind, nicht von verschiedenen Anwendungen gesperrt werden. |
Deaktivieren von Diensten | sc.exe | – Stellen Sie sicher, dass Dateien, die für die Verschlüsselung vorgesehen sind, nicht von verschiedenen Anwendungen gesperrt werden. - Verhindern Sie, dass Sicherheitssoftware die Verschlüsselung und andere Ransomware-Aktivitäten unterbricht. – Sicherungssoftware am Erstellen wiederherstellbarer Kopien hindern. |
Löschen von Protokollen und Dateien | cipher.exe, wevtutil, fsutil.exe | Entfernen Sie forensische Beweise. |
Schattenkopien löschen | vsadmin.exe, wmic.exe | Entfernen Sie Laufwerksschattenkopien, die zum Wiederherstellen verschlüsselter Dateien verwendet werden können. |
Löschen und Beenden von Sicherungen | wbadmin.exe | Löschen Sie vorhandene Sicherungen, und beenden Sie geplante Sicherungstasks, um die Wiederherstellung nach der Verschlüsselung zu verhindern. |
Ändern der Starteinstellungen | bcdedit.exe | Deaktivieren Sie Warnungen und automatische Reparaturen nach Startfehlern, die durch den Verschlüsselungsprozess verursacht werden können. |
Deaktivieren von Wiederherstellungstools | schtasks.exe, regedit.exe, | Deaktivieren Sie die Systemwiederherstellung und andere Systemwiederherstellungsoptionen. |
Überprüfen sie auf einzelne Anzeichen einer Ransomware-Aktivität
Viele Aktivitäten, die das Ransomware-Verhalten darstellen, einschließlich der im vorherigen Abschnitt beschriebenen Aktivitäten, können harmlos sein. Wenn Sie die folgenden Abfragen verwenden, um Ransomware zu finden, führen Sie mehrere Abfragen aus, um zu überprüfen, ob dieselben Geräte verschiedene Anzeichen für eine mögliche Ransomware-Aktivität aufweisen.
Beenden mehrerer Prozesse mithilfe vontaskkill.exe
Diese Abfrage überprüft mithilfe des Hilfsprogrammstaskkill.exe auf Versuche, mindestens 10 separate Prozesse zu beenden. Abfrage ausführen
// 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
Beenden von Prozessen mithilfe von net stop
Mit dieser Abfrage wird überprüft, ob versucht wird, mindestens 10 separate Prozesse mit dem Befehl net stop zu beenden. Abfrage ausführen
// 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
Löschen von Daten auf mehreren Laufwerken mithilfe voncipher.exe
Mit dieser Abfrage wird überprüft, ob versucht wird, Daten auf mehreren Laufwerken zu löschen , indemcipher.exeverwendet wird. Diese Aktivität wird in der Regel durch Ransomware durchgeführt, um die Wiederherstellung von Daten nach der Verschlüsselung zu verhindern. Abfrage ausführen
// 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
Löschen von forensischen Beweisen aus Ereignisprotokollen mithilfe von wevtutil
Diese Abfrage überprüft, ob versucht wird, mindestens 10 Protokolleinträge mithilfe von wevtutil aus Ereignisprotokollen zu löschen. Abfrage ausführen
// 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
Deaktivieren von Diensten mit sc.exe
Mit dieser Abfrage wird überprüft, ob versucht wird, mindestens 10 vorhandene Dienste mit sc.exezu deaktivieren. Abfrage ausführen
// 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
Deaktivieren der Systemwiederherstellung
Diese Abfrage identifiziert Versuche, die Systemwiederherstellung zu beenden und zu verhindern, dass das System Wiederherstellungspunkte erstellt, die verwendet werden können, um Daten wiederherzustellen, die durch Ransomware verschlüsselt wurden. Abfrage ausführen
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'
Löschen von Sicherungen
Diese Abfrage identifiziert die Verwendung von wmic.exe zum Löschen von Schattenkopiemomentaufnahmen vor der Verschlüsselung. Abfrage ausführen
DeviceProcessEvents
| where FileName =~ "wmic.exe"
| where ProcessCommandLine has "shadowcopy" and ProcessCommandLine has "delete"
| project DeviceId, Timestamp, InitiatingProcessFileName, FileName,
ProcessCommandLine, InitiatingProcessIntegrityLevel, InitiatingProcessParentFileName
Überprüfen Sie auf mehrere Anzeichen einer Ransomware-Aktivität
Anstatt mehrere Abfragen separat auszuführen, können Sie auch eine umfassende Abfrage verwenden, die auf mehrere Anzeichen von Ransomware-Aktivitäten überprüft, um betroffene Geräte zu identifizieren. Die folgende konsolidierte Abfrage:
- Sucht nach relativ konkreten und subtilen Anzeichen von Ransomware-Aktivitäten
- Wägt das Vorhandensein dieser Zeichen ab
- Identifiziert Geräte mit einer höheren Wahrscheinlichkeit, Ziele von Ransomware zu werden
Bei der Ausführung gibt diese konsolidierte Abfrage eine Liste von Geräten zurück, die mehrere Anzeichen eines Angriffs aufweisen. Die Anzahl der einzelnen Arten von Ransomware-Aktivitäten wird ebenfalls angezeigt. Um diese konsolidierte Abfrage auszuführen, kopieren Sie sie direkt in den Editor für erweiterte Suchabfragen.
// 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
Verstehen und Optimieren der Abfrageergebnisse
Die konsolidierte Abfrage gibt die folgenden Ergebnisse zurück:
DeviceId – identifiziert das betroffene Gerät.
TimeStamp – zum ersten Mal wurde ein Anzeichen einer Ransomware-Aktivität auf dem Gerät beobachtet.
Spezifische Anzeichen einer Aktivität– die Anzahl für jedes in mehreren Spalten angezeigte Zeichen, z. B. BcdEdit oder FsUtil
TotalEvidenceCount – Anzahl der beobachteten Zeichen
UniqueEvidenceCount – Anzahl der Typen beobachteter Zeichen
Abfrageergebnisse mit den betroffenen Geräten und der Anzahl verschiedener Anzeichen einer Ransomware-Aktivität
Standardmäßig listet das Abfrageergebnis nur Geräte auf, die mehr als zwei Arten von Ransomware-Aktivitäten aufweisen. Um alle Geräte mit allen Anzeichen einer Ransomware-Aktivität anzuzeigen, ändern Sie den folgenden where
Operator und legen die Zahl auf 0 (0) fest. Um weniger Geräte anzuzeigen, legen Sie eine höhere Zahl fest.
| where UniqueEvidenceCount > 2
Weitere Ransomware-Ressourcen
Wichtige Informationen von Microsoft:
- Die wachsende Bedrohung durch Ransomware, Microsoft On the Issues-Blogbeitrag vom 20. Juli 2021
- Von Menschen betriebene Ransomware
- Schnelles Bereitstellen von Ransomware-Präventionen
- 2021 Microsoft Digital Defense Report (siehe Seiten 10–19)
- Ransomware: Ein allgegenwärtiger und fortlaufender Bericht zur Bedrohungsanalyse im Microsoft Defender-Portal
Microsoft 365:
- Bereitstellen von Ransomware-Schutz für Ihren Microsoft 365-Mandanten
- Maximieren der Resilienz von Ransomware mit Azure und Microsoft 365
- Playbooks zur Reaktion auf Ransomware-Vorfälle
- Schutz vor Schadsoftware und Ransomware
- Schützen Sie Ihren Windows-PC vor Ransomware
- Behandlung von Ransomware in SharePoint Online
- Bedrohungsanalyseberichte für Ransomware im Microsoft Defender-Portal
Microsoft Azure:
- Azure-Verteidigungsmaßnahmen gegen Ransomware-Angriffe
- Maximieren der Resilienz von Ransomware mit Azure und Microsoft 365
- Backup- und Wiederherstellungsplan zum Schutz vor Ransomware
- Hilfe beim Schutz vor Ransomware mit Microsoft Azure Backup (26-minütiges Video)
- Wiederherstellen nach einer systemischen Identitätskompromittierung
- Erweiterte mehrstufige Angriffserkennung in Microsoft Sentinel
- Fusionserkennung für Ransomware in Microsoft Sentinel
Microsoft Defender for Cloud Apps:
Blogbeiträge des Microsoft Security-Teams:
Drei Schritte zum Verhindern und Wiederherstellen von Ransomware (September 2021)
Ein Leitfaden zum Kampf gegen von Menschen betriebene Ransomware: Teil 1 (September 2021)
Wichtige Schritte, wie das Microsoft Detection and Response Team (DART) Untersuchungen von Ransomware-Vorfällen durchführt.
Leitfaden zum Kampf gegen von Menschen betriebene Ransomware: Teil 2 (September 2021)
Empfehlungen und bewährte Methoden.
-
Weitere Informationen finden Sie im Abschnitt Ransomware.
Von Menschen betriebene Ransomware-Angriffe: Eine vermeidbare Katastrophe (März 2020)
Umfasst Analysen der Angriffskette von tatsächlichen Angriffen.
Ransomware-Antwort - zu bezahlen oder nicht zu bezahlen? (Dezember 2019)
Norsk Hydro reagiert auf Ransomware-Angriffe mit Transparenz (Dezember 2019)
Tipp
Möchten Sie mehr erfahren? Engage mit der Microsoft-Sicherheitscommunity in unserer Tech Community: Microsoft Defender XDR Tech Community.