Aikido

Das Open-Source-Lizenzrisiko in moderner Software verstehen

Mackenzie JacksonMackenzie Jackson
|
#
#

Open Source ist eines der besten Dinge, die der Softwareentwicklung je widerfahren sind.

Es ist auch einer der einfachsten Wege, versehentlich rechtliche Verpflichtungen einzugehen, denen Sie nicht zugestimmt haben.

Die meisten Teams wissen, dass sie stark auf Open-Source-Abhängigkeiten angewiesen sind. Weniger Teams wissen jedoch genau, welche Lizenzen diese Abhängigkeiten verwenden, welche Verpflichtungen damit einhergehen oder wie diese Lizenzen durch transitive Abhängigkeiten und Container-Images weitergegeben werden.

Diese Lücke nennen wir Open-Source-Lizenzrisiko.

Was ist Open-Source-Lizenzrisiko?

Jedes Open-Source-Paket kommt mit einer Lizenz. Diese Lizenz definiert, was Sie mit dem Code tun dürfen und was Sie im Gegenzug tun müssen.

Lizenzrisiko entsteht, wenn diese Verpflichtungen im Konflikt damit stehen, wie Sie Ihre Software entwickeln, ausliefern oder monetarisieren.

Einige gängige Beispiele:

  • Copyleft-Lizenzen können Sie dazu verpflichten, den Quellcode unter bestimmten Bedingungen zu teilen
  • Attributionsanforderungen bedeuten, dass Sie Lizenztext oder Copyright-Vermerke in Ihre Distribution aufnehmen müssen
  • Lizenzen mit Nutzungsbeschränkungen können die kommerzielle Nutzung untersagen oder ungewöhnliche Bedingungen auferlegen
  • Richtlinienverstöße treten auf, wenn eine Abhängigkeit eine Lizenz verwendet, die Ihr Unternehmen nicht zulässt.

Nichts davon bedeutet, dass Open Source gefährlich ist. Es bedeutet lediglich, dass Lizenzen Regeln sind und Regeln auch dann gelten, wenn der Code kostenlos ist.

Gängige Open-Source-Lizenzen und ihre Hauptrisiken

Lizenz Typ Häufig verwendet in Wichtige Risiken
MIT Permissive JavaScript, npm, Python Muss Copyright- und Lizenztext in Distributionen enthalten; wird oft in ausgelieferten Produkten übersehen
BSD (2-Clause / 3-Clause) Permissive Infrastruktur, Netzwerkbibliotheken Namensnennung erforderlich; 3-Clause schränkt die Verwendung von Namen der Mitwirkenden für Empfehlungen ein
Apache 2.0 Permissive Java, Cloud-native, CNCF-Projekte Erfordert Namensnennung und NOTICE-Datei; enthält eine Patentbeendigungsklausel
ISC Permissive Systemnahe Tools Sehr ähnlich zu MIT; Namensnennung weiterhin erforderlich
GPL v2 Starkes Copyleft System-Tools, ältere Bibliotheken Kann die Freigabe des Quellcodes erfordern, wenn als Teil eines kombinierten Werks verbreitet
GPL v3 Starkes Copyleft Sicherheit, Krypto, CLI-Tools Fügt Anti-Tivoisierung- und Patentklauseln hinzu; wird oft durch Unternehmensrichtlinien blockiert
LGPL v2.1 / v3 Schwaches Copyleft C/C++ Shared Libraries Ermöglicht dynamisches Linking, aber statisches Linking oder Modifikationen können Offenlegungspflichten für den Quellcode auslösen.
AGPL v3 Netzwerk-Copyleft Datenbanken, Backend-Dienste Kann die Offenlegung des Quellcodes erfordern, selbst wenn die Software nur als Dienstleistung angeboten wird.
MPL 2.0 Dateibasiertes Copyleft Firefox, einige Backend-Bibliotheken Modifikationen an lizenzierten Dateien müssen offengelegt werden; das Mischen von Dateien kann zu Verwirrung führen.
CDDL Schwaches Copyleft Datenbanken, Legacy Java Inkompatibel mit GPL; Lizenzkonflikte können die Weiterverbreitung blockieren.
EPL 2.0 Schwaches Copyleft Java-Frameworks Dateibasiertes Copyleft; Kompatibilitätsprobleme mit GPL.
SSPL Quellcode verfügbar (nicht OSI-konform) Datenbanken (z. B. MongoDB-Forks) Einschränkungen bei der kommerziellen Nutzung; wird im Allgemeinen nicht als Open Source betrachtet.
BSL Quellcode verfügbar Datenbanken, Infrastruktur-Tools Zeitverzögertes Open Source; kommerzielle Einschränkungen gelten bis zur Umwandlung.
Unlicense / Public Domain Gemeinfrei-ähnlich Kleine Utilities Einige Rechtsteams lehnen dies aufgrund unklarer gerichtlicher Durchsetzbarkeit ab.
Proprietär / Benutzerdefiniert Eingeschränkt Anbieter-SDKs Nutzungsbedingungen können die Weiterverbreitung, Modifikation oder kommerzielle Nutzung untersagen.

