Codequalität

Mit schlechten Beispielen zu höherer Sicherheit

24.06.2015 von Matthias Reinwarth
Die Älteren unter uns werden sich an die wechselbaren Speichermedien aus den 1970er Jahren, genannt Floppy Disk, erinnern. Mit dem Ende der 1990er Jahre verschwanden sie aus dem Computeralltag. Genau diese seit 15 Jahren praktisch irrelevanten Floppy Discs sind indirekt die Ursache für eine erhebliche Sicherheitslücke in mehreren Virtualisierungsplattformen.

In den vergangenen Wochen wurde durch Jason Geffner von CrowdStrike diese Sicherheitslücke identifiziert, ausführlich dokumentiert und veröffentlicht.

Diese Schwachstelle wurde als Venom, CVE-2015-3456 bezeichnet, wobei "Venom" als Akronym für "Virtualized Environment Neglected Operations Manipulation" steht, das sich frei als "Manipulation vernachlässigter Funktionen in virtualisierten Umgebungen" übersetzen lässt, wobei die Kurzfassung "Venom" aber ebenso kompakt für "Gift" steht.

Die strategische Verankerung von angemessen hohen Sicherheitsanforderungen in jeder Softwarespezifikation ist auch eine Managementaufgabe.
Foto: Maksim Kabakou - Shutterstock.com

Alt heißt nicht erprobt

In den Standardkonfigurationen virtueller Maschinen sind bis heute die Treiber für die virtualisierten Hardware-Komponenten, die Floppy Disc Controller, weiterhin aktiviert. Praktisch jede nicht manuell angepasst konfigurierte virtuelle Maschine (VM) in den bedrohten Plattformen hat diesen Treiber im Hypervisor, also in der Kontrollinstanz, aktiviert. Genau diese Treiber sind nun als Träger der Schwachstelle identifiziert worden. Im konkreten Fall bedeutet das, dass ein Administrator aus einer virtuellen Maschine heraus auf den Hypervisor, auf andere dort gehostete Maschinen, auf das zugrundeliegende Host-Betriebssystem unter der Virtualisierungsplattform und damit auf das Netzwerk und verbundene weitere Infrastruktur-Komponenten zugreifen kann.

Venom und damit die Bedrohung der Virtualisierungsplattformen beruht auf eine weitgehenden unveränderten Übernahme einer Open Source-Komponente, dem nicht ausreichend code-geprüften oder getesteten elf Jahre alten QEMU-Floppy Disc Controller-Treiber. Hierdurch sorgte die Verwendung eines vermeintlich als sicher und erprobt geltenden Open Source-Treibers für Schwachstellen in gleich mehreren Produkten. Die Analogie etwa zu Heartbleed und seinen noch immer spürbaren Auswirkungen liegt auf der Hand.

Notwendige, kurzfristige Schritte

Jetzt, da die Schwachstelle offen dokumentiert ist und die Anbieter der betroffenen Virtualisierungsplattformen - darunter Xen, VirtualBox und QEMU - offensichtlich verantwortungsvoll informiert wurden, stehen aktuelle Patches zur Verfügung. Die folgenden Schritte sind für Betreiber wie Nutzer unabdingbar:

