Eine neue Möglichkeit, Open-Source-Software zu zertifizieren. Die Herausforderung des AssureMOSS-Projekts

(Di Matthäus Mauri)
04/08/21

Europa ist weitgehend auf Software angewiesen Open-Source hauptsächlich im Ausland entworfen. Im europäischen digitalen Binnenmarkt wird die meiste Software online zusammengestellt und mehr als die Hälfte stammt aus (Repositories von) Software Open-Source über Grenzen hinweg gemacht.

Einige Universitäten, kleine, mittlere und große Unternehmen, eine spezialisierte Interessenvertretung und ein Beirat mit Schlüsselkompetenzen im Bereich Software Open-Source, haben sich in einer strategischen Partnerschaft zusammengeschlossen, um neue Methoden und Ansätze zu entwickeln, um die Entwicklung effizienterer und sichererer Software zu beschleunigen.

In diesem Artikel werden wir kurz den Versuch des AssureMOSS-Projekts (Assurance and Certification in Secure Multi-Party Open Software and Services – https://assuremoss.eu), um sich der Software-Herausforderung zu stellen Open-Source „überall entworfen, aber in Europa garantiert“. Das dreijährige Projekt (Oktober 2020 – September 2023) wird von der Europäischen Kommission im Rahmen des Programms HORIZON 2020 [1] gefördert.

Der Wettlauf um assemblierte Software und das MOSS-Paradigma

Im letzten Jahrzehnt haben unter den vielen Innovationen vor allem zwei Hauptmerkmale Softwareentwicklungsprojekte radikal verändert und konditioniert [2]. Erstens hat die Verkürzung der Feedbackschleife zwischen Entwicklungsteams und der Reaktion auf die von diesen Teams veröffentlichten Produkte (z. B. A/B-Tests, DevOps) zu einer hektischen Entwicklung mit schnelleren Produktänderungen geführt. Zweitens haben sich Entwickler zunehmend auf die Differenzierung der Funktionalität in ihren Endprodukten konzentriert, verlassen sich jedoch zunehmend auf Dritte für alles andere (Cloud-Implementierung, umfassende Verwendung offener Frameworks wie OpenSSL [3] oder Node.js [4] oder Verwendung eingeschränkterer Produkte, aber ohnehin mit Protokollen, Verfahren, Bibliotheken und APIs [5]. Open-Source). All dies hat zu einer Entwicklung geführt, an der verschiedene Parteien beteiligt sind (genannt Multi-Stakeholder, aus dem Englischen: multiinteressierte Partei): Das Ergebnis ist eine Versammlung, die von verschiedenen Akteuren betrieben wird, von denen jeder seine eigenen Sicherheits- und Datenschutzpraktiken/-richtlinien hat.

Wir können hier bereits ein Akronym einführen, das wir im weiteren Verlauf des Artikels verwenden werden. Moderne Software basiert auf einem Paradigma namens Multi-Party Open Software and Services (MOSS). Daher stellt ein Softwareunternehmen, das ein Produkt entwickelt, nur einen der Protagonisten dar, die am Prozess der Gewährleistung der Softwaresicherheit für dasselbe Produkt beteiligt sind.

Zu diesen beteiligten Parteien gehören OS-Entwicklergemeinschaften, die beispielsweise an der Erstellung von Sicherheitsupdates beteiligt sind, oder Unternehmen, die neue Sicherheitsdienste oder Updates für bestehende Schnittstellen bereitstellen. Das MOSS-Paradigma gilt sicherlich für größere Unternehmen, während kleinere Unternehmen wie KMU und Start-ups möglicherweise eine kürzere Lieferkette haben, die hauptsächlich auf freie und Open-Source-Software (FOSS – Free and Open Source Software) angewiesen ist.

Letzteres ist das Rückgrat der Softwareindustrie: Fast 80 % der kommerziellen Produkte enthalten heute mindestens eine FOSS-Komponente, so dass das Europäische Parlament deren Schlüsselrolle offiziell anerkannt hat. Interessant ist auch der fortschreitende Trend zur Reduzierung des Anteils des intern von Softwareentwicklungsunternehmen erstellten Codes. In den späten 90er Jahren bestand der Software-Stack zu über 95 % aus selbstentwickeltem Code. Nur die Datenbanken und Betriebssysteme stammten von lizenzierten Closed-Source-Anbietern. Betrachtet man den aktuellen Trend, lässt sich erkennen, dass im Jahr 2019 der Anteil des intern erstellten Codes jedoch drastisch zurückgegangen ist und nur noch 5 % des Kuchens ausmacht: Browser, UI-Frameworks, Paketmanager, Anwendungsserver, Microservice-Plattformen, Container, containerisierte Betriebssysteme sind allesamt im Allgemeinen Softwarekomponenten von Drittanbietern (meistens). Open-Source), die Softwareunternehmen täglich nutzen [6-7-8].

Softwarezertifizierung und Rezertifizierung

