Software Supply Chain Management: eine Einführung

Für jedes Unternehmen in jeder Branche kann neue Konkurrenz sowohl von einem unbekannten Start-up als auch von einem alteingesessenen Konkurrenten kommen. Wenn man in der modernen Wirtschaft nicht schnell genug innovativ ist, wird man von jemandem überholt, der es ist. Dazu muss man sich nur das Kabelfernsehen und Netflix anschauen. Oder Hilton und Marriott im Vergleich zu Airbnb. Die Angst vor dem Ende kann eine starke Motivation sein.

Einige der größten Herausforderungen für etablierte Unternehmen sind Führungsteams, die sich auf ihren Lorbeeren ausruhen, tief verwurzelte und komplizierte Entwicklungsnormen, zunehmende Cyberangriffe auf Entwicklungsökosysteme und seit langem bestehende Silos, die von Software-Entwicklungs-, Anwendungssicherheits- und IT-Betriebsteams aufgebaut wurden. Solche eingefahrenen kulturellen Normen und Silos sorgen für Reibungsverluste, bremsen Prozesse aus und beeinträchtigen die Innovation.

Alle Unternehmen sind heutzutage Software-Unternehmen. Diese schlichte Realität und die Angst vor dem Untergang sind der Grund dafür, dass viele Unternehmen die Software-Entwicklung nicht mehr als Teil der Geschäftskosten betrachten, sondern als eine Kernkompetenz und strategische Notwendigkeit, die das gesamte Unternehmen definiert. Aus diesem Grund nutzen Unternehmen weltweit Software Supply Chain Management, das die Verwaltung der Software optimiert, von der die eigenen Anwendungen abhängig sind.

Je schneller Unternehmen Mehrwert auf den Markt bringen, desto mehr belohnt der Markt sie. Das Software Supply Chain Management trägt dazu bei, Barrieren zwischen Entwicklern und Sicherheitsfachkräften einzureißen, verschwenderische Open-Source-Verfahren zu beseitigen und die Zusammenarbeit in großem Umfang zu unterstützen.

Viele Unternehmen betrachten die Software-Entwicklung nicht mehr als Teil der Geschäftskosten, sondern als eine Kernkompetenz.

Die Magie von Open Source

Hier kommen Open-Source-Entwicklungsverfahren ins Spiel – eine Schlüsselkomponente von Software Supply Chains und moderner Software-Innovation. 

Entwickler wissen seit den Anfängen der Computertechnik, dass durch die Übertragung allgemeiner Aufgaben an ein vorab entwickeltes System die Entwicklung beschleunigt und die Produktionskosten gesenkt werden können. Durch von der Community entwickelte Software-Komponenten, vorgefertigte Bibliotheken und Komponenten von Drittanbietern hat sich dieser Effekt noch vervielfacht. Open-Source-Komponenten sparen Unternehmen Zeit und Geld, verbessern die Qualität, sorgen für geschäftliche Flexibilität und reduzieren (bestimmte) Geschäftsrisiken.

Das Konzept ist nicht neu. Schon lange vor dem Aufkommen von Open Source sagte Isaac Newton: „Ich kann weiter sehen, wenn ich auf den Schultern von Riesen stehe, und ich entdecke die Wahrheit, indem ich auf früheren Entdeckungen aufbaue.“ Diese Idee ist der Hauptgrund, warum Open-Source-Komponenten für Entwicklungsteams so attraktiv sind, auch wenn manche in der Branche zunächst zögerten, sie in großem Umfang zu verwenden.

Dasselbe gilt für die zunehmende Nutzung von containerisierten Anwendungen. Einfach ausgedrückt: Durch den freien und offenen Zugang zu bereits vorhandenen Software-Komponenten und Containern muss das Rad nicht mehr jedes Mal neu erfunden werden. Die Software wird für eine globale Community von „Mitentwicklern“ freigegeben, die ihre Ideen einbringen und sie erweitern können.

Und mittlerweile wird kaum noch gezögert, wenn es um Open Source geht. Eine durchschnittliche Anwendung besteht heute zu 85 % aus Open-Source-Komponenten. 

Gruppe 2859

Wir werden es erst einmal dabei belassen, da wir später mehr zur zunehmenden Nutzung von Open Source sagen werden. 

