Behalten Sie den Überblick über Ihre Open-Source-Softwarelizenzen

Das Hinzufügen neuer Open-Source-Pakete zu Anwendungen ist einfacher und leichter zugänglich als je zuvor.

Die Verwendung von Open-Source-Softwarekomponenten in der Softwareentwicklung nimmt stetig zu. Im Moment gibt es über 40 Millionen Konten auf GitHub, und es wird prognostiziert, dass die Zahl der Nutzer bis 2025 auf 100 Millionen ansteigen wird.

Ein solch explosives Wachstum bringt jedoch auch Risiken mit sich - wenn die Software-Lieferkette nicht ordnungsgemäß verwaltet wird, indem Komponenten, ihre Abhängigkeiten und Lizenzen im Auge behalten werden, kann dies katastrophale Folgen haben.

Die Verwendung und gemeinsame Nutzung wiederverwendbarer Bausteine zur Beschleunigung des Softwareentwicklungszyklus ist heute gängige Praxis. Infolgedessen sind Entwicklungs-Ökosysteme wie npm (Node Package Management) in ihrer Abhängigkeit von Bibliotheken Dritter gewachsen.

Npm ist der weltweit am weitesten verbreitete Client für JavaScript und die Anlaufstelle für Entwickler, um JavaScript-Pakete zu holen und Code wiederzuverwenden, um den Entwicklungsprozess zu beschleunigen. Die npm-Registry hat bereits einen Meilenstein von einer Milliarde täglicher Downloads erreicht.

“Es gab 1,5 Millionen npm-Pakete allein in der öffentlichen Registry im Februar 2021”

Aber - es scheint, dass Entwickler, Sicherheits- und Rechtsteams und Geschäftsinhaber meist im Dunkeln tappen, wenn es um ihre Lizenzverpflichtungen geht.

Was ist eine Open-Source-Software-Lizenz?

Was ist eine Open-Source-Softwarelizenz?

Open-Source-Software-Lizenzen (OSS-Lizenzen) erlauben es Entwicklern, ihren Quellcode (Komponenten, Bibliotheken und mehr) als Open-Source zu veröffentlichen. Andere Entwickler können dann (in unterschiedlichem Maße, wie in der jeweiligen Lizenz definiert) diese Komponenten frei in ihrer eigenen Arbeit verwenden.

Wenn Sie Open-Source-Komponenten verwenden, unterschreiben Sie implizit einen rechtlichen Vertrag, der einklagbar ist. Er bindet Sie (d.h. den Entwickler oder die Firma) und den Autor, wie Sie deren Code verwenden werden. Abhängig vom Lizenztyp gibt es große Unterschiede in den Rechten, die sie gewähren und den Pflichten, die sie einfordern.

Warum sind Lizenzen notwendig? Ist Open Source nicht frei zu verwenden?

Open-Source-Code ist frei und kann von jedem genutzt werden - aber es gibt Einschränkungen. Für jede bestimmte Open-Source-Lizenz gibt es Bedingungen, die die Benutzer darin einschränken, was sie tun können und was nicht. Es liegt dann an jedem Entwickler oder Unternehmen, sich an die Bedingungen zu halten.

Was könnte schiefgehen?

Jede Open-Source-Komponente und jede Komponente, von der sie abhängt, hat auch einzigartige Bedingungen, die alle eingehalten werden müssen.

In der Softwareindustrie halten sich Unternehmen an den Software Development Life Cycle (SDLC), um vollständig getestete, produktionsreife Software zu gewährleisten. Durch das schrittweise Befolgen des Prozesses werden die typischen Fallstricke von Softwareentwicklungsprojekten beseitigt.

Die Lizenzkonformität muss jedoch bereits zu Beginn des SDLC-Prozesses überprüft werden. Je später Sie dies tun, desto größer ist die Wahrscheinlichkeit von Störungen, die sich auf den Vertrieb Ihrer Software auswirken könnten.

