Freigeben über


Debuggersicherheit

Die Fähigkeit zum Debuggen eines anderen Prozesses verleiht Ihnen weitreichende Möglichkeiten, die sonst nicht zur Verfügung stehen. Dies gilt insbesondere für das Remotedebuggen.Ein bösartiger Debugger könnte sich diese Möglichkeiten zunutze machen und auf dem zu debuggenden Computer schwere Schäden verursachen.Deshalb existieren Beschränkungen hinsichtlich der zum Debuggen berechtigten Benutzer.Weitere Informationen finden Sie unter Remote Debugging Permissions.

Viele Entwickler sind sich jedoch der Tatsache nicht bewusst, dass die Sicherheit auch in entgegengesetzter Richtung bedroht werden kann.Bösartiger Code im zu debuggenden Prozess kann die Sicherheit des debuggenden Computers gefährden: Es gibt eine Reihe von Angriffsmöglichkeiten, gegen die Vorsichtsmaßnahmen zu treffen sind.

Empfohlene Vorgehensweisen bezüglich der Sicherheit

Zwischen dem Debugger und dem zu debuggenden Code besteht ein implizites Vertrauensverhältnis.Sie sollten ein Codefragment nur debuggen, wenn Sie auch bereit wären, es auszuführen.Die Grundfrage besteht darin, ob Sie dem zu debuggenden Code vertrauen können.Wenn Sie dem Code nicht vertrauen können, sollten Sie ihn nicht debuggen, oder Sie sollten ihn von einem Computer aus debuggen, bei dem die mögliche Gefährdung der Sicherheit kein Problem darstellt, da er sich in einer isolierten Umgebung befindet.

Um möglichst wenig Angriffsfläche zu bieten, sollte das Debuggen auf Produktionscomputern deaktiviert werden.Aus demselben Grund sollte das Debuggen niemals für unbegrenzte Zeit aktiviert werden.

ms242231.collapse_all(de-de,VS.110).gifSicherheit bei verwaltetem Debuggen

Im Folgenden finden Sie allgemeine Empfehlungen für das verwaltete Debuggen.

Weitere Informationen finden Sie unter Debuggen von verwaltetem Code.

ms242231.collapse_all(de-de,VS.110).gifSicherheit beim Remotedebuggen

Lokales Debuggen ist im Allgemeinen sicherer als Remotedebuggen.Beim Remotedebuggen wird eine wesentlich größere Angriffsfläche geboten, die ausgenutzt werden könnte.

Beim Remotedebuggen wird der Visual Studio-Remotedebugmonitor (msvsmon.exe) verwendet, bei dessen Konfiguration verschiedene Sicherheitsempfehlungen beachtet werden sollten.Der bevorzugte Authentifizierungsmodus ist die Windows-Authentifizierung, da der Modus Keine Authentifizierung ein Sicherheitsrisiko darstellt.

Fehlerdialogfeld

Wenn Sie Windows-Authentifizierungsmodus verwenden, beachten Sie, dass es sich bei eine nicht vertrauenswürdige Benutzer Berechtigung zum Herstellen von Msvsmon gefährlich ist, da der Benutzer alle Berechtigungen auf dem Computer gewährt wird...

Debuggen Sie niemals einen unbekannten Prozess auf einem Remotecomputer: Es existieren verschiedene Angriffe, die den Computer beeinträchtigen können, auf dem der Debugger ausgeführt wird, oder die den Visual Studio-Remotedebugmonitor msvsmon.exe gefährden können.Wenn sich das Debuggen eines unbekannten Prozesses nicht vermeiden lässt, versuchen Sie, den Prozess lokal zu debuggen, und verwenden Sie eine Firewall, damit die Bedrohung auf den lokalen Computer beschränkt bleibt.

Weitere Informationen finden Sie unter Remotedebuggen – Setup.

ms242231.collapse_all(de-de,VS.110).gifSicherheit beim Debuggen von Webdiensten

Lokales Debuggen ist sicherer, aber häufig nicht durchführbar, da Visual Studio wahrscheinlich nicht auf dem Webserver installiert ist.Das Debuggen von Webdiensten erfolgt außer während der Entwicklung im Allgemeinen remote. Daher gelten die Empfehlungen für die Sicherheit beim Remotedebuggen auch für das Debuggen von Webdiensten.Im Folgenden finden Sie einige zusätzlich empfohlene Vorgehensweisen.Weitere Informationen finden Sie unter Debugging XML Web Services.

  • Aktivieren Sie das Debuggen nicht auf einem Webserver, dessen Sicherheit gefährdet ist.

  • Überprüfen Sie vor dem Debuggen die Sicherheit des Webservers.Debuggen Sie ihn nicht, wenn Sie nicht von seiner Sicherheit überzeugt sind.

  • Seien Sie besonders vorsichtig, wenn Sie einen Webdienst debuggen, der vom Internet aus verfügbar ist.

ms242231.collapse_all(de-de,VS.110).gifExterne Komponenten

Beachten Sie den Vertrauenswürdigkeitsstatus externer Komponenten, mit denen das Programm interagiert. Dies ist besonders wichtig, wenn Sie den Code nicht selbst geschrieben haben.Beachten Sie dabei auch die Komponenten, die Visual Studio oder der Debugger möglicherweise verwenden.

ms242231.collapse_all(de-de,VS.110).gifSymbole und Quellcode

Die folgenden beiden Visual Studio-Tools erfordern ebenfalls einige Überlegungen zur Sicherheit:

Siehe auch

Referenz

Sicherheitswarnung: Das Anfügen an einen Prozess, der einem nicht vertrauenswürdigen Benutzer gehört, kann gefährlich sein. Wenn die folgenden Informationen verdächtig wirken oder Sie sich hinsichtlich der Vorgehensweise nicht sicher sind, fügen Sie an den Prozess nichts an.

Sicherheitswarnung: Der Debugger muss diesen nicht vertrauenswürdigen Befehl ausführen

Weitere Ressourcen

Einstellungen und Vorbereitung für das Debuggen

Debuggerwegweiser