Zum siebten Jahr in Folge verbindet der '2021 State of the Software Supply Chain Report' ein breites Spektrum an öffentlichen mit proprietären Daten und offenbart auf diese Weise aussagekräftige Erkenntnisse über Open-Source-Ansätze und deren zunehmend bedeutende Rolle im Hinblick auf die digitale Innovation.
Derzeit enthalten die vier führenden Open-Source-Ökosysteme insgesamt 37.451.682 Komponenten und Pakete. Dieselben Communitys haben im vergangenen Jahr insgesamt 6.302.733 neue Versionen von Komponenten/Paketen veröffentlicht und 723.570 brandneue Projekte zur Unterstützung von 27 Millionen Entwicklern weltweit eingeführt.
Java
Javascript
Python
.Net
Im Jahr 2021 wird weltweit mit mehr als 2,2 Billionen Anfragen für Open-Source-Software-Pakete gerechnet, was im Vergleich zum Vorjahr einem 73%igen Anstieg der Downloads von Open-Source-Komponenten durch Entwickler entspricht. Trotz des wachsenden Download-Volumens ist der Prozentsatz der verfügbaren Komponenten, die in Produktionsanwendungen verwendet werden, schockierend gering.
Bei den beliebtesten 10 % der OSS-Projektversionen beträgt die Wahrscheinlichkeit, dass sie bekannte Schwachstellen enthalten, im Durchschnitt 29 %. Umgekehrt beträgt die Wahrscheinlichkeit, dass die restlichen 90 % der Projektversionen bekannte Schwachstellen enthalten, nur 6,5 %. Zusammengenommen deuten diese Statistiken darauf hin, dass sich die überwiegende Mehrheit der Sicherheitsforschung (White Hat und Black Hat) auf das Auffinden und Beheben (oder Ausnutzen) von Schwachstellen in Projekten konzentriert, die häufiger genutzt werden.
Java (Maven)
JavaScript (npm)
Python (pypi)
.NET (Nuget)
Kriminelle Akteure verschafften sich Zugang zur Dev-Infrastruktur von SolarWinds und schleusten Schadcodes in Update-Binärdateien der Orion-Plattform ein. 18.000 Kunden luden von Trojanern befallene Updates automatisch herunter, die Backdoors in ihre Systeme einschleusten und es kriminellen Akteuren ermöglichten, private Netzwerke nach Belieben anzugreifen.
Drei Tage, nachdem bekannt wurde, dass ein Sicherheitsforscher unter Anwendung eines neuartigen Supply-Chain-Angriffs auf die Netzwerke von mehr als 35 Technologieunternehmen zugegriffen hatte, wurden mehr als 300 schädliche Nachahmungsangriffe (Copycats) registriert. Innerhalb eines Monats hatten mehr als 10.000 Namespace Confusion Copycats npm und weitere Ökosysteme infiltriert.
Ein Angreifer konnte über einen Fehler von Codecov in Bezug auf die Erstellung von Docker-Images auf Anmeldedaten zugreifen. Mit diesen Anmeldedaten konnte im Zuge des Angriffs anschließend das Bash-Uploader-Script von Codecov geändert werden, das entweder direkt von Kunden oder über die anderen Uploader von Codecov, beispielsweise Github Action, genutzt wurde. Mithilfe dieses geänderten Scripts erbeutete der Angreifer Anmeldedaten aus der CI-Umgebung von Kunden, die dieses verwendeten.
Am Wochenende nach dem Launch wurde die Software-Registry von Winget mit Pull-Requests für Apps überhäuft, die entweder Duplikate oder fehlerhaft waren. Einige neu hinzugefügte doppelte Pakete waren beschädigt und überschrieben die vorhandenen Pakete, was zu ernsthaften Bedenken bezüglich der Integrität des Winget-Ökosystems führte.
Eine Ransomware-Gruppe entdeckte eine Zero-Day-Schwachstelle in einer Software-Plattform für Fernüberwachung und -verwaltung, die von Dutzenden von Managed Security Providern (MSP) verwendet wird, und nutzte diese aus. Da diese MSPs Tausende nachgelagerte Kunden bedienen, konnten die Hacker einen Ransomware-Angriff ausführen, der 1.500 Opfer betraf.
Die Mitglieder der weltweiten Open-Source-Community haben es mit einer neuartigen, sich rasant ausbreitenden Bedrohung zu tun, bei der aggressive Angreifer absichtlich Open-Source-Projekte manipulieren, um die kommerzielle Software Supply Chain zu infiltrieren – und nicht mit passiven Akteuren, die quasi beiläufig bekannte Schwachstellen ausnutzen.
Von Februar 2015 bis Juni 2019 wurden 216 Angriffe auf Software Supply Chains registriert. Von Juli 2019 bis Mai 2020, stieg die Anzahl der Angriffe auf 929. Im vergangenen Jahr wurden jedoch mehr als 12.000 solcher Angriffe gezählt, was einem Anstieg von 650 % im Vergleich zum Vorjahr entspricht.
Dependency Confusion, Typosquatting und Implementierung von Schadcode
Kriminelle Akteure verschafften sich Zugang zur Dev-Infrastruktur von SolarWinds und schleusten Schadcodes in Update-Binärdateien der Orion-Plattform ein. 18.000 Kunden luden von Trojanern befallene Updates automatisch herunter, die Backdoors in ihre Systeme einschleusten und es kriminellen Akteuren ermöglichten, private Netzwerke nach Belieben anzugreifen.
Drei Tage, nachdem bekannt wurde, dass ein Sicherheitsforscher unter Anwendung eines neuartigen Supply-Chain-Angriffs auf die Netzwerke von mehr als 35 Technologieunternehmen zugegriffen hatte, wurden mehr als 300 schädliche Nachahmungsangriffe (Copycats) registriert. Innerhalb eines Monats hatten mehr als 10.000 Namespace Confusion Copycats npm und weitere Ökosysteme infiltriert.
Ein Angreifer konnte über einen Fehler von Codecov in Bezug auf die Erstellung von Docker-Images auf Anmeldedaten zugreifen. Mit diesen Anmeldedaten konnte im Zuge des Angriffs anschließend das Bash-Uploader-Script von Codecov geändert werden, das entweder direkt von Kunden oder über die anderen Uploader von Codecov, beispielsweise Github Action, genutzt wurde. Mithilfe dieses geänderten Scripts erbeutete der Angreifer Anmeldedaten aus der CI-Umgebung von Kunden, die dieses verwendeten.
Am Wochenende nach dem Launch wurde die Software-Registry von Winget mit Pull-Requests für Apps überhäuft, die entweder Duplikate oder fehlerhaft waren. Einige neu hinzugefügte doppelte Pakete waren beschädigt und überschrieben die vorhandenen Pakete, was zu ernsthaften Bedenken bezüglich der Integrität des Winget-Ökosystems führte.
Eine Ransomware-Gruppe entdeckte eine Zero-Day-Schwachstelle in einer Software-Plattform für Fernüberwachung und -verwaltung, die von Dutzenden von Managed Security Providern (MSP) verwendet wird, und nutzte diese aus. Da diese MSPs Tausende nachgelagerte Kunden bedienen, konnten die Hacker einen Ransomware-Angriff ausführen, der 1.500 Opfer betraf.
Um das Tempo der digitalen Innovation ohne Qualitäts- und Sicherheitseinbußen zu beschleunigen, sollten Führungskräfte im Bereich Entwicklung und Risikomanagement Angebot, Nachfrage und Risikodynamik im Zusammenhang mit Open-Source-Ökosystemen von Drittanbietern verstehen. Zudem sollten sie Open-Source-Richtlinien sorgfältig definieren und in der gesamten Software Supply Chain automatisch durchsetzen.
Manche Open-Source-Projekte sind definitiv besser als andere. Aber woran erkennt man sie? Dieses Jahr haben wir drei verschiedene Methoden zur Identifizierung vorbildlicher Open-Source-Projekte untersucht: Sonatype Mean Time to Update (durchschnittliche Dauer bis zur Aktualisierung, MTTU), OpenSSF Criticality und Libraries.IO Sourcerank. Wir haben festgestellt, dass insbesondere die MTTU in Kombination mit OpenSSF Criticality mit vorbildlichen Projektergebnissen in den Bereichen Sicherheit und Entwicklungsproduktivität in Zusammenhang steht.
Sonatype MTTU liefert ein Maß für die Projektqualität basierend auf der Geschwindigkeit der Aktualisierung von Abhängigkeiten im Projekt. Ein niedriger MTTU-Wert bedeutet schnellere Aktualisierung und ist somit besser. Komponenten, die durchwegs schnell auf Aktualisierungen von Abhängigkeiten reagieren, haben eine geringere MTTU. Komponenten, die langsam reagieren oder hinsichtlich ihrer Aktualisierungszeiten hohe Schwankungen aufweisen, haben eine höhere MTTU.
OpenSSF Criticality erfasst die Community, Nutzung und Aktivität eines Projekts. Daraus wird eine Bewertungsnote errechnet, mit der gemessen werden soll, wie wichtig das Projekt für das Open-Source-Ökosystem ist.
Libraries.io Sourcerank zielt darauf ab, die Qualität der Software zu messen, wobei der Schwerpunkt vor allem auf der Projektdokumentation, der Maturität und der Community liegt. Die Berechnung erfolgt durch die Auswertung einer Reihe von Ja/Nein-Antworten wie „Ist das Projekt älter als sechs Monate?“ und einer Reihe numerischer Fragen wie „Wie viele ‚Sterne‘ hat das Projekt?“. Diese werden zu einer einzigen Bewertungsnote zusammengefasst, wobei für die Ja/Nein-Fragen eine festgelegte Anzahl von „Punkten“ addiert oder abgezogen wird und die numerischen Fragen mithilfe einer Formel in Punkte umgewandelt werden, z. B. „log(num_stars)/2.“ Die aktuelle Höchstpunktzahl beträgt ca. 30.
Komponenten, die durchwegs schnell auf Aktualisierungen von Abhängigkeiten reagieren, haben eine geringe MTTU. Komponenten, die entweder durchwegs langsam reagieren oder hinsichtlich ihrer Aktualisierungszeit hohe Schwankungen aufweisen, haben eine höhere MTTU.
Angenommen, wir haben eine Komponente A mit Abhängigkeiten B und C, beide mit Version 1.2. Nehmen wir weiterhin an, für B und C erscheint jeweils eine neue Version (1.3), und einige Zeit später veröffentlicht A eine neue Version, die die Version von B und C auf 1.3 erhöht. Die Zeit zwischen der Veröffentlichung von Version 1.3 für B und der Veröffentlichung von Version 1.3 für A ist die Zeit bis zum Upgrade (Time to Upgrade, TTU) für die Migration von A auf Version 1.3 für B (und entsprechend auch für die Einführung von Version 1.3 für C durch A). Der Durchschnitt all dieser Upgrade-Zeiten wird als MTTU bezeichnet.
Nicht nur die Zahl der Projekte ist im Laufe der Jahre gestiegen, sondern es ist auch ein klarer Trend zu schnelleren MTTUs zu beobachten. Die durchschnittliche MTTU für alle Projekte im Jahr 2011 betrug 371 Tage. Im Jahr 2014 waren es 302 Tage und im Jahr 2018 158 Tage. Im Jahr 2021, mit Stand 1. August, betrug die durchschnittliche MTTU 28 Tage – und fiel damit um mehr als die Hälfte geringer aus als im Jahr 2020, als ein durchschnittliches Projekt 73 Tage in Anspruch nahm.
Angenommen, ein Projekt A enthält eine Abhängigkeit B und B weist eine Schwachstelle auf, die zum Datum D1 bekannt wurde. Dann aktualisiert A die Version von B, die es verwendet, zum Datum D2. Die Dauer bis zur Behebung (Time to Remediate, TTR) bezeichnet die Zeit zwischen D1 und D2, gemessen in Tagen, und die MTTR bezieht sich auf die durchschnittliche TTR für ein Projekt in Bezug auf alle bekannten Sicherheitsschwachstellen.
MTTU misst zwar nicht direkt die Geschwindigkeit, mit der Projekte öffentlich gemeldete Schwachstellen beheben, steht jedoch trotzdem in Korrelation mit der mittleren Zeit bis zur Behebung (Mean Time To Remediate, MTTR) eines Projektes, d. h. der Zeit, die für die Aktualisierung von Abhängigkeiten mit öffentlich bekannten Schwachstellen erforderlich ist. Somit betrachten wir die MTTU als die beste verfügbare Metrik, um die Auswirkung einer Komponente auf die Sicherheit von Projekten zu bestimmen, die diese Komponente enthalten.
Anbieter, die Enterprise-Software entwickeln, sollten die Auswahl qualitativ hochwertiger Open-Source-Projekte als eine wichtige strategische Entscheidung betrachten.
Um redundante Abhängigkeiten zu vermeiden und Sicherheitsrisiken im Zusammenhang mit Open Source von Drittanbietern zu minimieren, sollten Software-Entwicklungsteams aktiv auf Projekte setzen, die durchweg niedrige MTTU-Werte (durchschnittliche Dauer bis zur Aktualisierung) und hohe OpenSSF-Criticality-Werte aufweisen.
Für den diesjährigen Bericht haben wir 4 Millionen Entscheidungen zum Abhängigkeitsmanagement aus der Praxis untersucht, die sich über 100.000 Anwendungen erstrecken. Die nachstehend aufgeführten Erkenntnisse sind aufschlussreich.
Im Durchschnitt kommen in Java-Anwendungen in Produktionsunternehmen 10 % aller verfügbaren Open-Source-Komponenten zur Anwendung und kommerzielle Entwicklungsteams aktualisieren nur 25 % dieser genutzten Komponenten aktiv.
Die durchschnittliche moderne Anwendung enthält 128 Open-Source-Abhängigkeiten, und ein durchschnittliches Open-Source-Projekt bringt 10 Mal pro Jahr neue Versionen heraus. Hinzu kommt, dass einige hyperaktive Projekte mehr als 8.000 Mal pro Jahr neue Versionen veröffentlichen. Somit stehen Entwickler ständig vor der Entscheidung, wann Abhängigkeiten von Drittanbietern innerhalb ihrer Anwendungen aktualisiert werden sollten (und wann nicht). Angesichts dieser Umstände haben sich die Forscher von Sonatype die Frage gestellt: Treffen Entwickler effiziente Entscheidungen beim Abhängigkeitsmanagement? Wir haben 100.000 Anwendungen untersucht und mehr als 4.000.000 Komponentenmigrationen (Upgrades) analysiert und festgestellt, dass 69 % dieser Entscheidungen suboptimal waren.
Das folgende Diagramm bietet einen visuellen Überblick über das allgemeine Migrationsverhalten im vergangenen Jahr im Zusammenhang mit Spring-Core, einer einzelnen Komponente innerhalb des beliebten Spring-Frameworks. Die Y-Achse zeigt die Upgrade-Aktivitäten der letzten 52 Wochen, wobei die obere Zeile die vor einem Jahr getroffenen Migrationsentscheidungen und die untere Zeile die in der letzten Woche getroffenen Migrationsentscheidungen darstellt. Die X-Achse zeigt die 150 aktuellsten Versionen. Dabei befinden sich die älteren Versionen links, die neueren Versionen hingegen rechts. Klicken Sie auf die Punkte unten, um die wichtigsten Erkenntnisse zu sehen.
Die neueste Version (5.3.x) von Spring-Core erscheint etwa alle 4 Wochen.
Das Projekt wartet diese 2 Versionen aktiv. Die dunklere Schattierung bedeutet, dass die Mehrheit der Community diese Versionen verwendet.
Das Projekt unterstützt diese Versionen nicht mehr aktiv. Teams sollten von diesen redundanten Versionen zu neueren migrieren.
Nachzügler aktualisieren weiterhin auf ältere, nicht unterstützte und sogar gefährdete Versionen.
Ältere Versionen sind anfällig und selbst für nicht anfällige ältere Versionen (4.3.15+) werden unweigerlich neue Schwachstellen offengelegt werden.
Die Community vermeidet im Allgemeinen .0- Releases und Pre-Releases.
Wählen Sie keine Versionen wie Alpha, Beta, Milestone oder Release Candidates.
Aktualisieren Sie nicht auf eine anfällige Version.
Aktualisieren Sie auf einen niedrigeren Risikograd, falls Ihre aktuelle Version anfällig ist.
Wenn eine Komponente zweimal kurz hintereinander veröffentlicht wird, wählen Sie die spätere Version.
Wählen Sie einen Migrationspfad (von Version zu Version), den andere gewählt haben.
Wählen Sie eine Version, die fehlerhafte Änderungen am Code minimiert.
Wählen Sie eine Version, die von der Mehrheit der Verbraucher verwendet wird.
Wenn alles andere gleich ist, wählen Sie die neueste Version.
Intelligente Automatisierung, bei der seitens der Entwicklungsteams eine Standardisierung hin zu vorbildlichen Open-Source-Projekten erfolgt, könnte in unserer Stichprobe von 100.000 Produktionsanwendungen in der Praxis 1,6 Millionen Stunden und 240 Millionen US-Dollar einsparen und somit Kosten- und Zeiteinbußen vermeiden. Auf die gesamte Software-Industrie hochgerechnet würden die damit verbundenen Einsparungen in die Milliarden gehen.
Brandaktuell heißt auch gefährlich. So viel Aktualität wie möglich herzustellen, jedoch mit einem gewissen Grad an Zurückhaltung, ist die beste Strategie. Bei der Analyse des allgemeinen Migrationsverhaltens in Bezug auf Verfahren zum Abhängigkeits-Management konnten wir drei unterschiedliche Muster des Teamverhaltens beobachten: Teams, in denen Chaos herrscht, Teams, die immer brandaktuelle Versionen nutzen und Teams, die auf so viel Aktualität wie möglich setzen, jedoch einen gewissen Grad an Zurückhaltung mitbringen.
Den Entwicklern, die in diesen Teams arbeiten, fehlt eine automatisierte Orientierungshilfe. Sie aktualisieren Abhängigkeiten nur selten. Wenn sie doch Abhängigkeiten aktualisieren, nutzen sie ihr Bauchgefühl und treffen häufig suboptimale Entscheidungen. Dieser Ansatz für das Abhängigkeitsmanagement ist hochgradig reaktiv, nicht skalierbar und führt zu redundanter Software und einem erhöhten Sicherheitsrisiko.
Entwickler, die in diesen Teams arbeiten, profitieren von einer intelligenten und kontextbezogenen Automatisierung. Die Aktualisierung von Abhängigkeiten wird automatisch empfohlen, aber nur, wenn sie optimal ist. Diese Art von intelligenter Automatisierung hält die Software auf dem neuesten Stand, ohne dass versehentlich unnötiger Aufwand oder ein erhöhtes Sicherheitsrisiko entsteht. Dieser Ansatz ist proaktiv, skalierbar und hinsichtlich der Kosteneffizienz und der Qualität der Ergebnisse optimal.
Entwickler, die in diesen Teams arbeiten, profitieren von einer simplen, aber nicht kontextbezogenen Automatisierung. Abhängigkeiten werden automatisch auf die neueste Version aktualisiert, unabhängig davon, ob diese optimal ist oder nicht. Solch eine Automatisierung hilft dabei, die Software auf dem neuesten Stand zu halten, kann aber versehentlich zu höheren Sicherheitsrisiken und erhöhten Kosten aufgrund von unnötigen Aktualisierungen und fehlerhaften Builds führen. Dieser Ansatz ist proaktiv und skalierbar, aber hinsichtlich der Kosten und Ergebnisse nicht optimal.
Software-Entwicklungsteams sollten sich bemühen, Entscheidungen zum Abhängigkeitsmanagement zu standardisieren.
Führungskräfte im Bereich der Entwicklung sollten dafür sorgen, dass Entwicklern möglichst viele Informationen zur Verfügung stehen. So können Kosten- und Zeiteinsparungen erzielt werden.
Entwicklungsleiter sollten Tools zur Automatisierung intelligenter Entscheidungen in Bezug auf das Abhängigkeitsmanagement einsetzen.
Für den diesjährigen Bericht haben wir 702 Experten aus dem Entwicklungsbereich über Verfahren in Bezug auf das Management der Software Supply Chain befragt, etwa zu Ansätzen und Überzeugungen bei der Verwendung von Open-Source-Komponenten, zur organisatorischen Gestaltung, Governance, zum Genehmigungsprozess sowie zu Werkzeugen.
Subjektiv geben die Umfrageteilnehmer an, dass sie gute Arbeit bei der Beseitigung fehlerhafter Komponenten leisten und dass ihnen bekannt ist, wo die Risiken in der Lieferkette liegen. Objektiv zeigt die Forschung, dass es Entwicklungsteams an strukturierter Anleitung mangelt und dass sie häufig suboptimale Entscheidungen in Bezug auf das Management der Software Supply Chain treffen.
Wir haben alle Umfrageantworten mit den fünf verschiedenen Maturitätsebenen der Software Supply Chain abgeglichen und festgestellt, dass die Mehrheit der Befragten weniger als die Ebene „Kontrolle“ erreicht haben – welche als der Punkt gilt, zu dem eine Organisation von einem bloßen Lernprozess zu einer minimalen Maturitätsebene übergeht, die Ergebnisse von hoher Qualität ermöglicht.
Über die Punkte rechts erhalten Sie weitere Informationen.
Die Umfrage deutet darauf hin, dass die Befragten davon überzeugt sind, dass sie in Bereichen gute Leistungen erbringen, in denen dies in Wahrheit nicht der Fall ist. Das führt uns vor Augen, wie es wichtig ist, stets die tatsächliche Leistung des Unternehmens im Blick zu haben, anstatt auf Basis von Vermutungen zu arbeiten. Zudem ist es essenziell, die eigenen Workflows und Systeme fortlaufend mit den gewünschten Ergebnissen abzugleichen.
Nach mehreren Angriffen auf kritische Infrastrukturen im Jahr 2020 begannen Regierungen auf der ganzen Welt damit, Vorschriften und Standards zur Verbesserung der Sicherheit und des Bedrohungsschutzes für Software Supply Chains auszuarbeiten.
Im Mai 2021 unterzeichnete Präsident Biden die Executive Order on Improving the Nation’s Cybersecurity, eine präsidiale Anordnung, die in einer Zeit, in der Cyberspionage und nationalstaatliche Angriffe auf kritische Infrastrukturen krisenhafte Ausmaße erreichen, als Meilenstein für die Regierung der USA gilt.
Die britische Regierung kündigte an, Ratschläge in Bezug auf die Abwehr von Angriffen auf digitale Supply Chains von Organisationen, die IT-Dienste nutzen, oder MSPs, die Software und Dienste anbieten, in Anspruch zu nehmen.
Deutschland verabschiedete das IT-Sicherheitsgesetz 2.0 als Aktualisierung des ersten Gesetzes, um „die Cyber- und Informationssicherheit vor dem Hintergrund der immer häufigeren und komplexeren Cyberangriffe und der fortschreitenden Digitalisierung des alltäglichen Lebens zu erhöhen“.
Die Agentur der Europäischen Union für Cybersicherheit (ENISA) hat im Juli 2021 einen Bericht mit dem Titel „Untersuchung der Zunahme von Angriffen auf die Sicherheit der Supply Chain“ veröffentlicht. Der Bericht geht auf 24 verschiedene Angriffe auf die Software-Supply-Chain ein und enthält Empfehlungen, die Unternehmen umsetzen sollten, um sich vor Angriffen zu schützen.
Da Regierungen endlich die Risiken im Zusammenhang mit unkontrollierten Software-Supply-Chains erkennen, werden energisch Maßnahmen ergriffen, um die Software-Industrie an andere produzierende Branchen angleichen. Achten Sie darauf, was in Sachen Gesetzgebung auf Ihrem Markt passiert, beteiligen Sie sich an den öffentlichen Diskussionen und seien Sie darauf vorbereitet, Ihre Entwicklungsverfahren entsprechend zu ändern.
Entwickler treffen in jeder Phase des DevSecOps-Wertstroms eine Viehlzahl digitaler Entscheidungen, über die sie noch vor einem Jahr nicht nachdenken mussten. Ein Verständnis davon, wie sich diese Entscheidungen optimieren lassen und wie sie sich auf die Software-Supply-Chain insgesamt auswirken, spielt eine zentrale Rolle für den Erfolg eines Unternehmens.
Lesen Sie den vollständigen Bericht, um weitere Erkenntnisse, Analysen und Ratschläge rund um die Entwicklung optimaler Software-Supply-Chains zu erhalten.
Sonatype Headquarters - 8161 Maple Lawn Blvd #250, Fulton, MD 20759
Tysons Office - 8281 Greensboro Drive – Suite 630, McLean, VA 22102
Australia Office - 60 Martin Place Level 1, Sydney, NSW 2000, Australia
London Office -168 Shoreditch High Street, E1 6HU London
Copyright © 2008–heute, Sonatype Inc. Alle Rechte vorbehalten. Schließt hier aufgeführten Drittanbietercode ein. Sonatype und Sonatype Nexus sind Warenzeichen von Sonatype, Inc. Apache Maven und Maven sind Warenzeichen der Apache Software Foundation. M2Eclipse ist ein Warenzeichen der Eclipse Foundation. Alle anderen Warenzeichen sind Eigentum der jeweiligen Inhaber.
Nutzungsbedingungen Datenschutzrichtlinie Erklärung zu moderner Sklaverei Event Terms and Conditions Do Not Sell My Personal Information