Wie wirkt sich die Lizenzierung auf derivative Arbeiten aus?

Für Entwickler ist es wichtig zu verstehen, wie sich statische und dynamische Links auf die Lizenzierung von abgeleiteten Arbeiten auswirken können. Diese Unterscheidung ist entscheidend, wenn es darum geht, die Lizenzierungsanforderungen zu interpretieren.

Sobald der modifizierte Code veröffentlicht wird, besteht die reale Möglichkeit, dass Sie gezwungen werden, Ihre gesamte proprietäre, selbst entwickelte Software zu verteilen, wenn die entsprechenden Lizenzbedingungen nicht erfüllt werden.

Was sind die möglichen Konsequenzen einer Nichteinhaltung?

  • Vertragsstrafen und Einschränkungen für den Verkauf des Softwareprodukts Ihres Unternehmens, bis die Lizenzbedingungen erfüllt sind
  • Eine einstweilige Verfügung kann den Vertrieb eines Produkts verhindern, bis der Quellcode freigegeben ist
  • Je später eine problematische Abhängigkeit entdeckt wird, desto kostspieliger wird die Behebung sein.
  • Negative Presseberichterstattung bei Nichteinhaltung
  • Verlust des Ansehens bei Kunden
  • Schaden für die Glaubwürdigkeit in der Open-Source-Gemeinschaft
  • Entdeckungs- und Due-Diligence-Kosten als Reaktion auf eine Compliance-Anfrage zu einem bestimmten Quellcode
  • Mögliche externe Rechtskosten, um eine Klage zu bearbeiten

Die Folgen von Klagen wegen Nichteinhaltung von Vorschriften waren stets, dass die Beklagten letztendlich nachgeben mussten. Außerdem überstiegen die Kosten für die Reaktion auf einen Anspruch in der Regel die Kosten für die Zeit und das Geld, die für die Einhaltung der grundlegenden Compliance-Vorschriften erforderlich waren.

Verschiedene Arten von Open-Source-Lizenzen

Verschiedene Typen von Open-Source-Lizenzen

Was sind die Unterschiede zwischen kommerziellen Software-Lizenzen und Open-Source-Software-Lizenzen?

Bei den meisten kommerziellen Lizenzen besteht die Hauptverpflichtung darin, das Recht zur Nutzung oder Verbreitung der proprietären Software auf autorisierte Benutzer zu beschränken - d.h. auf diejenigen, die dafür bezahlt haben (denken Sie an Microsoft).

Proprietäre Software-Entwickler benutzen das Urheberrecht, um dem Benutzer die Freiheit zu nehmen, was dem Open-Source-Ethos widerspricht. Der Lizenzgeber behält die exklusiven und alleinigen Rechte, die Software zu bearbeiten, zu prüfen, zu ändern und zu erweitern.

Eine Open-Source-Lizenz wird nicht gekauft, sie ist kostenlos. Der Benutzer ist in der Lage, den Code nach eigenem Ermessen zu verändern, zu verbessern und zu verbreiten. Es kann jedoch Bedingungen geben, die ein Benutzer respektieren und einhalten muss, sobald er seine Software weitergibt.

Abhängig vom type der Open-Source-Lizenz kann der Benutzer verpflichtet sein, einen bestimmten Lizenztext zu reproduzieren, zusätzlich zu der Verpflichtung, seine Software bei der Weitergabe verfügbar zu machen. Die Lizenz ist dazu da, die Verantwortlichkeiten für diejenigen zu definieren, die die Software verwenden und weitergeben.

Wissen Sie, welche Open-Source-Lizenzen Sie verwenden?

Von den tausenden verschiedenen Software-Lizenzen, die es gibt, werden mehr als 200 als Open-Source-Lizenzen kategorisiert. Von diesen sind etwa 80 von der Open Source Initiative (OSI) anerkannt. Alle diese verschiedenen Lizenzen haben ihre eigenen Bedingungen, einige sind copy-left, andere permissiv und wieder andere haben gar keine Lizenz.