Diese Entwicklung des Softwareentwicklungsprozesses in schnellen und fragmentierten Zyklen würde aufgrund der zahlreichen Änderungen, die Auswirkungen auf Sicherheit und Datenschutz haben, ebenso viele Prozesse/Zyklen der Zertifizierung und Gewährleistung der Softwaresicherheit mit sich bringen (eine neue Schwachstelle könnte beispielsweise durch die Verwendung einer neuen Bibliothek entstehen, die auf personenbezogene Daten zugreifen und diese möglicherweise übertragen kann). Daher sollte das neue Sicherheitsparadigma im Vergleich zum vorherigen „harten und festen“ Paradigma „leicht und kontinuierlich“ sein. Wir sollten daher nicht von Zertifizierung sprechen, sondern von Zertifizierung, Rezertifizierung und Risikobewertung.

Die Tatsache, dass es sich bei der Softwareentwicklung tatsächlich um eine Multi-Stakeholder-Aktivität handelt (bei der einige Stakeholder in Sub-Sub-Sub-Abhängigkeiten von Bibliotheken Dritter verborgen sind), bedeutet, dass Sicherungstechniken in einem fragmentierten Ökosystem mit mehreren Artefaktquellen (z. B. aus der Community) funktionieren sollten Open-Source), verschiedene Technologien und Sprachen und verschiedene Entscheidungsdomänen. Daher erfordert ein neues Sicherheitsparadigma einen Ansatz, der „intelligent und flexibel“ ist – d. h. einen Ansatz, der im Laufe der Zeit lernt, sich anpasst und verbessert, wenn neue Daten und zusätzliches Feedback verfügbar werden.

Sofern keine innovativen, leichten und intelligenten Techniken zur Sicherheitssicherung entwickelt werden, die sich in mehrere Interessengruppen und schnelllebige Entwickler integrieren lassen, wird die Sicherheit weiterhin unter dem Produktivitätswettlauf der Entwicklungsteams leiden, die täglich neue Funktionen einführen müssen.

Eine schnelle, Multi-Stakeholder-Entwicklung stellt auch eine Herausforderung für die Sicherstellung der Softwarezertifizierung dar. Bestehende Sicherheitszertifizierungssysteme, auch für Projekte Open-Source, wie das Core Infrastructure Initiative (CII) Badge Program [10], konzentrieren sich auf die Zertifizierung, dass Softwareprojekte bestimmte Best Practices für die Sicherheit befolgen. Im Wesentlichen konzentrieren sich diese Programme auf den Softwareentwicklungsprozess. In modernen Softwareprojekten wird der Entwicklungsprozess jedoch immer flüssiger und von den Entwicklern kontinuierlich angepasst (anstatt starr und zentral durchgesetzt zu sein). Daher verfügen die an jeder Phase beteiligten Einrichtungen möglicherweise nicht über die Ressourcen, um diese Zertifizierungen zu erwerben und aufrechtzuerhalten.

Die Herausforderung des AssureMOSS-Projekts

Nach dem Gesagten wird sicherlich die Notwendigkeit eines Perspektivwechsels seitens der Europäischen Union erkannt worden sein, die mit der Finanzierung des AssureMOSS-Projekts versucht hat, einen neuen Ansatz anzustoßen. An dem Projekt ist ein Team bestehend aus 4 Universitäten (Delft, Göteborg, Trient, Wien), 3 innovativen KMU (Pluribus One, FrontEndArt, Search-Lab), 2 Großunternehmen (SAP, Thales), der EU-VRi-Organisation und einem Beirat bestehend aus strategischen Persönlichkeiten aus der Welt der Industrie und Open Source Software (OSS) beteiligt.

Konkret schlägt AssureMOSS vor, den Übergang von der prozessbasierten zur artefaktbasierten Sicherheitsbewertung (Modelle, Quellcode, Container-Images, Dienste) zu implementieren und dabei alle Phasen des kontinuierlichen Software-Lebenszyklus (Design, Entwicklung, Implementierung, Evaluierung und Backup) zu unterstützen.

AssureMOSS verfolgt daher einen umfassenden Ansatz zur Sicherheitssicherung und Rezertifizierung und hat das Ziel, in jeder Phase des Softwareentwicklungsprozesses einen Beitrag zu leisten, und zwar dank eines konsistenten Satzes automatisierter und einfacher Techniken, die es Softwareunternehmen ermöglichen, die Sicherheits- und Datenschutzrisiken zu bewerten, zu verwalten und erneut zu zertifizieren, die mit der schnellen Entwicklung und kontinuierlichen Verbreitung offener Software und Dienste für mehrere Parteien verbunden sind. Letztendlich zielt das Projekt darauf ab, die Entwicklung einer sichereren MOSS-Software zu unterstützen.

Die Kernidee besteht darin, leichtgewichtige und skalierbare Screening-Mechanismen zu unterstützen, die automatisch auf die gesamte Population von Softwarekomponenten anwendbar sind, indem:

