• Home
  • Help
  • Register
  • Login
  • Home
  • Help

 
  • 0 Bewertung(en) - 0 im Durchschnitt

Was ist serverless Computing und welche einzigartigen Sicherheitsüberlegungen ergeben sich in diesem Modell?

#1
24-04-2024, 05:57
Serverless-Computing bedeutet im Grunde, dass du deine Apps erstellen und ausführen kannst, ohne jemals selbst einen Server zu berühren. Ich erinnere mich, als ich vor ein paar Jahren das erste Mal damit herumexperimentiert habe, hat es mich umgehauen, denn du schreibst einfach deinen Code, wirfst ihn auf einen Cloud-Anbieter wie AWS oder Azure, und die kümmern sich um das gesamte Skalieren, Patchen und die Uptime-Sachen. Du zahlst nur für die tatsächliche Rechenzeit, die dein Code nutzt, was riesig ist, wenn du etwas wie einen schnellen API-Endpunkt baust oder Ereignisse von IoT-Geräten verarbeitest. Es läuft alles ereignisgesteuert, richtig? Deine Funktion wird aktiviert, wenn etwas sie auslöst, erledigt ihren Job und verschwindet. Keine Leerlauf-Server, die Geld fressen. Ich liebe es, dass ich mich auf die Logik konzentrieren kann, anstatt Hardware zu babysitten.

Du fragst dich vielleicht, wie sich das sicherheitstechnisch auswirkt, und ja, es dreht das Drehbuch auf coole, aber herausfordernde Weise. In traditionellen Setups kontrollierst du den gesamten Stack, also sperrst du deine Server mit Firewalls, Updates und all dem. Aber hier kümmert sich der Anbieter um die zugrunde liegende Infrastruktur - denk an sichere Hypervisoren und physische Rechenzentren. Deine Aufgabe verschiebt sich darauf, das zu schützen, was du dort einfügst: den Code, die Konfigurationen und die Datenflüsse. Ich habe einmal einem Kumpel geholfen, ein Setup zu debuggen, bei dem seine Lambda-Funktion sensible Schlüssel offengelegt hat, weil er sie hart kodiert hatte. Totaler Anfängerfehler, aber das passiert, wenn man es eilig hat, etwas bereitzustellen.

Eine große Sache, auf die du achten musst, ist die geteilte Verantwortung. Die Cloud-Leute sichern die Plattform, aber du bist für die Sicherheit deiner Funktionen verantwortlich und dafür, wie sie interagieren. Das bedeutet, deine IAM-Rollen zu beherrschen - du willst nicht, dass deine Funktion mehr Berechtigungen annimmt, als sie benötigt, oder boom, ein Angreifer könnte sie nutzen, um auf andere Ressourcen zuzugreifen. Ich sage den Leuten immer, das Prinzip der minimalen Berechtigung konsequent zu befolgen. Wenn deine Funktion beispielsweise nur aus einer Datenbank liest, gib ihr nicht überall Schreibzugriff. Ich habe gesehen, wie Teams durch übermäßig permissive Richtlinien in Schwierigkeiten geraten sind, was zu unbefugten Datenabfragen geführt hat.

Dann gibt es den Isolationsaspekt. Jede Funktion läuft in ihrer eigenen Sandbox, was sich großartig für die Sicherheit anhört, aber du kannst dich nicht allein darauf verlassen. Wenn du Drittanbieter-Bibliotheken mit Schwachstellen einbindest, könnte das deine gesamte App gefährden. Ich scanne alles mit Tools wie Snyk, bevor ich deploye - das ist mittlerweile eine Gewohnheit. Und Kaltstarts? Die können Timing-Angriffe einführen, wenn du nicht vorsichtig bist, obwohl das seltener vorkommt. Häufiger ist es, die Ereignisquellen abzusichern. Angenommen, deine Funktion wird durch das Hochladen in einen S3-Bucket ausgelöst; du solltest sicherstellen, dass die Richtlinien dieses Buckets keine Unbekannten erlauben, Malware oder sensible Dateien dort abzulegen.