Warum dies Teams immer wieder überrascht

Die meisten Lizenzprobleme werden nicht durch schlechte Entscheidungen verursacht. Sie entstehen, weil moderne Software tief, vielschichtig und schnelllebig ist.

Einige Gründe, warum Lizenzrisiken leicht übersehen werden:

1. Transitive Abhängigkeiten häufen sich schnell an

Man fügt ein Paket hinzu. Dieses Paket fügt zehn weitere hinzu. Diese wiederum fügen fünfzig weitere hinzu.

Irgendwo im Abhängigkeitsbaum führt eine Abhängigkeit eine Lizenz ein, die Ihr Team niemals direkt wählen würde. Sie liefern sie trotzdem aus.

2. Lizenz-Metadaten sind unübersichtlich

Paket-Registries sind nicht perfekt. Lizenzen können fehlen, falsch gekennzeichnet oder zu weit gefasst sein. Einige Pakete listen mehrere Lizenzen auf. Einige ändern Lizenzen zwischen Versionen.

Sich auf ein einzelnes Metadatenfeld zu verlassen, ist oft nicht ausreichend.

3. Container bringen ihre eigenen Überraschungen mit sich

Ihr Quellcode-Repository mag sauber sein, aber Ihr Container-Image enthält Systempakete, Sprach-Runtimes und Build-Tools.

Auch diese sind mit Lizenzen verbunden.

4. Audits interessieren sich nicht für die Absicht

Kunden, Partner und Beschaffungsteams fragen zunehmend nach SBOMs und Lizenzoffenlegungen. „Uns war nicht bewusst, dass es vorhanden war“ ist keine zufriedenstellende Antwort während eines Audits.

Wie gute Lizenzhygiene tatsächlich aussieht

Man braucht keinen Jura-Abschluss oder einen sechsmonatigen Prozess, um Lizenzrisiken zu managen. Teams, die dies gut machen, befolgen in der Regel einige einfache Prinzipien.

Eine klare Lizenzrichtlinie definieren

Entscheiden Sie, welche Lizenzen erlaubt sind, welche einer Überprüfung bedürfen und welche blockiert sind. 

Kontinuierlich scannen, nicht einmal im Jahr

Lizenzprüfungen funktionieren am besten, wenn sie automatisch als Teil Ihres normalen Workflows ausgeführt werden. Pull Requests, CI und Release-Pipelines sind ideale Orte, um Probleme frühzeitig aufzudecken.

Ein Lizenzproblem zu beheben, bevor eine Abhängigkeit ausgeliefert wird, ist wesentlich einfacher, als es zu beheben, nachdem Kunden involviert sind.

Reales Risiko priorisieren

Nicht jede Lizenzfeststellung verdient das gleiche Maß an Aufmerksamkeit. Ein Scanner, der alles als kritisch einstuft, wird schnell zu Hintergrundrauschen.

