5.2 Microsoft Sysinternals – Erweiterte Werkzeuge zur Fehleranalyse Microsoft Sysinternals ist eine Sammlung spezialisierter Diagnose-, Analyse- und Verwaltungswerkzeuge. Die Programme ermöglichen einen wesentlich tieferen Einblick in Prozesse, Autostarts, Dateizugriffe, Registryzugriffe, Netzwerkverbindungen, Arbeitsspeicher, Berechtigungen, Active Directory und Systemereignisse als viele integrierte Windows-Werkzeuge. Sysinternals-Werkzeuge können unter anderem helfen bei: nicht nachvollziehbaren Programmabstürzen blockierten Dateien und Verzeichnissen ungewöhnlich hoher CPU-, RAM- oder Datenträgerauslastung fehlgeschlagenen Datei- oder Registryzugriffen unbekannten Autostarteinträgen verdächtigen Prozessen und Netzwerkverbindungen DLL- und Abhängigkeitsproblemen Berechtigungsfehlern Speicherlecks sporadischen Programmabstürzen Active-Directory-Problemen detaillierter Sicherheitsüberwachung Sysinternals-Werkzeuge liefern technische Beobachtungen und Messdaten. Ein auffälliger Eintrag ist noch kein Beweis für Malware, einen Defekt oder die eigentliche Ursache einer Störung. Kennzeichnung der Befehle Kennzeichnung Bedeutung [RO] Nur lesender beziehungsweise beobachtender Einsatz [TEST] Führt einen aktiven Test oder eine Aufzeichnung durch [CHANGE] Verändert Prozesse, Dateien, Konfigurationen oder Systemzustand [PRIV] Erhöhte Berechtigungen können erforderlich sein [RESTART] Kann einen Neustart oder eine Unterbrechung verursachen [REMOTE] Greift auf einen anderen Computer zu [SENS] Ausgabe kann sensible Informationen enthalten [DANGER] Hohes Risiko für Ausfall, Datenverlust oder Sicherheitsprobleme Die Kennzeichnungen sind Hinweise für den administrativen Einsatz. Ob eine Freigabe erforderlich ist, hängt zusätzlich von der jeweiligen Organisation, dem betroffenen System und den geltenden Sicherheitsvorgaben ab. 1. Was ist Microsoft Sysinternals? Die Sysinternals-Werkzeuge wurden ursprünglich von Mark Russinovich und Bryce Cogswell entwickelt. Microsoft übernahm Sysinternals im Jahr 2006 und stellt die Werkzeuge weiterhin bereit. Die Sammlung besteht überwiegend aus kleinen, spezialisierten Programmen. Viele davon müssen nicht klassisch installiert werden und können nach dem Entpacken direkt gestartet werden. Wichtige Werkzeuggruppen Bereich Beispiele Prozesse Process Explorer, ProcDump, PsList, PsKill Systemaktivität Process Monitor, Sysmon, DebugView Autostart Autoruns, Autorunsc Netzwerk TCPView, Tcpvcon, PsPing Arbeitsspeicher RAMMap, VMMap Dateien und Objekte Handle, ListDLLs, Streams, PendMoves Sicherheit und Rechte Sigcheck, AccessChk, AccessEnum, ShareEnum Active Directory AD Explorer, AD Insight, AD Restore Datenträger Disk2vhd, DiskMon, Disk Usage, NTFSInfo Remotewerkzeuge PsExec, PsService, PsInfo, PsLoggedOn Kernelanalyse LiveKd, WinObj Systeminformation Coreinfo, BgInfo, LogonSessions Abgrenzung Sysinternals ist: keine automatische Reparatursuite kein Ersatz für ein Antiviren- oder EDR-System kein Ersatz für ein zentrales Monitoring kein vollständiger Debugger kein Beweiswerkzeug, das aus einer einzelnen Auffälligkeit automatisch die Ursache bestimmt Die Werkzeuge ergänzen Ereignisanzeige, Task-Manager, Ressourcenmonitor, Leistungsüberwachung, PowerShell und spezialisierte Debuggingprogramme. 2. Sysinternals sicher beziehen Sysinternals-Werkzeuge sollten ausschließlich aus vertrauenswürdigen Microsoft-Quellen bezogen werden. Offizielle Möglichkeiten Einzelwerkzeuge über Microsoft Learn herunterladen vollständige Sysinternals Suite herunterladen Sysinternals Suite aus dem Microsoft Store installieren Werkzeuge über Sysinternals Live ausführen Sysinternals Suite Die Suite enthält einen großen Teil der Diagnosewerkzeuge in einem gemeinsamen Archiv. Für bestimmte Plattformen stellt Microsoft unterschiedliche Pakete bereit, darunter x64 und ARM64. Microsoft Store Bei der Store-Version werden grafische Programme im Startmenü eingetragen. Die Befehlszeilenprogramme können über App-Ausführungsaliase aufgerufen werden. Sysinternals Live Ein Werkzeug kann direkt von Sysinternals Live gestartet werden: [TEST][SENS] \\live.sysinternals.com\tools\procexp.exe Beispiel für Process Monitor: [TEST][SENS] \\live.sysinternals.com\tools\procmon.exe Dabei müssen Netzwerkzugriff, Proxy, Firewall, Namensauflösung und die Sicherheitsrichtlinien der Organisation berücksichtigt werden. In kontrollierten Unternehmensumgebungen sollte nicht ungeprüft eine ausführbare Datei direkt aus dem Internet gestartet werden. Besser ist häufig ein freigegebenes, geprüftes und versioniertes internes Werkzeugverzeichnis. 3. Integrität und Signatur prüfen Vor dem Einsatz sollte geprüft werden: stammt die Datei von Microsoft? ist die digitale Signatur gültig? stimmt die erwartete Architektur? wurde die Datei aus einem freigegebenen Speicherort bezogen? ist die Werkzeugversion dokumentiert? wurde die Datei durch die Sicherheitssoftware geprüft? Digitale Signatur mit PowerShell kontrollieren [RO] Get-AuthenticodeSignature ".\procexp.exe" | Select-Object Status, StatusMessage, SignerCertificate Dateihash berechnen [RO] Get-FileHash ".\procexp.exe" -Algorithm SHA256 Der Hash kann zur internen Dokumentation und zum Vergleich identischer Werkzeugstände verwendet werden. Ein Hash beweist allein jedoch nicht, dass eine Datei vertrauenswürdig ist. Sysinternals Sigcheck verwenden [RO] sigcheck.exe -a -h -i ".\procexp.exe" Typische Informationen können sein: Dateiversion Herausgeber digitale Signatur Zertifikatskette Zeitstempel kryptografischer Hash Dateibeschreibung Produktname Eine gültige Signatur bestätigt die signierte Herkunft und Dateiintegrität innerhalb der Signaturprüfung. Sie beweist nicht automatisch, dass jede ausgeführte Funktion im konkreten Einsatz sicher oder erwünscht ist. 4. Allgemeine Einsatzregeln Vor dem Start eines Sysinternals-Werkzeugs sollte feststehen: Welcher Fehler wird untersucht? Welcher Computer ist betroffen? Welcher Benutzerkontext ist betroffen? Wann tritt der Fehler auf? Welches Werkzeug kann die benötigte Beobachtung liefern? Welche Daten können bei der Aufzeichnung entstehen? Ist eine erhöhte Ausführung erforderlich? Wie groß kann die Protokolldatei werden? Wo wird sie geschützt gespeichert? Wann wird die Aufzeichnung beendet? Wie werden sensible Daten redigiert? Welche Änderung muss anschließend zurückgenommen werden? Grundregeln zuerst beobachten, dann verändern Filter vor längeren Aufzeichnungen vorbereiten Zeitpunkt und Reproduktionsschritte dokumentieren keine Prozesse oder Handles auf Verdacht beenden keine unbekannten Autostarts ungeprüft löschen keine Diagnosedateien öffentlich hochladen keine Remoteausführung ohne Freigabe nur den erforderlichen Berechtigungskontext verwenden Werkzeugversion und Befehlszeile dokumentieren nach jeder Änderung die betroffene Funktion erneut prüfen 5. Process Explorer – Prozesse und Abhängigkeiten analysieren Process Explorer zeigt Prozesse hierarchisch an und liefert detaillierte Informationen zu: Prozessname und PID übergeordnetem Prozess Benutzerkonto CPU- und Speicherauslastung Handles geladenen DLLs Speicherabbildern Threads TCP/IP-Aktivität Dateipfad Befehlszeile digitaler Signatur Integritätsstufe Sicherheitskontext Prozessstartzeit Starten [RO][SENS] procexp.exe Für vollständige Informationen über Systemprozesse können erhöhte Rechte erforderlich sein: [RO][PRIV][SENS] procexp.exe Wichtige Funktionen Funktion Verwendung Process Tree Eltern-Kind-Beziehungen von Prozessen erkennen Lower Pane – Handles Geöffnete Dateien, Registryschlüssel und andere Objekte untersuchen Lower Pane – DLLs Geladene DLLs und speicherabgebildete Dateien anzeigen Find Handle or DLL Prozess zu einer Datei, einem Objekt oder einer DLL finden Properties Threads, Netzwerk, Sicherheit, Umgebung und Startparameter untersuchen Verify Image Signatures Signaturen ausführbarer Dateien prüfen Save Prozessübersicht für die Dokumentation speichern Create Dump Speicherabbild eines Prozesses erzeugen Kill Process Tree Prozess und untergeordnete Prozesse beenden Typische Anwendungsfälle Welcher Prozess hält eine Datei geöffnet? Welche Anwendung hat einen Unterprozess gestartet? Unter welchem Konto läuft ein Prozess? Welche DLL wurde aus einem unerwarteten Pfad geladen? Welcher Thread erzeugt hohe CPU-Last? Stimmen Dateiname, Pfad und Herausgeber zusammen? Ist ein Prozess mehrfach vorhanden? Läuft ein Prozess mit erhöhten Rechten? Prozessfarben Process Explorer kann unterschiedliche Prozesstypen farblich kennzeichnen. Die genaue Bedeutung hängt von der konfigurierten Farbauswahl ab und sollte über die Programmeinstellungen kontrolliert werden. Eine Farbe oder ein nicht verifizierter Signaturstatus ist kein automatischer Malware-Nachweis. 6. Blockierte Dateien mit Process Explorer finden Wenn eine Datei nicht gelöscht, verschoben oder ersetzt werden kann, kann ein geöffneter Handle dafür verantwortlich sein. Vorgehensweise Process Explorer starten. Find öffnen. Find Handle or DLL auswählen. eindeutigen Teil des Datei- oder Verzeichnisnamens eingeben. Treffer und zugehörigen Prozess prüfen. Anwendung möglichst regulär schließen. Dateioperation erneut testen. Nicht als erste Maßnahme verwenden Prozess sofort beenden Handle direkt schließen Dienst ungeprüft stoppen Systemprozess beenden Datei mit Gewalt löschen Das direkte Schließen eines Handles kann den Zustand der Anwendung beschädigen, Datenverlust verursachen oder zu einem späteren Absturz führen. Die sichere Lösung besteht normalerweise darin, die verursachende Anwendung oder den zugehörigen Dienst kontrolliert zu beenden. 7. Handle – offene Dateien und Objekte per Befehlszeile Handle zeigt offene Handles von Prozessen an. Damit kann unter anderem ermittelt werden, welcher Prozess eine bestimmte Datei oder ein Verzeichnis verwendet. Nach einem Dateinamen suchen [RO][PRIV][SENS] handle.exe "" Beispiel [RO][PRIV][SENS] handle.exe "datenbank.db" Handles eines bestimmten Prozesses anzeigen [RO][PRIV][SENS] handle.exe -p Ausgabe ohne Banner [RO][PRIV][SENS] handle.exe -nobanner "" Handle schließen [CHANGE][PRIV][DANGER] handle.exe -c -p Das erzwungene Schließen eines Handles kann Daten beschädigen oder einen Prozess destabilisieren. Diese Funktion darf nur verwendet werden, wenn Objekt, Prozess, Abhängigkeiten und Auswirkungen eindeutig bekannt sind. 8. Process Monitor – Datei-, Registry- und Prozessaktivität erfassen Process Monitor, kurz Procmon, zeichnet in Echtzeit unter anderem folgende Aktivitäten auf: Dateisystemzugriffe Registryzugriffe Prozessstarts und Prozessbeendigungen Threadaktivitäten Laden von DLLs und Images Profilierungsereignisse Prozess-, Benutzer- und Sitzungsinformationen zugehörige Aufrufstapel Starten [TEST][PRIV][SENS] procmon.exe Process Monitor beginnt normalerweise unmittelbar mit der Aufzeichnung. Deshalb sollte die Aufzeichnung zunächst angehalten und gezielt vorbereitet werden. Empfohlene Grundreihenfolge Process Monitor starten. Aufzeichnung anhalten. bestehende Ereignisse leeren. passende Filter festlegen. Aufzeichnung starten. Fehler möglichst genau reproduzieren. Aufzeichnung sofort wieder anhalten. relevante Ereignisse untersuchen. Aufzeichnung im nativen PML-Format sichern. sensible Inhalte vor einer Weitergabe prüfen. Typische Filter Feld Bedingung Beispiel Process Name is anwendung.exe PID is konkrete Prozess-ID Path contains Verzeichnis oder Registrypfad Operation is CreateFile Operation is RegOpenKey Result is ACCESS DENIED Result is NAME NOT FOUND User is betroffenes Benutzerkonto Duration greater than auffällig langsame Operationen Process Monitor zeichnet sehr viele normale und erwartete Vorgänge auf. Einzelne Meldungen wie NAME NOT FOUND , PATH NOT FOUND oder ACCESS DENIED sind nicht automatisch Fehlerursachen. 9. Process-Monitor-Ergebnisse richtig interpretieren Häufige Ergebnisse Ergebnis Grundbedeutung SUCCESS Operation wurde erfolgreich abgeschlossen NAME NOT FOUND Angefragter Name wurde nicht gefunden PATH NOT FOUND Ein Bestandteil des Pfades wurde nicht gefunden ACCESS DENIED Zugriff wurde im verwendeten Kontext verweigert SHARING VIOLATION Zugriff kollidiert mit einer bestehenden Freigabe oder geöffneten Datei BUFFER OVERFLOW Puffer war für die erste Abfrage zu klein; kann Teil eines normalen Abfragemusters sein NO MORE FILES Verzeichnisabfrage hat keine weiteren Ergebnisse REPARSE Verarbeitung über einen Reparse Point END OF FILE Dateiende erreicht FILE LOCKED WITH ONLY READERS Sperrzustand der Datei Bewertungsfragen Gehört das Ereignis zum betroffenen Prozess? Liegt es unmittelbar vor dem sichtbaren Fehler? Wird nach einem fehlgeschlagenen Zugriff ein anderer Pfad erfolgreich verwendet? Wiederholt sich das Ereignis ungewöhnlich häufig? Ist der Pfad laut Anwendung tatsächlich erforderlich? Welcher Benutzer führt den Zugriff aus? Welche Berechtigungen gelten für das Objekt? Handelt es sich um eine optionale Suche der Anwendung? Gibt es einen zugehörigen Stack oder Folgefehler? Tritt das Verhalten auf einem funktionierenden Vergleichssystem ebenfalls auf? Wichtiger Grundsatz Viele Programme suchen nacheinander an mehreren Stellen nach Dateien oder Registrywerten. Mehrere fehlgeschlagene Suchvorgänge können deshalb völlig normal sein, wenn anschließend ein erfolgreicher Treffer erfolgt. 10. Process Monitor per Befehlszeile einsetzen Process Monitor unterstützt Befehlszeilenoptionen für reproduzierbare Aufzeichnungen. Lizenzdialog vorab akzeptieren [CHANGE] procmon.exe /AcceptEula Aufzeichnung mit Sicherungsdatei starten [TEST][PRIV][SENS] procmon.exe /AcceptEula /Quiet /BackingFile "C:\Diagnose\trace.pml" Laufende Process-Monitor-Instanz beenden [CHANGE][PRIV] procmon.exe /Terminate Gespeicherte PML-Datei als CSV exportieren [RO][SENS] procmon.exe /OpenLog "C:\Diagnose\trace.pml" /SaveAs "C:\Diagnose\trace.csv" Bootaufzeichnung Process Monitor besitzt eine Boot-Logging-Funktion, mit der Aktivitäten während des Systemstarts erfasst werden können. Diese muss über die Programmoberfläche oder passend geplante Optionen kontrolliert aktiviert und anschließend wieder beendet werden. Bootaufzeichnungen können sehr groß werden und sensible Systeminformationen enthalten. Sie dürfen nicht unbegrenzt aktiviert bleiben. 11. Autoruns – Autostarts vollständig untersuchen Autoruns zeigt deutlich mehr Autostartorte als die einfache Autostartansicht des Task-Managers. Dazu können gehören: Anmeldeautostarts Dienste Treiber geplante Aufgaben Explorer-Erweiterungen Winlogon-Komponenten Boot-Execute-Einträge Codecs AppInit-DLLs Image Hijacks Office-Erweiterungen Winsock-Komponenten bekannte Registry-Autostartorte Startordner verschiedener Benutzer Starten [RO][PRIV][SENS] autoruns.exe Wichtige Funktionen Funktion Zweck Hide Microsoft Entries Microsoft-Einträge ausblenden Hide Windows Entries Windows-Einträge ausblenden Verify Code Signatures digitale Signaturen prüfen Check VirusTotal Hash beziehungsweise Datei über VirusTotal prüfen Jump to Entry Registry- oder Dateisystemeintrag öffnen Jump to Image zugehörige Datei öffnen Process Explorer laufenden Prozess in Process Explorer öffnen Compare aktuellen Zustand mit gespeicherter Ausgabe vergleichen User Autostarts anderer Benutzer auswählen Sicheres Deaktivieren Ein Kontrollkästchen kann deaktiviert werden, um einen Autostart vorübergehend abzuschalten. Das ist in der Regel besser reversibel als das sofortige Löschen des Eintrags. Eintrag deaktivieren → System oder Anwendung kontrolliert testen → Ergebnis dokumentieren → Eintrag bei ausbleibender Wirkung wieder aktivieren Ein unbekannter oder nicht signierter Autostarteintrag ist nicht automatisch schädlich. Vor einer Änderung müssen Pfad, Herausgeber, Signatur, Zweck, Abhängigkeiten und betroffene Anwendung geprüft werden. 12. Autorunsc – Autostarts per Befehlszeile erfassen Autorunsc ist die Befehlszeilenversion von Autoruns und eignet sich für dokumentierbare Bestandsaufnahmen. Grundlegende Ausgabe [RO][PRIV][SENS] autorunsc.exe -a * -c -h -s Dabei können abhängig von der Werkzeugversion und den gewählten Optionen unter anderem Autostartkategorie, Pfad, Signatur und Hash ausgegeben werden. CSV-Datei erzeugen [RO][PRIV][SENS] autorunsc.exe -a * -c -h -s > "C:\Diagnose\autoruns.csv" Nur Microsoft-Einträge ausblenden [RO][PRIV][SENS] autorunsc.exe -a * -m -c -h -s Vor einer produktiven Erfassung prüfen [RO] autorunsc.exe /? Die verfügbaren Parameter können sich mit Werkzeugversionen verändern. Vor automatisierter Verwendung muss die Hilfe der tatsächlich eingesetzten Version geprüft werden. 13. VirusTotal-Integration datenschutzgerecht verwenden Mehrere Sysinternals-Werkzeuge können Hashwerte oder Dateien mit VirusTotal abgleichen. Dabei muss unterschieden werden zwischen: Übermittlung eines Hashwertes Abfrage eines bereits bekannten Ergebnisses Hochladen einer unbekannten Datei automatischer Übermittlung unbekannter Dateien Mögliche Risiken interne Dateinamen werden offengelegt proprietäre Anwendungen werden hochgeladen Konfigurationsdateien enthalten Geschäftsgeheimnisse Dateien enthalten personenbezogene Daten Skripte enthalten Servernamen oder Zugangsdaten Upload verstößt gegen Unternehmensrichtlinien Die Übermittlung einer internen Datei an einen externen Analysedienst darf nicht automatisch erfolgen. Vorher müssen Datenschutz, Geheimhaltung, Eigentumsrechte und Sicherheitsvorgaben geprüft werden. Ein VirusTotal-Ergebnis ist außerdem kein alleiniger Beweis: einzelne Erkennung kann ein Fehlalarm sein keine Erkennung schließt Schadsoftware nicht aus Bewertung kann sich später ändern signierte Dateien können trotzdem missbraucht werden 14. TCPView – Netzwerkverbindungen Prozessen zuordnen TCPView zeigt aktive TCP- und UDP-Endpunkte mit den zugehörigen Prozessen an. Starten [RO][PRIV][SENS] tcpview.exe Typische Informationen Prozessname PID Protokoll lokale Adresse lokaler Port entfernte Adresse Remoteport TCP-Zustand gesendete und empfangene Daten Erstellungszeitpunkt einer Verbindung Typische Anwendungsfälle Welcher Prozess verbindet sich mit einem Server? Welcher Prozess lauscht auf einem Port? Warum existieren unerwartet viele Verbindungen? Welche Remoteadresse verwendet eine Anwendung? Ist der erwartete Dienstport geöffnet? Welche Verbindung wird beim Start einer Anwendung aufgebaut? Befehlszeilenversion [RO][PRIV][SENS] tcpvcon.exe -a -c Vor der Verwendung sollte die lokale Hilfe geprüft werden: [RO] tcpvcon.exe /? Eine Verbindung zu einer unbekannten IP-Adresse ist kein automatischer Sicherheitsvorfall. Content-Delivery-Netzwerke, Cloudplattformen, Telemetrie, Updates, Proxys und gemeinsam genutzte Infrastrukturen können die Zuordnung erschweren. 15. RAMMap – physischen Arbeitsspeicher analysieren RAMMap zeigt, wie Windows den physischen Arbeitsspeicher verwendet. Starten [RO][PRIV][SENS] rammap.exe Wichtige Ansichten Ansicht Inhalt Use Counts Speicher nach Verwendungsart Processes Speicherzuordnung nach Prozessen Priority Summary Speicher nach Prioritätsklassen Physical Pages einzelne physische Speicherseiten Physical Ranges physische Speicherbereiche File Summary im Speicher gehaltene Dateidaten File Details einzelne Dateiseiten Page Table Speicher für Seitentabellen Wichtige Speicherbegriffe Begriff Bedeutung Active aktuell verwendete Speicherseiten Standby zwischengespeicherte Seiten, die bei Bedarf wiederverwendet werden können Modified veränderte Seiten, die vor Wiederverwendung geschrieben werden müssen Free unmittelbar freier Speicher Zeroed gelöschte und zur Wiederverwendung vorbereitete Seiten Driver Locked durch Treiber gesperrte Speicherseiten Metafile Dateisystem-Metadaten im Cache Bewertungsregeln Wenig vollständig freier RAM ist nicht automatisch problematisch. Windows nutzt freien Speicher gezielt als Cache. Ein großer Standby-Bereich kann normal sein. Hohe Commit-Nutzung muss zusammen mit Commit-Limit und Auslagerungsdatei bewertet werden. Ein ungewöhnlich großer nicht ausgelagerter Pool kann auf einen Treiberfehler hindeuten. Ein einzelner Snapshot beweist noch kein Speicherleck. RAMMap enthält Funktionen zum Leeren bestimmter Speicherlisten. Diese verändern den Speicherzustand und können die Leistung vorübergehend verschlechtern. Speicherlisten dürfen nicht routinemäßig geleert werden, nur um eine niedrigere RAM-Anzeige zu erzeugen. Dadurch wird die Ursache eines Speicherproblems nicht behoben. 16. VMMap – virtuellen Speicher eines Prozesses untersuchen VMMap analysiert den virtuellen und physischen Speicher eines einzelnen Prozesses. Starten [RO][PRIV][SENS] vmmap.exe Anschließend wird ein laufender Prozess ausgewählt oder eine Anwendung durch VMMap gestartet. Untersuchte Speicherarten Image Heap Stack Private Data Shareable Mapped File Page Table Managed Heap reservierter Adressraum zugesicherter Speicher Working Set Typische Anwendungsfälle wächst der private Speicher fortlaufend? welcher Heap wächst? besitzt der Prozess ungewöhnlich viele Speicherabbildungen? wird viel Adressraum nur reserviert? wie unterscheiden sich zwei Zustände desselben Prozesses? entsteht der Speicherverbrauch im nativen oder verwalteten Bereich? Sinnvolle Vorgehensweise bei vermutetem Speicherleck Anwendung in einem definierten Ausgangszustand starten. ersten VMMap-Snapshot erfassen. reproduzierbare Aktion mehrfach ausführen. zweiten Snapshot erfassen. Snapshots vergleichen. wachsende Speichertypen identifizieren. Ergebnis mit Prozessmetriken, Dumps und Anwendungsprotokollen abgleichen. Ein wachsender Working Set allein beweist kein Speicherleck. Caches und noch erreichbare, später freigegebene Daten können ebenfalls wachsen. 17. ProcDump – Speicherabbilder bei bestimmten Ereignissen erzeugen ProcDump kann Speicherabbilder eines Prozesses erzeugen, wenn festgelegte Bedingungen eintreten. Mögliche Auslöser sind unter anderem: unbehandelte Ausnahme Prozessabsturz hohe CPU-Auslastung niedrige CPU-Auslastung nicht reagierendes Fenster bestimmter Leistungsindikator manuell angeforderter Dump Prozessstart Hilfe der installierten Version anzeigen [RO] procdump.exe -? Manuelles vollständiges Speicherabbild eines Prozesses [TEST][PRIV][SENS] procdump.exe -ma "C:\Diagnose" Auf Prozessnamen warten und vollständigen Dump bei Ausnahme erzeugen [TEST][PRIV][SENS] procdump.exe -ma -e -w "" "C:\Diagnose" Dump bei nicht reagierendem Fenster [TEST][PRIV][SENS] procdump.exe -ma -h "" "C:\Diagnose" Überwachung beenden Die betreffende ProcDump-Instanz muss kontrolliert beendet werden, wenn die Diagnose abgeschlossen ist. Wichtige Planungsfragen Wie viele Dumps dürfen entstehen? Wie groß kann jeder Dump werden? Ist ausreichend Speicherplatz vorhanden? Tritt der Fehler in einem sensiblen Prozess auf? Wer darf die Dumps lesen? Wie lange werden sie gespeichert? Welcher Debugger wird zur Analyse verwendet? Vollständige Prozessabbilder können Passwörter, Tokens, Schlüssel, Dokumentinhalte, Datenbanksätze und andere Geheimnisse enthalten. Sie müssen wie hochsensible Daten geschützt werden. 18. Sysmon – sicherheitsrelevante Systemereignisse protokollieren System Monitor, kurz Sysmon, ist ein Windows-Systemdienst mit Gerätetreiber. Nach der Installation protokolliert er ausgewählte Systemaktivitäten in das Windows-Ereignisprotokoll. Sysmon kann abhängig von Version und Konfiguration unter anderem erfassen: Prozessstarts Prozessbeendigungen Netzwerkverbindungen Erstellung von Dateien Änderung von Dateierstellungszeiten Laden von Treibern Laden von Images und DLLs Zugriffe auf Prozesse Registryereignisse Named Pipes DNS-Abfragen WMI-Aktivitäten Zwischenablageänderungen Dateilöschungen ausführbare Dateien in bestimmten Ereignissen Änderungen an Sysmon selbst Wichtiger Speicherort Anwendungs- und Dienstprotokolle → Microsoft → Windows → Sysmon → Operational Sysmon mit Konfiguration installieren [CHANGE][PRIV] sysmon.exe -accepteula -i "C:\Konfiguration\sysmon-config.xml" Konfiguration aktualisieren [CHANGE][PRIV] sysmon.exe -c "C:\Konfiguration\sysmon-config.xml" Aktuelle Konfiguration anzeigen [RO][PRIV][SENS] sysmon.exe -c Sysmon deinstallieren [CHANGE][PRIV] sysmon.exe -u Sysmon besitzt keine automatische Alarmierungs- oder Bewertungslogik. Die Ereignisse müssen durch geeignete Regeln, ein SIEM, ein EDR-System oder eine kontrollierte manuelle Analyse ausgewertet werden. 19. Sysmon-Konfiguration fachgerecht planen Eine Sysmon-Konfiguration bestimmt, welche Ereignisse einbezogen oder ausgeschlossen werden. Ziele einer guten Konfiguration relevante Sicherheitsereignisse erfassen unnötige Ereignismengen begrenzen wichtige Systemprogramme nicht pauschal ausblenden Regeln dokumentieren Konfigurationsänderungen versionieren Speicherbedarf und Ereignisrate überwachen Auswertung durch SIEM oder Monitoring berücksichtigen Risiken einer ungeprüften Konfiguration zu viele Ereignisse überlasten Sammlung und Auswertung zu breite Ausschlüsse erzeugen blinde Flecken sensible Befehlszeilen werden zentral gespeichert DNS-Abfragen offenbaren Benutzeraktivitäten Dateipfade enthalten personenbezogene Daten Regeländerungen beeinflussen Erkennungsmechanismen unterschiedliche Systeme benötigen unterschiedliche Filter Beispiel einer minimalen XML-Grundstruktur Die erforderliche Schemaversion und die unterstützten Ereignisse müssen mit der tatsächlich verwendeten Sysmon-Version geprüft werden. Konfigurationsschema anzeigen [RO] sysmon.exe -s Eine fremde Sysmon-Konfiguration sollte nicht ungeprüft in einer produktiven Umgebung übernommen werden. Sie muss an Systeme, Anwendungen, Datenschutz, Ereignissammlung und Erkennungsziele angepasst werden. 20. Sigcheck – Signaturen, Versionen und Hashwerte untersuchen Sigcheck zeigt Datei- und Signaturinformationen an. Einzelne Datei untersuchen [RO][SENS] sigcheck.exe -a -h -i "" Verzeichnis rekursiv untersuchen [RO][SENS] sigcheck.exe -s -a -h "" Nicht signierte Dateien suchen [RO][SENS] sigcheck.exe -u -e "" CSV-Ausgabe [RO][SENS] sigcheck.exe -c -h "" Typische Prüfungen Herausgeber stimmt mit erwarteter Software überein Signaturstatus ist gültig Dateipfad ist plausibel Produkt- und Dateiversion passen zusammen Hash stimmt mit einer bekannten Referenz überein Datei wurde nicht aus einem temporären oder Benutzerverzeichnis nachgeladen Auch legitime Programme können unsignierte Komponenten besitzen. Umgekehrt kann eine gültig signierte Datei für unerwünschte Zwecke missbraucht oder mit einem kompromittierten Zertifikat signiert worden sein. 21. ListDLLs – geladene DLLs anzeigen ListDLLs zeigt geladene DLLs und deren Pfade an. Alle geladenen DLLs anzeigen [RO][PRIV][SENS] listdlls.exe DLLs eines bestimmten Prozesses [RO][PRIV][SENS] listdlls.exe Alternativ kann nach einem Prozessnamen gefiltert werden: [RO][PRIV][SENS] listdlls.exe "" Nach einer bestimmten DLL suchen [RO][PRIV][SENS] listdlls.exe -d "" Typische Auffälligkeiten DLL aus einem unerwarteten Benutzerverzeichnis mehrere Versionen derselben Komponente DLL aus einem temporären Verzeichnis fehlende oder ungültige Signatur Prozess lädt nicht die erwartete Bibliothek unerwartete Drittanbieter-Erweiterung Der Dateiname allein ist nicht ausreichend. Pfad, Version, Signatur, Hash, Ladegrund und Anwendungskontext müssen gemeinsam bewertet werden. 22. Strings – lesbare Zeichenfolgen in Dateien suchen Strings extrahiert lesbare ANSI- und Unicode-Zeichenfolgen aus Binärdateien. Datei untersuchen [RO][SENS] strings.exe "" Mindestlänge festlegen [RO][SENS] strings.exe -n 8 "" Ausgabe nach einem Begriff filtern [RO][SENS] strings.exe -n 8 "" | findstr /i "" Mögliche Anwendungsfälle eingebettete URLs finden Fehlermeldungen erkennen Dateipfade finden Produkt- oder Debuginformationen erkennen verdächtige Befehlszeilen entdecken Hinweise auf eingebettete Konfigurationen erhalten Einschränkungen komprimierte oder verschlüsselte Inhalte werden nicht automatisch verständlich gefundene Zeichenfolge muss nicht ausgeführt oder verwendet werden zufällige Bytefolgen können wie Text aussehen Ausgabe kann Zugangsdaten oder andere Geheimnisse enthalten Strings ist ein Hinweiswerkzeug und kein vollständiges Verfahren zur Malwareanalyse oder zum Reverse Engineering. 23. Streams – alternative NTFS-Datenströme untersuchen NTFS-Dateien können neben dem normalen Dateiinhalt alternative Datenströme besitzen. Windows verwendet solche Datenströme unter anderem für Herkunftsinformationen heruntergeladener Dateien. Datenströme anzeigen [RO][SENS] streams.exe "" Verzeichnis rekursiv untersuchen [RO][SENS] streams.exe -s "" Alternative Datenströme löschen [CHANGE][DANGER] streams.exe -d "" Das pauschale Löschen alternativer Datenströme kann Sicherheitskennzeichnungen wie Herkunftsinformationen entfernen und dadurch Schutzfunktionen beeinflussen. Vorher müssen Inhalt, Zweck und Auswirkungen geprüft werden. PowerShell kann Datenströme ebenfalls anzeigen: [RO][SENS] Get-Item "" -Stream * 24. AccessChk – effektive Zugriffsrechte untersuchen AccessChk zeigt Zugriffsrechte auf verschiedene Windows-Objekte an. Dazu gehören unter anderem: Dateien Verzeichnisse Registryschlüssel Dienste Prozesse Kernelobjekte Freigaben benannte Pipes Hilfe anzeigen [RO] accesschk.exe /? Verzeichnisrechte untersuchen [RO][PRIV][SENS] accesschk.exe -d "" Rechte eines bestimmten Kontos prüfen [RO][PRIV][SENS] accesschk.exe -d "" "" Dienstrechte untersuchen [RO][PRIV][SENS] accesschk.exe -c "" Typische Anwendungsfälle besitzt ein Benutzer tatsächlich Schreibzugriff? darf eine Gruppe einen Dienst konfigurieren? existieren übermäßig weitreichende Rechte? unterscheidet sich der Benutzerkontext vom Administratorkontext? ist ein sensibles Verzeichnis für normale Benutzer beschreibbar? AccessChk-Ausgaben müssen zusammen mit Vererbung, Gruppenmitgliedschaften, Integritätsstufe, Privilegien, Freigaberechten und dem tatsächlichen Benutzerkontext bewertet werden. 25. AccessEnum und ShareEnum AccessEnum AccessEnum stellt Berechtigungen für Dateien, Verzeichnisse und Registrybereiche übersichtlich dar. Es kann helfen, Abweichungen innerhalb größerer Strukturen zu finden. [RO][PRIV][SENS] accessenum.exe Typische Verwendung: Verzeichnis oder Registrybereich auswählen Berechtigungen erfassen auffällige Abweichungen untersuchen Zustand speichern späteren Zustand vergleichen ShareEnum ShareEnum untersucht SMB-Freigaben und deren Sicherheitseinstellungen innerhalb erreichbarer Netzwerkbereiche. [RO][PRIV][REMOTE][SENS] shareenum.exe Zu prüfen sind unter anderem unerwartete Freigaben zu breite Freigabeberechtigungen administrative Freigaben erreichbare Systeme Kombination aus Freigabe- und NTFS-Rechten nicht mehr benötigte Freigaben ShareEnum darf nur in ausdrücklich freigegebenen Netzwerkbereichen verwendet werden. Eine technische Erreichbarkeit ist keine Berechtigung zum Scannen. 26. PsTools – lokale und entfernte Administration PsTools ist eine Sammlung von Befehlszeilenwerkzeugen für lokale und entfernte Windows-Systeme. Wichtige Werkzeuge Werkzeug Hauptfunktion PsExec Prozess lokal oder remote starten PsInfo Systeminformationen abrufen PsList Prozesse und Threads anzeigen PsKill Prozesse beenden PsService Dienste anzeigen oder steuern PsLoggedOn angemeldete Benutzer untersuchen PsLogList Ereignisprotokolle ausgeben PsFile remote geöffnete Dateien anzeigen PsPing Netzwerklatenz und Durchsatz testen PsShutdown Computer herunterfahren oder neu starten PsSuspend Prozesse anhalten oder fortsetzen PsGetSid SID eines Computers oder Kontos anzeigen Systeminformationen lokal abrufen [RO][SENS] psinfo.exe Systeminformationen remote abrufen [RO][REMOTE][SENS] psinfo.exe \\ Prozesse remote anzeigen [RO][REMOTE][SENS] pslist.exe \\ Angemeldete Benutzer untersuchen [RO][REMOTE][SENS] psloggedon.exe \\ PsTools können administrative Remoteaktionen ausführen. Authentifizierung, Firewall, administrative Freigaben, Sicherheitsrichtlinien, Protokollierung und Auswirkungen auf das Zielsystem müssen vorher geklärt werden. 27. PsExec sicher einsetzen PsExec kann Prozesse lokal oder auf entfernten Windows-Systemen starten. Remote-Befehlszeile starten [CHANGE][PRIV][REMOTE][SENS] psexec.exe \\ cmd.exe Befehl remote ausführen [CHANGE][PRIV][REMOTE][SENS] psexec.exe \\ ipconfig /all Prozess als lokales Systemkonto starten [CHANGE][PRIV][DANGER] psexec.exe -s -i cmd.exe Der letzte Befehl erzeugt einen besonders privilegierten Kontext und darf nur für klar begründete administrative Diagnosen verwendet werden. Sicherheitsregeln keine Passwörter offen in der Befehlszeile übergeben nur eindeutig bestimmten Zielcomputer verwenden aktiven Benutzer und Auswirkungen prüfen keine interaktive Sitzung unbeaufsichtigt lassen erzeugte Dienste und Prozesse kontrollieren Remotezugriff protokollieren keine dauerhafte Umgehung regulärer Verwaltungswege Befehle zunächst lokal oder in einer Testumgebung prüfen Anmeldeinformationen in einer Befehlszeile können in Prozesslisten, Protokollen, Shellverläufen oder Diagnoseaufzeichnungen sichtbar werden. 28. PsPing – Netzwerkverbindungen und Leistung testen PsPing erweitert einfache Ping-Tests um TCP-Verbindungs-, Latenz- und Durchsatzmessungen. ICMP-Test [TEST][SENS] psping.exe TCP-Port testen [TEST][SENS] psping.exe : Beispiel: [TEST][SENS] psping.exe server.example:443 Längere Messung [TEST][SENS] psping.exe -n 20 server.example:443 Für Bandbreitenmessungen ist eine passende PsPing-Instanz als Empfänger erforderlich. Die genauen Parameter müssen anhand der Hilfe der eingesetzten Version gewählt werden: [RO] psping.exe /? Bewertungsregeln TCP-Erreichbarkeit bestätigt nicht die korrekte Anwendung. Durchsatztests erzeugen zusätzliche Netzlast. Messergebnisse hängen von Gegenstelle, Route und Systemlast ab. kurze Tests können sporadische Störungen übersehen. Sicherheitssoftware kann Testverbindungen blockieren. Tests gegen fremde Systeme benötigen eine Freigabe. 29. AD Explorer – Active Directory untersuchen AD Explorer ist ein grafischer Viewer und Editor für Active Directory. Das Werkzeug kann: AD-Objekte durchsuchen Attribute anzeigen Objekteigenschaften untersuchen Suchabfragen speichern Snapshots einer AD-Datenbank erstellen zwei Snapshots vergleichen zugehörige Sicherheitsinformationen anzeigen Starten [RO][PRIV][REMOTE][SENS] adexplorer.exe Typische Anwendungsfälle Attribut eines Benutzers oder Computers prüfen Gruppenmitgliedschaften nachvollziehen Distinguished Name kontrollieren Replikations- oder Änderungsstände vergleichen Objekte anhand bestimmter Attribute suchen Zustand vor und nach einer administrativen Änderung vergleichen Risiken AD Explorer kann nicht nur lesen, sondern bei ausreichenden Rechten auch Objekte verändern. Ein versehentliches Ändern oder Löschen kann Domänendienste und Anwendungen beeinträchtigen. Für reine Diagnosezwecke sollte nach Möglichkeit ein Konto mit nur den notwendigen Leserechten verwendet werden. Snapshots können enthalten: Benutzernamen Gruppenstrukturen Computernamen E-Mail-Adressen organisatorische Strukturen sicherheitsrelevante Attribute interne Server- und Domäneninformationen Sie müssen entsprechend geschützt werden. 30. AD Insight und AD Restore AD Insight AD Insight überwacht LDAP-Clientaufrufe eines Prozesses und kann helfen, Active-Directory-Kommunikation einer Anwendung zu untersuchen. Typische Fragen: Welche LDAP-Abfrage führt die Anwendung aus? Welcher Domänencontroller wird angesprochen? Welche Attribute werden angefordert? Welche LDAP-Fehler treten auf? Wiederholt eine Anwendung unnötig viele Abfragen? [TEST][PRIV][SENS] adinsight.exe Die Aufzeichnung kann sehr viele interne Verzeichnisinformationen enthalten. AD Restore AD Restore kann gelöschte Active-Directory-Objekte untersuchen und in unterstützten Fällen wiederherstellen. [RO][PRIV][SENS] adrestore.exe Eine tatsächliche Wiederherstellung verändert Active Directory: [CHANGE][PRIV][DANGER] AD Restore darf nicht ohne Kenntnis von AD-Papierkorb, Tombstone-Zustand, Replikation, Objektabhängigkeiten, Wiederherstellungsziel und organisatorischer Freigabe eingesetzt werden. 31. Coreinfo – CPU- und Virtualisierungsfunktionen prüfen Coreinfo zeigt die Zuordnung logischer Prozessoren sowie unterstützte Prozessor- und Virtualisierungsfunktionen an. Starten [RO] coreinfo.exe Virtualisierungsbezogene Informationen [RO] coreinfo.exe -v Typische Anwendungsfälle unterstützt die CPU benötigte Virtualisierungsfunktionen? sind Funktionen durch Firmware oder Hypervisor beeinflusst? wie sind logische Prozessoren, Kerne und NUMA-Knoten zugeordnet? stehen benötigte Befehlssatzerweiterungen zur Verfügung? unterscheidet sich ein System von einem funktionierenden Vergleichssystem? Die Anzeige einer CPU-Funktion beweist nicht automatisch, dass sie von Firmware, Betriebssystem, Hypervisor und Anwendung vollständig nutzbar ist. 32. BgInfo – Systeminformationen auf dem Desktop anzeigen BgInfo kann technische Systeminformationen in den Desktophintergrund einblenden. Mögliche Angaben: Computername IP-Adresse Betriebssystemversion Domäne Benutzer letzter Startzeitpunkt Prozessor Arbeitsspeicher freier Speicherplatz benutzerdefinierte Werte Starten [RO][SENS] bginfo.exe BgInfo eignet sich beispielsweise für: Schulungs- und Testsysteme Serverkonsolen virtuelle Maschinen schnelle Identifikation eines Zielsystems kontrollierte Supportumgebungen Datenschutz beachten Auf gemeinsam betrachteten Desktops dürfen keine unnötigen sensiblen Angaben angezeigt werden. Dazu gehören beispielsweise: öffentliche IP-Adressen interne Domänenstrukturen personenbezogene Benutzerdaten geheime Systemkennungen vertrauliche Inventarnummern BgInfo ist eine Anzeigehilfe und kein Werkzeug zur laufenden Zustandsüberwachung. 33. Disk2vhd – Datenträgerabbild als virtuelle Festplatte Disk2vhd erstellt virtuelle Festplattendateien aus Volumes eines laufenden Windows-Systems. Dafür kann der Volumeschattenkopie-Dienst verwendet werden, um einen konsistenteren Zeitpunkt abzubilden. Starten [TEST][PRIV][SENS] disk2vhd.exe Mögliche Anwendungsfälle Testkopie eines Systems erstellen System für eine kontrollierte Analyse virtualisieren physisches System in eine virtuelle Testumgebung überführen Zustand eines Systems vor umfangreicher Analyse sichern Wichtige Grenzen eine VHD- oder VHDX-Datei ist nicht automatisch ein vollständiges Backupkonzept laufende Anwendungen können zusätzliche Konsistenzanforderungen besitzen Datenbanken benötigen möglicherweise anwendungsspezifische Sicherung verschlüsselte Volumes müssen gesondert berücksichtigt werden Aktivierung und Lizenzierung können sich in einer VM verändern virtuelle Kopie darf nicht unkontrolliert parallel im produktiven Netzwerk starten gespeicherte Anmeldeinformationen bleiben möglicherweise enthalten die Datei kann nahezu alle Daten des Quellsystems enthalten Eine virtualisierte Kopie eines Produktivsystems muss isoliert gestartet werden, damit keine doppelten Computerkonten, IP-Adressen, Dienste oder automatischen Aufgaben das Produktivnetz beeinflussen. 34. LiveKd – laufenden Kernel mit Debugger untersuchen LiveKd ermöglicht die Untersuchung eines laufenden Windows-Systems mit Microsoft-Kerneldebuggern, ohne die klassische Remote-Debuggingverbindung zu einem zweiten Computer aufzubauen. Starten [TEST][PRIV][SENS] livekd.exe Je nach Konfiguration wird ein kompatibler Microsoft-Debugger benötigt. Mögliche Anwendungsfälle Kernelstrukturen untersuchen Treiberzustände betrachten Kernelstacks analysieren Speicher- und Objektinformationen prüfen Livezustand mit Debuggerbefehlen untersuchen Grenzen das System verändert sich während der Untersuchung weiter Daten können zwischen Abfragen inkonsistent werden falsche Interpretation von Kernelstrukturen ist möglich Symbole müssen zur Systemversion passen Debuggerzugriff kann hochsensible Informationen offenlegen LiveKd ist ein spezialisiertes Werkzeug für fortgeschrittene Windows- und Treiberanalyse. Es sollte nicht ohne Debuggingkenntnisse auf produktiven Systemen eingesetzt werden. 35. WinObj – Windows-Objektmanager untersuchen WinObj zeigt den Namensraum des Windows-Objektmanagers. Darin können unter anderem sichtbar sein: Geräteobjekte symbolische Links Sessions Treiberobjekte Named Pipes BaseNamedObjects Dateisystemobjekte Kernelobjekte Starten [RO][PRIV][SENS] winobj.exe Typische Anwendungsfälle symbolische Objektverknüpfungen untersuchen Gerätedateien und Treiberobjekte nachvollziehen benannte Synchronisationsobjekte finden Unterschiede zwischen Sitzungen erkennen interne Objektpfade einer Anwendung prüfen WinObj zeigt interne Windows-Objekte. Die bloße Existenz eines unbekannten Objekts ist kein Beweis für einen Fehler oder eine Kompromittierung. 36. PendMoves und MoveFile – Dateioperationen beim Neustart Wenn Dateien während des laufenden Betriebs nicht ersetzt oder gelöscht werden können, kann Windows Operationen für den nächsten Systemstart vormerken. Ausstehende Operationen anzeigen [RO][PRIV][SENS] pendmoves.exe Datei beim nächsten Neustart verschieben [CHANGE][PRIV][RESTART] movefile.exe "" "" Datei beim nächsten Neustart löschen [CHANGE][PRIV][RESTART][DANGER] movefile.exe "" "" Risiken falsche Systemdatei wird entfernt Anwendung startet nach Neustart nicht mehr Treiber oder Dienst fällt aus Abhängigkeiten werden erst nach Neustart sichtbar Rücknahme ist nach dem Start möglicherweise schwierig Vor dem Vormerken einer Löschung müssen Datei, Hersteller, Signatur, Anwendung, Wiederherstellungsweg und Auswirkungen eindeutig geklärt sein. 37. SDelete – sicher überschreiben SDelete kann Dateien oder freien Speicherplatz überschreiben, um die Wiederherstellung gelöschter Daten zu erschweren. Hilfe anzeigen [RO] sdelete.exe /? Datei sicher löschen [CHANGE][PRIV][DANGER] sdelete.exe "" Freien Speicherplatz bearbeiten [CHANGE][PRIV][DANGER] sdelete.exe -c Wichtige Einschränkungen SSDs besitzen Wear-Leveling und interne Speicherverwaltung Speichercontroller können Daten umorganisieren virtuelle Datenträger besitzen zusätzliche Speicherschichten Snapshots und Backups bleiben unberührt Cloud- und SAN-Speicher abstrahieren die physische Ablage falscher Zielpfad kann nicht einfach rückgängig gemacht werden SDelete ist keine allgemeine Fehlerbehebungsmaßnahme. Vor dem Einsatz müssen Datenträgertyp, Sicherungen, Snapshots, Aufbewahrungspflichten und Löschkonzept geprüft werden. 38. NotMyFault nur in isolierten Testsystemen verwenden NotMyFault kann absichtlich: Systemabstürze auslösen Systeme aufhängen Kernel-Speicherlecks erzeugen Treiberfehler simulieren hohe Last erzeugen Das Werkzeug dient beispielsweise zum Testen von: Speicherabbildkonfiguration Überwachungssystemen Wiederanlaufverhalten Absturzanalysen Laborübungen [DANGER][PRIV][RESTART] notmyfault.exe NotMyFault darf niemals auf einem produktiven System, einem gemeinsam genutzten Schulungssystem oder einem nicht vollständig isolierten Testsystem ausprobiert werden. Es verursacht absichtlich schwerwiegende Störungen. Vor einem Test müssen mindestens vorhanden sein: isolierte virtuelle Maschine aktueller Snapshot oder definierter Wiederherstellungsweg keine produktiven Daten kein Zugang zum Produktivnetz dokumentiertes Testszenario Kontrolle über Neustart und Speicherabbilder ausreichend Speicherplatz ausdrückliche Freigabe 39. Geeignetes Werkzeug nach Fehlerbild auswählen Fehlerbild Geeignete Werkzeuge Datei lässt sich nicht löschen Process Explorer, Handle Anwendung startet nicht Process Monitor, Autoruns, Ereignisanzeige Anwendung findet Datei nicht Process Monitor Zugriff verweigert Process Monitor, AccessChk, AccessEnum hohe CPU-Auslastung Process Explorer, ProcDump, Leistungsüberwachung wachsender RAM-Verbrauch Process Explorer, VMMap, RAMMap, ProcDump unbekannter Autostart Autoruns, Sigcheck, Process Explorer unbekannte Netzwerkverbindung TCPView, Process Explorer, Sigcheck sporadischer Absturz ProcDump, Ereignisanzeige, WinDbg unbekannte DLL Process Explorer, ListDLLs, Sigcheck verdächtige Datei Sigcheck, Strings, Streams Active-Directory-Abfrage fehlerhaft AD Explorer, AD Insight Remoteprozess untersuchen PsList, PsInfo, PsLoggedOn TCP-Latenz oder Durchsatz PsPing Kernel- oder Treiberproblem LiveKd, WinDbg, Process Monitor Startproblem durch Zusatzsoftware Autoruns, Process Monitor Boot Logging Speicheraufteilung unklar RAMMap Prozessspeicher im Detail VMMap ausstehende Dateilöschung PendMoves CPU-Funktion oder Virtualisierung Coreinfo Systemkopie für Laboranalyse Disk2vhd 40. Typischer Ablauf einer Sysinternals-Analyse Originale Fehlermeldung erfassen. Fehlerzeitpunkt dokumentieren. betroffenen Computer und Benutzer bestätigen. Reproduzierbarkeit prüfen. integrierte Windows-Protokolle untersuchen. kleinstes passende Sysinternals-Werkzeug auswählen. Werkzeugquelle, Version und Signatur kontrollieren. Berechtigungsbedarf prüfen. mögliche sensible Daten berücksichtigen. Aufzeichnung vorbereiten. Filter möglichst eng festlegen. Ausgangszustand dokumentieren. Aufzeichnung starten. Fehler einmal reproduzieren. Aufzeichnung unmittelbar beenden. Ereignisse zeitlich eingrenzen. Prozess, Pfad, Benutzer, Operation und Ergebnis vergleichen. normale Such- und Fehlversuche von relevanten Fehlern unterscheiden. Befund mit Ereignisanzeige und Anwendungsprotokollen abgleichen. Hypothese formulieren. möglichst kleinen und reversiblen Test planen. Sicherung und Rückfallplan prüfen. Änderung durchführen. Funktion erneut testen. Diagnosewerkzeuge und temporäre Überwachung beenden. Daten geschützt speichern oder ordnungsgemäß löschen. Ursache, Maßnahme und Ergebnis dokumentieren. 41. Beispiel – Anwendung meldet „Datei nicht gefunden“ Ausgangslage Eine Anwendung meldet beim Start, eine Konfigurationsdatei sei nicht vorhanden. Die Datei ist im erwarteten Verzeichnis sichtbar. Vorgehensweise tatsächlichen Anwendungsprozess bestimmen. Process Monitor starten. Aufzeichnung anhalten und leeren. Filter auf den Prozessnamen setzen. optional nach einem Teil des Dateinamens filtern. Aufzeichnung starten. Fehler reproduzieren. Aufzeichnung beenden. Operationen wie CreateFile untersuchen. tatsächlich abgefragten Pfad prüfen. Benutzerkontext kontrollieren. Ergebnisse vor und nach dem Fehler vergleichen. Mögliche Befunde Anwendung sucht in einem anderen Verzeichnis. Umgebungsvariable führt zu einem falschen Pfad. Dateiname oder Erweiterung weicht ab. Zugriff wird verweigert und als „nicht gefunden“ dargestellt. Anwendung läuft unter einem Dienstkonto. Datei wird zuerst gefunden, aber eine abhängige Datei fehlt. Registrywert enthält einen veralteten Pfad. 32-Bit- und 64-Bit-Dateisystemumleitung beeinflusst den Zugriff. Geeignete Ergänzungen Process Explorer für Benutzer und Befehlszeile AccessChk für Berechtigungen Sigcheck für die Anwendungsdatei Ereignisanzeige für Folgefehler 42. Beispiel – Anwendung verbraucht immer mehr Arbeitsspeicher Vorgehensweise Ausgangswert im Task-Manager oder mit PowerShell erfassen. Process Explorer zur Beobachtung verwenden. Private Bytes, Working Set und Commit unterscheiden. VMMap-Snapshot im Ausgangszustand speichern. reproduzierbare Benutzeraktion mehrfach ausführen. zweiten VMMap-Snapshot erstellen. wachsende Speicherart bestimmen. bei Bedarf ProcDump kontrolliert konfigurieren. Speicherabbild mit geeignetem Debugger untersuchen. Anwendungsversion und bekannte Fehler des Herstellers prüfen. Nicht ausreichend als Beweis RAM-Anzeige steigt einmalig Working Set sinkt nicht sofort freier Speicher wird kleiner RAMMap zeigt großen Standby-Cache Prozess besitzt viele Speicherabbildungen Stärkerer Hinweis auf ein Leck Ein bestimmter Speicherbereich wächst bei wiederholbarer identischer Aktion fortlaufend, wird nicht wieder freigegeben und korreliert mit der Störung. 43. Beispiel – langsamer Anwendungsstart Geeignete Werkzeuge Process Monitor Process Explorer Autoruns Ereignisanzeige Leistungsüberwachung ProcDump bei Hängern Vorgehensweise Startzeit reproduzierbar messen. Process Monitor vorbereiten. nur den Startvorgang aufzeichnen. Ereignisse nach Dauer untersuchen. wiederholte Datei- oder Registryzugriffe identifizieren. Netzwerkpfade und Namensauflösung beachten. untergeordnete Prozesse im Process Tree prüfen. Signaturen und Pfade geladener Komponenten kontrollieren. Ergebnis mit einem funktionierenden System vergleichen. Mögliche Ursachen nicht erreichbarer Netzwerkpfad langsame DNS-Auflösung wiederholte Zertifikatsprüfung blockierende Sicherheitssoftware fehlende Datei mit wiederholten Suchversuchen langsame Benutzerprofilkomponente fehlerhafte Shell-Erweiterung veraltete Autostartkomponente stark ausgelasteter Datenträger Drittanbieter-DLL nicht erreichbarer Lizenzserver 44. Gefährliche Fehlinterpretationen vermeiden Beobachtung Nicht automatisch bewiesen Prozess ist nicht signiert Prozess ist Schadsoftware VirusTotal zeigt einen Treffer Datei ist eindeutig schädlich VirusTotal zeigt keinen Treffer Datei ist sicher Process Monitor zeigt ACCESS DENIED Dieser Zugriff verursacht den Fehler Process Monitor zeigt NAME NOT FOUND Die Datei fehlt fehlerhaft hohe Zahl offener Handles Handle-Leck viele TCP-Verbindungen Angriff oder Schadsoftware unbekannte Remote-IP unberechtigter Datenverkehr hoher Standby-Speicher Arbeitsspeichermangel Prozess besitzt hohen Working Set Speicherleck DLL liegt im Benutzerprofil DLL ist bösartig Autostarteintrag ist unbekannt Eintrag darf gelöscht werden Sysmon erzeugt kein Ereignis Aktivität fand nicht statt Prozess läuft als SYSTEM Prozess ist legitim Datei besitzt Microsoft im Namen Datei stammt von Microsoft 45. Diagnosedaten sicher speichern und weitergeben Sysinternals-Ausgaben können enthalten: Benutzernamen Computer- und Domänennamen IP-Adressen Dateipfade Befehlszeilen Prozessumgebungen Registrywerte geöffnete Dokumente Netzwerkziele Sicherheitskennungen Anmeldesitzungen E-Mail-Adressen Tokens und Zugangsdaten Datei- und Speicherinhalte Active-Directory-Strukturen Vor der Weitergabe Empfänger und Zweck bestimmen. erforderlichen Datenumfang begrenzen. Datei auf Geheimnisse prüfen. personenbezogene Daten redigieren. verschlüsselten Übertragungsweg verwenden. Zugriffsrechte beschränken. Aufbewahrungsdauer festlegen. Löschung dokumentieren. öffentliche Uploadplattformen vermeiden. Speicherabbilder besonders schützen. Besonders sensible Dateitypen Dateityp Risiko PML-Aufzeichnung Pfade, Registry, Prozesse, Benutzer und Aktivitäten Prozessdump vollständige Speicherinhalte des Prozesses Kernel-Dump umfangreiche System- und Speicherinformationen AD-Explorer-Snapshot Verzeichnisstruktur und Objektattribute Autoruns-Export Softwarebestand, Pfade und Autostarts TCPView-Export Netzwerkziele und Prozesszuordnung Sysmon-Protokoll Befehlszeilen, Hashwerte, DNS- und Netzwerkaktivität 46. Schnelle Werkzeugübersicht Aufgabe Werkzeug Prozesshierarchie anzeigen Process Explorer offene Datei finden Process Explorer, Handle geladene DLLs prüfen Process Explorer, ListDLLs Datei- und Registryzugriffe verfolgen Process Monitor Bootaktivität aufzeichnen Process Monitor Autostarts untersuchen Autoruns Autostarts exportieren Autorunsc Netzwerkverbindungen zuordnen TCPView physische RAM-Nutzung analysieren RAMMap Prozessspeicher analysieren VMMap Prozessdump erstellen ProcDump dauerhafte Sicherheitsereignisse erfassen Sysmon Signatur und Hash prüfen Sigcheck lesbare Binärdateiinhalte finden Strings alternative NTFS-Datenströme anzeigen Streams Berechtigungen untersuchen AccessChk Berechtigungsabweichungen suchen AccessEnum Freigaben untersuchen ShareEnum Remoteprozesse starten PsExec Remoteprozesse anzeigen PsList Systeminformationen remote abrufen PsInfo angemeldete Benutzer prüfen PsLoggedOn Netzwerklatenz testen PsPing Active Directory durchsuchen AD Explorer LDAP-Aufrufe verfolgen AD Insight gelöschte AD-Objekte untersuchen AD Restore CPU-Funktionen anzeigen Coreinfo Systemdaten auf Desktop anzeigen BgInfo virtuelle Systemkopie erstellen Disk2vhd laufenden Kernel untersuchen LiveKd Objektmanager anzeigen WinObj ausstehende Dateioperationen anzeigen PendMoves Dateioperation für Neustart planen MoveFile Daten sicher überschreiben SDelete Absturz absichtlich erzeugen NotMyFault – nur isoliertes Labor 47. Dokumentationsvorlage Ticket: Datum und Uhrzeit: Bearbeiter: Computername: Windows-Version: Build: Architektur: Benutzerkontext: Betroffener Prozess: PID: Prozesspfad: Befehlszeile: Prozessherausgeber: Signaturstatus: Originale Fehlermeldung: Fehlerzeitpunkt: Reproduzierbar: Reproduktionsschritte: Letzte funktionierende Nutzung: Letzte Änderung: Verwendetes Sysinternals-Werkzeug: Werkzeugversion: Bezugsquelle: Hash des Werkzeugs: Erhöht ausgeführt: Startzeit der Aufzeichnung: Endzeit der Aufzeichnung: Verwendete Filter: Verwendete Befehlszeile: Speicherort der Diagnosedaten: Relevanter Prozess: Übergeordneter Prozess: Benutzer: Operation: Objekt oder Pfad: Ergebnis: Zeitlicher Zusammenhang: Vergleichssystem geprüft: Normales Verhalten ausgeschlossen: Autostarteintrag: Signatur: Hash: VirusTotal verwendet: Datei hochgeladen: Freigabe für externen Dienst vorhanden: Lokale Adresse: Lokaler Port: Remoteadresse: Remoteport: Verbindungsstatus: Zugehöriger Prozess: RAM-Ausgangswert: RAM-Endwert: Working Set: Private Bytes: Commit: Wachsende Speicherart: Dump erzeugt: Dump-Typ: Dump-Größe: Dump geschützt gespeichert: Sysmon-Konfiguration: Sysmon-Ereignis-ID: Ereignisquelle: SIEM-Abfrage: Vermutete Ursache: Zusätzliche Datenquelle: Geplante Änderung: Sicherung geprüft: Rückfallplan: Änderung durchgeführt: Neustart erforderlich: Ergebnis nach Änderung: Fehler erneut getestet: Monitoring kontrolliert: Temporäre Aufzeichnung beendet: Diagnosedaten redigiert: Aufbewahrungsfrist: Abschluss: Merksatz Sysinternals macht interne Windows-Abläufe sichtbar, bestimmt aber nicht automatisch deren Bedeutung. Erst die Verbindung aus Fehlerzeitpunkt, Prozess, Benutzerkontext, Pfad, Operation, Ergebnis, Systemzustand und Vergleichsdaten ermöglicht eine belastbare Ursachenanalyse. Quellen und weiterführende Dokumentation Microsoft Learn – Sysinternals Microsoft Learn – Sysinternals Utilities Microsoft Learn – Sysinternals Suite Microsoft Learn – Sysinternals Live Microsoft Learn – Sysinternals Suite im Microsoft Store Microsoft Learn – Process Explorer Microsoft Learn – Process Monitor Microsoft Learn – Autoruns Microsoft Learn – Handle Microsoft Learn – TCPView Microsoft Learn – RAMMap Microsoft Learn – VMMap Microsoft Learn – ProcDump Microsoft Learn – Sysmon Microsoft Learn – Sigcheck Microsoft Learn – ListDLLs Microsoft Learn – Strings Microsoft Learn – Streams Microsoft Learn – AccessChk Microsoft Learn – AccessEnum Microsoft Learn – ShareEnum Microsoft Learn – PsTools Microsoft Learn – PsExec Microsoft Learn – PsPing Microsoft Learn – AD Explorer Microsoft Learn – AD Insight Microsoft Learn – Coreinfo Microsoft Learn – BgInfo Microsoft Learn – Disk2vhd Microsoft Learn – LiveKd Microsoft Learn – WinObj Microsoft Learn – PendMoves und MoveFile Microsoft Learn – SDelete Microsoft Learn – NotMyFault Microsoft Learn – Troubleshooting with the Windows Sysinternals Tools