Technischer Leitfaden

Cloud Security Hardening: IAM, Secrets und Reviews, die standhalten

Ein praktischer Leitfaden zum Härten von Cloud-Systemen. Least-Privilege-IAM, Secrets-Management, Netzwerkgrenzen, SSRF-Abwehr, Audit-Trails und wie du ein Security-Review durchführst.

22. Juli 202618 Min. LesezeitOronts Engineering Team

Sicherheit ist eine Eigenschaft, kein Produkt

Ganz direkt: Du kannst dir ein sicheres System nicht kaufen. Es gibt kein Tool, das eine überprivilegierte IAM-Rolle sicher macht oder ein Secret in einer Config-Datei geheim hält. Sicherheit ist eine Eigenschaft davon, wie ein System gebaut und betrieben wird, und Hardening ist die fortlaufende Arbeit, die Wege zu beseitigen, auf denen es schiefgehen kann.

Die meisten Breaches sind nicht exotisch. Sie sind ein geleakter Key mit zu viel Zugriff, ein öffentlich gelassener Storage-Bucket, eine Callback-URL, die einen internen Dienst erreicht hat, ein Audit-Trail, den niemand geführt hat. Die Arbeit des Hardenings ist unglamourös und konkret, und sie macht den Unterschied zwischen einem System, das einen Fehler überlebt, und einem, das aus einem Fehler eine Schlagzeile macht.

Das Ziel von Hardening ist nicht, einen Angriff unmöglich zu machen. Es ist, einen einzelnen Fehler überlebbar zu machen, indem sichergestellt wird, dass kein einzelner Ausfall einen großen Blast Radius hat.

Wir machen Security-Architektur-Reviews und Hardening als Teil unserer Consulting-Praxis, und wir bauen diese Kontrollen in unsere eigenen Plattformen ein, Exfinity und OGuardAI. Dieser Leitfaden ist das, was wir tatsächlich prüfen und fixen. Für den KI-spezifischen Blickwinkel kombiniere ihn mit unserem KI-Governance-Leitfaden und dem Leitfaden zur Verhinderung von Datenlecks.

Wen interessiert was

RolleDie eigentliche FrageSo sieht gut aus
CTOWo ist gerade unsere größte Exposure?Eine priorisierte Liste, kein vages "uns geht es gut"
Security LeadKann ein einzelner geleakter Key echten Schaden anrichten?Least Privilege, kleiner Blast Radius
SREKönnen wir einen Incident erkennen und rekonstruieren?Logs, Audit-Trail, Alerting
ComplianceIst das vor einem Auditor haltbar?Dokumentierte Kontrollen, aufbewahrte Nachweise
DeveloperWas ändere ich konkret?Konkrete Fixes, kein Policy-PDF

Identität: Least Privilege oder gar nichts

Der häufigste ernsthafte Befund in jedem Review ist überprivilegierte Identität. Eine Rolle, die weit mehr kann, als ihr Job braucht, ist ein Leaked-Key-Desaster auf Abruf. Der Fix ist Least Privilege: Jede Identität bekommt genau den Zugriff, den sie braucht, nicht mehr.

Das ist mühsam, und es lohnt sich. Ein kompromittiertes Credential, das nur einen Bucket lesen darf, ist ein Incident. Dasselbe Credential mit breitem Schreibzugriff ist eine Katastrophe.

Anti-PatternFix
Wildcard-Berechtigungen auf RollenAuf konkrete Ressourcen und Aktionen einschränken
Langlebige statische KeysKurzlebige, rotierte Credentials
Geteilte Credentials über Services hinwegEine Identität pro Service
Mensch und Maschine teilen sich eine RolleGetrennte, unterschiedlich gescopte Identitäten

In unseren eigenen Plattformen sind Maschinen-Identitäten pro Service gescopt und werden rotiert, und menschlicher Zugriff ist mit anderen Privilegien vom Maschinenzugriff getrennt. Das Prinzip gilt in jeder Cloud. Unser Leitfaden zum Multi-Tenant-Systemdesign behandelt, wie Identity-Scoping mit Tenant-Isolation zusammenspielt.

Secrets: Nicht im Code, nicht in der Config

