Zusammenfassung

Sichere Anwendungsentwicklung bedeutet, Sicherheit nicht erst am Ende zu prüfen, sondern von Anfang an in Anforderungen, Architektur, Code, Tests, Konfiguration und Betrieb einzubauen. Im Kern ist es: Schwachstellen sollen möglichst früh verhindert, früh erkannt oder im Schaden begrenzt werden.

Wichtige Begriffe:

  • SDL (Secure Development Lifecycle): Strukturierter Entwicklungsprozess, der Sicherheit in jede Phase einbindet.
  • Threat Modeling: Systematische Suche nach Bedrohungen, bevor Code geschrieben wird.
  • STRIDE: Modell mit sechs Bedrohungskategorien: Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege.
  • Input Validierung: Prüfung von Eingaben, bevor sie verarbeitet werden.
  • Output Encoding: Kodierung von Ausgaben, damit Eingaben nicht als Code interpretiert werden.
  • Prepared Statement: Parametrisierte Datenbankabfrage, bei der SQL-Befehl und Benutzerdaten getrennt bleiben.
  • Sandboxing: Ausführung von Code in einer abgegrenzten Umgebung mit begrenzten Rechten.
  • SAST: Statische Analyse des Quellcodes.
  • DAST: Dynamischer Test der laufenden Anwendung von außen.
  • DevSecOps: Integration von Sicherheit in automatisierte Entwicklungs- und Deployment-Prozesse.
  • SCA (Software Composition Analysis): Prüfung externer Bibliotheken und Pakete auf bekannte Schwachstellen.
  • SBOM (Software Bill of Materials): Software-Stückliste aller enthaltenen Komponenten.

Auch Sichere Konfiguration ist Teil sicherer Anwendungsentwicklung. Der Code kann sauber sein und trotzdem unsicher laufen, wenn Produktionswerte falsch gesetzt sind.

Wichtige Leitfragen für sichere Anwendungskonfiguration:

  • Startet die Anwendung mit sicheren Standardwerten?
  • Bricht sie ab, wenn kritische Produktionswerte fehlen?
  • Sind Testfunktionen in Produktion technisch ausgeschlossen?
  • Werden gefährliche Einstellungen im Review sichtbar?
  • Gibt es automatische Prüfungen vor dem Deployment?
  • Können Secrets rotiert werden, ohne den Code zu ändern?

Sichere Anwendungsentwicklung schützt nicht nur einzelne Codezeilen. Sie verbindet sichere Architektur, saubere Eingabe- und Ausgabeprüfung, sichere Fehlerbehandlung, begrenzte Ausführungsumgebungen, sichere Konfiguration, automatisierte Analyse, DevSecOps und Supply-Chain-Schutz zu einem durchgängigen Entwicklungsprozess.

Nach oben scrollen