Skip to main content

Software Engineering

Secure Coding

Entwicklung sicherer Software durch den Einsatz etablierter Methoden und Analyse-Tools.

Secure Coding

Leitprinzipien für sicherere Softwareentwicklung

Cyber-Security-Vorfälle sind überwiegend auf schlecht entwickelte Software zurückzuführen. Bei der Entwicklung setzen wir auf die folgenden Leitprinzipien für sicherere Software.

Secure by Design

Secure by Design ist ein Gestaltungsprinzip. Sicherheit wird bereits bei der Planung von Architektur und Produkt berücksichtigt. Dazu gehören minimale Berechtigungen, sichere Standardeinstellungen, eine möglichst kleine Angriffsfläche, die Trennung kritischer Komponenten und der Einsatz sicherer Programmiersprachen, wie zum Beispiel Rust.

Secure Development Lifecycle

Secure Development Lifecycle (SDL) bezeichnet einen strukturierten Entwicklungsprozess. Sicherheitsmaßnahmen begleiten dabei den gesamten Lebenszyklus der Software. Dazu zählen Sicherheitsanforderungen, Bedrohungsanalysen, sichere Programmierung, Codeprüfungen, Sicherheitstests sowie das Schwachstellenmanagement im laufenden Betrieb.

OWASP

Die OWASP Top 10 helfen Teams dabei, typische und besonders häufig auftretende Schwachstellen zu erkennen, zu priorisieren und zu vermeiden. Sie sind kein vollständiger Sicherheitsstandard, sondern ein Einstiegspunkt und gemeinsamer Referenzrahmen.

International referenziert, unter anderem von den Behörden NIST, ENISA und dem BSI in Deutschland.

Zugriffe werden nicht ausreichend geprüft, Nutzer kommen an Daten oder Funktionen, die ihnen nicht zustehen.

Unsichere Standardeinstellungen, offene Funktionen oder fehlende Härtung.

Schwachstellen in eingebundenen Komponenten, Build-Prozessen oder der Auslieferung.

Sensible Daten sind unzureichend oder gar nicht verschlüsselt.

Eingeschleuste Befehle werden ausgeführt, etwa SQL-Injection oder Cross-Site-Scripting.

Sicherheit wurde im Entwurf nicht mitgedacht, die Lücke steckt schon im Konzept.

Schwächen bei Anmeldung und Sitzungsverwaltung.

Updates, Builds oder Daten ohne Integritätsprüfung, anfällig für Manipulation.

Angriffe bleiben unbemerkt, weil zu wenig protokolliert und alarmiert wird.

Fehler- und Ausnahmesituationen werden falsch behandelt und führen zu unsicherem Verhalten.

Werkzeuge

Analyse-Tools

Etablierte Werkzeuge sind im Entwicklungsprozess fest eingebunden und werden automatisiert in CI/CD-Pipelines für die Prüfung von Quellcodes eingesetzt. Darüberhinaus arbeiten Entwickler mit lokalen Instanzen zur manuellen Prüfung.

Static Application Security Testing (SAST)

Untersucht den Software-Quellcode auf Schwachstellen und riskante Muster, bevor die Software gebaut wird.

SonarQube

SonarQube

Semgrep

Semgrep

Dynamic Application Security Testing (DAST)

Prüfung der laufenden Anwendung auf Fehler, die während der Laufzeit auftreten können.

Zed Attack Proxy (ZAP)

Zed Attack Proxy (ZAP)

Burp Suite

Burp Suite

Software Composition Analysis (SCA)

Ein automatisierter Prozess, der eingesetzte Software-Bibliotheken auf Sicherheitslücken und Lizenzproblemen prüft.

Trivy

Trivy

Dependabot

Dependabot

Wir freuen uns auf Ihre Anfrage

Erzählen Sie uns von Ihrem Vorhaben. Gerne unterstützen wir Sie bei der Realisierung Ihres sicheren Software-Projekts.