Heutzutage ist die Entwicklung ohne Open-Source-Software-Komponenten eine Seltenheit. Und zunehmend konzentriert man sich darauf, wie man den Prozess der Komponentenentwicklung aus externen Quellen angeht. Unternehmen müssen erkennen, dass Software auch außerhalb ihrer Standorte und Netzwerke entsteht. Welche Personen, Prozesse und Tools sind an der Software beteiligt, die Sie verwenden?

Was ist Open-Source-Software?

Lassen Sie uns einen Moment innehalten. Wir sprechen SEHR VIEL über Open Source und werden dies auch weiterhin tun. Außerdem befassen wir uns damit, wie man Komponenten von Drittanbietern verwenden kann, anstatt alles selbst zu entwickeln – ein wichtiger Bestandteil des Software Supply Chain Managements. Aber das ist eben nicht alles.

Auch die anderen „Bausteine“ moderner Software, die in Ihre Software Supply Chain einfließen, muss man gut verstehen – und was wir mit Open Source meinen:

Open-Source-Boxes

    1. Erstanbieter-Quellcode – dies ist der Originalcode, den Entwickler von Grund auf erstellen, um die Anweisungen festzuhalten, aus denen die Software besteht.

    2. Open Source – ein Oberbegriff für die gemeinschaftliche Entwicklung von Quellcode, der öffentlich benutzt und modifiziert werden kann. Der Begriff unterscheidet sich von ähnlichen Begriffen:

      1. Quellcode verfügbar – der Code ist für Prüfungszwecke sichtbar, kann aber nicht verwendet oder verändert werden.

      2. Freie Software – impliziert das gegenseitige Teilen als Prozess und Ethos.

    3. InnerSource – Projekte, die wie Open Source verwaltet werden und möglicherweise Open-Source-Komponenten verwenden, aber nicht außerhalb eines Unternehmens oder einer Gruppe weitergegeben werden. InnerSource-Komponenten stehen hinter vielen internen Tools und Diensten. InnerSource ist Teil einer breiteren Bewegung, um überaus erfolgreiche Open-Source-Prinzipien in interne Entwicklungsteams einzubringen.

Hier kommt die Software Supply Chain ins Spiel

Schon seit vielen Jahren gehen Tools und Dienste, die früher von spezialisierter Hardware verarbeitet wurden, zunehmend in reine Software über.

  • Server: Virtuelle CPUs
  • Speicher: SANs (Storage Area Networks)
  • Switches: Soft Switches
  • Netzwerke: Software-defined Networks (SDNs)
  • Kommunikation: Software-defined Radios

Wenn Ihre Branche auf eine bestimmte Art von Chip oder Hardware angewiesen ist, geht man wahrscheinlich zunehmend zu generischen Standardkomponenten über, die von Software gesteuert werden. Die Software Supply Chain betreibt daher immer mehr Tools und Services.

Wenn Sie den Begriff Software Supply Chain vor 2020 noch nie gehört haben (oder ihn vielleicht jetzt zum ersten Mal hören), sind Sie nicht allein. Wir bei Sonatype forschen, untersuchen und beschäftigen uns seit fast fünfzehn Jahren mit Software Supply Chains und der Frage, wie man sie verwalten und schützen kann. In sieben von fünfzehn Jahren haben wir darüber einen Jahresbericht erstellt:  The State of the Software Supply Chain.

Leider wird das Konzept der Software Supply Chain erst seit dem SolarWinds-Angriff 2017 breit diskutiert.

Einführung-weiterführende-Lektüre

 

Es wurde auf höchster Regierungsebene diskutiert.

Nach dem oben erwähnten Angriff auf SolarWinds und mehreren anderen öffentlichkeitswirksamen Sicherheitsverletzungen in der Software Supply Chain unterzeichnete Präsident Biden im Mai 2021 die Cybersecurity Executive Order mit ausführlichen Passagen zum Schutz und zur Sicherung der Software Supply Chain. 

Im Jahr 2022 erklärte das White House Office of Management and Budget (Verwaltungs- und Budgetbüro des Weißen Hauses) dies in seiner Memo „Protecting Critical Software Through Enhanced Security Measures“ (Schutz kritischer Software mit verbesserten Sicherheitsmaßnahmen) zu einem nationalen Anliegen.

