Newsletter Anmeldung

Bleiben Sie mit dem Newsletter immer up to date.

Anfrage
arrow-to-top

DevSecOps und SolarWinds

04/2021 – Fachartikel Swiss Infosec AG

Sichere Softwareentwicklung bei zugleich geringer Time-to-market

Software wird heutzutage in hohem Tempo entwickelt. Neue Features werden hinzugefügt, Benutzerfreundlichkeit, Performance und Sicherheit laufend verbessert. Das hinzugewonnene Tempo ist massgeblich DevOps-Praktiken und Werkzeugen zu verdanken, mit denen Software-Aktualisierungs- und Ausrollzyklen enorm verkürzt werden konnten. Bereits in der DevOps Pipeline ist entwickelte Software jedoch Sicherheitsrisiken ausgesetzt, wie jüngst der SolarWinds-Angriff eindrücklich demonstriert hat[1]. Angreifer waren in der Lage, eine Backdoor in die von SolarWinds entwickelte Software Orion einzuschleusen, womit sie Zugriff zu Systemen vieler Orion-Kunden erlangten. Abhängig vom betroffenen System kam es zu gravierenden Folgeschritten wie der Etablierung permanenter Zugänge und lateralen Bewegungen innerhalb der Umgebung des betroffenen Kunden.

DevSecOps-Ansatz als Allheilmittel?

Um Bedrohungen bei der Entwicklung von Software zu begegnen, müssen Sicherheitsthemen im DevOps-Zyklus berücksichtigt werden.

Abbildung DevSecOps Software Lifecycle
Abbildung: DevSecOps Software Lifecycle
Quelle: DoD Enterprise DevSecOps Reference Design, Version 1.0, 12 August 2019

In jeder Phase des abgebildeten DevSecOps Lifecycles sind sicherheitsrelevante Überprüfungen oder Aspekte möglich.

  1. Plan: Angriffsmöglichkeiten werden identifiziert und das Design der Software entsprechend angepasst.
  2. Develop: Die Software wird entwickelt. Dabei sind auf Sicherheit sensibilisierte Entwickler, die Best Practices befolgen, entscheidend. Eine IDE (Integrated Development Environment) mit integrierter statischer Codeanalyse gibt Entwicklern ausserdem prompte Feedbacks, z.B. nicht initialisierte Variablen, unbereinigter Input und unbehandelte Exceptions.
  3. Build: Der Code wird kompiliert. Davor wird er einer weiteren Qualitätsprüfung unterzogen, welche neben oben genannten Überprüfungen auch das Aufspüren von Malware beinhalten kann.
  4. Test: Neben Unit- und Integrationstests, die die Funktionalität prüfen, lässt sich die Software auch automatisiert auf Schwachstellen prüfen. Es lässt sich ausserdem ein Penetrationstest durchführen, bei dem eine manuellere und tiefere Untersuchung vorgenommen wird.
  5. Release: Die Software wird paketiert und signiert, um weitere Manipulationen zu verunmöglichen und einen Beweis liefern zu können, dass sie vom Hersteller stammt.
  6. Deliver: Die Software gelangt auf sicherem Wege zum Kunden.
  7. Deploy: Die Software wird schrittweise ausgerollt. Üblicherweise zuerst in einer Entwicklungs-, dann eine Test- und schlussendlich eine produktive Umgebung. In vorproduktiven Umgebungen kann die Software auf Anomalien und Malware untersucht werden. Beim Überführen in die produktive Umgebung müssen die Software und umliegende Komponenten sicher konfiguriert werden. Da heutzutage Infrastruktur als Code formuliert ist, z.B. als AWS CloudFormation Templates, Kubernetes Manifests, etc., lassen sich solche Konfigurationen zu einem grossen Teil statisch und automatisiert testen.
  8. Operate: Im Betrieb kann ein umfassender Audit durchgeführt werden, der die Software im Kontext der Umgebung überprüft und dabei auch nicht technische Aspekte wie Organisation, Prozesse, Richtlinien sowie Dokumentationen untersucht.
  9. Monitor: Logfiles der Software und der Umgebung werden laufend gesammelt und ausgewertet.
  10. Feedback: Aufgrund der Beobachtungen, möglicherweise auch aufgrund von tatsächlichen Angriffen, werden Schwachstellen in der Software identifiziert und fliessen in eine nächste Plan-Phase ein, woraufhin der ganze Zyklus von vorne beginnt.

Der SolarWinds-Angriff hat allerdings gezeigt, dass selbst alle oben genannten Massnahmen unzureichend sein können.

Was fehlte ist eine sichere Entwicklungsumgebung

Seit FireEye’s Enthüllung[1] am 13. Dezember 2020 haben weitere Untersuchungen[2],[3],[4],[5] bestätigt, dass der Angriff in der Build-Phase geschah.

Abbildung Grober Ablauf des SolarWinds Angriffs
Abbildung: Grober Ablauf des SolarWinds-Angriffs

Die Angreifer waren in der Lage, eine Backdoor in SolarWinds.Orion.Core.BusinessLayer.dll einzuschleusen, genannt SUNBURST. In der Quelldatei InventoryManager.cs konnten sie insbesondere Code einbetten, der BusinessLayer.dll zur Ausführung brachte. Das Einschleusen dieses Codes geschah automatisiert durch die separate Malware SUNSPOT. SUNSPOT untersuchte laufende Prozesse, um herauszufinden, wann die Orion-Software gerade kompiliert wurde. Sobald dies der Fall war, ersetzte sie InventoryManager.cs durch die modifizierte Version. Diese wurde daraufhin vom regulären Kompilierungsprozess in das finale Produkt eingebaut. SUNBURST war so geschrieben, dass statische und dynamische Code-Analysen die Backdoor nur schwer, wenn überhaupt, erkannt hätten. Der Angriff demonstriert damit eindrücklich, dass Massnahmen wie Secure Coding, SAST & DAST (static/dynamic application security testing), Release Signing und Sandboxing, selbst zusammen, unzureichend sein können. Die Build-Umgebung selbst muss auch ausreichend geschützt sein. Langfristig könnten reproduzierbare Builds eine Lösung darstellen[6]. Diese fördern zudem die Transparenz von Quellcode und ermöglichen es, auch von Herstellern absichtlich eingebaute Backdoors aufzudecken.

