Sicherheitsbedenken und nützliche Tipps für die Nachverfolgung
Artikel
In diesem Thema wird beschrieben, wie Sie vertrauliche Informationen davor schützen können, dass sie offengelegt werden, und nützliche Tipps beim Verwenden von WebHost.
Verwenden eines benutzerdefinierten Ablaufverfolgungslisteners mit WebHost
Wenn Sie einen eigenen Ablaufverfolgungslistener schreiben, sollten Sie beachten, dass Ablaufverfolgungen bei einem im Internet gehosteten Dienst verloren gehen können. Wenn WebHost zur Wiederverwendung genutzt wird, wird der Liveprozess heruntergefahren, während ein Duplikat übernimmt. Die beiden Prozesse müssen jedoch noch für einige Zeit Zugriff auf dieselbe Ressource haben, die vom Listenertyp abhängig ist. In diesem Fall erstellt XmlWriterTraceListener eine neue Ablaufverfolgungsdatei für den zweiten Prozess. während die Windows-Ereignisablaufverfolgung mehrere Prozesse innerhalb derselben Sitzung verwaltet und Zugriff auf dieselbe Datei gewährt. Wenn Ihr eigener Listener keine ähnlichen Funktionen bereitstellt, können Spuren verloren gehen, wenn die Datei von den beiden Prozessen gesperrt wird.
Sie müssen außerdem berücksichtigen, dass ein benutzerdefinierter Ablaufverfolgungslistener Ablaufverfolgungen und Nachrichten z. B. an eine Remotedatenbank senden kann. Als Anwendungsbereitsteller sollten Sie benutzerdefinierte Listener mit entsprechender Zugriffssteuerung konfigurieren. Sie sollten auch die Sicherheitskontrolle auf alle persönlichen Informationen anwenden, die am Remotestandort verfügbar gemacht werden können.
Protokollierung vertraulicher Informationen
Ablaufverfolgungen enthalten Nachrichtenheader, wenn sich eine Nachricht im Gültigkeitsbereich befindet. Wenn die Ablaufverfolgung aktiviert ist, können persönliche Informationen in anwendungsspezifischen Headern, wie z. B. eine Abfragezeichenfolge, und Informationen im Textkörper, wie eine Kreditkartennummer, in den Protokollen sichtbar werden. Der Anwendungsbereitsteller ist für das Erzwingen einer Zugriffssteuerung für die Konfigurations- und Ablaufverfolgungsdateien verantwortlich. Wenn diese Art von Informationen nicht sichtbar sein soll, sollten Sie die Ablaufverfolgung deaktivieren oder einen Teil der Daten herausfiltern, wenn Sie die Ablaufverfolgungsprotokolle freigeben möchten.
Mithilfe der folgenden Tipps können Sie verhindern, dass der Inhalt einer Ablaufverfolgungsdatei unbeabsichtigt verfügbar gemacht wird:
Stellen Sie sicher, dass die Protokolldateien sowohl in WebHost- als auch selfhost-Szenarien durch Zugriffssteuerungslisten (Access Control Lists, ACL) geschützt sind.
Wählen Sie eine Dateierweiterung aus, die nicht einfach mithilfe einer Webanforderung bereitgestellt werden kann. Die dateierweiterung .xml ist z. B. keine sichere Wahl. Sie können das IIS-Verwaltungshandbuch überprüfen, um eine Liste der Erweiterungen anzuzeigen, die bereitgestellt werden können.
Geben Sie einen absoluten Pfad für den Speicherort der Protokolldatei an, der sich außerhalb des öffentlichen WebHost-vroot-Verzeichnisses befinden sollte, um zu verhindern, dass von einer externen Partei über einen Webbrowser darauf zugegriffen wird.
Standardmäßig werden Schlüssel und personenbezogene Informationen (PII) wie Benutzername und Kennwort nicht in Protokollen und protokollierten Nachrichten aufgezeichnet. Ein Computeradministrator kann jedoch das attribut enableLoggingKnownPII im machineSettings-Element der Machine.config-Datei verwenden, um Anwendungen, die auf dem Computer ausgeführt werden, das Protokollieren bekannter personenbezogener Informationen (PII) wie folgt zu ermöglichen:
Ein Anwendungsbereitstellunger kann dann das attribut logKnownPii entweder in der App.config- oder Web.config Datei verwenden, um die PII-Protokollierung wie folgt zu aktivieren:
Nur wenn beide Einstellungen true sind, ist die PII-Protokollierung aktiviert. Die Kombination aus zwei Schaltern ermöglicht die Flexibilität, bekannte PII für jede Anwendung zu protokollieren.
Beachten Sie, dass beim Angeben von zwei oder mehr benutzerdefinierten Quellen in einer Konfigurationsdatei nur die Attribute der ersten Quelle gelesen werden. Die anderen werden ignoriert. Dies bedeutet, dass PII für die folgende Datei App.config nicht für beide Quellen protokolliert wird, obwohl die PII-Protokollierung explizit für die zweite Quelle aktiviert worden ist.
Wenn das <machineSettings enableLoggingKnownPii="Boolean"/>-Element außerhalb der Machine.config-Datei vorhanden ist, löst das System eine ConfigurationErrorsExceptionaus.
Die Änderungen sind nur wirksam, wenn die Anwendung gestartet oder neu gestartet wird. Ein Ereignis wird beim Start protokolliert, wenn beide Attribute auf truefestgelegt sind. Ein Ereignis wird auch protokolliert, wenn logKnownPii auf true festgelegt ist, aber enableLoggingKnownPiifalseist.
Der Maschinenadministrator und der Anwendungsbetreuer sollten bei der Verwendung dieser beiden Schalter äußerst vorsichtig sein. Wenn die PII-Protokollierung aktiviert ist, werden Sicherheitsschlüssel und PII protokolliert. Wenn sie deaktiviert ist, werden vertrauliche und anwendungsspezifische Daten weiterhin in Nachrichtenkopfzeilen und -textkörpern protokolliert. Eine ausführlichere Darstellung zum Datenschutz und zum Schutz von PII davor, verfügbar gemacht zu werden, finden Sie unter Privatsphäre der Benutzer.
Darüber hinaus wird die IP-Adresse des Nachrichtensenders bei verbindungsorientierten Transporten einmal pro Verbindung protokolliert und andernfalls einmal pro gesendeter Nachricht. Dies geschieht ohne Zustimmung des Absenders. Diese Protokollierung erfolgt jedoch nur auf den Ablaufverfolgungsebenen "Information" oder "Ausführlich", die nicht die Standard- oder empfohlenen Ablaufverfolgungsebenen für die Produktion sind, außer für das Livedebuggen.
Microservice-Anwendungen können aufgrund ihrer verteilten Natur schwierig zu sichern sein. In diesem Modul erfahren Sie, wie Sie vertrauliche Daten in einer cloudnativen Anwendung klassifizieren, vertrauliche Daten in Protokolldateien unkenntlich machen und Complianceberichte für eine cloudnative Anwendung generieren.