Heute überwiegen die permissiven Lizenzen bei weitem die Copyleft-Lizenzen. Die Open-Source-Gemeinschaft umarmt die Komponenten mit den Lizenzen, die am einfachsten zu verwenden sind. Permissive Lizenzen bieten eine einfachere Lösung für die Einhaltung von Richtlinien, was die Kopfschmerzen bei der Lizenzierung reduziert.

90% des Codes in modernen Anwendungen ist Open-Source-Code, der von anderen entwickelt wurde “

Die verschiedenen Typen von Open-Source-Lizenzen verstehen

Open-Source-Lizenzen lassen sich im Allgemeinen in zwei Hauptkategorien einteilen: copyleft und permissive.** Diese Einteilung basiert auf den Anforderungen und Einschränkungen, die ein Autor den Benutzern auferlegt.

Eine permissive Lizenz setzt minimale Einschränkungen, wie andere die Open-Source-Komponenten verwenden können. Sie verlangt so gut wie keine Gegenleistung in Bezug auf irgendwelche Verpflichtungen in der Zukunft.

Eine Copyleft-Lizenz bietet die gleiche Erlaubnis wie eine permissive Lizenz, verlangt aber, dass Sie alle abgeleiteten Werke, die Sie machen, unter den gleichen Copyleft-Lizenzbedingungen veröffentlichen.

Viele Open-Source-Lizenzen schreiben vor, wie oder ob die Software in kommerziellen Anwendungen verwendet werden darf, und unter welchen Voraussetzungen und Einschränkungen dies möglich ist.

Für eine Softwarekomponente ohne Lizenz ist sie nicht frei verwendbar. Standardmäßig ist sie vollständig urheberrechtlich geschützt, so dass Entwickler keine rechtlichen Rechte haben, sie zu verwenden, zu verändern oder weiterzugeben.

Als Gemeinschaft tun die Open-Source-Entwickler ihr Bestes, um sicherzustellen, dass Open Source einfach zu übernehmen, zu verwenden und einzuhalten ist. Und auch Unternehmen können ihren Teil dazu beitragen, indem sie sicherstellen, dass sie die Lizenzanforderungen für den von ihnen verwendeten Code einhalten.

Lizenz-Kompatibilität

Die Kombination mehrerer verschiedener Lizenzen kann eine Herausforderung darstellen. Denn die Berechtigungen und Bedingungen einer bestimmten Lizenz können mit den Anforderungen einer anderen in Konflikt geraten.

Im Allgemeinen sind permissive Lizenzen miteinander kompatibel, was sie zu beliebten Komponenten für proprietäre Softwareprodukte macht. Und weil sie permissiv sind, sind sie mit Copyleft-Lizenzen kompatibel.

Im Allgemeinen sind die Copyleft-Lizenzen für kommerzielle Software problematischer, da sie als reziproke Lizenzen bekannt sind. Das bedeutet, dass abgeleitete Werke ebenfalls unter einer kompatiblen Copyleft-Lizenz veröffentlicht werden müssen.

Basierend auf der Prämisse, dass jeder frei von der früheren Arbeit anderer profitieren kann, aber dass jede Änderung an dieser Arbeit auch allen anderen zugute kommen sollte und daher unter ähnlichen Bedingungen veröffentlicht werden muss.

Warum ist Open-Source-Compliance so wichtig?

Warum ist Open-Source-Compliance so wichtig?

Warum gibt es Open-Source-Lizenzen?

Open-Source-Komponenten beschleunigen den Software-Entwicklungszyklus. Unterstützt von hunderten und manchmal tausenden von Communities, die die Entwickler von OSS repräsentieren.

Obwohl die Software frei ist, haben die Benutzer eine Verantwortung, die Einhaltung der Verpflichtungen sicherzustellen, die mit einer Lizenz einhergehen.