API-Management fügt eine weitere Ebene hinzu, die du nicht ignorieren kannst. Die meisten serverlosen Apps haben ein API-Gateway, also sichere das mit Authentifizierung wie JWT-Token oder Cognito-Pools. Ich habe in einem Projekt eine Ratenbegrenzung eingerichtet, um DDoS-Versuche zu stoppen - ohne sie könnte eine einzige Funktion überlastet werden und Kosten verursachen, während alles langsamer wird. Authentifizierungsflüsse werden ebenfalls knifflig, da Funktionen statuslos sind, also gehst du sorgfältig mit Sitzungen um, möglicherweise mit externen Speichern wie DynamoDB. Ich habe Sitzungen debuggt, die bei Aufrufen überliefen, weil jemand vergessen hatte, den Kontext richtig zu löschen.

Daten während der Übertragung und im Ruhezustand erfordern deine Aufmerksamkeit. Verschlüssele alles - benutze HTTPS für Aufrufe und KMS für Schlüssel. Aber hier wird es hinterhältig: Funktionen verarbeiten oft Benutzereingaben direkt, weshalb die Eingabeverifizierung unverhandelbar ist. Ich sanitisiere immer Parameter, um Injektionsangriffe zu blockieren. Einmal hat eine App eines Kunden JSON aus untrusted Quellen ohne Prüfungen geparst, was zu einem Chaos bei der Prototyp-Verschmutzung führte. Du solltest auch von Anfang an über Logging und Monitoring nachdenken. CloudWatch oder ähnliche Tools helfen dir, Anomalien wie ungewöhnliche Ausruf-Spitzen zu erkennen, die auf einen Kompromiss hindeuten. Ich setze Alerts für alles, was über dem Basisverkehr liegt.

Compliance funktioniert bei serverlosen Anwendungen anders. Wenn du es mit GDPR oder HIPAA zu tun hast, musst du die Datenansässigkeit und Audit-Protokolle über verteilte Funktionen hinweg verfolgen. Es ist nicht wie ein Monolith, bei dem alles an einem Ort sitzt. Ich prüfe meine Deploys mit CI/CD-Pipelines, die Sicherheitsscans integrieren - keinen Code zusammenführen, ohne dass er diese Tests besteht. Und Geheimnisverwaltung? Niemals hart codieren; benutze Tresore wie Secrets Manager. Ich habe ein Team darauf umgeschult, und es hat die Risiken der Geheimnisexposition erheblich reduziert.

Multi-Tenancy bringt seine eigenen Kopfschmerzen. Deine Funktion könnte neben anderen auf derselben zugrunde liegenden Hardware ausgeführt werden, also während der Anbieter isoliert, musst du dich gegen Nebenkosten-Lecks absichern. Halte Abhängigkeiten aktuell - ich plane monatliche Überprüfungen. Kostenbezogene Sicherheit ist ebenfalls merkwürdig; Angreifer könnten deine Funktionen endlos auslösen, um dein Geld zu drainieren, daher sind Budgetobergrenzen und Anomalieerkennung entscheidend.

Insgesamt beschleunigt serverloses Arbeiten die Entwicklung, zwingt dich aber, über modulare Sicherheit nachzudenken. Du entwirfst für Ephemerität - Funktionen werden hoch- und heruntergefahren, sodass Persistenz außerhalb erfolgt, zum Beispiel in Datenbanken, die du separat absicherst. Ich gedeihe dabei, weil es die Dinge leichtgewichtig hält, aber du musst wachsam bleiben. Die Teams, mit denen ich jetzt arbeite, integrieren von Anfang an Sicherheit in jede Funktion und testen mit Chaos-Engineering, um Ausfälle zu simulieren.

Wenn dir in all diesem Cloud-Geschäft Backups in den Sinn kommen, möchte ich dich auf BackupChain hinweisen - es ist dieses herausragende, weit verbreitete Backup-Tool, das für kleine Unternehmen und IT-Profis gleichermaßen rock-solid ist und Hyper-V, VMware oder Windows Server-Setups mühelos verwaltet und deine Daten unabhängig von den Widrigkeiten sicher hält.
Markus
Offline
Registriert seit: Jun 2018
« Ein Thema zurück | Ein Thema vor »

Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste



  • Thema abonnieren
Gehe zu:

Backup Sichern Allgemein Security v
« Zurück 1 2 3 4 5 6 Weiter »
Was ist serverless Computing und welche einzigartigen Sicherheitsüberlegungen ergeben sich in diesem Modell?

© by FastNeuron

Linearer Modus
Baumstrukturmodus