Ein Secret in einem Repository ist ein Secret, das geleakt ist, egal ob es schon jemand gefunden hat oder nicht. Secrets gehören in einen verwalteten Secrets-Store, verschlüsselt, zur Laufzeit abgerufen und rotiert.

Die Checkliste ist kurz und strikt:

  1. Keine Secrets in Code oder Config-Dateien. Nicht im Repo, nicht im Container-Image, nicht in einer irgendwo committeten Environment-Datei.
  2. At rest verschlüsselt mit einem verwalteten Key. Der Store verschlüsselt, und der Zugriff auf den Key ist selbst kontrolliert.
  3. Zur Laufzeit abgerufen, nicht eingebacken. Die Anwendung zieht Secrets beim Start oder wenn sie sie braucht.
  4. Rotiert, mit einem Übergangsfenster. Ein rotierter Key gibt dem alten eine kurze Überlappung, damit mitten in der Rotation nichts bricht.

Exfinity hält Provider-Keys, Connection Strings und Signatur-Secrets in einem verwalteten Secrets-Store mit Key-basierter Verschlüsselung, und OGuardAI verschlüsselt seine Session-Mappings mit authentifizierter Verschlüsselung und unterstützt Zero-Downtime-Key-Rotation über einen Key Ring. Das Muster ist überall gleich: Das Secret liegt nie im Klartext dort, wo ein Repo-Clone oder ein Image-Pull es offenlegen würde.

Netzwerkgrenzen: Privat by Default

Die Default-Haltung für jeden Datenspeicher und internen Dienst ist privat. Datenbanken, Suche, Caches und Message Broker gehören in private Subnetze ohne öffentliche Route, erreichbar nur von dem Compute, der sie braucht.

Internet
   │
   ▼
Load balancer (public, HTTPS only)
   │
   ▼
Compute (private subnet)
   │
   ▼
Data stores (private subnet, no public access)
   ── database ── search ── cache ── message broker

Nur der Load Balancer und das CDN zeigen zum Internet, und sie sprechen ausschließlich HTTPS. Alles dahinter ist über das Netzwerk erreichbar, nicht aus dem offenen Internet. Security Groups erlauben das Minimum: den Load Balancer zum Compute, den Compute zu den Datenspeichern, nichts Breiteres. Eine Web Application Firewall davor fängt gängige Angriffsmuster ab. So führt ein kompromittiertes Frontend nicht automatisch zu einer kompromittierten Datenbank. Unser AWS-Multi-Tenant-SaaS-Leitfaden zeigt diese Topologie in einer vollständigen Plattform.

Der Übersehene: SSRF und ausgehende Calls

Hier ist eine Schwachstellenklasse, die die meisten Reviews übersehen, bis sie zubeißt. Wenn dein System ausgehende HTTP-Calls an URLs macht, die es nicht vollständig kontrolliert hat, Webhooks, Callbacks, Link-Previews, Bild-Fetches, kann ein Angreifer sie auf dein internes Netzwerk richten und deinen eigenen Server benutzen, um es abzutasten. Das ist Server-Side Request Forgery, und so werden interne Metadata-Services und private Endpoints von außen erreicht.

Die Abwehr ist eine Fail-closed-Allowlist, die das Ziel validiert, bevor der Call rausgeht, und alles ablehnt, was auf eine interne oder nicht öffentliche Adresse auflöst.

Outbound URL ──▶ resolve ──▶ is it a public unicast address?
                                  │ no                │ yes
                                  ▼                   ▼
                              reject               proceed, pinned to
                              (fail closed)        the validated host

Exfinity validiert ausgehende Webhook- und Probe-Ziele gegen eine Unicast-Allowlist und pinnt die Verbindung an den validierten Host, damit ein Redirect den Request nicht woandershin schmuggeln kann. Wenn dein System URLs aufruft, die aus Nutzereingaben abgeleitet sind, ist das ein Pflicht-Fix. Die Integrationsseite behandeln wir in unserem Enterprise-Integrations-Leitfaden.

Verschlüsselung und der Audit-Trail

Zwei Kontrollen, nach denen Auditoren immer fragen, und die du stehen haben willst, bevor sie es tun.

