Automatische Schwachstellen-Analysen

Mehr Sicherheit für DevOps

18.11.2018
Von   
Markus Schumacher berät IT Unternehmen strategisch beim Wachstum. Er war zuvor General Manager Europe bei Onapsis, an die er sein Unternehmen Virtual Forge Mitte 2019 verkauft hat. Als Mitgründer, CEO und Geschäftsführer der Virtual Forge GmbH arbeitete er als Experte für Cybersecurity im ERP-Betrieb. Zuvor war er Repräsentant des Fraunhofer Instituts für Sichere IT (SIT) und leitete den Bereich "Security and Embedded Devices". Davor arbeitete er bei SAP als Produktmanager (SAP NetWeaver Security) und Leiter des TCO-Projekts im Bereich der damals neuen Business ByDesign-Lösung.
Immer mehr Unternehmen fördern die enge Zusammenarbeit von Entwicklung (Development) und Betrieb (Operations), um die Auslieferung hochwertiger Software zu beschleunigen. Doch erfordert das schnelle DevOps-Umfeld einen Sicherheitsansatz, der über das funktionale DevSecOps-Konzept hinausgeht: Secure DevOps.

Auf fruchtbaren Boden fällt DevOps aktuell besonders im SAP-Umfeld: Hier breitet sich mit HANA eine Entwicklungsplattform aus, die durch die Big-Data-Verarbeitung ideale Voraussetzungen für die schnelle und agile Programmierung neuer Anwendungen mit hoher Qualität bietet. Dies kommt den wachsenden Anforderungen der Unternehmen entgegen, flexibel auf veränderte Markt- und Kundenbedürfnisse reagieren zu müssen, um im Wettbewerb erfolgreich zu sein. Statt weniger großer SAP-Releases, wie bei der herkömmlichen Software-Entwicklung üblich, werden laufend zahlreiche kleinere Funktionen und Lösungen auf Basis der hochperformanten HANA-Plattform in Betrieb genommen.

Unternehmen, deren Programmierer, im DevOps-Umfeld arbeiten, sollten die Sicherheitsrisiken so gering wie möglich halten.
Unternehmen, deren Programmierer, im DevOps-Umfeld arbeiten, sollten die Sicherheitsrisiken so gering wie möglich halten.
Foto: Jelena Danilovic - shutterstock.com

Funktionaler Ansatz greift zu kurz

Doch auch wenn der Zeitdruck im DevOps-Umfeld noch so hoch ist, darf das Thema Sicherheit nicht auf der Strecke bleiben - zumal durch die Fülle an Neuprogrammierungen erhöhte Angriffsmöglichkeiten für Cyber-Kriminelle und Wirtschaftsspione entstehen. Mit DevSecOps hat sich zwar ein neuer Ansatz entwickelt, der den Sicherheitsanforderungen bei der agilen Software-Entwicklung Rechnung zu tragen versucht.

Doch greift dieser Ansatz zu kurz, da er sich vorrangig auf funktionale Schutzmaßnahmen für die DevOps-Umgebung fokussiert. So kommen beispielsweise Authentifizierungen, Berechtigungen und Verschlüsselung zum Einsatz, um Schnittstellen gegen Manipulationen zu schützen oder zu verhindern, dass durch Drittkomponenten mögliche Sicherheitslücken entstehen.

So wichtig diese funktionalen Schutzkomponenten auch sind, so wenig reichen sie jedoch aus, um den Sicherheitsrisiken im DevOps-Umfeld wirksam zu begegnen. Daher sollten Unternehmen gleichzeitig einen technischen Ansatz verfolgen, der die Security von Anfang an in die Entwicklung einbezieht und geeignete Werkzeuge nutzt, um den Sicherheitsanforderungen im gesamten Software-Lebenszyklus zu begegnen: Secure DevOps.

Dabei sollten Sicherheitsstandards, wie OWASP Top 10, SANS 25, BIZEC App / 11 und BIZEC Tec / 11, berücksichtigt und agil an jeweils mehreren Prüfpunkten automatisiert getestet werden.
Nur so ist gewährleistet, dass die neuen Funktionen und Anwendungen sicher programmiert, konfiguriert und auf das Zielsystem gebracht werden können.

Fahrplan für den Software-Lebenszyklus

