Übungsaufgabe
Szenario:
Sie sind ein Softwareentwickler, der beauftragt wurde, eine CRM (Customer Relationship Management)-Anwendung für ein mittelständisches Unternehmen zu entwickeln. Die Anwendung soll es dem Unternehmen ermöglichen, Kundeninformationen zu verwalten, Kontakte zu pflegen, Verkaufsaktivitäten zu protokollieren und Berichte zu erstellen. Da die CRM-Anwendung sensible Unternehmens- und Kundendaten enthält, ist es von größter Bedeutung, die Sicherheit der Daten zu gewährleisten. Denken Sie über die Privilegien nach, die bei der Entwicklung dieser CRM-Anwendung umgesetzt werden müssen, und nennen Sie jeweils zwei konkrete Schritte, um diese Privilegien zu realisieren.
Systeminformationen:
- Die CRM-Anwendung wird webbasiert entwickelt und wird von Mitarbeitern über verschiedene Geräte wie Desktop-Computer, Laptops und mobile Endgeräte genutzt.
- Die Anwendung wird auf einem internen Server des Unternehmens gehostet.
- Es wird eine relationale Datenbank für die Speicherung der Kundendaten verwendet, und es werden auch Dokumente wie Verträge oder Notizen in der Anwendung gespeichert.
- Die Anwendung erfordert eine nahtlose Integration mit vorhandenen Unternehmenssystemen wie E-Mail-Servern, Buchhaltungssoftware oder Kundensupport-Ticketing-Systemen.
- Es werden verschiedene Benutzerrollen in der CRM-Anwendung benötigt, wie z.B. Administratoren, Vertriebsmitarbeiter, Kundendienstmitarbeiter und Teamleiter.
- Die Anwendung sollte die Anforderungen an die Datenschutz-Grundverordnung (DSGVO) erfüllen und den Datenschutz der Kundendaten gewährleisten.
- Es wird erwartet, dass die CRM-Anwendung regelmäßige Updates und Wartungsarbeiten erfährt, um Sicherheitslücken zu beheben und die Leistung zu optimieren.
- Die Anwendung sollte über ein zentrales Protokollierungssystem verfügen, um Aktivitäten der Benutzer, Systemereignisse und Sicherheitsvorfälle zu überwachen und zu protokollieren
Aufgabe:
Ihre Aufgabe besteht darin, die Umsetzung der Secure Design Principles in der CRM- Anwendung zu analysieren und jeweils zwei konkrete Schritte für die Realisierung der folgenden Privilegien zu identifizieren:
- Least Privilege (geringste Privilegien):
- Defense in Depth (mehrstufige Verteidigung):
- Fail-Safe (ausfallsichere Voreinstellungen):
- Secure by Default (sicherheitstechnisch voreingestellt):
- No Security by Obscurity (keine Sicherheit durch Verschleierung)
Antworten:
Least Privilege
- Benutzerrollen definieren mit entsprechenden geringstnötigen Privilegien. Administratoren, Vertriebsmitarbeiter, Kundendienstmitarbeiter und Teamleiter.
- Zugriffskontrolle implementieren. z.B. Rollenbasierte oder Attribut-basierte Zugriffskontrolle.
- Berechtigungen für Zugriff auf Sensible Daten (z.B. Kundendaten) benötigt
- Infrastruktur: Systeme bekommen nur erforderlichen Zugriffsrechte. (z.B. DB whitelist only app-server can talk to it)
Defense in Depth
- Netzwerksicherheit nutzen: z.B: Firewall, IDS, IPS, Anomalie-erkennungs-Systeme...
- Whitelisting, Blacklisting. (z.B. DB can only be reached from IP:port of app-server)
- Verschlüsselung von Kommunikation (SSL TLS)
- Verschlüsselung von Daten (Passwörter salted hashed)
- Inputvalidierung
- Content Security Policies
Fail-Safe (ausfallsichere Voreinstellungen):
- while endlosschleife die den prozess wieder startet wenn er ausfällt
Secure by Default (sicherheitstechnisch voreingestellt):
- Verschlüsselte Kommunikation
- Deaktivierung von nicht benötigten Diensten / Features
- Benutzerkonten ohne Passwörter dürfen nicht aktiv sein
- automatisches patchen (nicht durch nutzer angestoßen)
- Session-Timeout
- ID-Templates (???)
No Security by Obscurity (keine Sicherheit durch Verschleierung)
- offene Sicherheitsarchitektur nutzen, keine proprietären Sicherheitsprotokolle
- Pen-Test durchführen lassen
- öffentliche Kryptografische verfahren
- nur weil die URL nicht direkt einsehbar ist, ist sie nicht nicht aufrufbar