Verschlüsselung überall: Daten at rest in jedem Store verschlüsselt und in transit über TLS auf jedem Hop. Das ist Grundausstattung, und auf modernen Cloud-Plattformen ist es billig, also gibt es keine Ausrede, es auszulassen.

Ein Audit-Trail, der standhält: jede bedeutsame Aktion aufgezeichnet mit wer, was, wann und gegen welche Ressource, in einem dauerhaften, manipulationsevidenten Store, aufbewahrt so lange, wie deine Pflichten es verlangen. Exfinity führt ein operatives Audit-Log, das mit mehrjähriger Aufbewahrung für Compliance in dauerhaften Storage archiviert, und OGuardAI zeichnet einen Audit-Trail ohne personenbezogene Daten auf, mit optionaler Hash-Kette als Manipulationsnachweis. Der Test ist simpel: Kannst du nach einem Incident exakt rekonstruieren, was passiert ist? Wenn nicht, hast du eine Lücke. Unser Observability-Leitfaden behandelt das breitere Telemetrie-Bild.

Dependencies und die Supply Chain

Der Code, den du nicht geschrieben hast, ist trotzdem deine Angriffsfläche. Ein verwundbares Paket tief in deinem Dependency-Baum oder ein kompromittiertes Base-Image ist ein Breach, der durch die Vordertür kommt, die du offen gelassen hast, weil du nicht hingeschaut hast. Supply-Chain-Hygiene ist heute ein erstklassiger Teil des Hardenings, kein Nachgedanke.

Die praktischen Kontrollen sind konkret und automatisierbar. Scanne Container-Images bei jedem Build auf bekannte Schwachstellen und lass den Build bei allem Ernsthaften fehlschlagen. Signiere deine Images, damit ein Deployment verifizieren kann, dass es das ausführt, was du gebaut hast, und kein untergeschobenes Artefakt. Erzeuge eine Software Bill of Materials, damit du "sind wir von dieser neuen Schwachstelle betroffen" in Minuten statt Tagen beantworten kannst.

Wir wenden das auf unsere eigenen Artefakte an. Die OGuardAI-Runtime wird als gescannte, signierte Images mit angehängter Bill of Materials ausgeliefert, damit ein Operator die Herkunft verifizieren kann, bevor er sie ausführt. Dieselbe Disziplin gehört auf jedes Image, das du deployst.

KontrolleBeantwortet
Image-ScanningGibt es bekannte Schwachstellen in dem, was wir ausliefern?
Image-SigningIst das das Artefakt, das wir wirklich gebaut haben?
Bill of MaterialsWelches unserer Systeme enthält diese verwundbare Komponente?
Gepinnte Base-ImagesHat sich ein Base-Image unter uns geändert?

Eine Schwachstelle in einer Dependency ist nicht deine Schuld, aber sie unwissentlich auszuliefern ist deine Verantwortung. Unser Infrastructure-as-Code-Leitfaden zeigt, wie du diese Checks in die Pipeline verdrahtest.

Wie du ein Security-Review wirklich durchführst

Ein Review ist kein Vibe-Check. Es ist ein strukturierter Durchgang über die Flächen, die zählen, mit einer priorisierten, umsetzbaren Liste als Ergebnis.

BereichWas zu prüfen ist
IdentitätÜberprivilegierte Rollen, statische Keys, geteilte Identitäten
SecretsAlles in Code, Config oder Images; Rotation
NetzwerkÖffentliche Datenspeicher, zu breite Security Groups, keine WAF
OutboundSSRF-Exposure auf jeder nutzerbeeinflussten URL
DatenVerschlüsselung at rest und in transit, Residency
AuditAbdeckung, Dauerhaftigkeit, Aufbewahrung, Manipulationsnachweis
DependenciesBekannt verwundbare Pakete, ungepatchte Runtimes
Access ControlAutorisierungslücken, fehlende Tenant-Checks

Das Ergebnis ist nicht "ihr seid unsicher". Es ist ein priorisierter Remediation-Plan: was nach Blast Radius zuerst zu fixen ist, was mittel ist, was akzeptables Risiko ist, das man bewusst akzeptiert. Diese Priorisierung ist der Wert, weil nicht alles dringend sein kann. Unser Consulting-Team führt genau diese Art Review durch, und unsere Methodik rahmt, wie wir die Fixes sequenzieren.