Security Trends 2015
1. Exploit-Bekämpfung reduziert die Einfallstore für Kriminelle.
Cyberkriminelle hatten in den vergangenen Jahren mehr oder weniger leichtes Spiel mit Microsoft Windows. Glücklicherweise hat der Konzern Exploits in letzter Zeit gezielt bekämpft, so dass Attacken immer schwieriger werden. Allerdings gibt es eine Kehrseite der Medaille, da viele Malwareentwickler sich nun wieder den Social-Engineering-Techniken zuwenden oder auf Nicht-Microsoft-Plattformen abzielen.
2. Internet-of-Things-Attacken haben sich von Machbarkeitsstudien zu Mainstream-Risiken entwickelt.
2014 mussten wir immer häufiger feststellen, dass Hersteller von Internet-of-Things-Geräten es oftmals verschlafen haben, grundlegende Sicherheitsstandards zu implementieren. Entsprechend sind Attacken auf diese Geräte absehbar und werden zudem umfassende Folgen haben. Die IT-Sicherheitsindustrie muss sich weiterentwickeln, um für dieses neue Thema Antworten zu finden.
3. Verschlüsselung ist mittlerweile Standard, aber darüber sind nicht alle glücklich.
Dank häufig auftauchender Schlagzeilen in Sachen Spionagesoftware und Datenbankeinbrüchen hat sich die Verschlüsselung aller Daten schon fast zum Standard entwickelt. Das geht allerdings gerade großen Organisationen wie Strafverfolgungsbehörden oder Geheimdiensten gegen den Strich, da sie befürchten, dass diese „Heimlichtuerei“ die allgemeine Sicherheit gefährdet.
4. Sicherheitsrelevante Programmierfehler in weit verbreiteter Software blieben jahrelang unter dem Radar.
„Heartbleed“ und „Shellshock” machen deutlich, dass weit mehr unsichere Code-Zeilen im Umlauf sind, als gedacht und sie werden seit vielen Jahren unbemerkt von einer großen Anzahl Computersystemen genutzt,. Entsprechend hat sich auch das Augenmerk der Hacker auf diese eher unauffälligen Programme gerichtet und 2015 sind vermehrt Attacken in diesem Bereich zu erwarten.
5. Gesetzliche Neuregelungen bringen mehr Verantwortung bei der Offenlegung von Daten und Haftung mit sich – vor allem in Europa.
Die Mühlen der Gesetze mahlen im Vergleich zur Technologieentwicklung sehr langsam, aber dennoch treten 2015 einige gesetzliche Neuerungen in Kraft, die lange auf sich warten ließen. Es ist wahrscheinlich, dass diese Änderungen auch in anderen Bereichen mit einer progressiveren Datenschutzregulierung einhergehen.
6. Kriminelle schießen sich auf mobile Zahlungssysteme ein, halten aber gleichzeitig noch eine Weile an traditionellen Finanzbetrügereien fest.
Nach der Ankündigung von Apple Pay waren mobile Zahlungssysteme eines der Topthemen der vergangenen Monate. Wie immer, wenn neue Systeme an den Start gehen, werden die Cyberkriminellen nach Lücken Ausschau halten. Da das aber aufgrund einiger sehr positiver Absicherungen nicht ganz einfach sein wird, dürfen wir davon ausgehen, dass die klassischen Onlinegaunereien mit Kreditkarten noch eine Weile weitergehen. Sie sind das bei weitem einfacherer für Betrug zu nutzen.
7. Die Lücke zwischen Sicherheitsaufgaben und geschultem Personal klafft immer weiter auseinander.
Im gleichen Rahmen, wie Technologie immer mehr in unser tägliches Leben Einzug hält und einer der Stützpfeiler für die globale Wirtschaft wird, kommt das fehlende Know-how in Sachen Cybersicherheit zum Vorschein. Diese bedenkliche Entwicklung wird sowohl von Regierungen, als auch der Industrie konstatiert. Das Besetzen der nötigen Stellen kann Jahre dauern und ist somit ein echter Sicherheitsfaktor.
8. Breite “Serviceoffensive” für Attacken und Exploit-Kits, um mobile Plattformen anzugreifen.
In den letzten Jahren hat sich ein neuer Trend bei den Cyberkriminellen durchgesetzt: das zur Verfügung stellen von Malwarepaketen, die keinerlei technisches Wissen voraussetzen und per Klick aktiviert werden können. Der rasante Anstieg bei mobilen Plattformen und der damit verbundene Austausch sensitiver Daten werden dazu führen, dass wir 2015 viele dieser Kits für Smartphone-Angriffe sehen werden. Gleiches gilt für Plattformen, die sich mit dem Internet of Things beschäftigen.
9. Die Lücke zwischen ICS/SCADA und Sicherheit in der realen Welt wächst weiter.
Systeme wie Industrial Control Systems (ICS) und Supervisory Control and Data Acquisition (SCADA) hinken in Sachen Sicherheit üblicherweise zehn oder mehr Jahre hinter dem Mainstream her. Wir gehen davon aus, dass innerhalb der nächsten Jahre einige besorgniserregende Lücken aufgedeckt werden, die von Hackern auf breiter Front ausgenutzt werden.
10. Flexiblere Rootkit- und Bot-Fähigkeiten eröffnen neue Angriffsvektoren.
Die Technologiesparte befindet sich zurzeit in einem grundlegenden Veränderungsprozess, in dessen Rahmen nun Plattformen und Protokolle abgeändert werden, die jahrelang als Standard dienten. Allein die Menge solcher Veränderungen der althergebrachten Technologiestandards wird viele alte Wunden aufreißen und neue Sicherheitslücken schaffen.

