Best Practices für Webanwendungen Gewährleistung der Zuverlässigkeit von ASP.NET Core-Anwendungen

Von Dipl. Betriebswirt Otto Geißler 4 min Lesedauer

Anbieter zum Thema

Das beliebte Webentwicklungsframework ASP.NET Core hat sich als anfällig für Hacker-Attacken aus verschiedenen Quellen erwiesen. Welche Security-Maßnahmen sind zu ergreifen, um Angriffe zu verhindern und sensible Daten in ASP.NET Core-Webanwendungen zu schützen?

ASP.NET-Anwendungen verarbeiten häufig vertrauliche Daten und stellen hohe Anforderungen an die Verfügbarkeit.(Bild:  © Antonio - stock.adobe.com)
ASP.NET-Anwendungen verarbeiten häufig vertrauliche Daten und stellen hohe Anforderungen an die Verfügbarkeit.
(Bild: © Antonio - stock.adobe.com)

Sicherheit ist ein entscheidender Aspekt von Webanwendungen und muss bereits am Anfang eines Entwicklungsprozesses im Mittelpunkt stehen. Dabei ist es wichtig, bestimmte Mechanismen zu implementieren, dazu gehören: User-Identifikationen, Einschränkungen der Zugriffsrechte sowie Schutzfunktionen, der auf Servern gespeicherten und über das Netzwerk übertragenen Daten. Diese Elemente sollten für die Implementierung einer Webanwendung berücksichtigt werden.

Mit ASP.NET Core können Entwickler Sicherheitseinstellungen für Anwendungen einfach konfigurieren und verwalten. Die Technologie enthält Funktionen zur Verwaltung von Authentifizierungen, Autorisierungen, Datenschutzmaßnahmen, HTTPS-Durchsetzung, XSRF/CSRF-Angriffsschutz und CORS-Verwaltung. Sicherheitsfunktionen dieser Art helfen beim Erstellen robuster und sicherer Webanwendungen.

ASP.Net Core gilt zwar als eine der sichersten Plattformen. Dennoch müssen die Aktivität in den Anwendungen überwacht und im Falle von Hacker-Attacken die besten Sicherheitspraktiken des .Net-Frameworks angewandt werden.

Bewährte Sicherheitsmethoden

In der Folge sind einige der gängigsten Angriffe und Methoden zum Schutz von ASP.Net Core-Anwendungen skizziert:

HTTPS

Durch die Verwendung von HTTPS wird sichergestellt, dass die Daten zwischen einem Server und dem Client verschlüsselt sind. Dies erschwert es Angreifern, Daten abzufangen oder zu manipulieren.

Cross-Site-Scripting (XSS)

Um eine Anwendung vor Cross-Site-Scripting-Angriffen zu schützen, sollten bestimmte Sonder- bzw. Metazeichen sowohl auf der Client- als auch auf der Serverseite der Anwendung vermieden werden. Es empfiehlt sich auch, nur validierte Daten in der Datenbank zu speichern und zur Verarbeitung solcher Skripte HTML-Verschlüsselung mit Razor zu verwenden.

Cross-Site Request Forgery (CSRF)

Diese Art von Hacker-Angriff, bei dem ein User dazu verleitet wird, eine kompromittierte Website zu besuchen, die dann im Namen des Users Anfragen an eine Zielseite sendet. Um diesen Angriff zu verhindern, ist ein Antifälschungstoken zu verwenden, das vor der Controller-Aktion hinzugefügt wird. Der Server sendet dann ein Token an den User und nachdem er eine Anfrage gestellt hat, sendet er das Token zur Überprüfung an den Server zurück. Token können sowohl im Header als auch im Cookie gespeichert werden.

SSL und HTTPS verwenden

Secure Socket Layer (SSL) verschlüsselt die Kommunikation zwischen Client und Server mit einem komplexen Schlüssel. Es kann aber auch HTTPS (HyperText Transfer Protocol Secure) benutzt werden, um die ASP.NET Core-Anwendung zu schützen.

Schutz vor SQL-Injection

Hacker bringen häufig SQL-Injections zum Einsatz. Durch das Befolgen von Prinzipien oder Technologien, bei denen der Code nicht auf direkten SQL-Abfragen basiert, wird dieser Thread eliminiert. Dazu gehören Entity Framework Core, parametrisierte Abfragen, die Validierung der Eingaben auf der Serverseite und die Anwendung gespeicherter Prozeduren.