• Einsatz von maschinellem Lernen zur intelligenten Identifizierung von Sicherheitsproblemen bei Artefakten;

• Analyse und Überprüfung von Änderungen durch kontinuierliche Verfolgung von Nebenwirkungen auf Datenschutz und Sicherheit;

• laufende Risikoanalyse und Softwaresicherheitsbewertung (mit besonderem Augenmerk auf potenzielle geschäftliche Auswirkungen, die durch potenziell anfällige Produkte verursacht werden).

Das Projekt wird nicht nur eine Reihe innovativer Methoden und Open-Source-Tools generieren, sondern auch Benchmark-Datensätze mit Tausenden von Schwachstellen und Code erstellen, die von anderen Forschern verwendet werden können.

Die AssureMOSS-Tools helfen beispielsweise, durch die halbautomatische Überprüfung von Hinzufügungen, Entfernungen und Änderungen in den Code-Repositories (Commit-Analyse [11]) Zeit bei der Suche nach Fehlern und Schwachstellen zu sparen und so auch den Software-Evaluierungs- und Analyseprozess zu beschleunigen.

Der Perspektivenwechsel (Artefakte vs. Prozesse) und das Konzept der kontinuierlichen Rezertifizierung der entwickelten Software stehen daher im Mittelpunkt einer äußerst ambitionierten Herausforderung: die Festlegung von Richtlinien, die beispielsweise von Zertifizierungs- und Standardisierungsgremien genutzt werden können, um ein auf Artefakte fokussiertes Zertifizierungsschema für MOSS-Software zu etablieren.

Die grundlegenden Erkenntnisse werden durch eine bekannte Praxis im medizinischen Gesundheitsbereich [12] gut zusammengefasst und die wir hier für diesen Zweck anpassen: „Screening ist definiert als die präventive Identifizierung einer Krankheit in einer scheinbar gesunden und asymptomatischen Population durch Tests (von Softwarekomponenten), Untersuchungen oder andere Verfahren, die schnell und einfach auf die Zielpopulation angewendet werden können.“ […] Bei der Unterstützung von Screening-Programmen ist es wichtig zu vermeiden, dass Modelle, die aus Hochleistungsumgebungen mit fortschrittlichen Gesundheitssystemen und anspruchsvollen und teuren (Sicherheits-)Überprüfungssystemen abgeleitet wurden, Unternehmen, Prozessen (Entwicklern und Benutzern) von Ländern aufgezwungen werden, die nicht über die Infrastruktur und Ressourcen verfügen, die erforderlich sind, um eine angemessene Prävention für die Bevölkerung zu erreichen.“

1 Das AssureMOSS-Projekt unterliegt der Fördervereinbarung Nr. 952647 und wird mit insgesamt 4.689.425 Euro finanziert. www.pluribus-one.it/it/ricerca/progetti/assuremoss

2 Jan Bosch, Geschwindigkeit, Daten und Ökosysteme: Excelling in a Software-Driven World, CRC Press, 2016

3 OpenSSL ist eine Open-Source-Implementierung der SSL- und TLS-Protokolle, die für die meisten Unix-ähnlichen Betriebssysteme, einschließlich GNU/Linux und macOS, sowie für Microsoft Windows verfügbar ist. www.openssl.org

4 Node.js ist ein plattformübergreifendes, ereignisorientiertes Open-Source-Laufzeitsystem zur Ausführung von JavaScript-Code, das auf der JavaScript-Engine Google Chrome V8 basiert. Viele seiner Kernmodule sind in JavaScript geschrieben, und Entwickler können neue Module in JavaScript schreiben. https://nodejs.org/it/

5 API, Abkürzung für Application Programming Interface, www.redhat.com/en/topics/api/what-are-application-programming-interfaces

6 Black Ducks Umfrage zur Zukunft von Open Source, 2015

7 Holger Mack, Tom Schröer, Security Midlife Crisis, SAP Product Security Summit 2019

http://www.europarl.europa.eu/oeil/popups/ficheprocedure.do?lang=en&refe...

9 Laut CVE Details wurde im Jahr 2017 der Rekord an Schwachstellen der Vorjahre übertroffen (14714 im Jahr 2017 gegenüber dem vorherigen Rekord von 7946 im Jahr 2014). Leider ist das Jahr 2018 sogar noch schlimmer geworden (16555 Schwachstellen). https://www.cvedetails.com/browse-by-date.php

10 https://www.coreinfrastructure.org

11 https://wiki.ubuntu-it.org/Programmazione/Git/Commit

12 https://www.who.int/cancer/prevention/diagnosis-screening/screening/en/

13 Eoin Woods, Democratizing Software Architecture, Keynote auf der ICSA 2019, online unter https://speakerdeck.com/eoinwoods/democratising-software-architecture

14 www.pluribus-one.it/it/chi-siamo/blog/88-cybersecomics/111-bug