Offen heisst nicht zwangsläufig besser

Seit Anfang Mai läuft eine Attacke auf Computer des Bundestages. Umfang und Art sind bislang nicht publiziert und die beauftragten Behörden, das Bundesamt für Sicherheit in der Informationstechnik und das Bundesamt für Verfassungsschutz, ermitteln. Im Zuge der derzeit noch immer unklaren Ermittlungen ist der Ruf nach Umstellung der Anwendungen und Betriebssysteme auf Open Source-Systeme nur eine Frage der Zeit und aus einzelnen Fraktionen auch schon erfolgt.

Das Beispiel Venom zeigt aber, dass die reine Tatsache, dass Software Open Source-lizenziert ist, noch keinerlei Aussage über deren Sicherheit impliziert. Nur dass man eine Kontrolle des Codes (Code inspection) durchführen könnte, weil der Quelltext verfügbar ist, bedeutet nicht, dass das auch jemand unternimmt. Viel zu einfach ist es, sich auf bestehende Bibliotheken zu verlassen, diese als Blackbox zu betrachten und ihre Funktion implizit als validiert und sicher zu betrachten.

Nur falls die notwendigen Analysen auch durchgeführt werden, kann quelloffene Software diese sonst nur vermeintliche Stärke auch tatsächlich ausspielen. Nur dann kann offene Software durch den Rückfluss der Analyseergebnisse in neue Versionen kontinuierlich verbessert werden.

Es geht nicht um Closed Source gegen Open Source: Unabhängig vom verwendeten Lizenzmodell und der damit verbundenen ideologischen und kommerziellen Interessenlage lenken beide aktuellen Ereignisse das Augenmerk auf hier wie dort gerne konsequent vernachlässigte Eigenschaften von IT-Systemen: Die Codequalität und die Gesamtsicherheit von Anwendungssystemen.