... es besteht dringender Bedarf an strengeren und verlässlicheren Mechanismen, um sicherzustellen, dass Produkte sicher und wie vorgesehen funktionieren. Die US-Regierung muss Praktiken finden und umsetzen, die die Sicherheit der Software Supply Chain verbessern und die Verwendung von Software in den Betriebsumgebungen der Behörden schützen.

– MEMO DES WHITE HOUSE OFFICE OF MANAGEMENT & BUDGET 2021

Ein umfassenderes Verständnis der Supply Chains ist erforderlich

Auch wenn der Begriff „Software Supply Chain“ heute im Grunde von vielen verstanden wird, variiert die Definition doch stark, je nachdem, mit wem man spricht. Diesem Begriff folgen praktisch immer die Begriffe „Angriff“ oder „Sicherheit“. Wir sind uns einig, dass die Sicherung der Software Supply Chain von grundlegender Bedeutung ist. Sie ist aber dennoch nur ein Teil des Software Supply Chain Managements.

Wenn wir uns als Branche nur auf die Sicherheit konzentrieren, verpassen wir Möglichkeiten für Innovation, Wartungsfreundlichkeit, Integrität und Nachhaltigkeit. Das Software Supply Chain Management ist komplex und schwierig, aber es geht auch darum, die „Innovationssteuer“ und die technischen Schulden zu senken sowie die Mitarbeiterzufriedenheit, die Produktivität und den Umsatz zu steigern. Entwickler und Sicherheitsteams müssen das Thema gut verstehen, aber genauso wichtig ist es auch für DevOps-Leads, CISOs, IT-Fachleute im Allgemeinen sowie Juristen und viele andere Personen zwischen diesen Gruppen.

Dies ist eine neue Situation, die nur mit neuen Begriffen und Tools beschrieben werden kann. Wie passt das in die moderne Software-Entwicklung? Wie findet man das richtige Gleichgewicht zwischen Code, der größtenteils aus anderen Quellen stammt, und Code, der von Grund auf neu geschrieben wurde? Viele Programme „leihen“ sich sogar dieselben oder sehr ähnliche Komponenten, die sich nur zu einem geringen Prozentsatz voneinander unterscheiden. Das ist bezeichnend für die Software-Industrie im weiteren Sinne: Man nimmt Komponenten von verschiedenen Stellen, konfiguriert sie und vertreibt oder verkauft das Ergebnis als Teil eines Dienstes oder als eigenständiges Programm.

Die gute Nachricht ist, dass viele dieser Konzepte bereits weit entwickelt sind und Software allgemein für alle verbessern. Aber um die aktuellen Probleme zu erklären, muss man wissen, was das alles bedeutet.

Das Software Supply Chain Management ist komplex und schwierig, aber es geht auch darum, die „Innovationssteuer“ und die technischen Schulden zu senken sowie die Mitarbeiterzufriedenheit, die Produktivität und den Umsatz zu steigern.

Ein gut beschriebenes Problem ist schon halb gelöst
(John Dewey, 1938)

Aus allen oben aufgeführten Gründen wollten wir diesen Einführungsleitfaden für Software Supply Chain Governance erstellen. Nachfolgend erhalten Sie einen Überblick darüber, wie sie entstand, warum sie immer komplizierter wird und was das für die Welt außerhalb der Software-Entwicklung bedeutet. Wir werden auch einen Blick auf einige Tools und Richtlinien werfen, die Sie zum Schutz Ihres Unternehmens/Entwicklungsumfelds/Softwareprojekts usw. einsetzen sollten.

Bevor wir fortfahren, möchten wir auch darauf hinweisen, dass wir dieses Dokument weiter ergänzen werden. Wie bereits erwähnt, sind Software Supply Chains sehr komplex. Uns ist klar, dass wir lediglich an der Oberfläche dessen gekratzt haben, was die Software Supply Chain ausmacht. Und obwohl wir glauben, dass dies bereits der umfassendste Überblick ist, haben wir vermutlich vieles nicht erfasst. Wir möchten daraus wirklich den ultimativen Leitfaden für das Software Supply Chain Management machen – und das wird eine Weile dauern. 

Da wir das allein vielleicht nicht schaffen, würden wir uns über Ihre Hilfe freuen. Wenn Ihnen auffällt, dass wir etwas übersehen haben, oder wenn Sie daran interessiert sind, Inhalte hierzu beizutragen, kontaktieren Sie uns bitte.

Sonatype Envelope

Möchten Sie sich selbst von Nexus-Produkten überzeugen?