Open Source: Definition
Open-Source-Software unterliegt einem geteilten Modell, bei dem die Entwickler einer Anwendung den vollständigen Code zur Verfügung stellen, anstatt nur das kompilierte Endprodukt mit ausführbaren Dateien. Microsoft ist einer der beliebtesten Anbieter von „closed source“ Software, aber mit manchen ihrer Produkte sind sie in den letzten Jahren auf ein Open-Source-Modell umgestiegen. Open-Source-Projekte ermöglichen es anderen Entwicklern, ihren eigenen Code hinzuzufügen, den vorhandenen Code zu verändern, zu kopieren und zu analysieren, um Probleme in Bezug auf Cybersicherheit und andere Fehler zu finden. Im Gegensatz zu proprietärer (Closed) Software bietet Open Source völlige Transparenz und erlaubt es, die Software flexibel an individuelle Bedürfnisse anzupassen.
Der Begriff „Open Source“ geht auf die Idee zurück, Wissen und Ressourcen frei zu teilen. Im Kern steht der Gedanke, dass der offene Zugang zu Quellcodes Innovation und Fortschritt fördert.
Geschichte und Bedeutung von Open Source
Die Bewegung für Open-Source-Software begann in den 1980er Jahren, als Entwickler wie Richard Stallman für „freie“ Software eintraten. Stallmans Konzept von „Free as in Speech, not as in Beer“ unterstrich die Freiheit, Software anzupassen und zu teilen, nicht nur die Kostenfreiheit.
Diese Philosophie führte zur Entwicklung von bahnbrechenden Tools wie der GNU General Public License (GPL), die bis heute viele Open-Source-Projekte prägt.
Was macht Software zu Open Source?
Damit Software als Open Source gilt, müssen bestimmte Kriterien erfüllt sein:
- Der Quellcode muss frei zugänglich sein und in einer für Menschen lesbaren Form vorliegen.
- Es muss erlaubt sein, den Quellcode zu studieren, zu verändern, anzupassen und zu teilen.
- Jeder darf die Software kopieren, weiterverbreiten oder verbessern, ohne rechtliche Einschränkungen.
Diese Kriterien sind durch Organisationen wie die Open Source Initiative (OSI) standardisiert, die eine Vielzahl von kompatiblen Lizenzen genehmigt hat.
Open-Source-Software versus Closed-Source-Software
Als Desktop-Computer in den 1990ern beliebter wurden, stellten Software-Entwickler Disks mit kompiliertem Code zur Verfügung, den ein Nutzer auf seinem Computer installieren konnte. Closed-Source-Software, wie beispielsweise Microsoft Word, verschleiert den Quellcode, sodass Nutzer keine Änderungen vornehmen können. Dieses Modell verhindert, dass Anwender die Funktionsweise nachvollziehen oder anpassen können. Kompilierter Code ist dabei nicht gleichbedeutend mit Closed-Source, wird jedoch in der Regel von Closed-Source-Software genutzt, um den Zugriff auf den Quellcode zu verhindern.
Der Byte-Code (bei Interpreter-Programmiersprachen) oder Opcode (für Compiler-Programmiersprachen) ist die Sprache, die ein Computer verstehen kann, und er wird dazu genutzt, die Anweisungen einer Anwendung auszuführen.
Der nachfolgende Code könnte beispielsweise in einer Codebasis vorkommen:
if (active)
//do something
Menschen können dieses kleine Pseudocode-Snippets einfach verstehen, aber Computer verstehen menschliche Sprache nicht. Computer verstehen Einsen und Nullen, weshalb Entwickler Compiler verwenden, um Code in menschlicher Sprache in ausführbare Dateien zu übersetzen. Ausführbare Dateien weisen das Betriebssystem an, einer Anwendung Speicherplatz einzuräumen, Variablen und Daten zu initialisieren und die Opcodes auszuführen, die das Programm an sich ausmachen. Kompilierte Dateien sind betriebssystem-spezifisch, weil jedes Betriebssystem eigene Methoden hat, interne Prozesse zu aktivieren.
Weil ausführbare Dateien kompiliert sind, können Menschen die darin enthaltenen Anweisungen nicht verstehen. Wenn Sie nur ausführbare Dateien vorliegen haben, können Sie den Code selbst nicht sehen, es sei denn, Sie haben einen guten De-Compiler zur Hand. Dabei handelt es sich um einen urheberrechtlichen Schutz des Codes vor Analysen und Diebstahl durch eine fremde Partei.
Open-Source-Communities arbeiten anders, indem sie den Quellcode einer Anwendung frei zur Verfügung stellen. Die Idee dahinter ist, dass Code zwar gestohlen werden kann, aber die Vorteile des Code-Teilens zu Zwecken der Analyse und Weiterentwicklung größer sind. Nutzer können den Code frei einsehen, um davon zu lernen oder ihn zu verbessern. Open-Source-Code kann abgespalten werden (fork), was bedeutet, dass ein anderer Entwickler eine Kopie davon macht und neue Funktionen hinzufügt. Manche Analysten prüfen Code auf Fehler und Cybersicherheitslücken und benachrichtigen den ursprünglichen Entwickler, sollten sie welche finden.
Nur weil Open-Source-Softwareentwickler ihren Code veröffentlichen, bedeutet jedoch nicht, dass er frei kopiert und genutzt werden kann. Open-Source-Entwickler definieren, unter welcher Art von Lizenz ihr Code läuft, wenn sie ihn veröffentlichen. Lizenzierung in der Open-Source-Welt funktioniert ähnlich wie Closed-Source-Lizenzen insofern, als dass Lizenzen definieren, wie Code genutzt, kopiert, verändert und verbreitet werden kann. Beispielsweise erlauben manche Open-Source-Lizenzen Akademikern, Studenten, und Individuen die Nutzung des Codes, verbieten jedoch die Nutzung in kommerziellen Anwendungen.
Wie Open Source funktioniert
Wie Entwickler Code für Open-Source-Projekte entwickeln unterscheidet sich nicht von Closed-Source-Projekten, mit dem einzigen Unterschied, dass der Code am Ende veröffentlicht wird. Plattformen wie GitHub oder GitLab spielen dabei eine zentrale Rolle. Sie bieten Versionskontrolle und ermöglichen es globalen Teams, effizient zusammenzuarbeiten. Wie viele andere Code-Repository-Tools erstellt Github eine historische Übersicht über jedes Projekt, die es den Entwicklern ermöglicht, Änderungen wieder rückgängig zu machen, Code-Änderungen auszuprobieren und Updates zu veröffentlichen. Programmierer entwickeln Code normalerweise privat und veröffentlichen Änderungen dann auf Githubs öffentlicher Cloud-Plattform.
Wenn ein Entwicklungsprojekt öffentlich ist, können andere Nutzer jede Datei des Projekts einsehen. Nutzer können das Repository als Ganzes herunterladen, oder jede einzelne Datei ansehen und separat herunterladen. Ein vollständiger Projekt-Download kann dazu dienen, das Projekt zu kompilieren und auf dem lokalen Gerät des Nutzers laufen zu lassen, sodass er es prüfen kann. Jegliche Fehler oder Schwierigkeiten, die dabei auftreten, kann er dann in seiner lokalen Kopie beheben.
Der verantwortliche Entwickler hält das Projekt am Laufen, gibt Änderungen frei und hat die volle Kontrolle über die Codebasis. Andere Nutzer können sie zwar kopieren, aber der Besitzer muss jede Änderung an der Haupt-Codebasis zunächst freigeben, bevor sie in das Projekt integriert werden. Am Linux-Betriebssystem arbeiten viele Programmierer mit, aber Linus Torvalds – der Besitzer der Haupt-Codebasis – muss alle Änderungen bestätigen.
Die Haupt-Codebasis kann abgespalten werden, was bedeutet, dass der ursprüngliche Besitzer des Projekts anderen Entwicklern erlaubt, den Code zu kopieren und zu verändern. Diese Änderungen werden dann nicht mehr in die ursprüngliche Codebasis integriert. Stattdessen entwickelt sich die abgespaltene Version als eigenständige, modifizierte Version der ursprünglichen Software weiter. Das Linux-Betriebssystem hat beispielsweise mehrere Versionen, zum Beispiel Kali, Ubuntu und Red Hat. Sie alle nutzen den Linux-Kern, nutzen aber ansonsten ihre eigenen Tools und GUIs.
Vorteile von Open-Source-Software
Je mehr Menschen zur Codebasis beitragen, desto bessere Features, weniger Bugs und häufigere Updates hat die Software. Linux, Firefox und WordPress sind nur einige Beispiele für erfolgreiche Open-Source-Projekte, die sowohl von Entwicklern als auch Unternehmen weltweit genutzt werden. So können kleinere Entwickler mit prominenteren Marken konkurrieren, weil sie eine Plattform haben, mit der sie Software verbreiten und mit anderen teilen können, die dann dabei helfen, sie zu verbessern. Für Entwickler ist es ein guter Weg, Code-Standards kennenzulernen und bessere Methoden zu identifizieren, wie sie einen bestimmten Prozess programmieren können.
Für Nutzer liegen die hauptsächlichen Vorteile in der Stabilität und Sicherheit des Codes. Nutzer erhalten eine kompilierte Version des Codes, die auf ihren Geräten läuft, aber wenn so viele Entwickler mitarbeiten, ist es wahrscheinlich, dass weniger Bugs auftreten. Cybersicherheitsexperten laden Code häufig herunter, um ihn zu prüfen und die Entwickler über etwaige Risiken zu informieren. Größere Open-Source-Projekte veröffentlichen Projekte häufig auf White-Hat-Hacking-Webseiten und bezahlen Hacker dafür, Schwachstellen im Code aufzustöbern. Die Einbindung bezahlter Hacker resultiert in Open-Source-Software mit weniger Sicherheitsrisiken und schützt Nutzer vor böswilligen Angreifern und Zero-Day-Exploits.
Grundlegende Software wie Betriebssysteme, die Open Source bleiben, machen es Entwicklern einfacher, ihre Software für verschiedene Betriebssysteme zu portieren. Bei Windows sind Entwickler auf die neuesten Updates angewiesen und wissen erst, ob ihre Anwendung funktioniert, wenn sie sie auf der aktuellsten Version testen. Bei Linux hingegen können Entwickler existierenden Code, der schon auf Windows läuft, für das Linux-Betriebssystem anpassen.
Auch im Bereich Cloud Computing sind Open-Source-Technologien führend. Plattformen wie OpenStack ermöglichen es Unternehmen, ihre Cloud-Umgebungen flexibel und kosteneffizient zu gestalten, ohne von proprietären Anbietern abhängig zu sein.
Warum sollten Sie Open Source bevorzugen?
Endnutzer sind sich meist nicht bewusst, ob ihre Software nun Open Source oder Closed Source ist. Die meisten Nutzer denken, Open Source sei einfach nur kostenlose Software, aber das ist nicht immer der Fall. Für Privatanwender stellen Entwickler ihre Software meistens kostenlos zur Verfügung und nehmen Spenden an, aber Nutzer sollten trotzdem immer die Lizenz prüfen, bevor sie eine Anwendung auf ihrem Gerät installieren. Lizenzverstöße können für Firmen, die Open-Source-Software missbrauchen, besonders kostspielig werden.
Selbst wenn Open-Source-Software nicht kostenlos ist, ist sie dennoch meist erschwinglicher als Closed-Source-Software. Open-Source-Entwickler verdienen ihr Geld meistens dadurch, dass sie bezahlten Support anbieten. Große Anbieter von beliebten Linux-Betriebssystemen bieten Enterprise-Support für die kommerzielle Nutzung an. Dadurch schaffen es diese Anbieter, sich dauerhaft finanziell zu halten und Profit zu erwirtschaften.
Für Unternehmen liegt der Vorteil von Open-Source-Lösungen oft in der Transparenz und Anpassungsfähigkeit, die sie bei proprietären Alternativen vermissen. Sie bekommen im Gegenzug kostengünstige Software mit bezahltem Support, was häufig finanziell rentabler ist als Closed-Source-Produkte.
Forscher und IT-Experten bevorzugen Open-Source-Betriebssysteme aber auch aus anderen Gründen. Linux kennt Befehle, die Windows nicht unterstützt. Da Linux individuell angepasst werden kann, gibt es damit weniger Einschränkungen als mit Windows. Zwar gibt es einige Hacks, mit dem man das Windows-Betriebssystem verändern kann, aber dies verstößt gegen die Windows-Richtlinien. Normalerweise überschreiben Windows-Updates jegliche unautorisierten Veränderungen, sodass Hacks meist nutzlos sind.
Proofpoint Sendmail: Open Source E-Mail-Schutz
Einen Teil unserer Proofpoint Sendmail-Sentrion-Plattform stellen wir als Software für Open-Source-Email-Server frei zur Verfügung. Erfahren Sie jetzt mehr.
White Paper: User Risk Report 2020
Unser Bericht zu den aktuellen Anwenderrisiken liefert Informationen über das Sicherheitsbewusstsein von Anwendern sowie Wissenslücken, die Ihre Cybersicherheit gefährden und daher dringend geschlossen werden müssen.
Was ist Endpoint-Security?
Endpoint-Security ist heute komplexer denn je, weil viele Mitarbeiter im Home Office arbeiten. Erfahren Sie mit Proofpoint, wie Sie Ihr Unternehmen schützen.
Woran erkennen Sie eine Kompromittierung Ihres Netzwerks?
Finden Sie heraus, wie Sie mithilfe von Indicators of Compromise (IoC) die Auswirkungen eines Cyberangriffs erkennen und Angriffe verhindern können.
Was ist Malware?
Welche Arten von Malware gibt es, woran erkennen Sie eine Infektion mit Schadsoftware und wie lässt sich Malware entfernen? Erfahren Sie es bei Proofpoint!
Wie funktioniert Patch Management?
Effektives Patch Management ist wichtig für die Sicherheit Ihrer Systeme. Lernen Sie bei Proofpoint, worauf es ankommt und welche IT Software die Richtige ist.