Kubernetes-Prüfung: 04 Advanced + Security
Schwierigkeitsgrad: Advanced + Security
Sprache: Deutsch
Format: Security-Review, Policy-, Hardening- und Incident-Response-Prüfung
Empfohlene Dauer: 3 bis 4 Stunden
Maximalpunktzahl: 100 Punkte
Bestehensgrenze: 70 Punkte
Diese Prüfung enthält Aufgaben, Abgabeanforderungen und Bewertungsraster. Sie enthält keine vollständige Musterlösung.
1. Prüfungsziel
Die Prüfung weist nach, dass du Kubernetes-Risiken strukturiert bewerten, Workloads härten, Policies formulieren und Incident Response dokumentieren kannst. Der Schwerpunkt liegt auf Threat Modeling, API Server und Control Plane, RBAC, ServiceAccounts, Pod Security Standards, SecurityContext, NetworkPolicy, Supply Chain, Admission Control, Secrets Security, Runtime Detection, Compliance Evidence und Incident Response.
Nach der Prüfung soll erkennbar sein, dass du:
- Kubernetes-Angriffsflächen nach API, Nodes, Workloads, Netzwerk, Secrets und Supply Chain trennst,
- RBAC-Rechte und Privilege-Escalation-Pfade erkennst,
- ServiceAccount-Token-Automount bewusst reduzierst,
- Pod Security Standards und SecurityContext praktisch bewertest,
- NetworkPolicies mit Default Deny, DNS und App-Erlaubnissen formulierst,
- Image-Herkunft, Tag, Digest, Scan, SBOM und Signaturstatus bewertest,
- Admission Policies in Audit-/Warn-/Enforce-Modus einordnest,
- Secret-Flows und Rotation realistisch beschreibst,
- Runtime-Signale und Audit-Evidence in Reaktionen übersetzt,
- Incident Response für kompromittierten Pod und Secret Leak belastbar dokumentierst.
2. Voraussetzungen und erlaubte Hilfsmittel
Du brauchst:
- einen Lab-Cluster,
kubectl,- Rechte zum Erstellen von Namespaces, ServiceAccounts, RBAC, NetworkPolicies und Test-Workloads,
- optional Kyverno, OPA Gatekeeper oder ValidatingAdmissionPolicy,
- optional Trivy, Grype, Cosign oder vergleichbare Supply-Chain-Werkzeuge,
- optional Falco, Tetragon, Tracee oder vergleichbare Runtime-Signale.
Erlaubt sind:
- offizielle Kubernetes-Dokumentation,
- Workshop-Unterlagen,
- eigene Notizen,
- Security-Checklisten und interne Policy-Vorlagen,
kubectl auth can-i,kubectl describe, Events, Logs und Policy Reports.
Nicht erlaubt sind:
- produktive Secrets oder Kundendaten,
- echte Registry- oder Cloud-Zugangsdaten,
- destruktive Node- oder Clusteroperationen ohne Lab-Freigabe,
- absichtliche Exfiltration oder Angriffshandlungen außerhalb des Labs,
- Änderungen an produktiven Clustern.
Empfohlener Namespace:
export NS=exam-security
3. Ausgangsszenario
Eine Beispiel-App checkout-api läuft im Namespace shop-prod. Im Review fällt auf:
- Das Deployment nutzt den ServiceAccount
checkout-sa. - Es gibt ein Secret
payment-api-token. - Das Image kommt aus einer privaten Registry.
- Eine GitOps-Pipeline synchronisiert Manifeste.
- Ein Runtime-Alarm meldet eine unerwartete Shell im Pod.
- Ein altes Manifest enthält
privileged: trueund einenhostPath-Mount. - NetworkPolicies sind unvollständig.
- Der Secret-Rotation-Pfad ist nicht dokumentiert.
- Die Security-Abteilung verlangt Evidence und Stop-Kriterien für Produktion.
Du arbeitest im Lab-Namespace exam-security. Du sollst kein echtes shop-prod verändern, sondern die Risiken, Kontrollen und Incident-Maßnahmen anhand reproduzierbarer Beispiele und Dokumente nachweisen.
4. Erwartete Abgabe
Gib am Ende einen Ordner oder ein Archiv mit folgenden Dateien ab:
04-advanced-security-abgabe/
answers.md
threat-model.md
rbac-review.md
serviceaccount-token-review.md
pod-security-review.md
hardened-deployment.yml
networkpolicies.yml
supply-chain-review.md
admission-policy.md
secrets-review.md
runtime-detection.md
compliance-evidence.md
incident-runbook.md
evidence/
can-i.txt
events.txt
policy-results.txt
logs-summary.txt
cleanup.md
Falls bestimmte Tools im Lab nicht vorhanden sind, dokumentiere dies und liefere eine fachlich korrekte Ersatzbewertung. Beispiel: Wenn Cosign nicht verfügbar ist, dokumentierst du, welche Signaturprüfung erforderlich wäre und welches Stop-Kriterium gelten würde.
5. Teil A: Security-Fachfragen
Beantworte die Fragen mit Bezug zum Szenario.
- Welche zentralen Angriffsflächen hat Kubernetes?
- Wie greifen Authentication, Authorization und Admission Control ineinander?
- Welche Risiken entstehen durch
privileged: true,hostPath,hostNetwork,hostPIDundhostIPC? - Warum sind ServiceAccounts und automatisch gemountete Tokens sicherheitsrelevant?
- Welche RBAC-Verben oder Ressourcen sind besonders gefährlich und warum?
- Was leisten Pod Security Standards
privileged,baselineundrestricted? - Welche SecurityContext-Felder erwartest du bei einem gehärteten Workload?
- Warum reduziert NetworkPolicy Lateral Movement, ersetzt aber keine Verschlüsselung?
- Warum ist DNS-Egress bei Default-Deny-Policies ein eigener Punkt?
- Welche Supply-Chain-Kontrollen erwartest du für produktive Images?
- Warum sind Kubernetes Secrets trotz Base64 nicht ausreichend geschützt?
- Welche Informationen gehören in eine belastbare Incident-Evidence?
- Was ist der Unterschied zwischen Prävention, Detection und Response?
- Warum brauchen Policy-Ausnahmen Owner, Begründung und Ablaufdatum?
- Welche Sofortmaßnahmen sind bei kompromittiertem Pod und Secret Leak erforderlich?
6. Teil B: Threat Model und RBAC-Audit
Aufgabe B1: Threat Model
Erstelle threat-model.md für checkout-api.
Pflichtabschnitte:
- Assets und Schutzwert,
- Trust Boundaries,
- Angriffsflächen,
- Missbrauchsszenarien,
- vorhandene Kontrollen,
- fehlende Kontrollen,
- Stop-Kriterien,
- Evidence.
Mindest-Assets:
| Asset | Erwartete Bewertung |
|---|---|
payment-api-token |
sehr hoher Schutzwert |
checkout-sa |
Workload-Identität mit möglichem API-Zugriff |
Deployment checkout-api |
produktiver Workload |
| privates Image | Supply-Chain-relevant |
| GitOps-Repository | gewünschter Zustand und Freigabepfad |
| Ingress/Gateway-Route | externe Angriffsfläche |
Aufgabe B2: RBAC-Audit
Erstelle im Lab zwei ServiceAccounts:
app-sa,overprivileged-sa.
app-sa soll nur minimale Leserechte auf ConfigMaps erhalten.
overprivileged-sa soll absichtlich riskante Rechte bekommen, zum Beispiel auf Secrets oder RoleBindings.
Prüfe effektive Rechte mit kubectl auth can-i.
Pflichtnachweise in evidence/can-i.txt:
kubectl auth can-i get configmaps --as system:serviceaccount:exam-security:app-sa -n exam-security
kubectl auth can-i get secrets --as system:serviceaccount:exam-security:app-sa -n exam-security
kubectl auth can-i get secrets --as system:serviceaccount:exam-security:overprivileged-sa -n exam-security
kubectl auth can-i create rolebindings --as system:serviceaccount:exam-security:overprivileged-sa -n exam-security
Dokumentiere:
- welche Rechte akzeptabel sind,
- welche Rechte kritisch sind,
- welcher Eskalationspfad möglich wäre,
- wie der Fix aussieht.
Aufgabe B3: ServiceAccount Token-Automount
Erstelle serviceaccount-token-review.md.
Aufgabe:
- Erstelle ein Deployment
no-api-app. - Setze
automountServiceAccountToken: false. - Prüfe im Pod, ob ein Token automatisch gemountet wurde.
- Erkläre, wann ein Workload Kubernetes-API-Zugriff braucht und wann nicht.
7. Teil C: Workload-, Netzwerk- und Supply-Chain-Hardening
Aufgabe C1: Pod Security Restricted
- Setze im Lab-Namespace Pod-Security-Labels für
restrictedinenforce,auditundwarn. - Versuche einen unsicheren Pod mit
privileged: truezu erstellen. - Dokumentiere die Ablehnung.
- Erstelle einen gehärteten Pod oder ein gehärtetes Deployment, das Restricted-Anforderungen erfüllt.
Erwartete Härtungskriterien:
runAsNonRoot: true,- definierter nicht-root User,
allowPrivilegeEscalation: false,readOnlyRootFilesystem: true,capabilities.drop: [ALL],seccompProfile: RuntimeDefault,- keine Host-Namespace-Nutzung,
- kein unkontrollierter
hostPath, - Schreibpfad nur über
emptyDiroder dediziertes Volume.
Aufgabe C2: Hardened Deployment
Erstelle hardened-deployment.yml für eine ungefährliche Beispielanwendung.
Das Manifest muss enthalten:
- Namespace
exam-security, - ServiceAccount ohne unnötigen API-Token,
- Pod- und Container-SecurityContext,
- Ressourcen-Requests und Limits,
- Readiness Probe, falls fachlich passend,
- eindeutige Labels
owner,environment,app, - keine echten Secrets.
Aufgabe C3: NetworkPolicy
Erstelle networkpolicies.yml mit:
- Default Deny für Ingress und Egress,
- DNS-Egress-Erlaubnis,
- Erlaubnis von
frontendzubackendauf TCP-Port8080, - Blockade sonstigen Egress,
- Hinweis, ob das CNI NetworkPolicies durchsetzt.
Dokumentiere produktive Zusatzfragen:
- Muss der Pod die Kubernetes API erreichen?
- Muss der Pod Registry-, Logging-, Monitoring- oder externe API-Ziele erreichen?
- Gibt es feste externe Ziele oder nur freie Internet-Egress-Regeln?
- Wie wird IPv6 oder Dual-Stack berücksichtigt?
Aufgabe C4: Supply-Chain-Review
Erstelle supply-chain-review.md für ein Beispielimage.
Pflichtfelder:
- Registry,
- Repository,
- Tag,
- Digest,
- Pull Policy,
- ImagePullSecret,
- CVE-Scan-Ergebnis oder erwarteter Scan-Prozess,
- SBOM-Status,
- Signaturstatus,
- Build-Provenance,
- Admission-Anforderung,
- Stop-Kriterium.
Mindestens diese Stop-Kriterien müssen bewertet werden:
latestohne Digest in Produktion,- Image aus nicht erlaubter Registry,
- Critical CVE ohne Ausnahme,
- fehlende Signatur bei produktiven Workloads,
- Pull Secret ohne Owner oder Rotation.
Aufgabe C5: Admission Policy
Erstelle admission-policy.md.
Wähle mindestens zwei Policy-Ziele:
- Required Labels
owner,environment,cost-center, - Verbot von
privileged: true, - Pflicht für
runAsNonRoot: true, - Pflicht für Resource Requests und Limits,
- nur erlaubte Registries.
Beschreibe für jede Policy:
- Ziel,
- Scope,
- Audit-/Warn-/Enforce-Modus,
- Beispielverstoß,
- Ausnahmeprozess,
- Rollback-Pfad bei Policy-Fehler.
Du kannst Kyverno, OPA Gatekeeper oder ValidatingAdmissionPolicy verwenden. Wenn keines dieser Werkzeuge verfügbar ist, beschreibe die Policy fachlich mit Pseudomanifest und Betriebsmodus.
8. Teil D: Secrets, Detection, Compliance und Incident Response
Aufgabe D1: Secrets Security und Rotation
Erstelle secrets-review.md mit:
- Secret-Inventar,
- Zugriff über RBAC,
- Mount-Art im Pod,
- Risiko in Logs, Events, Images und Backups,
- etcd-/Backup-Risiko,
- Rotation-Pfad,
- Vergleich Kubernetes Secret, External Secrets, CSI Secret Store, Sealed Secrets und SOPS,
- Incident-Maßnahme bei Leak.
Wichtig: Verwende keine echten Secrets. Beispielwerte müssen eindeutig als Beispielwerte erkennbar sein.
Aufgabe D2: Runtime Detection und Audit-Signale
Erstelle runtime-detection.md.
Definiere erwartete Signale und Reaktionen für:
| Signal | Erwartete Bewertung |
|---|---|
| unerwartete Shell im Container | Risiko, Datenquelle, erste Reaktion, Evidence |
Schreibzugriff auf /etc, /proc oder /sys |
Risiko, Kontrolle, Reaktion |
| unerwarteter Egress | Flow Logs, DNS, NetworkPolicy, Containment |
| Zugriff auf Kubernetes API mit ServiceAccount | Audit Logs, RBAC-Prüfung, Token-Rotation |
verdächtiges kubectl exec |
Benutzer, Zeit, Pod, Change-Bezug |
| OOMKill in sicherheitsrelevantem Pod | Ressourcen- und Angriffssignal trennen |
Aufgabe D3: Compliance Evidence
Erstelle compliance-evidence.md mit mindestens fünf Befunden:
- Namespace ohne Pod-Security-Label,
- ServiceAccount mit zu breiten Rechten,
- Pod ohne Requests/Limits,
- Secret ohne Rotation-Hinweis,
- Workload ohne NetworkPolicy.
Für jeden Befund dokumentierst du:
- Zeitpunkt,
- Ressource,
- Risiko,
- Nachweis,
- Owner,
- Fix,
- Ausnahme mit Ablaufdatum oder Remediation-Frist,
- Nachtest.
Aufgabe D4: Incident-Runbook
Erstelle incident-runbook.md für kompromittierten Pod und Secret Leak.
Pflichtabschnitte:
- Triage,
- Isolation,
- Evidence-Sicherung,
- Containment,
- Secret- und Token-Rotation,
- Image- und CI-Prüfung,
- Rebuild und Redeploy,
- Kommunikation,
- Lessons Learned,
- Policy-Nachschärfung.
Pflicht-Evidence:
kubectl get pod <pod> -n <namespace> -o wide
kubectl get pod <pod> -n <namespace> -o yaml
kubectl describe pod <pod> -n <namespace>
kubectl logs <pod> -n <namespace> --all-containers
kubectl logs <pod> -n <namespace> --all-containers --previous
kubectl get sa,role,rolebinding -n <namespace>
kubectl auth can-i get secrets --as system:serviceaccount:<namespace>:<serviceaccount> -n <namespace>
kubectl get events -n <namespace> --sort-by=.metadata.creationTimestamp
Dokumentiere außerdem, wann ein Pod nicht sofort gelöscht werden sollte, weil Evidence gesichert werden muss.
9. Bewertung
| Bereich | Punkte | Erwartung |
|---|---|---|
| Security-Fachfragen | 10 | Angriffsflächen, Kontrollen und Incident-Begriffe korrekt erklärt |
| Threat Model | 15 | Assets, Trust Boundaries, Missbrauchsszenarien und Stop-Kriterien belastbar |
| RBAC und ServiceAccounts | 15 | effektive Rechte, Eskalationspfade und Token-Mounting korrekt bewertet |
| Pod Security und Workload Hardening | 15 | Restricted, SecurityContext und Ressourcen sauber umgesetzt |
| NetworkPolicy und Supply Chain | 15 | Default Deny, DNS, App-Traffic, Image-Digest, Scan, SBOM und Signatur bewertet |
| Admission, Secrets und Compliance | 15 | Policies, Rotation, Evidence und Ausnahmen betreibbar dokumentiert |
| Runtime Detection und Incident Response | 15 | Detection-Signale, Evidence, Containment, Rotation und Recovery nachvollziehbar |
| Klarheit und Rückbau | 5 | Abgabe konsistent, keine echten Secrets, Cleanup dokumentiert |
| Summe | 100 |
Bewertungsskala:
| Punkte | Ergebnis |
|---|---|
| 90–100 | sehr gut bestanden |
| 80–89 | gut bestanden |
| 70–79 | bestanden |
| 0–69 | nicht bestanden |
10. K.-o.-Kriterien
Die Prüfung gilt unabhängig von der Punktzahl als nicht bestanden, wenn eines dieser Kriterien zutrifft:
- Es werden echte Secrets, Tokens, privaten Schlüssel oder produktive Zugangsdaten verwendet.
- Es werden produktive Cluster oder Namespaces verändert.
- Ein
privilegedWorkload oderhostPath-Zugriff wird als unkritisch dargestellt. - Ein ServiceAccount mit Secret-Lesezugriff oder RoleBinding-Erstellung wird nicht als Risiko erkannt.
- Incident Response löscht Evidence vorschnell und enthält keine Sicherungsstrategie.
- NetworkPolicy wird als Verschlüsselung dargestellt.
- Supply-Chain-Review ignoriert Registry, Digest, CVE-Scan, SBOM und Signatur vollständig.
- Admission Policies werden ohne Audit-/Enforce-Strategie und ohne Ausnahmeprozess beschrieben.
11. Prüfer-Checkliste
| Kriterium | Erfüllt? |
|---|---|
| Threat Model mit Assets und Trust Boundaries | ☐ |
| RBAC-Eskalationspfade erkannt | ☐ |
| ServiceAccount Token-Automount reduziert oder korrekt begründet | ☐ |
| Pod Security Restricted angewendet oder korrekt simuliert | ☐ |
| SecurityContext vollständig gehärtet | ☐ |
| NetworkPolicy mit DNS-Ausnahme und App-Erlaubnis | ☐ |
| Supply-Chain-Review mit Stop-Kriterien | ☐ |
| Admission Policy mit Betriebsmodus und Ausnahmeprozess | ☐ |
| Secret-Rotation und Leak-Pfad dokumentiert | ☐ |
| Runtime Detection in Reaktionsplan übersetzt | ☐ |
| Compliance Evidence belastbar formuliert | ☐ |
| Incident-Runbook mit Evidence, Containment und Recovery | ☐ |
| Keine echten Secrets verwendet | ☐ |