Was bedeutet Security by Design? (Definition und Abgrenzung zu „Security by Obscurity“)
Security by Design bedeutet, IT-Sicherheit von der ersten Codezeile und in jeder Phase des Lebenszyklus mitzudenken – Anforderung, Architektur, Implementierung, Betrieb. Im Gegensatz dazu steht „Security by Obscurity“: sich auf Geheimhaltung oder Verstecken zu verlassen, statt auf robuste Mechanismen. Security by Design baut auf klaren Prinzipien, Bedrohungsmodellen und kontinuierlicher Prüfung.
Die 7 Prinzipien von Security by Design
Es werden nur die Dienste, Ports, Endpunkte und Funktionen exponiert, die für den Betrieb nötig sind. Unnötige Features, Debug-Modi oder administrative Schnittstellen werden in Produktion deaktiviert oder gar nicht erst ausgeliefert. So reduziert sich die Anzahl der möglichen Einstiegspunkte für Angreifer; weniger Code und weniger Konfiguration bedeuten weniger potenzielle Schwachstellen. Regelmäßige Bestandsaufnahmen (welche Dienste laufen, welche APIs sind öffentlich?) helfen, die Angriffsfläche bewusst klein zu halten.
Die Standardkonfiguration einer Anwendung oder eines Systems ist von Haus aus sicher – z. B. Verschlüsselung aktiviert, starke Authentifizierung erforderlich, nur notwendige Rechte vergeben. Erweiterungen oder bequemere, aber unsichere Optionen müssen bewusst aktiviert werden. So vermeiden Sie, dass versehentlich unsichere Einstellungen (z. B. Passwort-Login ohne 2FA, HTTP statt HTTPS) in Produktion landen. Dokumentation und Schulung sollten die sicheren Defaults betonen.
Nutzer und Prozesse erhalten nur die minimal nötigen Rechte – gerade so viel, um ihre Aufgabe zu erledigen, nicht mehr. Das gilt für Benutzerkonten (kein Admin-Recht für normale Anwender), für Dienstkonten (keine unnötigen Datei- oder Netzwerkzugriffe) und für APIs (rollenbasierter Zugriff). So begrenzen Sie den Schaden bei Kompromittierung eines Kontos oder einer Komponente; Angreifer können nicht ohne Weiteres weitere Systeme übernehmen.
Sicherheit beruht nicht auf einer einzigen Maßnahme (z. B. nur Firewall oder nur Passwort), sondern auf mehreren aufeinander abgestimmten Ebenen. Beispiele: Netzwerksegmentierung, Firewall, Authentifizierung, Autorisierung, Verschlüsselung, Logging und Monitoring. Wenn eine Schicht durchbrochen wird, greifen die nächsten. So wird ein Angriff erschwert und kann früher erkannt werden; Single Points of Failure werden vermieden.
Fehlermeldungen und Logs dürfen keine sensiblen Informationen (Passwörter, interne Pfade, Stack Traces mit Quellcode) an Nutzer oder Angreifer preisgeben. Gleichzeitig muss das System bei Fehlern in einen sicheren Zustand fallen (Fail Secure) – z. B. Zugriff verweigern statt bei Fehler durchlassen. Sauberes Error-Handling verhindert, dass Ausnahmen zu unerwarteten Lücken führen (z. B. Information Disclosure oder Umgehung von Prüfungen).
Alle Eingaben von Nutzern, Partnern oder anderen Systemen werden als potenziell bösartig behandelt: validieren (Format, Länge, erlaubte Zeichen), escapen (z. B. für HTML/SQL) und berechtigen (darf dieser Nutzer diese Aktion mit diesen Daten ausführen?). So werden typische Angriffe wie Injection (SQL, Command, XSS) und Manipulation von Parametern verhindert. Whitelisting (nur erlaubte Werte) ist strikter als Blacklisting.
Architektur, Datenflüsse, identifizierte Risiken und umgesetzte Sicherheitsmaßnahmen werden dokumentiert und regelmäßig geprüft. So können Sicherheitslücken bei Änderungen oder bei Audits nachvollzogen werden; neue Teammitglieder verstehen die Sicherheitsarchitektur. Transparenz bedeutet nicht, Quellcode öffentlich zu machen, sondern intern klare Beschreibungen von Verantwortlichkeiten, Bedrohungsmodellen und Gegenmaßnahmen zu pflegen.
Mehr unter IT-Sicherheit, Softwareentwicklung DSGVO-konform, Individuelle Softwareentwicklung.
Security by Design in der Praxis: Unsere Maßnahmen
In der Planungsphase identifizieren wir systematisch Bedrohungen und Angriffsflächen – z. B. mit Methoden wie STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege). Für jede Komponente und jeden Datenfluss fragen wir: Was kann ein Angreifer wollen, und wie könnte er vorgehen? Daraus leiten wir konkrete Gegenmaßnahmen ab (z. B. Verschlüsselung, Zugriffskontrolle, Logging). Threat Modeling wird bei größeren Projekten wiederholt, wenn sich Architektur oder Kontext ändern.
Statische Code-Analyse prüft den Quellcode ohne Ausführung auf typische Schwachstellen – z. B. SQL-Injection, unsichere Kryptografie, hardcodierte Secrets, gefährliche Funktionen. Die Tools laufen automatisch in der CI/CD-Pipeline; gefundene Findings werden priorisiert und behoben, bevor Code in den Hauptzweig oder in Produktion gelangt. So werden viele Fehler früh entdeckt, bevor sie zu Sicherheitsvorfällen werden. Wir setzen etablierte Werkzeuge ein und passen die Regeln an den Tech-Stack an.
Dynamische Tests prüfen die laufende Anwendung von außen – z. B. automatische Scans auf bekannte Schwachstellen (veraltete Bibliotheken, fehlende Header, unsichere Konfiguration). Beim Penetration Testing simulieren wir gezielt Angriffe wie ein Angreifer: Aufklärung der Oberfläche, Versuche auf Authentifizierung und Autorisierung, Injection-Tests, Prüfung von Session-Handling und Zugriffskontrolle. Kritische und hohe Findings werden vor Go-Live behoben; der Bericht dokumentiert Risiken und Empfehlungen. Penetrationstests empfehlen wir vor dem Livegang bei sensiblen Daten oder hohem Risiko und in definierten Abständen danach.
Wir folgen Codierrichtlinien für sichere Entwicklung: Input-Validierung, keine hardcodierten Secrets, sichere APIs und Bibliotheken. In Code Reviews prüfen wir explizit auf Sicherheitsaspekte und die OWASP Top 10 (z. B. Injection, fehlerhafte Authentifizierung, sensible Datenexposition). So werden Schwachstellen bereits beim Schreiben vermieden und in Reviews aufgedeckt – ergänzend zu automatisierten Tests.
Security by Design und DSGVO-Konformität (Art. 25 DSGVO)
Datenschutz durch Technikgestaltung und durch datenschutzfreundliche Voreinstellungen (Art. 25 DSGVO) und Security by Design gehen Hand in Hand: Sichere Software schützt personenbezogene Daten durch Verschlüsselung, Zugriffskontrolle, minimale Datenerhebung und sichere Speicherung. Wir setzen beides in unseren Projekten um – technisch und organisatorisch.
Häufige Fragen zu Security by Design (FAQ)
- Verlangsamt Security by Design die Entwicklung?
Kurzfristig können Reviews und Tests Zeit kosten – langfristig spart man teure Nachbesserungen und Sicherheitsvorfälle. - Ab wann brauchen wir einen Pentest?
Empfohlen vor Go-Live bei sensiblen Daten oder hohem Risiko; danach regelmäßig oder nach größeren Änderungen. - Was sind die OWASP Top 10?
Die zehn häufigsten kritischen Schwachstellen in Webanwendungen – z. B. Injection, fehlerhafte Authentifizierung, sensible Datenexposition. Wir richten unsere Entwicklung danach aus. - Reicht Security by Design für Compliance?
Technik ist ein wichtiger Teil; dazu kommen Prozesse, Dokumentation und ggf. Zertifizierungen. Wir unterstützen Sie bei beidem.