Frameworkupdates
Viele Entwickler*innen entscheiden sich in erster Linie aufgrund von Features oder persönlichen Vorlieben für die Frameworks und Bibliotheken, die sie verwenden, um ihre Software zu erstellen. Das gewählte Framework ist jedoch eine wichtige Entscheidung, nicht nur im Hinblick auf Design und Funktionalität, sondern auch aus der Sicherheitsperspektive. Eine der besten Möglichkeiten, die Sicherheit von Apps zu gewährleisten, ist, ein Framework mit modernen Sicherheitsfeatures auszuwählen und auf dem neuesten Stand zu halten.
Sorgfältiges Auswählen des Frameworks
Bei der Auswahl eines Frameworks ist der wichtigste Faktor in Bezug auf Sicherheit, wie gut es unterstützt wird. Die besten Frameworks haben Sicherheitsvorkehrungen festgelegt und werden von großen Communitys unterstützt, die das Framework verbessern und testen. Keine Software ist vollkommen fehlerfrei oder sicher, aber wenn ein Sicherheitsrisiko identifiziert wurde, möchten wir darauf vertrauen können, dass es schnell behoben wird oder eine Problemumgehung bereitgestellt wird.
Häufig ist „gut unterstützt“ ein Synonym für „modern“. Ältere Frameworks werden entweder nach und nach ersetzt oder büßen an Beliebtheit ein. Auch wenn Sie über umfassende Erfahrung mit einem älteren Framework oder über viele Apps verfügen, die darin geschrieben wurden, profitieren Sie von einer modernen Bibliothek, die alle benötigten Features bietet. Moderne Frameworks nutzen die aus früheren Iterationen gewonnenen Erkenntnisse. Wenn sie für neue Apps ausgewählt werden, kann damit die Angriffsfläche verringert werden. Sie müssen sich um eine App mehr kümmern, wenn ein Sicherheitsrisiko im älteren Framework ermittelt wird, in dem Ihre älteren Anwendungen geschrieben wurden.
Weitere Informationen zum sicheren Entwurf und zur Verringerung der Bedrohungsfläche finden Sie unter Microsoft Azure Well-Architected Framework – Sicherheit.
Aktualisieren Ihres Frameworks
Für Frameworks für die Softwareentwicklung wie Java Spring und .NET Core werden regelmäßig Updates und neue Versionen veröffentlicht. Diese Updates enthalten neue Features, entfernen alte Features und bieten oft Sicherheitsfixes oder Verbesserungen. Wenn Sie zulassen, dass Ihre Frameworks veraltet sind, entstehen „technische Schulden“. Je veralteter etwas ist, desto schwieriger und riskanter wird es, den Code auf die neueste Version zu aktualisieren. Ähnlich wie durch die ursprüngliche Entscheidung für ein Framework entstehen durch die Nutzung älterer Versionen des Frameworks weitere Sicherheitsrisiken, die in neueren Versionen des Frameworks behoben wurden.
Beispielsweise wurden von 2016 bis 2017 mehr als 30 Sicherheitsrisiken im Apache Struts-Framework gefunden. Diese Sicherheitsrisiken wurden umgehend vom Entwicklungsteam behandelt. Einige Unternehmen haben die Patches jedoch nicht angewandt und den Preis in Form einer Datenpanne bezahlt. Achten Sie darauf, dass Ihre Frameworks und Bibliotheken auf dem neuesten Stand bleiben.
Wie kann ich mein Framework aktualisieren?
Einige Frameworks, z.B. Java oder .NET, erfordern eine Installation und veröffentlichen in der Regel nach einem bekannten Zeitplan. Es ist eine gute Idee, auf neue Versionen zu achten und einen Branch des Codes zu erstellen, um sie auszuprobieren, sobald sie freigegeben wurden. Beispielsweise gibt es für .NET Core eine Seite für Versionshinweise, die Sie auf die neuesten verfügbaren Versionen überprüfen können.
Spezialisiertere Bibliotheken wie JavaScript-Frameworks oder .NET-Komponenten können über einen Paket-Manager aktualisiert werden. NPM und Webpack sind häufig verwendete Optionen für Webprojekte und werden von den meisten IDEs oder Buildtools unterstützt. In .NET verwenden wir NuGet, um Komponentenabhängigkeiten zu verwalten. Wie das Aktualisieren des Kernframeworks sind das Branchen Ihres Codes, das Aktualisieren der Komponenten und das Testen ein gutes Verfahren, um eine neue Version einer Abhängigkeit zu überprüfen.
Hinweis
Das Befehlszeilentool dotnet
verfügt über die Optionen add package
und remove package
zum Hinzufügen oder Entfernen von NuGet-Paketen, jedoch nicht über einen entsprechenden update package
-Befehl. Allerdings können Sie dotnet add package <package-name>
in Ihrem Projekt ausführen, und das Paket wird automatisch auf die neueste Version aktualisiert. Dies ist eine einfache Möglichkeit, Abhängigkeiten zu aktualisieren, ohne die IDE zu öffnen.
Nutzen der integrierten Sicherheit
Überprüfen Sie immer, welche Sicherheitsfeatures Ihre Frameworks bieten. Setzen Sie nie eigene Sicherheitsfunktionen ein, wenn es ein Standardverfahren oder eine integrierte Funktion gibt. Vertrauen Sie zudem auf bewährte Algorithmen und Workflows, da diese häufig von vielen Experten geprüft und verbessert wurden. Dadurch können Sie darauf bauen, dass sie zuverlässig und sicher sind.
Das .NET Core Framework verfügt über unzählige Sicherheitsfeatures. Im Folgenden finden Sie einige wichtige Ausgangspunkte in der Dokumentation:
- Authentifizierung: Identitätsverwaltung
- Autorisierung
- Schutz von Daten
- Sichere Konfiguration
- Erweiterbarkeits-APIs für Sicherheit
Jedes dieser Features wurde von Expert*innen auf dem jeweiligen Gebiet geschrieben und dann umfassend getestet, um sicherzustellen, dass es ausschließlich wie beabsichtigt funktioniert. Andere Frameworks bieten ähnliche Features. Informieren Sie sich beim Anbieter des Frameworks über die verfügbaren Funktionen in jeder Kategorie.
Warnung
Wenn Sie Ihre eigenen Sicherheitskontrollen schreiben, statt die von Ihrem Framework bereitgestellten zu verwenden, verschwenden Sie Zeit und erreichen weniger Sicherheit.
Microsoft Defender für Cloud
Wenn Sie Azure zum Hosten Ihrer Webanwendungen verwenden, warnt Defender für Cloud Sie auf der Registerkarte „Empfehlungen“, wenn Ihre Frameworks veraltet sind. Vergessen Sie nicht, diese von Zeit zu Zeit aufzurufen, um zu sehen, ob Warnungen im Zusammenhang mit Ihren Apps angezeigt werden.
Zusammenfassung
Wählen Sie nach Möglichkeit ein modernes Framework zum Erstellen von Apps aus, verwenden Sie immer die integrierten Sicherheitsfeatures, und halten Sie es auf dem neuesten Stand. Mit diesen einfachen Regeln können Sie sicherstellen, dass Ihre Anwendung auf einer soliden Grundlage gestartet wird.