Sie möchten, dass die risikoreichsten Lizenzen hervorstechen, damit Teams schnell und sicher handeln können.

Audit-fähige Ausgaben generieren

Irgendwann wird jemand nach einem SBOM oder einem Lizenzbericht fragen. Wenn das passiert, möchten Sie auf „Exportieren“ klicken, anstatt ein Tabellenkalkulations-Abenteuer zu beginnen.

Lizenzdurchsetzung in der Praxis 

Die Lizenzdurchsetzung funktioniert am besten, wenn sie dort läuft, wo Entwickelnde bereits arbeiten.

In der Praxis bedeutet das, dass Lizenzprüfungen automatisch bei Pull Requests und CI-Läufen erfolgen, nicht als separater Audit-Prozess. Wenn eine Abhängigkeit eine Lizenz einführt, die gegen Richtlinien verstößt, können Teams wählen, wie sie reagieren: die Änderung blockieren, zur Überprüfung markieren oder einfach überwachen.

Das Aufdecken von Lizenzproblemen, bevor Code zusammengeführt wird, macht die Durchsetzung vorhersehbar und verhindert Überraschungen in letzter Minute bei Releases oder Audits.

Wie Aikido das Lizenzrisiko bestimmt (und warum es zuverlässig ist)

Aikido verwendet einen mehrschichtigen Ansatz zur Lizenzdetektion, der Genauigkeit, geringes Rauschen und Audit-Bereitschaft priorisiert.


Viele Lizenz-Scanner erzeugen eine große Anzahl von Fehlalarmen, indem sie sich auf statisches Musterabgleich oder unvollständige Metadaten verlassen. Mit der Zeit untergräbt dies das Vertrauen in die Ergebnisse und führt dazu, dass Teams Lizenzfeststellungen gänzlich ignorieren.

Aikido verlässt sich nicht auf ein einzelnes „Lizenz“-Feld aus einem Paket-Registry. In realen Abhängigkeitsbäumen sind diese Metadaten oft fehlend, inkonsistent oder irreführend.

Stattdessen verwenden wir einen mehrschichtigen Prozess, der sowohl genau als auch auditfreundlich ist:

1) Wir erstellen einen vollständigen Abhängigkeits- und Lizenzgraphen

Wir erfassen Manifeste und Lockfiles über mehrere Ökosysteme hinweg und normalisieren sie in einen Abhängigkeitsgraphen. Jede Abhängigkeit wird mit Registry- und Repository-Metadaten angereichert, sodass Sie ein zuverlässiges Inventar dessen erhalten, was Sie tatsächlich ausliefern, einschließlich transitiver Abhängigkeiten und OS-Paketen in Container-Images.

2) Regeln zuerst für die gängigen Fälle

Für die „langweiligen 80 %“ der Pakete mit Standardlizenzen (MIT, Apache-2.0, BSD usw.) verwendet Aikido deterministische Erkennungsregeln. Dies ist schnell, konsistent und vermeidet unnötiges Rauschen.

3) KI-Analyse für mehrdeutige oder unübersichtliche Fälle

Wenn Lizenzen unklar sind (benutzerdefinierte Bedingungen, ungewöhnliche Formatierung, fehlende Metadaten oder mehrere Lizenzdateien), wendet Aikido eine KI-basierte Analyse an, um den Inhalt des Pakets zu interpretieren und Verpflichtungen zu identifizieren, die statische Tools oft übersehen.

Um große oder nicht standardisierte Lizenztexte zu handhaben, unterteilen wir Lizenzdateien in relevante Abschnitte, damit das Modell sich auf die wichtigen Teile konzentrieren kann (Copyleft-Klauseln, Weiterverbreitungsanforderungen, Nutzungsbeschränkungen usw.).

4) Menschliche rechtliche Validierung für hochwirksame Grenzfälle

Aikido beinhaltet einen Validierungsschritt, bei dem mehrdeutige oder hochwirksame Feststellungen von Rechtsexperten überprüft werden können. Dies stellt sicher, dass die endgültige Klassifizierung den tatsächlichen Lizenzverpflichtungen entspricht und nicht nur einer Best-Effort-Automatisierung.