Framework und Bibliotheken aktualisieren

Es empfiehlt sich, während der Arbeit am Projekt keine veralteten Bibliotheken und Frameworks zu verwenden. Dies verhindert, dass Hacker längst bekannte Schwachstellen ausnutzen.

XXE-Angriff (XML External Entity)

XML External Entity kann zu einem Denial-of-Service-Angriff führen, indem Entitäten in Entitäten eingefügt werden, was die Serverauslastung beeinträchtigt und letztlich einen Server-Shutdown zur Folge hat. Um die Anwendung vor diesem Angriff zu schützen, sollte XmlTextReader verwendet werden, um XML-Dateien zu analysieren und die DtdProcessing-Eigenschaft auf Prohibit oder Ignore zu setzen.

Konfigurationsdateien verschlüsseln

Das Verschlüsseln von Konfigurationsdateien in ASP.NET gehört zu den wichtigsten Sicherheitsmaßnahmen. Konfigurationsdateien enthalten häufig sensible Daten wie Datenbank-Verbindungszeichenfolgen und API-Schlüssel, die für den Betrieb der Anwendung unerlässlich sind.

Bleiben diese Dateien unverschlüsselt, werden sie zu einem sehr leichten Ziel für Hacker, die sich Zugriff auf das Dateisystem verschaffen wollen. Sind diese sensiblen Informationen erst einmal kompromittiert, können sie für weitere Angriffe, den Zugriff auf Datenbanken und den Missbrauch von API-Diensten verwendet werden.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Cloud Computing

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Durch die Verschlüsselung dieser Dateien wird eine robuste Sicherheitsebene hinzugefügt, sodass es für unbefugte Personen wesentlich schwieriger wird, den Inhalt zu dechiffrieren, selbst wenn sie Zugriff auf die Dateien erhalten. Diese Vorgehensweise ist eine einfache und dennoch effektive Möglichkeit, wichtige Konfigurationsdetails zu schützen und sicherzustellen, dass sie vertraulich und sicher bleiben.

Prüfpfade und Protokollierungen verfolgen

Mithilfe von Audits und Protokollen können Administratoren Details zu Aktionen in ungewöhnlichen Situationen sehen und damit beispielsweise den Anwendungszustand überwachen. Für ein Entwicklungsteam liefern sie wichtige Daten für die Analyse von Problemen oder Fehlern, die von Usern angezeigt werden.

Sicherer Login

Mithilfe von sicheren Logins kommen komplexe Anmeldeinformationen zum Einsatz, um Brute-Force-Angriffe zu verhindern. Ferner sind der ASP.NET Core-Identitätsfunktion zu nutzen und die IP für einige Zeit nach fehlgeschlagenen Anmeldeversuchen zu blockieren.

Beim Abmelden Cookies löschen

Die von der Anwendung generierten Cookies sollten beim Abmelden aus dem Browser entfernt werden, da Hacker diese Informationen für eine unbefugte Anmeldung verwenden könnten. Dies wird auch als Session-Fixation-Angriff bezeichnet.

ASP.Net Core-Version verbergen

Jede HTTP-Antwort eines Servers, die auf eine Anfrage erhalten wird, beinhaltet immer Informationen zur Version der Anwendung. Die Versions-Informationen sollten vor End-Usern geschützt und verborgen gehalten werden. Denn wenn Hacker die Version in Erfahrung bringen, kann auf Grundlage einer offengelegten Sicherheitslücke gezielt ein Angriff auf diese bestimmte Version gestartet werden.

Fazit

Zur Absicherung einer ASP.NET-Anwendung ist eine Kombination bewährter Methoden erforderlich. Durch deren Einsatz können Entwickler die Sicherheit ihrer Anwendungen erheblich verbessern. Dabei ist zu bedenken, dass die IT-Security immer einen kontinuierlichen Prozess beschreibt und moderne Shift-Left-Standards einen DevSecOps-Ansatz empfehlen, bei dem die Sicherheit in alle Phasen der Entwicklungsprozesse integriert ist.

(ID:50124275)