Open-Source-Compliance ist der Prozess, bei dem die Benutzer und Entwickler von OSS Urheberrechtsvermerke beachten und Lizenzbedingungen erfüllen.

Lizenzen helfen Unternehmen, ihr eigenes geistiges Eigentum und das von Drittanbietern zu schützen und erleichtern die Verwendung von OSS in kommerziellen Produkten.

Was sind die Konsequenzen bei Nichteinhaltung?

Die Verwendung eines Pakets, das nicht lizenziert oder mit der falschen Lizenz versehen ist, kann zu Compliance-Fehlern führen, und als Folge davon

  • Zeit und Kosten für das Entfernen einer Komponente verursachen
  • “Zurück zum Anfang” bedeuten, wenn Sie ein Codesegment ersetzen und neu entwickeln müssen
  • Nach der Veröffentlichung droht eine Klage wegen Rechtsverletzung
  • Potenziell gefährden Sie das exklusive Eigentum an proprietärem Code.
  • Als Folge eines Verstoßes gegen die Lizenzverpflichtungen kann ein Lizenzgeber einen Softwarehersteller auffordern, die zukünftige Verbreitung seiner Komponenten zu unterlassen.
  • Oder mit einer Komponente zu arbeiten, deren Lizenz von niemandem gewartet wird, was sie reif für eine Ausbeutung macht

Mit einem Tool wie Bytesafe können Sie Lizenzinformationen in der Open-Source-Software identifizieren, die Sie derzeit verwenden:

  • Pakete können mehrere Lizenzen haben.
  • Verwenden Sie es, um problematische oder nicht lizenzierte Pakete einzuschränken
  • Scannt alle Paketdateien und benachrichtigt, wenn Lizenzprobleme identifiziert werden

Rechtliche Risiken und Pflichten

Rechtliche Risiken und Pflichten

Copyleft-Effekt

Copyleft besagt, dass jeder, der die Software weitergibt, mit oder ohne Änderungen, die Freiheit weitergeben muss, sie zu kopieren und zu verändern.

Modifizierung von OSS

Bei der Weitergabe von modifizierten Versionen verlangen einige Lizenzen, dass solche Änderungen formal hervorgehoben werden, zusammen mit begleitenden Informationen über das Datum und den Umfang der vorgenommenen Änderungen, oder sie verlangen, dass modifizierte Komponenten umbenannt werden, um Verwechslungen mit der ursprünglichen Version zu vermeiden.

Lizenztext

Die meisten Open-Source-Lizenzen enthalten spezifische Verpflichtungen bezüglich Information und Dokumentation. In vielen Fällen verlangen die Lizenzen, dass der jeweilige Lizenztext zusammen mit der Software ausgeliefert wird, wenn diese verteilt wird.

Fehlende Lizenztexte sind ein klassischer Fall von Lizenzverletzung, der bei einigen Lizenzen zum Verlust aller Nutzungsrechte führen kann und in der Praxis manchmal auch Zwangsmaßnahmen wie eine einstweilige Verfügung nach sich zieht.

Neben dem Lizenztext ist in vielen Fällen auch die Anbringung eines Copyright-Vermerks erforderlich, der den Namen des Urhebers nennt.

Die Copyright-Hinweise sind in der Regel an mehreren Stellen in der Software zu finden. Zum Teil sind sie in der Datei mit den Lizenztexten enthalten. Darüber hinaus können auch die Quelldateien Copyright-Hinweise enthalten, die oft über Hunderte oder Tausende von Dateien verteilt sind.

Due Diligence

Bei der Investition in ein Unternehmen bezieht sich ein kritischer Teil der Due-Diligence-Prüfung oft auf proprietäre Software und die Verwendung von Open-Source-Komponenten.