Anzeichen für einen Cyber-Angriff
Woran Sie einen Angriff erkennen
Nach Analysen von McAfee weisen vor allem acht Indikatoren darauf hin, dass ein Unternehmensnetz in die Schusslinie von Hackern geraten ist. Hans-Peter Bauer, Vice President Zentraleuropa bei McAfee, stellt sie vor.
Interne Hosts kommunizieren mit bösartigen oder unbekannten Zieladressen
In jedem Fall verdächtig ist, wenn ein Host-Rechner auf externe Systeme zugreift, deren IP-Adressen auf "Schwarzen Listen" von IT-Sicherheitsfirmen zu finden sind. Vorsicht ist auch dann geboten, wenn Rechner häufig Verbindungen zu Systemen in Ländern aufbauen, zu denen ein Unternehmen keine geschäftlichen Beziehungen unterhält. Dabei kann es sich um den Versuch handeln, Daten aus dem Unternehmen hinauszuschmuggeln.
Interne Hosts kommunizieren mit externen Hosts über ungewöhnliche Ports
Auffällig ist beispielsweise, wenn interne Rechner über Port 80 eine SSH-Verbindung (Secure Shell) zu einem System außerhalb des Firmennetzes aufbauen. SSH nutzt normalerweise Port 22 (TCP). Port 80 ist dagegen die Standardschnittstelle für HTTP-Datenverkehr, also den Zugriff auf das Internet. Wenn ein Host einen ungewöhnlichen Port verwendet, kann dies ein Indiz dafür sein, dass ein Angreifer das System unter seine Kontrolle gebracht hat. Um IT-Sicherheitssysteme zu täuschen, tarnt ein Hacker dann die Kommunikation mit seinem Command-and-Control-Server (C&C) als Anwendung, die jedoch nicht den Standard-Port verwendet.
Öffentlich zugängliche Hosts oder Hosts in entmilitarisierten Zonen (DMZ) kommunizieren mit internen Hosts
Mithilfe solcher Hosts kann es Angreifern gelingen, gewissermaßen "huckepack" in ein Unternehmensnetz einzudringen, Daten zu stehlen oder IT-Systeme zu infizieren.
Warnungen von Malware-Scannern außerhalb der Geschäftszeiten
Verdächtig ist, wenn Antiviren-Programme in der Nacht oder am Wochenende Alarm schlagen, also außerhalb der normalen Arbeitszeiten. Solche Vorkommnisse deuten auf einen Angriff auf einen Host-Rechner hin.
Verdächtige Netzwerk-Scans
Führt ein interner Host-Rechner Scans des Netzwerks durch und nimmt er anschließend Verbindung zu anderen Rechnern im Firmennetz auf, sollten bei Administratoren die Alarmglocken schrillen. Denn dieses Verhalten deutet auf einen Angreifer hin, der sich durch das Netzwerk "hangelt". Vielen Firewalls und Intrusion-Prevention-Systemen (IPS) entgehen solche Aktionen, wie sie nicht entsprechend konfiguriert sind.
Häufung identischer verdächtiger Ereignisse
Ein klassischer Hinweis auf Angriffe ist, wenn mehrere sicherheitsrelevante Events innerhalb kurzer Zeit auftreten. Das können mehrere Alarmereignisse auf einem einzelnen Host sein, aber auch Events auf mehreren Rechnern im selben Subnetz. Ein Beispiel sind Fehler beim Authentifizieren.
Schnelle Re-Infektion mit Malware
Nach dem Scannen mit einer Antiviren-Software und dem Beseitigen eventuell vorhandener Schadsoftware sollte ein IT-System eigentlich längere Zeit "sauber" bleiben. Wird ein System jedoch innerhalb weniger Minuten erneut von Malware befallen, deutet dies beispielsweise auf die Aktivitäten eines Rootkit hin.
Dubiose Log-in-Versuche eines Nutzers
Eigenartig ist, wenn derselbe User innerhalb kurzer Zeit von unterschiedlichen Orten aus Log-in-Versuche in ein Firmennetz startet oder wenn solche Aktionen von Systemen mit unterschiedlichen IP-Adressen aus erfolgen. Eine Erklärung ist, dass die Account-Daten des Nutzers in falsche Hände gefallen sind. Denkbar ist allerdings auch, dass sich ein illoyaler oder ehemaliger Mitarbeiter Zugang zu verwertbaren Daten verschaffen will.

Kritische Infrastruktur Software

Software ist heute mehr denn je eine kritische Infrastruktur. Ihre Qualität, Sicherheit und Verfügbarkeit sind essentielle und überlebensnotwendige Faktoren für jedes moderne Unternehmen. Um diese Faktoren zu gewährleisten, müssen Softwaresysteme mehr denn je angemessen erstellt, getestet und analysiert werden. Das gilt für die einzelnen Komponenten, wie etwa Softwarebibliotheken, und für das Gesamtsystem im Verbund.