Gerne beantworten wir Ihre Fragen und unterstützen Sie bei der Etablierung sicherer Softwareentwicklungsprozesse, als auch bei der Durchführung von Penetrationstests und generellen Security Audits.

Fachteam IT-Sicherheit; 30.03.2021


Ein Managementsystem für Informationssicherheit nach ISO 27001 – auch ohne Zertifizierung erstrebenswert!

04/2021 – Fachartikel Swiss Infosec AG

Informationen stellen seit jeher einen wichtigen Wert in Unternehmungen dar. Datenverlust oder unerwünschte Preisgabe von Geschäftsgeheimnissen soll verhindert werden, das reibungslose Funktionieren von informationsverarbeitenden Systemen soll sichergestellt sein. Dies sind nur zwei von vielen weiteren Beispielen für Anforderungen, welche Unternehmungen an den Schutz ihrer Informationen haben sollten. Wie alle anderen Unternehmenswerte (z.B. Produktionsanlagen, Mitarbeitende, Innovationen) sind also auch Informationen vor Gefahren und Bedrohungen zu schützen, damit wirtschaftliche Schäden vermieden und Risiken minimiert werden können.

Mit dem Trend zur Digitalisierung kommt die Unternehmungsleitung gar nicht mehr darum herum, sich nicht um Informationssicherheit zu kümmern, sondern diese aktiv – idealerweise systematisch – in ihrer Organisation zu etablieren.

Dabei gestaltet sich die Suche nach Best Practices/empfohlenen Vorgehensweisen erfreulich einfach: in der internationalen Norm ISO/IEC 27001 sind die Anforderungen für Einführung, Betrieb, Aufrechterhaltung und fortlaufende Verbesserung eines dokumentierten Informationssicherheits-Managementsystems (kurz: ISMS) niedergeschrieben.

Bei ISO 27001 handelt es sich um eine zertifizierbare Norm, was aber nicht bedeutet, dass eine Zertifizierung unbedingt ins Auge gefasst werden muss. Ein ISMS unterstützt bei Identifikation, Bewertung und Behandlung von Informationssicherheitsrisiken und kann somit auch ausschliesslich zum Schutz wertvoller Unternehmenswerte (in diesem Falle Informationen) eingesetzt werden.

Besteht für die Unternehmen seitens ihrer Stakeholder (Kunden, Behörden, Partner) keine Anforderung, Informationssicherheit systematisch zu managen, lassen sich trotzdem gute Gründe finden, weshalb der Unternehmenswert INFORMATIONEN nach ISO 27001 geschützt werden soll:

  • Beim Managen der Informationssicherheit nach ISO 27001 wird ein ganzheitlicher und international standardisierter Ansatz angewendet.
  • Durch Aufbau, Betrieb und Weiterentwicklung eines ISMS gewinnt die Unternehmung transparente und optimierte Strukturen, Prozesse und Verfahren, welche Kosteneinsparungen und Aufwandsreduktionen möglich machen. Die ISO 27001-Norm macht hierzu sehr gute und einfach umsetzbare Vorgaben.
  • Die Erfüllung rechtlicher Anforderungen wird durch die vorgegebene Systematik erleichtert, indem die für die Unternehmung geltenden Gesetze identifiziert und mittels entsprechender Dokumentation transparent gemacht werden.
  • Strukturierte Sicherheitsprozesse fördern unternehmensweit einheitliche Sichtweisen für eine standardisierte und abgestimmte Informationssicherheit.
  • Abgrenzungen sind geregelt und Aufgaben, Kompetenzen und Verantwortlichkeiten definiert.
  • Das ISMS ermöglicht jederzeit den Überblick und die Kontrolle der Informationen.
  • Geschäftskritische Prozesse werden eruiert, womit sich die erforderliche Verfügbarkeit von Informationen und deren IT-Ressourcen feststellen und gegebenenfalls anpassen lässt.
  • Die fortlaufende Weiterentwicklung einer Unternehmung findet dank ISMS automatisch Eingang in die Informationssicherheit.

Dabei steht immer die übergeordnete Zielsetzung im Fokus, dass Informationen aufgrund identifizierter Risiken angemessen mit den zur Verfügung stehenden Mitteln geschützt werden sollen.

Ein ISMS nach ISO 27001 lässt sich äusserst pragmatisch aufbauen, betreiben und weiterentwickeln: für die wichtigsten Sicherheitsprozesse werden kurze und klar verständliche Vorgaben definiert und die entsprechenden Zielgruppen für ihre Aufgaben im ISMS mittels kontinuierlicher Information, Ausbildung und Sensibilisierung befähigt. Kann das ISMS zusätzlich über eine gängige Kollaborationsplattform betrieben werden, steht der Einfachheit nichts mehr im Weg – vorbei sind die Zeiten endloser Papierdokumentation in Managementsystemen.

Eine Anlehnung an die Methodik und die Anforderungen der ISO-Norm 27001 macht in jedem Fall Sinn, auch ohne abschliessende Zertifizierung: die Unternehmen setzen damit auf international anerkannte Methoden und Standards und erreichen in vielen Bereichen eine Umsetzung gemäss aktuellem Stand der Technik.


© Swiss Infosec AG 2026