Die OSS, die in einem proprietären Produkt verwendet wird, kann regulatorische und Compliance-Folgen haben, die bewertet werden müssen. Daher muss das Software-Lizenzinventar eines Unternehmens berücksichtigt werden, um die verwendeten Komponenten zu identifizieren und die Einhaltung der Vorschriften sicherzustellen.

Wann gelten die Lizenzverpflichtungen?

Damit die Verpflichtungen gelten, ist in der Regel die Weitergabe der Software erforderlich.

Zusammenstellung Ihrer Codebase

Zusammensetzung Ihrer Codebasis

Worauf sollten Sie Ihre Compliance-Bemühungen konzentrieren?

Es wird Sie nicht überraschen, wenn Sie erfahren, dass der Code eines typischen kommerziellen Softwareprodukts heute in den meisten Fällen Open Source ist.

Da die Nutzung von Open Source immer weiter zunimmt, ist es von entscheidender Bedeutung, dass sich Entwickler, Unternehmen, Rechtsteams usw. mit der Zusammensetzung der Codebasis ihres Produkts vertraut machen.

Jede Komponente und ihre Abhängigkeiten haben Lizenzbeschränkungen und -verpflichtungen, die eingehalten werden müssen, von der freizügigen “anything goes” bis zur eingeschränkten Copyleft-Lizenz.

Um diese einzuhalten, müssen Sie wissen, welche Open-Source-Komponenten in der Codebasis enthalten sind. Permissive, Copyleft oder unlizensiert, sie alle haben Konsequenzen, wenn Sie die Anforderungen nicht erfüllen.

Und nur weil eine Komponente nicht lizenziert ist, gibt es Ihnen keinen Freibrief zu tun was Sie wollen. Keine Lizenz bedeutet, dass sie standardmäßig unter exklusivem Copyright steht, so dass Sie den Code nicht verwenden, modifizieren oder weitergeben können.

Es ist daher sinnvoll, die Compliance-Bemühungen darauf zu konzentrieren, die Verpflichtungen der restriktiveren Softwarelizenzen zuerst zu erfüllen.

Es gibt mehrere Organisationen, die Richtlinien und Definitionen zu Software-Lizenzen bereitstellen.

The Free Software Foundation unterhält eine nicht vollständige Liste von Softwarelizenzen und die Open Source Initiative definiert eine Liste von etwa 80 zertifizierten Open-Source-Lizenzen.

Lizenz-Scanning

Lizenz-Scanning

Wenn Sie Open Source in Ihr Softwareprodukt einbinden, ist es riskant anzunehmen, dass die Ihnen bekannte Hauptprojektlizenz die einzige Lizenz ist, die Sie einhalten müssen.

Die Lizenz einer Komponente muss nicht unbedingt für jede einzelne Datei oder jede Codezeile innerhalb einer einzelnen Datei gelten. Das liegt daran, dass Open-Source-Projekte aus den Beiträgen von hunderten oder sogar tausenden von Mitgliedern der Gemeinschaft entstehen, die alle aus unterschiedlichen Quellen stammen.

Jede Open-Source-Komponente könnte von einer Vielzahl von Lizenzen abhängig sein, die Sie möglicherweise nicht identifizieren können, ohne einen Scan durchzuführen. Mit jeder Lizenz könnten unterschiedliche Bedingungen und auferlegte Verpflichtungen einhergehen.

Pakete, die in einer Bytesafe-Registrierung gespeichert sind, werden auf Lizenzinformationen gescannt. Identifizierte Lizenzen werden dann sowohl für die neueste Version eines Pakets als auch für einzelne Paketversionen angezeigt.

Mit den gescannten Lizenzinformationen können Benutzer problematische Lizenzen identifizieren oder eine Benachrichtigung über nicht lizenzierte oder nicht standardisierte Lizenzen erhalten.

Bytesafe Lizenz-Scanner-Plugin

