Applikationssicherheit an erster Stelle

Von Infrastruktur zu Software: Sicherheitsstrategien der .NET User Group Bern

Die jüngsten Hackerangriffe auf den Schweizer Verwaltungsapparat rücken die hohen Anforderungen an die Sicherheit kritischer Applikationen erneut in den Fokus. Doch oft dreht sich die Debatte lediglich um sichere Infrastruktur. Wie kannst du sicherstellen, dass auf sicherer Infrastruktur sichere Software läuft? 

Treffen .NET User Group Bern

Männer sitzen auf Stühlen und hören Vortrag zu
Keynote beim Application Security .NET Event mit allen Teilnehmenden von hinten
Bühne eines Vortrages zu AAD und .NET
Ein Netzwerk-Anlass wo mehrere junge Herren stehen

Die Experten unserer Security-Gilde präsentieren an einem Treffen der .NET User Group Bern drei Strategien. Unter dem Fokus Application Security wurden in drei Deep Dive Sessions die Vorteile und Möglichkeiten von AAD, BFF Pattern und der sicheren Verwendung von GitHub Actions mit Terraform für Business Applications besprochen.

Azure Active Directory

Quick-Start mit Azure Active Directory

Azure Active Directory (AAD) ist ein verlässlicher Identitätsprovider (IDP) für .NET Applikationen mit hohen Sicherheitsstandards und zahlreichen Vorteilen. Unsere Experten zeigen in einer Live-Demonstration, dass die Einrichtung von AAD in einer neuen Blazor Applikation mit Visual Studio innerhalb weniger Minuten möglich ist. Neben der Authentifizierung wird auch die Authorisierung und Rollenverwaltung der Applikation auf einfache und sichere Weise an AAD delegiert. Zusätzlich können mittels praktischer Tricks Multi-Tenant-Lösungen erstellt und effizient sowie kostengünstig betrieben werden.

AAD bietet umfangreiche Sicherheitsfunktionen wie Single Sign-On, Multi-Faktor-Authentifizierung und Unterstützung verschiedener Authentifizierungsmethoden. Der Einsatz eines externen IDPs erleichtert die Verwaltung, reduziert Kosten, und reduziert die Menge sensibler Daten, welche von einer Applikation verwaltet werden.

Backend-for-Frontend (BFF)

Backend-for-Frontend (BFF) mit Development Proxy für React + ASP.NET Core

Das Backend-for-Frontend (BFF) Pattern ist ein Ansatz in der Softwareentwicklung, der darauf abzielt, die Effizienz und Flexibilität bei der Bereitstellung von Backend-Services für verschiedene Frontend Anwendungen zu verbessern. Das BFF Pattern basiert auf dem Prinzip, dass jedes Frontend eine eigene dedizierte Backend-Schnittstelle benötigt, um seine spezifischen Anforderungen optimal zu erfüllen.

Das BFF Pattern kann auch die Sicherheit der Applikation erhöhen, indem das BFF spezifische Autorisierungsmechanismen implementiert und sicherstellt, dass nur die erforderlichen Daten an das Frontend übertragen werden. Ausserdem kann in vielen Fällen die Verwaltung von IDP Tokens vom Frontend ins BFF verlagert werden. Dadurch werden die Tokens besser geschützt.

Unsere Experten präsentieren in einer Referenz die Implementierung des BFF Patterns für React + ASP.NET Core und zeigen auf, wie es zusätzlich den Entwicklungs-Workflow und die Sicherheit verbessert, indem Anfragen an den (in diesem Fall Vite-basierten) Development Server durch das BFF via Proxy verarbeitet werden. Dadurch können Security Headers dynamisch mit Nonces generiert werden, die Browser Sicherheitsmechanismen verhalten sich während der Entwicklung bereits wie auf der Produktionsumgebung. Dies festigt die Sicherheit bereits während der kritischen Aspekte in der Entwicklung und reduziert Fehler, die aufgrund unterschiedlicher Konfigurationen erst auf Staging- oder Produktions-Umgebungen auftreten.

Terraform

Azure Ressourcen mit Terraform aus GitHub-Actions verwalten

Zurück zur Infrastruktur: Moderne Lösungen verwenden Infrastructure as Code (IaC), um Cloud-Ressourcen zuverlässig und automatisiert zu erstellen und zu warten. Oft werden die Cloud-Ressourcen als Teil des CI/CD Prozesses via IaC angelegt bzw. angepasst. Damit dieser Prozess sicher vonstattengeht und trotzdem keine manuellen Schritte notwendig sind, müssen einige Aspekte berücksichtigt werden. Unsere Experten erklären anhand einer Beispielapplikation, wie der Prozess für eine Open-Source Applikation mit GitHub, Terraform, und Azure aussehen kann.

Als Kernelement des Sicherheitskonzepts präsentiert sich der OIDC Trust zwischen GitHub und Azure. Damit können Jobs in GitHub Actions Workflows gemäss Least Privilege Principle sicher auf die entsprechenden Azure Ressourcen zugreifen, ohne dass Secrets irgendwo im IaC Konfigurations-Code vorhanden sein müssen. Dabei trennt die Lösung auch die Environments vollständig voneinander und reduziert so das Fehlerrisiko.

Zuletzt präsentieren unsere Experten diverse Wege, wie GitHub mittels CodeQL und einfacher Integration von Third-Party Static-Code-Analysis-Tools verhindern kann, dass Schwachstellen im Source Code unbemerkt bleiben. Dies ist insbesondere auch für Terraform Code wichtig, der auf keinen Fall Secrets enthalten sollte.

Sicherheit und Effizienz vereint: Azure Active Directory, BFF und IaC für deine Applikationen

Mit Azure Active Directory als Eckpfeiler deiner Applikation, mit sicherer Software Architektur und konsequenter Umsetzung etablierter Sicherheitsstrategien für Infrastructure as Code (IaC) sind auch deine Applikationen sicher. 

Dadurch reduzierst du das Risiko eines Zwischenfalls und schützts so deine Reputation und das Vertrauen deiner Kundschaft. Zusätzlich kannst du mit diesen Werkzeugen die Effizienz des Entwicklungsteams steigern und Kosten sparen. Möchtest du mehr erfahren oder eine massgeschneiderte Security Lösung für deine Applikation finden? Dann nimm mit mir Kontakt auf.

Du willst mehr erfahren? Nimm mit mir Kontakt auf.

Gian-Luca Mateo

Team Lead Developers
MSc in Computer Science

gian-luca.mateo@isolutions.ch
Gian Luca Mateo