Open Source vs. Closed Source - was muss ein Unternehmen beachten?
Jan. 23, 2022
Hinter Open Source steckt eine charmante Idee: Ein Entwickler stellt den Quellcode seiner Software der Allgemeinheit zur Verfügung. Die Community darf den Code kostenlos verwenden, auf Fehler überprüfen, modifizieren und weiterentwickeln.
Auf diese Weise sind schon großartige Software-Projekte entstanden. Das gesamte Linux-Betriebssystem basiert beispielsweise auf Open Source. Hieraus wiederum sind beeindruckende Derivate, etwa Ubuntu, Red-Hat-Enterprise-Linux und Debian, und Abwandlungen wie das Smartphone-Betriebssystem Android hervorgegangen.
Für die Entwickler muss es sich dabei nicht um eine rein hobbymäßige Betätigung handeln. Oftmals stammen die Projekte aus Forschung und Lehre. Bei einer entsprechenden Popularität ihrer Software öffnen sich für die Programmierer nicht selten Türen bei bekannten Unternehmen. Software-Giganten wie Google unterhalten eigene Abteilungen zur Förderung von Open Source.
Doch wie so oft im Leben gibt es nicht nur eine Seite der sprichwörtlichen Medaille. Viele Open-Source-Projekte haben unbemerkt Einzug in Softwarelösungen im professionellen Umfeld gefunden. Dies häufig gar nicht einmal, um Kosten zu sparen, sondern weil die quelloffene Software ihre Sache schlicht gut erledigt. Diese Verbreitung macht die Software dann zu einem beliebten Angriffsziel von Schadsoftware. Ganz aktuell betrifft etwa eine Sicherheitslücke in der Java-Bibliothek log4j eine unüberschaubare Anzahl an kommerzieller und freier Software. Dies sollte für Verantwortliche Grund genug sein, sich mit Vor- und Nachteilen des Einsatzes von Open Source in Unternehmen auseinanderzusetzen.
Open Source und Closed Source - wo sind die Vorteile und welche Nachteile gibt es?
Software-Entwicklung findet heute selten von Grund auf statt. Viele Entwickler greifen auf fertige Bibliotheken und Module aus der entsprechenden Programmiersprache zurück. Daher sind Projekte oftmals eine Mischung aus freier und nicht quelloffener, sogenannter proprietärer Software. Grundsätzlich gibt es aber einige Vor- und Nachteile.
Vorteile Open Source:
- Kostenlose Verfügbarkeit
- Zeitersparnis durch Verwendung fertiger Module
- Fehler und Sicherheitslücken werden oft schnell von der Community bemerkt
- Transparenz der Funktion durch Nachvollziehbarkeit des Quellcodes
- Gute Entwicklungsmöglichkeiten durch sog. Peer-review (etwa Tipps und Verbesserungsvorschläge anderer Entwickler)
Nachteile Open Source:
- Kein garantierter Support
- Es gibt keine Garantie, dass die Software wirklich auf Fehler und Sicherheitslücken getestet wurde
- Projekte können überraschend eingestellt werden
- Bei entsprechender Verbreitung wird Software zum lohnenden Angriffsziel von Hackern
Vorteile Closed Source:
- Fester Ansprechpartner und Support vorhanden
- Garantierte Update-Zyklen und Sicherheitspatches
- Besserer Schutz des geistigen Eigentums von Entwicklern
- Oftmals gezieltere Anpassung an Bedürfnisse der Kunden
- Entwickler werden direkt aus dem Projekt finanziert und können sich darauf konzentrieren
Nachteile Closed Source:
- Höhere Kosten, häufig Folgekosten für Lizenzen
- Software ist meist eine "Black-Box", Funktionsweise ist nicht nachvollziehbar
- Fehler werden bei spezialisierter Software oft erst spät (beim Kunden) festgestellt
- Abhängigkeit von einem kommerziellen Hersteller
Welche Arten von Open-Source-Lizenzen gibt es?
Auch wenn ein Entwickler seine Software der Allgemeinheit zur Verfügung stellt, verliert er natürlich nicht sein Urheberrecht daran. Entsprechend gibt es verschiedene Open-Source-Lizenzmodelle. Unternehmen sollten sich im Vorfeld informieren, unter welcher Lizenz die verwendete Software veröffentlicht wurde. Verbreitet sind:
1. GPL: Sehr bekannt ist die GNU General Public License (GPL). Diese gibt es in verschiedenen Versionen. Gängig sind GPLv2 und GPLv3. Die Software darf komplett frei verwendet, eingesehen und modifiziert werden. Allerdings dürfen Modifikationen nur veröffentlicht werden, wenn der Entwickler sie ebenfalls unter die gleiche, freie Lizenz stellt (sog. Copyleft).
2. BSD: Die von der Universität Berkeley entwickelte "Berkeley Software Distribution" stellt den Quellecode ebenfalls zur freien Verfügung. Er darf in kommerziellen Produkten weiterverwendet werden. Dabei muss aber immer der Vermerk auf den ursprünglichen Entwickler und eine Haftungsklausel, die jegliche Garantie-Ansprüche ausschließt, enthalten bleiben. Modifizierte Software muss ebenfalls unter BSD-Lizenz gestellt werden, der Quellcode darf aber geheim bleiben.
3. MIT: Die Lizenz des Massachusetts Institut of Technology beinhaltet keine Verpflichtung, verwendeten Quellcode unter einer freien Lizenz zu veröffentlichen. So lizenzierte Produkte können also für kommerzielle Closed-Source-Projekte genutzt werden.
4. Apache: Auch die Apache-Lizenz erlaubt eine Weiterverwendung in kommerzieller Software. Hierbei muss ein Hinweis auf den Urheber von verwendetem Quellcode enthalten sein. Der Lizenztext muss mit jeder Software übermittelt werden.
5. Freeware: Zur Abgrenzung sei erwähnt, dass Freeware nicht zwingend Open-Source-Software ist. Oftmals handelt es sich dabei einfach um kostenlose Versionen von proprietärer Software. In der Regel ist deren Nutzung für kommerzielle Zwecke in den Lizenzbedingungen ausgeschlossen.
In welchen Anwendungsszenarien macht Open-Source-Software Sinn?
Es würde in der heutigen Zeit kaum jemand auf die Idee kommen, für einen Webbrowser oder ein ZIP-Programm Geld auszugeben. Für einzelne, klar umrissene Aufgaben ist der Einsatz von Open Source nicht nur sinnvoll, sondern nahezu alternativlos. Entsprechend kann Software wie Firefox, 7Zip und Notepad++ sicherlich ohne Bedenken in Unternehmen eingesetzt werden. Wichtig dabei ist, dass es zu keinem "Wildwuchs" unterschiedlicher Software kommt. Wenn möglich, sollte vom IT-Verantwortlichen die Software bestimmt und festgeschrieben werden. Dann kann er im nächsten Schritt die Entwicklung des entsprechenden Programmes im Auge behalten und rechtzeitig auf Sicherheitsrisiken reagieren.
Darüber hinaus sollte der Einsatz komplexerer Anwendungen im Vorfeld gut geprüft werden. Insbesondere dann, wenn Schlüsselfunktionen des Unternehmens damit gewährleistet werden, wie etwa die Buchhaltung oder Produktionsabläufe. Dies macht vor allem dann Sinn, wenn ein Entwickler im Unternehmen verfügbar ist, der über ausreichend Kenntnisse verfügt, auftretende Fehler notfalls selber zu beheben. Auch wenn freie Betriebssysteme wie Linux genutzt werden sollen, ist es wichtig, permanent verfügbare, versierte Administratoren zu haben. Ein Kompromiss kann die Nutzung der Enterprise-Angebote von "Red Hat" oder "Suse" sein. Diese gewährleisten gegen Bezahlung einen professionellen Support. Je spezieller eine Anforderung wird, umso wahrscheinlicher ist es, dass es ohnehin keine Software "von der Stange" dafür gibt. Dies betrifft Open Source und Closed Source sicherlich gleichermaßen.
Open Source und Sicherheit
In der Theorie gibt es gute Argumente, warum Open Source sicherer ist. Hierzu gehören die bereits genannte Fehlersuche durch die Community und das effizientere Testen auf Fehler durch die größere Verbreitung. Im Gegenzug können aber auch Argumente vorgebracht werden, die Closed-Source-Software als sicherere Alternative darstellen. So müssen Angreifer den Quellcode erst aufwändig dekompilieren, wenn sie ihn auf Fehler untersuchen und diese für Schadfunktionen ausnutzen wollen. Auch der permanent verfügbare Support mit einem Patch-Management können die Sicherheit erhöhen.
Die Praxis zeigt allerdings, dass es sowohl bei kommerzieller als auch bei freier Software regelmäßig zu schwerwiegenden Sicherheitslücken kommt. Dem Log4Shell-Exploit könnte man beispielsweise die Anfang 2021 aufgetretene Sicherheitslücke in Microsofts Exchange-Servern gegenüberstellen. Wichtig ist es also vor allem, Software bewusst auszuwählen. Die Auswahl und permanente Überprüfung auf bekanntgewordene Sicherheitslücken gehören also unbedingt in das Sicherheitskonzept eines Unternehmens. Übrigens kann Software auch gezielt in Penetration-Tests auf Verwundbarkeiten geprüft werden.