3 Best Practices für den Schutz des Source Codes

  • Veröffentlicht

Source Code ist das neue Gold für Unternehmen. Wenn der Code gestohlen oder geleakt wird, kann das zu massiven Schäden für Unternehmen führen. Kunden verlieren das Vertrauen, die Reputation leidet. Wie kann der Source Code geschützt werden?

Warum der Schutz des Source Codes wichtig ist

Die Versuche, Dienste und Software von Unternehmen zu kompromittieren, haben in den letzten Jahren zugenommen. Kein Wunder, da der Quellcode viele wertvolle Informationen enthält, beispielsweise OAuth-Tokens, Kennwörter und API-Schlüssel. Ohne ausreichendem Schutz kann jeder, der auf das Repository Zugriff hat, diese verwenden und potenziell weitergeben.

Das macht den Diebstahl von Code zu einer großen Gefahr für Unternehmen. Twitch, eine Streamingplattform, hatte 2021 ein massives Security-Problem. Der Source Code war öffentlich einsehbar. Darin fanden sich ca. 6.600 Secrets. Darunter 194 AWS keys, 69 Twilio-Keys und 14 GitHub-OAuth-Keys.

Eine Veröffentlichung des Source Codes kann außerdem entlarven, welche Sicherheitslücken in der Software vorhanden sind. Für Angreifer ist es möglich, in weitere Systeme einzubrechen. Oft auch in die Systeme der Kunden eines Unternehmens. Ganz bitter: Einzelne Features oder sogar die ganze Software können nachgebaut werden. Die Konkurrenz hat die Möglichkeit, den Code einzusehen und sich einen Marktvorteil zu verschaffen.

Der Quellcode stellt eine ernsthafte Schwachstelle dar. Vor allem, wenn ein Angreifer Zugang zur Codebasis bekommt und der Zugriff unentdeckt bleibt.

Wie schützt man den Source Code?

Es gibt einige Möglichkeiten, den Code zu sichern und vor Diebstahl zu schützen.

#1 Sicherheitsrichtlinien

Richtlinien tragen dazu bei, Prozesse, Regeln und Anforderungen zum Schutz des Source Codes zu definieren. The Open Web Application Security Project (OWASP) hat eine Top Ten-Liste erstellt, die dazu dient, Entwickler_innen für Sicherheitsrisiken zu sensibilisieren. Es ist auf Web Applikationen ausgerichtet, die Konzepte sind aber auch auf andere Arten von Softwareentwicklung anwendbar.

#2 Zugriffskontrollen

Die Zugriffskontrolle ist ein wichtiger Aspekt bei der Absicherung des Quellcodes eines Unternehmens. Es ist wichtig, den Zugriff auf den Quellcode auf autorisierte Personen zu beschränken.

Beim Verwalten der Zugriffskontrolle sollte das „Least Privilege Model“ angewendet werden. Das bedeutet, dass Entwickler nur die Berechtigungen erhalten sollten, die sie für ihre spezifische Aufgabe benötigen. In der Regel besteht keine Notwendigkeit, Entwickler_innen Zugriff auf den gesamten Quellcode zu gewähren. Indem Unternehmen nur die minimalen Berechtigungen vergeben, können sie das Risiko einer unberechtigten Nutzung oder Manipulation des Quellcodes verringern.

Eine weitere wichtige Sicherheitsmaßnahme ist die Implementierung einer Zwei-Faktor-Authentifizierung (2FA). Durch die Verwendung von 2FA wird ein zusätzlicher Sicherheitsschritt eingeführt, um sicherzustellen, dass nur Benutzer_innen mit ausreichenden Berechtigungen auf die Daten zugreifen können. Dies erhöht die Sicherheit des Zugriffs auf den Quellcode erheblich und erschwert es potenziellen Angreifern, sich unberechtigten Zugang zu verschaffen.

Es sollte auch möglich sein, den Zugriff auf das Repository schnell zu widerrufen, wenn dieser nicht mehr benötigt oder eine Kompromittierung vermutet wird. Unternehmen sollten deshalb über einen Überblick verfügen, wer Zugriff auf den Quellcode hat und wer nicht.

#3 Endpoint Security

Endpoint Security spielt eine entscheidende Rolle bei der Absicherung des Source Codes eines Unternehmens. Endgeräte wie Laptops, auf denen der Source Code bearbeitet wird, können ein potenzielles Einfallstor für Sicherheitsverletzungen sein.

Eine Möglichkeit, die Sicherheit von Laptops zu gewährleisten, besteht darin, Data Loss Prevention (DLP)-Tools einzusetzen. Diese Tools helfen dabei, interne Datenweitergabe zu verhindern und sicherzustellen, dass sensible Informationen nicht verloren gehen, missbräuchlich verwendet oder Unbefugten zugänglich gemacht werden.

Im Falle des Source Codes können DLP-Tools sicherstellen, dass der Code nicht unerlaubt von den Geräten heruntergeladen, kopiert oder auf nicht autorisierten Speichermedien gespeichert wird. Sie verhindern auch, dass der Code über unsichere Kommunikationskanäle übertragen wird.

Eine weitere Möglichkeit, um die Sicherheitsstandards zu erhöhen, ist der Einsatz von Remote Development Environments (RDEs). Wir verwenden den Begriff Remote Development Environments (RDEs) synonym für CDEs. RDE wäre der technisch korrekte Begriff, wenn ein Produkt auch als On-Premise-Lösung verfügbar ist. CDE ist aber der etablierte Begriff. Wir haben uns entschlossen, zum Begriff „CDE“ zu wechseln, nachdem wir diesen Beitrag geschrieben haben. Remote Development Environments sind Remote Entwicklungsumgebungen, die per Knopfdruck zur Verfügung stehen und in denen Entwickler_innen alle Tools zur Verfügung haben, die sie für ihre Arbeit brauchen. Zusätzlich kann die zu entwickelnde Software in den RDEs betrieben werden. Der Vorteil hinsichtlich Sicherheit: Quellcode und Testdaten liegen nicht mehr lokal auf den Rechnern der Entwickler_innen.

Mehr dazu: Was sind Remote Development Environments?

Fazit

Es gibt verschiedene Möglichkeiten, den Source Code zu schützen:

  • Sicherheitsrichtlinien: Definieren von Prozessen, Regeln und Anforderungen zum Schutz des Codes.
  • Zugriffskontrolle: Beschränkung des Zugriffs auf autorisierte Personen, Anwendung des „Least Privilege Model“ und Implementierung von Zwei-Faktor-Authentifizierung.
  • Endpoint Security: Schutz der Endgeräte, auf denen der Code entwickelt wird, mit der Hilfe von Data Loss Prevention (DLP)-Tools und mit Remote Development Environments (RDEs), die dafür sorgen, dass der Source Code und Testdaten nicht lokal am Rechner von Entwickler_innen verfügbar ist.

Mit diesen Maßnahmen können Unternehmen das Risiko von Code-Diebstahl und -Leaks verringern.

Jetzt den Cloudomation-Newsletter abonnieren

Werden Sie Cloudomation-Insider. Immer am Ende des Monats neue News zum Thema „Cloud Development Environments“ und „DevOps“ erhalten. 




    Johannes Ebner

    Marketing Manager