5) Versionsspezifische Ergebnisse und Richtliniendurchsetzung

Lizenzpflichten können sich zwischen Versionen ändern. Aikido löst Lizenzen für die exakten Abhängigkeitsversionen auf, die Sie ausliefern, und verknüpft diese Daten mit Richtlinienkontrollen, sodass Teams „erlauben / überprüfen / blockieren“-Regeln direkt in CI/CD durchsetzen können.

Wie Aikido im Vergleich zu anderen Tools abschneidet

Funktionalität Aikido Socket JFrog Curation
Ansatz zur Lizenzdetektion Hybrid (Regeln + KI + rechtliche Prüfung) Statischer Musterabgleich Metadaten + Regeln
False Positives Niedrig Hoch Mittel
Benutzerdefinierte / proprietäre Lizenzen Stark Begrenzt Begrenzt
Versionsspezifische Auflösung Ja Oft anfällig Teilweise
Durchsetzung zur PR-Zeit Ja Ja Ja
Malware-Erkennung Ja Nein Begrenzt
Pre-CVE- / CVE-lose Risiken Ja Nein Begrenzt
Ökosystem-Abdeckung Sehr breit JS-fokussiert Breit
OS-Pakete in Containern Ja Teilweise Ja

Aikido verwendet einen hybriden Ansatz, der Regeln, KI-basierte Analyse und rechtliche Validierung kombiniert. Dies führt zu weniger Fehlalarmen und einer besseren Handhabung von benutzerdefinierten oder proprietären Lizenzen als bei Tools, die sich hauptsächlich auf statischen Musterabgleich verlassen.

Im Gegensatz zu Tools, die sich ausschließlich auf Lizenztexte konzentrieren, erkennt Aikido auch Malware und Pre-CVE-Risiken, was eine umfassendere Sicht auf das Risiko in der Software-Lieferkette bietet. Die Ökosystem-Abdeckung erstreckt sich über Anwendungsabhängigkeiten hinaus und umfasst Betriebssystempakete in Container-Images.

Socket konzentriert sich hauptsächlich auf JavaScript-Ökosysteme und statische Lizenzdetektion, was oft zu höheren Fehlalarmraten und einer anfälligen Versionsverwaltung führt. JFrog Curation bietet eine breitere Ökosystem-Unterstützung, aber eine eingeschränktere Handhabung von benutzerdefinierten Lizenzen und Nicht-CVE-Risiken.

Lizenzdurchsetzung existiert nicht isoliert. Das reale Risiko in der Lieferkette umfasst Malware, kompromittierte Pakete und aufkommende Bedrohungen, denen noch keine CVEs zugewiesen wurden. Aikido wurde entwickelt, um Lizenzrisiken als Teil dieses umfassenderen Bildes zu adressieren.

Fazit

Open-Source-Lizenzen sind nichts, wovor man sich fürchten muss, aber etwas, das man respektieren sollte.

Angesichts der Größe moderner Abhängigkeitsbäume funktioniert manuelles Tracking nicht. Teams, die Lizenzrisiken proaktiv begegnen, tun drei Dinge gut: Sie automatisieren die Transparenz, priorisieren echte Probleme und integrieren Prüfungen frühzeitig in die Entwicklung.

Genau dafür haben wir Aikido entwickelt.

Wenn Sie sehen möchten, wie sich das Lizenz-Scanning in Ihre bestehenden Workflows integriert, können Sie es ausprobieren oder Ihre erste SBOM in wenigen Minuten generieren. Ihr zukünftiges Ich und wahrscheinlich auch Ihr Rechtsteam werden es Ihnen danken.

4.7/5

Sichern Sie Ihre Software jetzt.

Kostenlos starten
Ohne Kreditkarte
Demo buchen
Ihre Daten werden nicht weitergegeben · Nur Lesezugriff · Keine Kreditkarte erforderlich

Werden Sie jetzt sicher.

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.