Erste Schritte

  1. Inventarisiere Identität. Finde zuerst die überprivilegierten Rollen und statischen Keys. Sie sind der größte Blast Radius.
  2. Fahnde nach Secrets. Scanne Code, Config und Images. Verschiebe alles in einen verwalteten Store.
  3. Schließe das Netzwerk. Mach Datenspeicher privat, zieh Security Groups enger, füge eine Firewall hinzu.
  4. Prüfe ausgehende Calls. Jede nutzerbeeinflusste URL ist ein SSRF-Risiko. Füge eine Fail-closed-Allowlist hinzu.
  5. Verifiziere den Audit-Trail. Bestätige, dass du einen Incident rekonstruieren könntest. Schließe die Lücken.

Starte über Kontakt oder hol dir ein umrissenes Angebot für ein Review. Das ist Kern unserer Cloud- und Consulting-Arbeit.

Wie das typischerweise schiefgeht

  1. Überprivilegierte Identität. Der häufigste ernsthafte Befund. Scope jede Rolle auf ihren Job.
  2. Secrets in Code oder Config. Bereits geleakt. Verschiebe sie in einen verwalteten, verschlüsselten Store.
  3. Öffentliche Datenspeicher. Eine Datenbank im offenen Internet ist ein Breach auf Abruf. Mach sie privat.
  4. SSRF ignorieren. Nutzerbeeinflusste ausgehende Calls können deine Interna erreichen. Allowlist und fail closed.
  5. Kein brauchbarer Audit-Trail. Wenn du einen Incident nicht rekonstruieren kannst, kannst du nicht darauf reagieren. Bau ihn ein.
  6. Sicherheit als einmaliges Projekt behandeln. Hardening ist fortlaufend. Reviewe in einem Rhythmus, nicht einmal.

Wer das baut

Oronts ist ein gründergeführtes Softwareunternehmen in München. Refaat Al Ktifan, unser Gründer und Solution Architect, führt ein Senior-Team über Backend, Cloud und Security hinweg. Wir führen Security-Architektur-Reviews durch und bauen Hardening in die Delivery ein, und die Kontrollen in diesem Leitfaden sind die, die wir in unseren eigenen Plattformen durchsetzen, Exfinity und OGuardAI. Wir bewerten deine Exposure, geben dir einen priorisierten Remediation-Plan und helfen dir, ihn nach Priorität abzuarbeiten. Sieh dir unsere Seiten Services, Solutions und Trust an.

Kernpunkte

  • Sicherheit ist eine Eigenschaft davon, wie ein System gebaut und betrieben wird, kein Produkt, das du installierst.
  • Least-Privilege-Identität ist der Fix mit dem größten Hebel, weil sie den Blast Radius eines Leaks schrumpft.
  • Halte Secrets aus Code und Config raus, in einem verwalteten, verschlüsselten Store, und rotiere sie.
  • Mach Datenspeicher privat, verteidige ausgehende Calls gegen SSRF und verschlüssele alles.
  • Führe einen Audit-Trail, aus dem du einen Incident wirklich rekonstruieren könntest, und reviewe in einem Rhythmus.

Beim Hardening geht es nicht um eine perfekte Verteidigung. Es geht darum sicherzustellen, dass der Schaden begrenzt bleibt, wenn etwas schiefgeht, und das wird es, und dass du exakt sehen kannst, was passiert ist.

Du willst ein Security-Review, das Fixes liefert statt ein PDF? Sag uns, was du betreibst. Starte über Kontakt oder hol dir ein umrissenes Angebot.

Behandelte Themen

Cloud-SicherheitSecurity HardeningIAMLeast PrivilegeSecrets-ManagementSecurity-ReviewSSRFAudit-TrailAWS securityDevSecOps

Bauen Sie gerade so etwas?

Wir entwerfen und betreiben Produktionssysteme wie das in diesem Leitfaden. Sprechen Sie mit den Ingenieuren, die ihn geschrieben haben, ohne Verkaufsgespräch.

Gespräch starten