Production Perig - stock.adobe.c
Die Sicherheit in Serverless-Umgebungen optimieren
Serverless Computing bietet viele Vorteile. Sowohl Entwickler als auch die Admins müssen aber einige Dinge beachten, wenn es um die Absicherung der neuen Umgebungen geht.
Serverless Computing ist ein sehr effizienter Weg, um Software nur noch gezielt nach dem jeweiligen Bedarf zu nutzen. Die zunehmende Verbreitung der Technik ist vor allem auf ihre Einfachheit, ihre niedrigeren Kosten und ihre schnellere Einsatzfähigkeit zurückzuführen. Wie aber andere Technologien auch, benötigt Serverless Computing geeignete Maßnahmen zu seiner Absicherung.
So setzt ein sicherer Einsatz von Serverless Computing voraus, dass sowohl die beteiligten Entwickler als auch das administrative Team ihre Vorgehensweise beim Thema IT-Sicherheit gründlich überdenken und ihre Maßnahmen neu planen. Die folgenden Hinweise sollen Ihnen dabei helfen, Schwachstellen zu finden und Ihre Serverless-Umgebungen in Zukunft effektiver vor Angriffen zu schützen.
Maßnahmen für Entwickler
Um die Sicherheit beim Thema Serverless Computing zu erhöhen, sollten Sie darauf achten, nur eng definierte Funktionen zu erstellen, die nur die wirklich benötigten Ressourcen aufrufen, die für eine bestimmte Aufgabe benötigt werden. Dieser Minimalismus sorgt dafür, dass die Angriffsoberfläche und die möglichen Folgen einer Schwachstelle in einer Funktion reduziert werden. Je weniger Ressourcen eine Funktion aufrufen kann, desto weniger Schaden kann ein Angreifer anrichten, wenn er Zugriff auf sie erhält.
Erstellen Sie darüber hinaus separate Funktionen für unterschiedliche Aufgaben und trennen Sie diese Funktionen so weit wie möglich voneinander. Die Isolierung senkt die Wahrscheinlichkeit, dass eine Schwachstelle in einer Funktion negative Auswirkungen auf andere Funktionen hat.
Setzen Sie nur Abhängigkeiten sehr vorsichtig ein. Häufig werden in Serverless-Umgebungen Abhängigkeiten von Repositories anderer Anbieter genutzt. Vermeiden Sie dieses Vorgehen, wann immer es möglich ist, da Sie auf diesen Code weit weniger Einfluss als auf Ihre eigene Arbeit haben. Die Entwickler, die den fremden Code erstellt haben, haben oft nicht dieselben Sicherheitsstandards wie Sie. Dazu kommt, dass Sie von den fremden Entwicklern abhängig sind, wenn Probleme gleich welcher Art auftreten sollten. Möglicherweise beheben sie das Problem nicht in dem Zeitrahmen, den Sie benötigen. Das ist gerade bei freien Angeboten häufig der Fall. Wenn Sie auf Abhängigkeiten in bestimmten Fällen aber absolut nicht verzichten wollen oder können, dann sollten Sie zumindest nur immer die jeweils aktuellsten stabilen Versionen einbinden.
Führen Sie Buch darüber, welche Abhängigkeiten Sie in Ihrem Serverless-Code eingebaut haben. Verwenden Sie außerdem zusätzliche Werkzeuge zum Entdecken von Schwachstellen, um sofort darüber informiert zu werden, wenn in dem von Ihnen eingebundenen Code Lücken auftauchen oder entdeckt werden.
Analysieren und Testen Sie Ihre Serverless-Anwendungen. Um die Sicherheit in Serverless-Umgebungen weiter zu erhöhen, sollten Sie alle eingesetzten Funktionen auf Sicherheitslücken prüfen. Nicht selten werden Funktionen separat voneinander entwickelt. Das darf aber nicht dazu führen, dass sie nicht in Ihre regelmäßigen Sicherheitschecks mit einbezogen werden.
Maßnahmen für administrative Teams
Die hohe Bedeutung von Monitoring im Bereich Serverless Computing dürfte auf der Hand liegen. Der Punkt ist auch deswegen von so großer Wichtigkeit für die administrativen Teams, weil es mit den bislang genutzten Security Tools meist schwierig ist, eine Serverless-Umgebung umfassend zu überwachen.
Zwar ist es meist möglich, die aus einer Serverless-Umgebung gewonnenen Daten in eine vorhandene SIEM-Lösung (Security Information and Event Management) zu importieren. Die meisten bisherigen SIEM-Werkzeuge wurden aber nicht darauf ausgelegt, Unregelmäßigkeiten in vor allem durch Events definierten Umgebungen zu entdecken. Ein konventionelles SIEM wird zum Beispiel einen Prozess meist als verdächtig einstufen, der nur kurz läuft und dann sofort wieder stoppt. Das liegt daran, dass dieses Verhalten in traditionellen Umgebungen nur selten anzutreffen ist. In Serverless-Umgebungen ist das aber völlig normal und tritt häufig auf. Im Grunde gibt es dafür zwei Lösungsmöglichkeiten: Zum einen können Sie die SIEM-Regeln anpassen, so dass das System Ihre Serverless-Umgebung besser „versteht“. Zum anderen können Sie angepasste Tools nutzen, die auf die Serverless-Infrastrukturen ausgerichtet sind. Beispiele für diese Art von Werkzeugen sind PureSec und Twistlock.
Passen Sie die Richtlinien für Zugriffe an. Cloud-basierte Serverless-Plattformen wie zum Beispiel AWS Lambda bieten vorkonfigurierte Möglichkeiten zur Kontrolle von Zugriffen auf Basis von Richtlinien und Profilen. Damit lässt sich detailliert festlegen, welche Nutzer Serverless-Funktionen aufrufen und überwachen dürfen.
Diese Vorgaben sind ein guter Ansatz, um die Sicherheit in Serverless-Umgebungen zu erhöhen. Sie sollten sich aber nicht allein auf die von einem Anbieter zur Verfügung gestellten Kontrollmöglichkeiten verlassen. Der Grund dafür liegt darin, dass diese Richtlinien meist sehr allgemein formuliert werden und deswegen nicht für Ihre spezifischen Bedürfnisse ausgelegt sind. Außerdem sind auch Angreifer über diese Standardmaßnahmen oft informiert, so dass sie versuchen werden, sie gezielt zu umgehen.
Nehmen Sie stattdessen die vom Anbieter bereitgestellten Einstellungen, die das geringste Maß an Zugriffsrechten gewähren, und bauen Sie auf dieser Basis Ihre individuelle Konfiguration auf.
Seien Sie außerdem vorsichtig beim Thema Autoscaling. Viele Unternehmen sind von Serverless Computing begeistert, weil sich diese Dienste so gut automatisch skalieren lassen. Wenn die Admin-Teams jedoch die Möglichkeiten zu einem schnellen Skalieren aber nicht sorgsam konfigurieren, dann können Angreifer – oder auch nur schlecht programmierter Code – dafür sorgen, dass zahllose Funktionen und Aktionen in kürzester Zeit ausgelöst werden. Dadurch können zum Teil erhebliche Kosten für das Unternehmen entstehen.
Aus diesem Grund sollten Sie einen Mittelweg wählen, damit Ihre legitimen Anwender die Vorteile der automatischen Skalierbarkeit auch wirklich nutzen können. Gleichzeitig muss aber einem möglichen Missbrauch vorgebeugt werden. Es wird meist eine Weile dauern, bis Sie hier das richtige Maß gefunden haben und bis Ihre Admin-Teams alle dafür benötigten Anpassungen vorgenommen haben.