Anbieter zum Thema
Neue Entwicklungsprozesse erfordern ein Umdenken
Die vielen prominenten Sicherheitsvorfälle im vergangenen Jahr machen deutlich, dass dieses Problem noch weit von seiner Lösung entfernt ist. Wenn iterative Entwicklung die Methode der Zukunft ist, wie können wir dann verhindern, dass solche Probleme auftreten?
Natürlich wird jedes vorausschauende Unternehmen ein ganzes Arsenal an speziellen Tools für Informationssicherheit im Einsatz haben. Doch gerade traditionelle Ansätze passen nicht unbedingt am besten zu den modernen Entwicklungsmethoden von heute: Zu dem Zeitpunkt, an dem ein vollständiger System-Scan abgeschlossen ist, richtet der Bug unter Umständen bereits im Produktivbetrieb Schaden an.
Konventionelle Sicherheitsstrategien, die darauf abzielen, Mauern zu errichten, werden den Continuous-Delivery-Prozess behindern und die Entwickler frustrieren. Aus diesem Grund bedarf es eines eher holistischen Ansatzes, der das große Ganze im Blick hat und einen sorgfältigeren, strengeren Umgang mit internen Prozessen erforderlich macht.
Denn selbstverständlich gilt: Je früher eine potentielle Schwachstelle entdeckt wird, desto besser stehen die Chancen, dass ihre Auswirkungen minimiert und die daraus entstehenden Kosten so gering wie möglich gehalten werden können. Mit folgenden fünf „Best Practices“ lässt sich dieser Prozess optimieren:
1. Für eine lückenlose Beweiskette sorgen
Sollte ein Problem auftreten, muss nachvollziehbar sein, was genau im Release beinhaltet war – nicht nur in Bezug auf den Quellcode, sondern auch auf ausführbare Dateien und Images der virtualisierten Maschinen („Infrastructure as Code“). Denn nur so können die möglichen Auswirkungen eingeschätzt werden.
Es gilt deshalb, einen einzigen, zentralen Referenzbestand („Single Source of Truth“) durch die Verwendung eines Versionsmanagement-Tools sicherzustellen. Dies erlaubt es Entwicklern, jederzeit auf einen Blick zu sehen, was aktuell im Entwicklungsprozess geschieht und in der Vergangenheit geschehen ist (Wer hat was, wann und wo geändert?). Zudem ist es damit möglich, im Notfall ein Rollback auf eine frühere Version durchzuführen.
2. So viel wie möglich automatisieren
Durch Automatisierung von Prozessen, die für kontinuierliche Integration, Tests und Bereitstellung notwendig sind, kann die Dauer bis zur Marktreife des Produkts verkürzt werden, die Fertigstellung wird planbarer. Zudem reduzieren automatisierte Prozesse die Wahrscheinlichkeit menschlicher Fehler, und damit die Entstehung von Sicherheitslücken.
Die Automatisierung komplexer Build- und Testsysteme – etwa Applikationen mit vielen unterschiedlichen Content-Arten oder Projekte, an denen mehrere weltweit verteilte Teams mitarbeiten – macht ein gemeinsames Repository unerlässlich, um Duplizierungen oder Lücken im Validierungsprozess zu vermeiden. Natürlich lässt sich nicht jeder Prozess automatisieren – erstaunlich viele allerdings sehr wohl.
(ID:43377549)