Secure DevOps stellt an DevOps-Teams, die Anwendungen auf klassischer SAP- oder SAP HANA-Basis entwickeln, in den einzelnen Phasen des Software-Lebenszyklus folgende Anforderungen:

  1. Code-Entwicklung
    Je früher eine SAP-Sicherheitslücke beseitigt wird, desto geringer der Folgeaufwand. Daher sollten Fehler und Schwachstellen im ABAP-Code möglichst schon während der Programmierung identifiziert und korrigiert werden. Dazu stehen neben den Standard-Prüfwerkzeugen in der Entwicklungsumgebung von SAP auch Open-Source-Tools und Add-ons von Drittanbietern zur Verfügung, die den ABAP-Quellcode unter Berücksichtigung bestimmter Sicherheitsstandards analysieren.

    Diese Tools integrieren die Sicherheitsstandards in Form vorkonfigurierter Prüfkataloge und stellen sicher, dass jede Prüfung direkt während des Code-Schreibens automatisch erfolgt - vergleichbar der interaktiven Rechtschreibprüfung von Microsoft Word, mit der sich Text-Dokumente sofort bei der Eingabe auf Fehler analysieren und korrigieren lassen. Durch die automatischen Quellcode-Analysen werden manuelle Eingriffe der Programmierer überflüssig und damit verbundene Fehlermöglichkeiten verringert.

  2. Testphase
    Um das Sicherheitsniveau im DevOps-Umfeld weiter zu steigern, sollten gleich nach der Entwicklung automatisierte Tests verpflichtend sein, ohne die eine Code-Freigabe prinzipiell nicht möglich ist. Auch für diese Testphase kann unter verschiedenen Prüfwerkzeugen gewählt werden, mit denen der ABAP-Quellcode direkt in der Entwicklungsumgebung getestet wird. Ob Tools von SAP-, Open-Source- oder Add-on-Anbietern dabei zum Einsatz kommen, hängt von den individuellen Anforderungen im Unternehmen ab. Stellt sich in der Testphase heraus, dass der Code den erforderlichen Qualitätskriterien nicht genügt, darf er auf keinen Fall ins nächste Level transportiert, sondern muss korrigiert werden.

  3. Build-Phase
    In der Build-Phase werden die einzelnen ABAP-Code-Fragmente zusammen mit den Konfigurationen und Tabellen-Inhalten in ausführbare Einheiten "gepackt" - daher auch Pakete oder, im SAP-Jargon: Transporte genannt. Das Transportwesen in SAP ist ein wichtiges Werkzeug, um Eigenentwicklungen ins produktive System zu überführen. Da es jedoch keine detaillierte Überprüfung an den Transportobjekten vornimmt, stellt sich erst nach dem Einspielen heraus, ob sich die Anpassungen ohne negative Auswirkungen einfügen lassen.

    Daher sollten bereits in der Build-Phase automatische Sicherheits- und Qualitätstests erfolgen. Darüber hinaus stellt die Integration dieser Prüfungen in den Change Prozess sicher, dass die Anpassungen im produktiven SAP-System keine kritischen Einstellungen verändern oder unbeabsichtigt Daten überschreiben.

  4. Laufzeit-Umgebung / Betrieb
    Da jede Änderung das Laufzeit-Verhalten eines Systems beeinflusst, kann damit auch eine Verschlechterung des Sicherheitsniveaus verbunden sein - zum Beispiel dann, wenn durch eine neue Konfiguration eine Protokollierung deaktiviert wird. Um dies zu vermeiden, sollte der Systembetrieb zyklisch mit geeigneten Testwerkzeugen überprüft werden. Kommt es dabei zu einem Sicherheitsvorfall, muss der System-Administrator sofort einen entsprechenden Alarm erhalten.

Prüfwerkzeuge nahtlos miteinander koppeln

Zahlreiche Praxisbeispiele belegen: Bereits bei der herkömmlichen Programmierung im SAP-Umfeld sind IT-gestützte Tests unverzichtbar, um Sicherheitslücken im Code und in den Anwendungen rechtzeitig erkennen und korrigieren zu können. Dies gilt umso mehr für das DevOps-Konzept, das einen permanent großen Durchsatz mit Agilität und hohen Qualitätsansprüchen kombiniert. Um bei DevOps auf der sicheren Seite zu sein, sollten Unternehmen durchgängig in jeder Phase des Software-Produktlebenszyklus Prüfwerkzeuge einsetzen, die direkt in die DevOps-Umgebung integriert werden und einen hohen Automatisierungsgrad gewährleisten.

Für welche Sicherheitswerkzeuge sich ein Unternehmen dabei auch immer entscheidet: Wichtig ist, dass die einzelnen Komponenten nahtlos integriert und miteinander gekoppelt werden können, damit keine Medienbrüche entstehen. Denn ansonsten droht die Gefahr, dass schnell der Überblick verlorengeht und vorhandene Fehler- oder Mängellisten übersehen werden.