OWASP04 - Insecure Design
Einführung
Planung ist oft das Schlüsselelement zu allem was wir tun. So auch in der Software-Entwicklung. Insecure Design ist eine Sicherheitsschwachstelle, die durch schlechte oder nicht weitsichtige Planung entsteht. Grade in den immer größer werdenden Projekten spielt gute Planung und damit auch Secure Design eine wichtige und nicht zu unterschätzenden Rolle.
Was ist Insecure Design
Unsichers Design oder Insecure Design entsteht meistens, wenn bei der Planung der Software kaum bis gar kein Schwerpunkt auf die Sicherheit gelegt wird. Man muss dabei zusätzlich zwischen Insecure Design und Insecure Implementation. Das Design beschreibt lediglich die Planung der Software, während die Implementation die konkrete Umsetzung meint. Der Schwerpunkt ist hierbei auf das Design zu setzen, da selbst mit guter Implementierung von Software mit schlechtem Design große Sicherheitslücken entstehen. Mit fortlaufendem Umfang des Projekts wird es immer schwieriger und arbeitsaufwändiger die Fehler im Design zu beheben.
Beispiel für Insecure Design
Ein Kino besitzt ein Buchungssysttem. In diesem ist es möglich 15 Plätze ohne Anzahlung zu buchen. Dies könnte ausgenutzt werden, um mit wenigen falschen Benutzern alle verfügbaren Plätze zu reservieren ohne eine Anzahlung zu machen, um dem Kino zu schaden.
Wie kann man Insecure Design verhindern
In unserem Beispiel müsste man eine Anzahlung schon bei einer niedrigeren Anzahl von Plätzen verlangen oder generell eine Anzahlung für eine Reservierung verlangen.
Im Generellen vermeidet man Insecure Design Lücken mit einem sogenannten “Left Shift”. Mit “Left Shift” ist eine frühe und gut durchdachte Planung gemeint. Das Ziel ist eine gut strukturierte Planung um Fehler in der späteren Entwicklung weitgehend zu verhindern. Denn je früher die Probleme in der Planung miteinberechnet werden, desto einfacher wird es Lösungen für diese zu finden. Außerdem wird schon in den frühen Phasen der Entwicklung großen Wert auf die Sicherheit der Anwendung gelegt.
Möglichkeiten Insecure Design zu verhindern sind außerdem:
- Es sollten immer nach Möglichkeit die best practices befolgt werden
- Regelmäßige Penetrationstests durchführen
- Entwicklung mit einem Schwerpunkt auf Sicherheit angehen