Viele Ansätze sind hier möglich und die meisten auch nötig. Diese beginnen bei angemessenen Strukturen für moderne Entwicklungsteams, die auch hochaktuelle Cybersecurity-Skills integrieren müssen. Kontinuierliches Training und Weiterbildung sind unabdingbar. Neben traditionellen Softwaretests im Entwicklungszyklus sind heute leistungsfähige Werkzeuge zur Code-Analyse in der Lage, beim Test und dem Härten von Softwaresystemen zu unterstützen.

Code-Qualität und "Security by Design" sind nicht weit oben auf der Liste der Anforderungen an Unternehmenssoftware. Dies ist um so mehr im aktuellen Trend der "schneller mehr Funktionalität liefern"-Mentalität der DevOps-Evangelisten der Fall.

Aktuelle Fehlentwicklungen wie die genannten bedrohten Virtualisierungsplattformen und die gefährdete Regierungs-IT, aber auch unsichere SSL-Kommunikation in Webservern und kompromittierbare Funktionen in Router-Firmware belegen jedoch nachdrücklich, dass hier bislang kurzsichtig priorisiert wird.

Die strategische Verankerung von angemessen hohen Sicherheitsanforderungen in jeder Softwarespezifikation ist nicht zuletzt auch eine Managementaufgabe, denn sie erfordert Geld, Zeit und Ressourcen jenseits von "Time to Market". Die genannten Beispiele sollten helfen können, hier die notwendige Bereitschaft zu schaffen.

Irre Quellcode-Kommentare
Konfusion
Wenn der Entwickler selbst nicht mehr weiß, was er da getrieben hat.
Fluchen ...
... können Entwickler ja bekanntlich besonders gut.
Eine wahre Geschichte
Was, das wussten Sie nicht??
Das Ende
Das kontrollierte Ende eines möglicherweise unkontrollierten Programmablaufs.
Schnipp und Schnapp
Über die Benennung von Variablen lässt sich wahrlich trefflich streiten.
Optimist
Ach ja ...
Weihnachtsbaum
Ein schöner Weihnachtsbaum bei der Definition von Variablenwerten.
Star Trek
Star-Wars-Fans sind überall unter uns und hinterlassen ihre Spuren.
Meinung
Freie Meinungsäußerung, auch wenn sie "eher robuster" ausfällt, ist stets zulässig.
Im Fall des Falles
Ein Fehler-Handler ohne Inhalt: Oh Schreck - eigentlich sollten wir hier was unternehmen.
Hübsch anzusehen
Künstlerische Aspekte dürfen auch im Quellcode-Kommentar nicht zu kurz kommen.
Kurz ...
... und prägnant.
Drachen
ASCII-Malerei - ein Relikt aus den 1980er Jahren.
Kafka
Zwar soll Franz K. Prag nicht wirklich verlassen haben, in den Quellcode hat er es dennoch geschafft.
Genie
Ob es dieser Entwickler wirklich ernst meint?
Ohne Inhalt
Das Grundgerüst ist zumindest schon mal erstellt - Zeit für einen Kaffee.
Null oder Null?
Die Implementierung ist wohl nicht so ganz im Sinne des Entwicklers.
Wirklich gemein
Die Freundlichkeit in diesem Kommentar ist wahrlich spürbar. Wahr als Unwahr zu definieren, ist auch ein ganz freundlicher Akt.
Der Beste
Möglicherweise der beste Kommentar den es gibt: Wie viel Zeit haben wir schon bei der Optimierung des Codes verschwendet?
Den Mutigen
Den Mutigen gehört die Welt.
Ehrlichkeit
Hoffentlich ist der Rest vom Programm in einem günstigeren Geisteszustand verfasst worden.
Aha!
Alles klar?
Vertrauen
Nur weil es im Kommentar steht, heißt es nicht, dass es auch wirklich stimmt.
Mehr Zeit
Natürlich ist es falsch die XML-Datei so zu erzeugen, aber es klappt und wir haben mehr Zeit für ein paar Getränke.

(bw)