Sicherheit und Anwendungsentwicklung 4 Tipps zur Sicherheit in DevOps-Prozessen

Autor / Redakteur: Roland Messmer / Peter Schmitz

Immer mehr Unternehmen entwickeln eigene Geschäftsanwendungen und Apps für Geschäftsprozesse und Kunden. Bei der Entwicklung sollten alle Abteilungen zusam­men­arbeiten. Gemeinsam können Entwicklungs-, App-Delivery- und IT-Security-Team die Sicherheit der Geschäfts­an­wen­dungen verbessern und gleichzeitig Zeit und Kosten für die Behebung und Vermeidung von Problemen einsparen.

Anbieter zum Thema

Bei der Entwicklung einer neuen Business-Anwendung sollten Entwicklungs-, App-Delivery- und IT-Security-Teams eines Unternehmens zusammenarbeiten.
Bei der Entwicklung einer neuen Business-Anwendung sollten Entwicklungs-, App-Delivery- und IT-Security-Teams eines Unternehmens zusammenarbeiten.
(Bild: Pixabay / CC0 )

Um zu verdeutlichen, wie dieser Ansatz in der Praxis funktionieren kann, hilft es, ein typisches DevOps-Szenario genauer zu betrachten. In diesem Fall hat das Team der Entwickler eine bestehende Geschäftsanwendung um neue Funktionen ergänzt und bringt die aktualisierte Anwendung auf den Markt. Während die aktualisierte Applikation sowohl in Test- als auch in Vorproduktionsumgebungen funktioniert, entstehen in der Produktionsumgebung jedoch Probleme. Jetzt ist in der Regel die Frage, was schiefgelaufen ist und wie lässt es sich wieder in Ordnung bringen?

Ein häufiger Grund für solche Ausfälle ist, dass die neuimplementierten Funktionen neue Verbindungen zu Netzwerkressourcen erfordern und diese in der Live-Produktionsumgebung blockiert sind. Dies passiert besonders oft, wenn die Sicherheitsrichtlinien in den Entwicklungs-, Test- und Vorproduktionsumgebungen lockerer als im allgemeinen Netzwerk gehalten werden. Die Netzwerkfilter oder Gateways, die in der Produktion üblicherweise installiert sind, gibt es in der Test- oder Vorproduktionsumgebung in vielen Fällen nicht. Einerseits wird so die Entwicklung der Anwendung vereinfacht, weil weniger Verbindungen berücksichtigt werden müssen, andererseits stimmt diese Umgebung nicht die spätere Realität ab – in der Entwicklungs- und Testumgebungen funktioniert alles perfekt, aber im Anwendungsfall blockieren die zusätzlichen Sicherheitsmaßnahmen die Verbindung zu Ressourcen, die für das neue Programm vorausgesetzt werden, damit es funktioniert.

Generell sollten vier Dinge berücksichtigt werden, um solche auf der Konnektivität basierende Ausfälle zu vermeiden, sobald die Anwendungen von der Test- und Vorproduktionsumgebung in die Live-Produktionsumgebung verschoben werden:

Dokumentation der erforderten Verbindungen der Anwendung. Es ist wichtig, die Verbindungen und Netzwerkressourcen zu dokumentieren, die eine neue Anwendung benötigt. Das Entwicklungsteam sollte ein aktuelles Repository aller relevanten Verbindungen pflegen. Dazu gehören auch IP-Adressen von Quelle und Ziel der einzelnen Netzwerkgeräte und -Ressourcen sowie Dienste und Netzwerkfunktionen, die zwischen der Anwendung und externen Ressourcen vermitteln.

Aktualisierung der Audits, wann immer Änderungen vorgenommen werden. Eine Aktualisierung der Audits sollte vorgenommen werden, wann immer Funktionen hinzukommen, die neue Verbindungen zu den besagten Ressourcen erfordern. Hierbei kann eine Lösung, die diese Aktualisierungen automatisch vornimmt, gewährleisten, dass alle Änderungen schnellstmöglich der Prüfung durch das Sicherheitsteam unterzogen werden – am besten noch während des Entwicklungszyklus.

Verschärfung der Sicherheit im Rahmen von Tests und Vorproduktion. Es ist empfehlenswert, die Sicherheitsmaßnahmen in den Test- und Vorproduktionsumgebungen zu verschärfen, sodass beide Umgebungen die Live-Produktionsumgebung hinsichtlich Funktionalität, Netzwerktopologie und Richtlinien zur Filtrierung bestmöglich imitieren. Selbst wenn das Entwicklungsteam vergisst, neue Verbindungen zu dokumentieren oder nicht erkennt, dass ein neuer Zugriff auf eine Ressource benötigt wird, werden auf diese Weise sehr viele Probleme bereits in einer frühen Test- und Vorproduktionsphase erkannt, und nicht erst in der Live-Umgebung. Es spart Zeit und verhindert Unterbrechungen im Geschäftsalltag, solche Probleme zu lösen, bevor die Anwendung in die volle Produktion verschoben wird.

Adressänderungen, wenn Anwendungen verschoben werden. Wenn die Test- und Vorproduktionsumgebungen so geschaffen sind, dass sie der späteren Produktionsumgebung möglichst ähnlich sind, gilt es einen wichtigen Punkt nicht außer Acht lassen: Im Repository der von der Anwendung genutzten Verbindungen sollte eine separate Aufzeichnung für jede Anwendung in jeder einzelnen Umgebung vorhanden sein. Der Grund dafür ist, dass die Anwendung über den gleichen logischen Aufbau und die gleichen Dienste verfügt, wie Server, Datenbanken und anderen Ressourcen, jedoch andere IP-Adressen als die Server und Datenbanken in den anderen Umgebungen hat.

Wenn die Anwendung dann zwischen den Phasen des Lebenszyklus von der Entwicklung zur Produktion migriert wird, ist es nötig, dafür zu sorgen, dass die Sicherheitsrichtlinien für die nächste Phase den erforderlichen Datenverkehr erlauben. Dabei handelt es sich nicht um ein einfaches Kopierverfahren: in den Regelungen und Richtlinien der vorherigen Phase müssen alle IP-Adressen durch die neuen Adressen für die neue Phase ersetzt werden. Eine Richtlinienautomatisierung, die DevOps-Methodologien unterstützt, kann diesen Prozess in allen neuen Umgebungen im DevOps-Lebenszyklus automatisch verwalten.

Wird Sicherheit frühzeitig in den DevOps-Prozess integriert, können Organisationen die Geschwindigkeit und Agilität der Anwendungsentwicklung maximieren, die der Prozess verspricht, und gleichzeitig die Gefahr von Problemen und Ausfällen minimieren, wenn die Anwendungen live gehen.

Über den Autor: Roland Messmer ist Sales Director Central Europe bei AlgoSec.

(ID:45415409)