Wenn es aktiviert ist, scannt das plugin die Dateien aller Pakete in einer Registry und kennzeichnet potenzielle Lizenzprobleme. Identifizierte Lizenzen für ein Paket werden dann als Lizenz-Badges angezeigt. Ein Paket kann einen oder mehrere Lizenz-Badges haben (Pakete können mehrere Lizenzen haben).

Wenn keine Lizenzinformationen für ein Paket gefunden werden, wird dies als potenzielles Lizenzproblem gekennzeichnet. Pakete, die nicht lizenziert sind, sind in der Regel urheberrechtlich geschützt, und es sind möglicherweise weitere Untersuchungen erforderlich.

Der Bytesafe-Scan kann auf folgende Weise verwendet werden:

  • Unlizenzierter Quellcode - Identifizieren von Paketen, die nicht lizenziert sind
  • Nicht standardisierte Lizenzen - Identifizieren Sie nicht standardisierte Lizenzen, die eine weitere Untersuchung zur Überprüfung des Urheberrechtsstatus erfordern
  • Problematische Lizenzen blockieren - stellen Sie sicher, dass unerwünschte Lizenzen nicht zu Ihren Registrierungen hinzugefügt werden, indem Sie eine Lizenzblockierungsrichtlinie anwenden

Häufige Compliance-Fehler

Häufige Compliance-Fehler

Unlizenzierter Quellcode

Wenn Sie keine Lizenz für Ihren Code angeben, die etwas anderes besagt, darf niemand Ihre Arbeit kopieren, weitergeben oder verändern. Nicht lizenzierte Software ist standardmäßig vollständig urheberrechtlich geschützt, so dass andere Entwickler keine Rechte haben, sie zu verwenden, zu verändern oder weiterzugeben.

Solange sie also nicht in die Public Domain übergeht oder durch eine andere Lizenz abgedeckt ist, ist sie rechtlich nicht nutzbar. Dies hat direkte Auswirkungen auf die Wiederverwendung und die Nachhaltigkeit.

Stellen Sie die Konformität sicher, bevor Sie Ihre Software verbreiten

Die wichtigste Lehre aus den Non-Compliance-Fällen ist, dass die betroffenen Unternehmen letztlich die Lizenzbedingungen einhalten mussten.

Nehmen Sie sich also die Zeit, sich mit allen Verpflichtungen vertraut zu machen, scannen Sie alle Abhängigkeiten und deren Lizenzbedingungen.

Da Open-Source-Code mittlerweile so weit verbreitet ist, dass er von Entwicklern genutzt wird, ist es wichtig, dass die Verantwortung für die Einhaltung der Lizenzbedingungen im gesamten Unternehmen verteilt wird. Damit alle in Produkten verwendete Open-Source-Software identifiziert und ihre Lizenz überprüft werden kann.

Den Überblick über die Compliance zu behalten, bedeutet, robuste Prozesse und Verfahren einzurichten, um die Compliance sicherzustellen:

  • Lesen und verstehen Sie, was die Verpflichtungen der Lizenz sind, um sicherzustellen, dass sie mit dem übereinstimmt, was Sie mit der Software tun wollen
  • Benachrichtigen Sie bei der von Ihnen entwickelten Software die Empfänger des Produkts, dass es OSS enthält, und informieren Sie sie über ihre Rechte in Bezug auf diese Software
  • Veröffentlichen Sie einen Lizenzhinweis auf Ihrer Produkt-Website
  • Schulen Sie Ihre Mitarbeiter, damit sie die Unternehmensrichtlinien zur Verwendung von OSS verstehen.

Vergessen Sie nicht, die Open-Source-Community zu unterstützen

Für Unternehmen, die OSS in ihren kommerziellen Produkten verwenden, ist es empfehlenswert, eine gute Arbeitsbeziehung zur Open-Source-Community aufzubauen und zu pflegen. Das kann damit beginnen, dass Sie sicherstellen, dass Sie die Lizenzen der verwendeten Open-Source-Software einhalten.

Image
Image