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.

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. Kompilierter Code beeinhaltet Dateien mit Anweisungen, die es einem Betriebssystem erlauben, Computerresourcen freizugeben und die entsprechenden Prozesse auszuführen. 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. Github ist eine häufig genutzte Repository-Management-Plattform, die eng in den Entwicklungsprozess eingebunden ist. Wie viele 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. 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.

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. Konzerne 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.