ArtikelEntwicklungSecurity

Kenne Deinen Open Source Code

Autor/Redakteur: Mike Pittenger, Vice President of Security Strategy bei Black Duck Software/gg

MikePittenger-294

Open Source Software hat sich von einer Randerscheinung zu einem wichtigen Thema der Softwareentwicklung gemausert. Bis Ende des Jahres 2016 setzen voraussichtlich 99 Prozent der Global-2000-Unternehmen für erfolgswichtige Anwendungen Open Source Software ein. Doch trotz kurzer Markteinführungszeiten und günstiger Kosten ist auch hier eine sorgfältige Vorgehensweise unerlässlich. Fehlende Transparenz der verwendeten Open-Source bergen Gefahren für Unternehmen. Die Folgen: finanzielle Verluste, unterbrochene Geschäftsabläufe, enttäuschte Kunden, Entschädigungsklagen sowie Imageeinbußen.

Kostspielige und spektakuläre Sicherheitslücken – wie beispielsweise Heartbleed, Ghost, Freak und so weiter – haben das Sicherheitsbewusstsein in Bezug auf Open Source geschärft. Unternehmen versuchen daher, die Integrität von Open Source anhand verschiedener Strategien sicherzustellen und die eingesetzte Software im Auge zu behalten. Statische und dynamische Werkzeuge können von internen Entwicklern verursachte Fehler wirksam erkennen, arbeiten aber deutlich weniger effektiv, wenn es um die Erkennung bekannter Schwachstellen in der Open Source von Dritten geht. Gefragt ist ein automatisiertes und durchgängiges Konzept für Sicherheit und Management von Open Source, das das Sicherheitsniveau hebt und die Risiken bei der Entwicklung von Anwendungen aus mehreren Code-Quellen minimiert.

Kampf gegen unsichtbare Bedrohungen

Wer als IT- und Sicherheitsverantwortlicher die Integrität des intern entwickelten Codes oder des aus externen Open Source Repositories stammenden Codes gewährleisten will, muss Einblick in die Quellen, Ursprünge und Brauchbarkeit jeder Codezeile haben. Beim Kernel von Linux 3.13 sind dies beispielsweise bereits zwölf Millionen Zeilen. Angesichts der Vielzahl der Quellen, aus denen Code heute in Anwendungen integriert wird, dürfte diese Aufgabe zunehmend schwieriger werden.

BLADU_SoftwareDevelopement_Lifecycle_SDLC

Bei der Fehlerminimierung schneidet Open Source Software mindestens ebenso gut, wenn nicht besser ab als proprietäre Software. Eine der Stärken des Open-Source-Entwicklungsprozesses liegt in der Beteiligung einer weltweiten Community engagierter Entwickler ganz nach dem Motto: “Given enough eyeballs, all bugs are shallow” (Je mehr Augen draufschauen, umso mehr Fehler werden entdeckt). Der als “Linus Law” bekannte Ansatz hat natürlich seine Grenzen. Auch guten Entwicklern unterlaufen Fehler, sodass sich Schwachstellen in Open-Source-Projekten einnisten können, die dann die Sicherheit von Millionen Implementierungen gefährden.

Die Liste an Sicherheitslücken ist lang:

  • Ein Beispiel ist eine SQL-Injection-Schwachstelle im Content-Management-System Joomla, das auf fast drei Millionen Websites weltweit läuft. Angreifer konnten sich darüber als Administratoren ausgeben und die Kontrolle der Website übernehmen, um dann weitere Angriffe durchzuführen. Bis die Schwachstelle erkannt und Patches entwickelt wurden, vergingen mehrere Wochen.
  • Weitere Schwachstellen wurden im Xen Hypervisor entdeckt, der in vielen Cloud-Umgebungen zur Server-Virtualisierung eingesetzt wird. Eine davon war der sogenannte Venom-Bug, mit dem aus einer virtuellen Maschine heraus Übergriffe auf andere virtuelle Maschinen des Servers möglich sind. Venom kann auch andere Hypervisoren schädigen, die den QEMU-Code (Quick Emulator) nutzen. Auch hier wurden die Fehler letztlich behoben. Eine der Schwachstellen blieb allerdings volle sieben Jahre unentdeckt.
  • Eine Schwachstelle im Multimedia-Framework des Betriebssystems Android, die 950 Millionen Geräte betraf, ermöglichte Angreifern die transparente Kontrolle der Geräte, ohne dass Benutzer oder Betreiber davon etwas merkten und ohne dass es Schutzmaßnahmen in der Software gegeben hätte. Mit der als Stagefright bekannten Sicherheitslücke konnte der Media Player mit Rechten ausgestattet werden, über die er auf speziell präparierte Dateien zugreifen und bösartige Programme ausführen konnte. Die Sicherheitslücke ist zwar mittlerweile behoben, aber in den Versionen vor Android 4.0 ist das Problem weiter vorhanden.

Mit 6.000 bis 8.000 bekannten Schwachstellen im Open Source Code allein in 2015 ist es weder praktikabel noch effizient, Code-Verwendung oder Code-Schwachstellen manuell nachzuverfolgen.  Da die Codebasis ständig weiterwächst, wird die Identifizierung und Lösung bekannter Schwachstellen auch immer schwieriger. Der webbasierte Online-Dienst GitHub unterhält 1,1 Millionen Repositories, von denen einige Tausende von Dateien enthalten. Die Sichtbarkeit dieser und anderer Code-Basen ist ebenso wichtig wie deren Prüfung anhand von Wissens- und Schwachstellendatenbanken.