Best Practices-Leitfaden für eine sichere Entwicklung
Dieser Leitfaden bezieht sich auf den Prozess "Entwickeln einer Computeranwendung", der für Anwendungen, die eines der folgenden Kriterien erfüllen, obligatorisch ist:
- Breite Verbreitung: Gedacht für mehrere Kurse, Dienste, Schulen oder externe Partner.
- Sensible Daten: Umgang mit persönlichen oder vertraulichen Daten.
- IT-Integration: Anbindung an die IT-Ressourcen der HES-SO Freiburg.
- z.B. interne Benutzerkonten, diese müssen aus den Verzeichnissen der HES-SO Fribourg stammen.
Dieser Prozess gilt nicht für Anwendungen, die streng auf den internen und kleinen Gebrauch beschränkt sind, wie z. B.:
-
Pädagogische Werkzeuge: Entwickelt im Rahmen von Schulungen oder F&E.
-
Lokale Anwendungen: Werden von einer kleinen Gruppe von Benutzern verwendet. (interner Stream)
Entwicklungen, die streng auf den internen Gebrauch beschränkt sind, sind unter folgenden Bedingungen erlaubt:
- Compliance: Die Entwicklung muss allen geltenden Gesetzen und Vorschriften (DSGVO, DSG, nLPrD, etc.) sowie den IT-Sicherheitsstandards der HES-SO Fribourg entsprechen.
- Begrenzter Geltungsbereich: Die entwickelte Anwendung muss ausschließlich für den internen Gebrauch bestimmt sein und auf den betreffenden Sektor beschränkt sein, ohne Aussicht auf eine Ausweitung auf andere Einrichtungen.
- Autonomie: Die Abteilung kümmert sich allein um die Entwicklung, den Support, die Wartung und die damit verbundenen Kosten.
DevSecOps-Leitfaden
Geheimnisse sicher verwalten: Es wird empfohlen, einen Geheimnismanager zu verwenden (z. B. Devolutions: Enterprise Password Manager). Es ist auch wichtig sicherzustellen, dass keine hartcodierten Geheimnisse im Quellcode, in den Auftragsereignisprotokollen oder in den Coderepositorys vorhanden sind.
Bieten Sie automatisierte Sicherheitstests im CI/CD-Prozess an: Nicht-Regressionstests (um neue Schwachstellen zu vermeiden), Abdichtung zwischen Benutzerprofilen, statische und dynamische Analysetests, IaC-Compliance-Tests (Infrastructure as Code).
Sichern Sie die Produktionsbereitstellung von Anwendungen, indem Sie die Integrität des Quellcodes durchgängig beibehalten und die Signaturen von Artefaktversionstags signieren und überprüfen.
Implementieren Sie die Multi-Faktor-Authentifizierung für den Zugriff auf das Code-Repository und die Commit-Signierung.
Trennen Sie CI/CD-Infrastrukturen für Entwicklung und Produktion und stellen Sie sie nicht direkt dem Internet zur Verfügung.
Instanziieren Sie die CI/CD-Infrastruktur regelmäßig neu und speichern Sie keine persistenten Daten darauf.
Achten Sie auf die Vertraulichkeitsanforderungen der CI/CD-Infrastruktur (z. B. Lokalisierung, Testen des Quellcodes in öffentlichen SaaS-Lösungen).
Eingaben validieren: Nur zulässige Zeichenfolgen zulassen. Wenn es sich bei dem Feld um ein Datumsfeld handelt, können Sie nur ein Datum in einem streng definierten Format eingeben.
Alle Daten sollten bereinigt und fehlerfrei sein, bevor sie an andere Anwendungen oder Systeme gesendet werden.
Respektieren und wenden Sie das Prinzip der geringsten Privilegien an: Einer Aufgabe sollten nur die unbedingt erforderlichen Berechtigungen gewährt werden. Erzwingen Sie keine Eskalation von Berechtigungen. Jede Änderung des Zugriffs muss überwacht werden.
Verteidigung in der Tiefe: Sicherheit, und insbesondere die secure by design, erfolgt auf mehreren Ebenen. Defense in Depth wird auf alle Elemente Ihrer Umgebung und Ihrer Anwendungen ausgelegt und angewendet.