Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Sichern einer Anwendung ist ein fortlaufender Prozess. Es wird nie einen Punkt geben, an dem ein Entwickler garantieren kann, dass eine Anwendung vor allen Angriffen sicher ist, da es unmöglich ist, vorherzusagen, welche Arten zukünftiger Angriffe neue Technologien bewirken werden. Umgekehrt bedeutet dies nicht, dass niemand Sicherheitsfehler in einem System entdeckt hat (oder veröffentlicht hat), dass keine vorhanden ist oder vorhanden sein könnte. Sie müssen die Sicherheit während der Entwurfsphase des Projekts planen und planen, wie die Sicherheit während der Lebensdauer der Anwendung beibehalten wird.
Design für Sicherheit
Eines der größten Probleme bei der Entwicklung sicherer Anwendungen besteht darin, dass Sicherheit häufig ein Nachhinein ist, etwas, das implementiert werden muss, nachdem ein Projekt codevervollständigen ist. Das Erstellen von Sicherheit in einer Anwendung zu Beginn führt zu unsicheren Anwendungen, da wenig Überlegung gegeben wurde, was eine Anwendung sicher macht.
Last-Minute-Sicherheitsimplementierung führt zu mehr Fehlern, da Software unter den neuen Einschränkungen bricht oder neu geschrieben werden muss, um unerwartete Funktionen zu berücksichtigen. Jede Zeile überarbeiteter Code enthält die Möglichkeit, einen neuen Fehler einzuführen. Aus diesem Grund sollten Sie die Sicherheit frühzeitig im Entwicklungsprozess berücksichtigen, damit sie zusammen mit der Entwicklung neuer Features fortgesetzt werden kann.
Bedrohungsmodellierung
Sie können ein System nicht vor Angriffen schützen, es sei denn, Sie verstehen alle potenziellen Angriffe, denen es ausgesetzt ist. Der Prozess der Bewertung von Sicherheitsbedrohungen, der sogenannten Bedrohungsmodellierung, ist erforderlich, um die Wahrscheinlichkeit und Auswirkungen von Sicherheitsverletzungen in Ihrer ADO.NET-Anwendung zu ermitteln.
Die Bedrohungsmodellierung besteht aus drei allgemeinen Schritten: Grundlegendes zur Ansicht des Gegners, zur Charakterisierung der Sicherheit des Systems und zur Ermittlung von Bedrohungen.
Die Bedrohungsmodellierung ist ein iterativer Ansatz zur Bewertung von Sicherheitsrisiken in Ihrer Anwendung, um diejenigen zu finden, die am gefährlichsten sind, da sie die vertraulichsten Daten verfügbar machen. Nachdem Sie die Sicherheitsanfälligkeiten identifiziert haben, bewerten Sie sie nach Schweregrad und erstellen einen priorisierten Satz von Gegenmaßnahmen zur Bekämpfung der Bedrohungen.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Ressource | BESCHREIBUNG |
---|---|
Die Website "Bedrohungsmodellierung " im Security Engineering Portal | Die Ressourcen auf dieser Seite helfen Ihnen, den Prozess der Bedrohungsmodellierung zu verstehen und Bedrohungsmodelle zu erstellen, die Sie zum Sichern Ihrer eigenen Anwendungen verwenden können. |
Das Prinzip der geringsten Rechte
Wenn Sie Ihre Anwendung entwerfen, erstellen und bereitstellen, müssen Sie davon ausgehen, dass Ihre Anwendung angegriffen wird. Häufig stammen diese Angriffe aus bösartigem Code, der mit den Berechtigungen des Benutzers ausgeführt wird, der den Code ausführt. Andere können mit gut beabsichtigten Code stammen, der von einem Angreifer ausgenutzt wurde. Gehen Sie bei der Planung der Sicherheit immer davon aus, dass das Szenario im schlimmsten Fall eintritt.
Eine Gegenmaßnahme, die Sie verwenden können, besteht darin, so viele Wände um Ihren Code wie möglich zu errichten, indem sie mit den geringsten Berechtigungen ausgeführt wird. Das Prinzip der geringsten Berechtigung besagt, dass jeder gegebene Berechtigungsbetrag der geringsten Menge an Code gewährt werden sollte, der für die kürzeste Zeit erforderlich ist, die erforderlich ist, um den Auftrag zu erledigen.
Die bewährte Methode zum Erstellen sicherer Anwendungen besteht darin, ohne Berechtigungen zu beginnen und dann die schmalsten Berechtigungen für die jeweilige Aufgabe hinzuzufügen, die ausgeführt wird. Im Gegensatz dazu führt das Starten mit allen Berechtigungen und dann das Verweigern einzelner Anwendungen zu unsicheren Anwendungen, die schwierig zu testen und zu verwalten sind, da Sicherheitslöcher möglicherweise aus unbeabsichtigter Gewährung von mehr Berechtigungen als erforderlich bestehen können.
Weitere Informationen zum Sichern Ihrer Anwendungen finden Sie in den folgenden Ressourcen:
Ressource | BESCHREIBUNG |
---|---|
Sichern von Anwendungen | Enthält Links zu allgemeinen Sicherheitsthemen. Enthält außerdem Links zu Themen zum Sichern verteilter Anwendungen, Webanwendungen, mobiler Anwendungen und Desktopanwendungen. |
Codezugriffssicherheit (Code Access Security, CAS)
Codezugriffssicherheit (Code Access Security, CAS) ist ein Mechanismus, mit dem der Zugriff, den Code auf geschützte Ressourcen und Vorgänge hat, beschränkt werden kann. In .NET Framework führt CAS die folgenden Funktionen aus:
Definiert Berechtigungen und Berechtigungssätze, die das Recht auf den Zugriff auf verschiedene Systemressourcen darstellen.
Ermöglicht Administratoren das Konfigurieren von Sicherheitsrichtlinien durch Zuordnen von Berechtigungsgruppen zu Codegruppen (Codegruppen).
Ermöglicht code das Anfordern der erforderlichen Berechtigungen, um sie auszuführen, sowie die Berechtigungen, die nützlich sein würden, und gibt an, welche Berechtigungen der Code niemals besitzen darf.
Gewährt Berechtigungen für jede Assembly, die geladen wird, basierend auf den Berechtigungen, die vom Code angefordert werden, und auf den Vorgängen, die von der Sicherheitsrichtlinie zulässig sind.
Ermöglicht Code die Anforderung, dass die Aufrufer über bestimmte Berechtigungen verfügen.
Ermöglicht code die Anforderung, dass seine Aufrufer über eine digitale Signatur verfügen, sodass nur Anrufer von einer bestimmten Organisation oder Website den geschützten Code aufrufen können.
Erzwingt Einschränkungen für Code zur Laufzeit, indem die erteilten Berechtigungen jedes Aufrufers im Aufrufstapel mit den Berechtigungen verglichen werden, die Aufrufer besitzen müssen.
Um den Schaden zu minimieren, der auftreten kann, wenn ein Angriff erfolgreich ist, wählen Sie einen Sicherheitskontext für Ihren Code aus, der nur Zugriff auf die Ressourcen gewährt, die er benötigt, um seine Arbeit zu erledigen und nicht mehr.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Ressource | BESCHREIBUNG |
---|---|
Codezugriffssicherheit und ADO.NET | Beschreibt die Interaktionen zwischen Codezugriffssicherheit, rollenbasierter Sicherheit und teilweise vertrauenswürdigen Umgebungen aus der Perspektive einer ADO.NET Anwendung. |
Codezugriffssicherheit | Enthält Links zu zusätzlichen Themen, die CAS in .NET Framework beschreiben. |
Datenbanksicherheit
Das Prinzip der geringsten Rechte gilt auch für Ihre Datenquelle. Zu den allgemeinen Richtlinien für die Datenbanksicherheit gehören:
Erstellen Sie Konten mit den niedrigsten Berechtigungen.
Erlauben Sie Benutzern nicht den Zugriff auf Verwaltungskonten, nur um Code zu erhalten.
Geben Sie keine serverseitigen Fehlermeldungen an Clientanwendungen zurück.
Überprüfen Sie alle Eingaben sowohl auf dem Client als auch auf dem Server.
Verwenden Sie parametrisierte Befehle, und vermeiden Sie dynamische SQL-Anweisungen.
Aktivieren Sie die Sicherheitsüberwachung und Protokollierung für die datenbank, die Sie verwenden, damit Sie bei Sicherheitsverletzungen benachrichtigt werden.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Ressource | BESCHREIBUNG |
---|---|
SQL Server Security | Bietet eine Übersicht über die SQL Server-Sicherheit mit Anwendungsszenarien, die Anleitungen zum Erstellen sicherer ADO.NET Anwendungen für SQL Server bieten. |
Empfehlungen für Datenzugriffsstrategien | Enthält Empfehlungen für den Zugriff auf Daten und das Ausführen von Datenbankvorgängen. |
Sicherheitsrichtlinie und -verwaltung
Die Richtlinie zur nicht ordnungsgemäßen Verwaltung der Codezugriffssicherheit (Code Access Security, CAS) kann potenziell Sicherheitsschwächen erzeugen. Sobald eine Anwendung bereitgestellt wurde, sollten Techniken für die Überwachung der Sicherheit verwendet und Risiken als neue Bedrohungen ausgewertet werden.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Ressource | BESCHREIBUNG |
---|---|
Sicherheitsrichtlinienverwaltung | Enthält Informationen zum Erstellen und Verwalten von Sicherheitsrichtlinien. |
Bewährte Methoden für Sicherheitsrichtlinien | Enthält Links, die beschreiben, wie Sicherheitsrichtlinien verwaltet werden. |