Ausnutzung von Schwachstellen
Sicherheit für Online-Entwicklungsplattformen
Die Sicherheitsforscher von Trend Micro haben zwei weit verbreitete Cloud-basierte IDEs auf ihre Sicherheit untersucht: AWS Cloud9 und Visual Studio Online.
Originalartikel von David Fiser, Senior Cyber Threat Researcher
Früher, bevor es die Integrated Development Environments (IDEs) aus der Cloud gab, musste alles, was ein Entwickler benötigte, heruntergeladen und auf der eigenen Workstation installiert werden. Heutzutage mit der Möglichkeit des Cloud Computings und im Rahmen des DevOps-Konzepts können die Teams online entwickeln. Das ist zwar bequem, aber auch sicher? Die Sicherheitsforscher von Trend Micro haben zwei weit verbreitete Cloud-basierte IDEs daraufhin untersucht: AWS Cloud9 und Visual Studio Online.
Beim Online-Programmieren wird die IDE innerhalb des Browsers ausgeführt, wobei die JavaScript-Engine des Browsers WebSockets verwendet, um im Hintergrund eine SSH-Verbindung (Secure Shell) zu dem verbundenen Gerät (z. B. Virtual Private Server) aufzubauen. Damit steht dem Programmierer die gewohnte Terminal-Schnittstelle für die Ausführung von Befehlen zur Verfügung. Die Umgebung (d.h. das damit verbundene Cloud-VM/VPS oder über SSH zugängliche Gerät) beinhaltet Tool-Konfigurationen (z.B. welche Tokens enthalten sind oder Cloud-Konfigurationsdateien), eine Kopie des Quellcodes, Compiler und andere Tools, die der Entwickler verwenden möchte.
Den Unterschied zwischen lokalen und Cloud-basierten Entwicklungsplattformen macht der Ort aus, wo der Großteil der Umgebung liegt. Bei Cloud-IDEs ist die Umgebung eine Instanz einer virtuellen Maschine innerhalb der Cloud-Umgebung. Hinsichtlich der Sicherheit bedeutet dies, dass das Entwicklerteam die Verantwortung dafür an den Cloud-Anbieter delegiert. Dennoch sind die Entwickler selbst dafür verantwortlich, das Öffnen von „Hintertüren“ oder das Einschleusen von Fehlkonfigurationen in die VM zu verhindern. Setzt der Anwender ein eigenes Gerät mit AWS Cloud9 ein, ist der Entwickler für die sichere Konfiguration dieses Geräts verantwortlich.
VMs sind nicht immer sicher
Es geht auch darum, was im Backend läuft. Um eine solche Online-Plattform zu nutzen, bedarf es eines Geräts, das via SSH damit verbunden ist. Bei Visual Studio Online (noch im Preview) gibt es einen Visual Studio (VS) Code Server auf der Maschine. Bei der AWS-gehosteten Cloud9 ist die Lage etwas komplizierter. Das für die Plattformkommunikation erforderliche Backend befindet sich innerhalb des verbundenen Geräts, während das Frontend an einem anderen Standort gehostet wird. Technische Einzelheiten umfasst der Originalbeitrag.
Damit entsteht bereits das erste Sicherheitsproblem: Wie sicher oder privat sind verbundene Geräte/VMs? Das Gerät enthält vertrauliche Informationen – Zugangs-Tokens, Anwendungseinstellungen, Source Code etc. All dies muss gegen nicht autorisierten Zugriff gesichert sein. Standardmäßig wird die Plattform vom Provider gesichert. Doch sollte dabei bedacht werden, dass der Entwickler mit seinem Root Zugang dafür verantwortlich ist, Fehlkonfigurationsprobleme zu verhindern, vor allem wenn Drittanbieter-Plugins eingesetzt werden. AWS bietet keinen Support für diese Plugins.
Fehlkonfigurationen können zu Sicherheitsproblemen führen, z.B. wenn die IDE von außen zugänglich ist, sei es absichtlich, um die gemeinsame Nutzung zu erleichtern, sei es unabsichtlich. Zugriffs-Token werden nicht in verschlüsselten Token-Depots gespeichert; viele von ihnen lassen sich über Konfigurationsdateien im Klartext sehen. Ohne zusätzliche Sicherheitsmaßnahmen können diese Tokens für Außenstehende zugänglich werden.
Erlangen Cyberkriminelle nicht autorisierten Zugriff, so können sie den Code für ihre Zwecke kompromittieren (ein Beispiel wäre der Supply Chain-Angriff auf eine Softwarefirma über veränderte Software-Updates).
Browser können bösartige Extensions oder Schwachstellen einführen
Ein weiteres Sicherheitsproblem stellt der Browser selbst dar. Nutzer sollten beim Zugriff auf ihre Entwicklungsplattformen vom Browser aus darauf achten, keine öffentlichen, Non-Domain-, geteilte oder ungesicherte Computer zu verwenden. Bösartige Browser Extensions sind wohlbekannt, und es gibt bereits Machbarkeitsbeweise dafür, dass Angreifer über solche Extensions Code stehlen können.
Code Extensions und Plugins können auch Malware enthalten
Einer der Hauptvorteile von Visual Studio Online ist die hohe Zahl der vorhandenen Extensions. Die Kehrseite aber ist die dadurch entstehende Angriffsoberfläche. Vorstellbar ist etwa eine bösartige VS Code Extension mit einer einbetteten Hintertür. Das Sicherheitsproblem besteht darin, dass keine Überprüfung der Berechtigungen (etwa Zugriff auf die Festplatte, aufs Netzwerk etc.) für Extensions während der Installation oder Nutzung stattfindet. Technische Einzelheiten umfasst der Originalbeitrag.
Jede Art von Software kann Sicherheitslücken haben. Im Fall von Online-Entwicklungsplattformen könnten dies Web-Lücken sein, die etwa Angreifern die Möglichkeit geben, eigenen JavaScript-Code auszuführen und damit die IDE zu kontrollieren.
Sicherheit für Cloud-IDEs ist für DevOps von zentraler Bedeutung
Cloud-IDEs müssen noch besser gesichert sein als andere Software. Folgende Empfehlungen können dazu beitragen die dargestellten Sicherheitsfragen zu lösen:
- Für die Sicherheit verbundener Geräte – Es empfiehlt sich die Installation vertrauenswürdiger Software. Diese sollte immer auf aktuellem Stand gehalten und Ports nicht ohne dringende Notwendigkeit geöffnet werden.
- Für Browser – Entwickler sollten innerhalb vertrauenswürdiger und sicherer Umgebungen arbeiten und wenn möglich keine Computer miteinander teilen. Browser Extensions nur von vertrauenswürdigen Anbietern installieren.
- Für VS Code Extensions – Keine Extensions aus nicht bekannten Quellen installieren.
- Für Schwachstellen im allgemeinen – Es sollte immer sichergestellt sein, dass die Umgebung auf aktuellem Versionsstand ist.
Lösungen von Trend Micro kann DevOps Teams dabei unterstützen, ihre Anwendungen sicher zu entwickeln, schnell zur Verfügung zu stellen und überall laufen zu lassen. Die Hybrid Cloud Security-Lösung bietet funktionsstarke, schlanke und automatisierte Sicherheit für die DevOps Pipeline. Sie liefert mehrschichtige XGen™ Threat Defense-Techniken für den Schutz von physischen, virtuellen und Cloud Workloads zur Laufzeit.