From 6f5f2534d397e7bf728cd98f46c93c09e355e730 Mon Sep 17 00:00:00 2001 From: Tim Wall Date: Tue, 30 Jun 2026 09:49:54 +0200 Subject: [PATCH] mach compilebar --- Chapters/01-Einleitung.tex | 16 ++++------ Chapters/02-Grundlagen.tex | 2 +- Chapters/03-Anforderungen.tex | 6 ++-- Chapters/04-Architekturentwurf.tex | 48 +++++++++++++--------------- Chapters/05-Architekturbewertung.tex | 26 +++++++-------- Chapters/06-PoC.tex | 37 ++++++++++----------- Chapters/07-Fazit.tex | 10 +++--- Chapters/Anhang-A.tex | 3 +- 8 files changed, 70 insertions(+), 78 deletions(-) diff --git a/Chapters/01-Einleitung.tex b/Chapters/01-Einleitung.tex index bbb8a9c..f881de8 100644 --- a/Chapters/01-Einleitung.tex +++ b/Chapters/01-Einleitung.tex @@ -3,33 +3,29 @@ %========================================= \chapter{Einleitung} -\todox{Einleitung schreiben am Ende} +\todox{Einleitung schreiben am Ende (4-5 Seiten)} - -### **1. Einleitung** (4-5 Seiten) - -**1.1 Problemstellung** +\subsection{Problemstellung} - Firmen liefern Software an Kunden mit unterschiedlichen Netzwerkumgebungen (Online vs. Air-Gapped) - Air-Gapped-Deployments sind kritisch für Behörden, Gesundheitswesen, Industrie 4.0[1][2] - Aktuelle Herausforderung: Security-Updates ohne Internetverbindung, manuelle Prozesse fehleranfällig -**1.2 Zielsetzung** +\subsection{Zielsetzung} - Entwurf einer Softwarearchitektur für hybrides Kubernetes-Deployment (Online + Air-Gapped) - Implementierung automatisierter Container-Supply-Chain mit Security Gates - Automatisiertes Patch-Management mit nachweisbarem CVE-Response (<48h) -**1.3 Forschungsfrage** +\subsection{Forschungsfrage} - Hauptfrage + 3 Unterfragen (siehe oben) -**1.4 Eigener Beitrag** +\subsection{Eigener Beitrag} - Praktische Migration aus Praktikum (20-30 Container) als Basis - Architektur-Entwurf mit Security-by-Design - Proof of Concept mit Security-Metriken -**1.5 Aufbau der Arbeit** +\subsection{Aufbau der Arbeit} - Kurze Beschreibung der Kapitel -*** \section{\LaTeX\ installieren und einrichten} diff --git a/Chapters/02-Grundlagen.tex b/Chapters/02-Grundlagen.tex index 21a29b9..7aff168 100644 --- a/Chapters/02-Grundlagen.tex +++ b/Chapters/02-Grundlagen.tex @@ -42,7 +42,7 @@ \subsection{GitOps} -**2.4 GitOps & Automatisierung** (3 Seiten) +**2.4 GitOps \& Automatisierung** (3 Seiten) - GitOps-Prinzipien: Declarative Configuration, Continuous Sync[9] - **Flux CD**: Architektur, Sync-Strategien, Multi-Cluster[10][9] - CI/CD-Pipelines für Security Gates (GitLab CI, GitHub Actions) diff --git a/Chapters/03-Anforderungen.tex b/Chapters/03-Anforderungen.tex index c06bc1d..6e8a5d0 100644 --- a/Chapters/03-Anforderungen.tex +++ b/Chapters/03-Anforderungen.tex @@ -23,9 +23,9 @@ |------------------|----------|---------| | **Verfügbarkeit** (Air-Gapped) | 99,9% ohne Internet | Uptime-Monitoring | | **Security** | 0 kritische CVEs in Production | Trivy-Scan | -| **Patch-Reaktionszeit** | ≤48h nach CVE-Veröffentlichung | Zeitstempel-Messung | -| **Automatisierungsgrad** | >90% manuell → automatisiert | Steps zählen | -| **Deployment-Zeit** (Air-Gapped) | ≤30min nach Sync | CI/CD-Logs | +| **Patch-Reaktionszeit** | kleiner gleich48h nach CVE-Veröffentlichung | Zeitstempel-Messung | +| **Automatisierungsgrad** | >90% manuell $\rightarrow$ automatisiert | Steps zählen | +| **Deployment-Zeit** (Air-Gapped) | kleiner gleich30min nach Sync | CI/CD-Logs | | **Wartbarkeit** | Vollständig dokumentiert (arc42) | Checkliste | \subsection{Randbedingungen} diff --git a/Chapters/04-Architekturentwurf.tex b/Chapters/04-Architekturentwurf.tex index 7cf09d5..6dff1e7 100644 --- a/Chapters/04-Architekturentwurf.tex +++ b/Chapters/04-Architekturentwurf.tex @@ -10,24 +10,20 @@ \todox{Modulview umbennenen?} **4.2 Bausteinsicht - Ebene 1: Grobarchitektur** ``` -┌────────────────────────────────────────────────────────────────────┐ -│ GitLab (Quelle der Wahrheit) │ -│ (GitOps Manifeste, Helm Charts, CI/CD Pipelines, Infrastructure) │ -└─────────────────────────┬──────────────────────────────────────────┘ - │ - ┌───────────────┴───────────────┐ - │ │ - ▼ ▼ -┌──────────────────────┐ ┌──────────────────────────┐ -│ Online-Cluster │ │ Air-Gapped-Cluster │ -│ (Cloud/Datacenter) │ │ (On-Premise/Offline) │ -│ ┌──────────────┐ │ │ ┌──────────────────┐ │ -│ │ Argo CD │ │ │ │ Argo CD (lokal) │ │ -│ │ Harbor │ │ ⇄ │ │ Harbor Mirror │ │ -│ │ Trivy (Scan) │ │ sync │ │ Trivy (lokal) │ │ -│ │ Cosign │ │ │ │ Cosign (verify) │ │ -│ └──────────────┘ │ │ └──────────────────┘ │ -└──────────────────────┘ └──────────────────────────┘ + + GitLab (Quelle der Wahrheit) + (GitOps Manifeste, Helm Charts, CI/CD Pipelines, Infrastructure) + + + Online-Cluster Air-Gapped-Cluster + (Cloud/Datacenter) (On-Premise/Offline) + + Argo CD Argo CD (lokal) + Harbor Harbor Mirror + Trivy (Scan) sync Trivy (lokal) + Cosign Cosign (verify) + + ``` **4.3 Bausteinsicht - Ebene 2: CI/CD-Pipeline mit Security Gates** @@ -58,20 +54,20 @@ **Online-Deployment** (5 Schritte): ``` -1. Developer → git push → GitLab -2. GitLab → Trigger CI-Pipeline -3. CI → Build → SBOM → Sign → Scan → Push zu Harbor -4. Argo CD → Detektiert Änderung → Sync zu Cluster +1. Developer $\rightarrow$ git push $\rightarrow$ GitLab +2. GitLab $\rightarrow$ Trigger CI-Pipeline +3. CI $\rightarrow$ Build $\rightarrow$ SBOM $\rightarrow$ Sign $\rightarrow$ Scan $\rightarrow$ Push zu Harbor +4. Argo CD $\rightarrow$ Detektiert Änderung $\rightarrow$ Sync zu Cluster 5. Pods starten, Health-Checks ``` **Air-Gapped-Deployment** (7 Schritte):[14] ``` 1-3. Wie Online (extern) -4. Sync-Script → Pull Images aus externer Harbor -5. Bastion/USB → Transfer zu Air-Gapped-Netzwerk -6. Harbor Mirror → Import Images -7. Argo CD (lokal) → Sync zu Cluster → Pods starten +4. Sync-Script $\rightarrow$ Pull Images aus externer Harbor +5. Bastion/USB $\rightarrow$ Transfer zu Air-Gapped-Netzwerk +6. Harbor Mirror $\rightarrow$ Import Images +7. Argo CD (lokal) $\rightarrow$ Sync zu Cluster $\rightarrow$ Pods starten ``` \subsection{Topographie} %verteilungssicht diff --git a/Chapters/05-Architekturbewertung.tex b/Chapters/05-Architekturbewertung.tex index 005dd18..f273cf3 100644 --- a/Chapters/05-Architekturbewertung.tex +++ b/Chapters/05-Architekturbewertung.tex @@ -5,29 +5,29 @@ \todox{Umbenennen in was gutes} ``` Verfügbarkeit (Weight: 0.3) -├── Air-Gapped-Betrieb 99,9% ohne Internet (Szenario S1) -├── Failover-Zeit <5 Min bei Cluster-Ausfall (S2) -└── Cluster-Provisioning <2h (S3) + Air-Gapped-Betrieb 99,9% ohne Internet (Szenario S1) + Failover-Zeit <5 Min bei Cluster-Ausfall (S2) +Cluster-Provisioning <2h (S3) Security (Weight: 0.4) -├── 0 kritische CVEs in Production (S4) -├── Image-Verifizierung (nur signierte Images) (S5) -└── Patch-Reaktionszeit ≤48h (S6) + 0 kritische CVEs in Production (S4) + Image-Verifizierung (nur signierte Images) (S5) +Patch-Reaktionszeit kleiner gleich48h (S6) Wartbarkeit (Weight: 0.3) -├── Automatisierungsgrad >90% (S7) -├── Deployment-Zeit ≤30min (Air-Gapped) (S8) -└── Vollständige Dokumentation (arc42) (S9) + Automatisierungsgrad >90% (S7) + Deployment-Zeit kleiner gleich30min (Air-Gapped) (S8) +Vollständige Dokumentation (arc42) (S9) ``` \subsection{Szenarien-Bewertung} \todox{Besserer Titel} | Szenario | Auslöser | Erwartetes Ergebnis | Bewertung | |----------|----------|---------------------|-----------| -| S1: Air-Gapped ohne Internet | Netzwerktrennung | System läuft voll funktionsfähig | ⭐⭐⭐⭐ Gut | -| S4: CVE-Veröffentlichung | Critical CVE in Image | Patch innerhalb 48h deployed | ⭐⭐⭐ Mittel (Risiko) | -| S5: Image-Verifikation | Unsigned Image in Registry | Argo CD blockiert Sync | ⭐⭐⭐⭐ Gut | -| S7: Automatisierung | Manuelle Steps zählen | <10% manuelle Intervention | ⭐⭐⭐⭐ Gut | +| S1: Air-Gapped ohne Internet | Netzwerktrennung | System läuft voll funktionsfähig | Gut | +| S4: CVE-Veröffentlichung | Critical CVE in Image | Patch innerhalb 48h deployed | Mittel (Risiko) | +| S5: Image-Verifikation | Unsigned Image in Registry | Argo CD blockiert Sync | Gut | +| S7: Automatisierung | Manuelle Steps zählen | <10% manuelle Intervention | Gut | \subsection{STRIDE-Security-Bewertung} | Bedrohung | Risiko | Gegenmaßnahme | diff --git a/Chapters/06-PoC.tex b/Chapters/06-PoC.tex index d72be4a..5ad9e32 100644 --- a/Chapters/06-PoC.tex +++ b/Chapters/06-PoC.tex @@ -11,36 +11,37 @@ \todox{besserer Name} | Gate | Implementierung | Ergebnis | |------|-----------------|----------| -| SBOM-Erstellung | Syft → SPDX JSON | 100% der Images haben SBOM | -| Image-Signing | Cosign → Sigstore | 100% signiert | -| Vulnerability Scan | Trivy → SARIF | 0 critical CVEs in Production | +| SBOM-Erstellung | Syft $\rightarrow$ SPDX JSON | 100\% der Images haben SBOM | +| Image-Signing | Cosign $\rightarrow$ Sigstore | 100\% signiert | +| Vulnerability Scan | Trivy $\rightarrow$ SARIF | 0 critical CVEs in Production | | Policy Enforcement | OPA Gatekeeper | Blockiert unsigned Images | \subsection{Automatisierte Patch-Pipeline} ``` CVE-Veröffentlichung (z.B. Log4j) - ↓ + Trivy-Scan detektiert CVE (automatisch) - ↓ + Alert an DevOps-Team (Slack/Email) - ↓ -Developer → Update Dependency → Push - ↓ -CI-Pipeline → Rebuild → Re-Scan → Re-Sign - ↓ -Argo CD → Auto-Sync (Air-Gapped nach 24h Sync) - ↓ + +Developer $\rightarrow$ Update Dependency $\rightarrow$ Push + +CI-Pipeline $\rightarrow$ Rebuild $\rightarrow$ Re-Scan $\rightarrow$ Re-Sign + +Argo CD $\rightarrow$ Auto-Sync (Air-Gapped nach 24h Sync) + + Deployed in <48h (gemessen: 36h) ``` -\subsection{}Metriken & Ergebnisse** +\subsection{}Metriken \& Ergebnisse** | Metrik | Vorher | Nachher | Ziel | |--------|--------|---------|------| -| Deployment-Zeit (Online) | 2h | 15min | ≤30min ✅ | -| Deployment-Zeit (Air-Gapped) | 1 Tag (manuell) | 30min (auto) | ≤45min ✅ | -| kritische CVEs in Production | unbekannt | 0 | 0 ✅ | -| Patch-Reaktionszeit | <7 Tage | 36h | ≤48h ✅ | -| Automatisierungsgrad | 40% | 92% | >90% ✅ | +| Deployment-Zeit (Online) | 2h | 15min | kleiner gleich30min n | +| Deployment-Zeit (Air-Gapped) | 1 Tag (manuell) | 30min (auto) | kleiner gleich45min n | +| kritische CVEs in Production | unbekannt | 0 | 0 n | +| Patch-Reaktionszeit | <7 Tage | 36h | kleiner gleich48h n | +| Automatisierungsgrad | 40% | 92% | >90% n | **6.5 Lessons Learned** - Trivy-Database muss separat gemanagt werden (Air-Gapped) diff --git a/Chapters/07-Fazit.tex b/Chapters/07-Fazit.tex index 431ba5a..f594ad9 100644 --- a/Chapters/07-Fazit.tex +++ b/Chapters/07-Fazit.tex @@ -1,15 +1,15 @@ -\section{Fazit & Ausblick} % (3-5 Seiten) +\section{Fazit \& Ausblick} % (3-5 Seiten) \subsection{Zusammenfassung} - AIr-Gapped Kubernetes mit Security-by-Design ist umsetzbar - Automatisierte Supply-Chain reduziert manuelle Steps um >90% -- Patch-Reaktionszeit ≤48h erreichbar (mit 24h-Sync + Critical-Bypass) +- Patch-Reaktionszeit kleiner gleich48h erreichbar (mit 24h-Sync + Critical-Bypass) \subsection{Beantwortung der Forschungsfrage} -- ✅ Security-Mechanismen: Signing, SBOM, Scanning automatisierbar -- ✅ Patch-Management: 24h-Sync + Alerting ermöglicht ≤48h Response -- ✅ Tradeoffs: Security Overhead akzeptabel (<10min CI), Komplexität beherrschbar +- n Security-Mechanismen: Signing, SBOM, Scanning automatisierbar +- n Patch-Management: 24h-Sync + Alerting ermöglicht kleiner gleich48h Response +- n Tradeoffs: Security Overhead akzeptabel (<10min CI), Komplexität beherrschbar \subsection{Limitationen} - nur 20-30 Container (nicht massiv-skaliert) diff --git a/Chapters/Anhang-A.tex b/Chapters/Anhang-A.tex index 56becf0..50a3232 100644 --- a/Chapters/Anhang-A.tex +++ b/Chapters/Anhang-A.tex @@ -1,10 +1,9 @@ %******************************************************************** % Appendix %******************************************************* -\chapter{Erster Abschnitt des Anhangs} +\chapter{Erster Abschnitt des Anhangs} %(~5-10 Seiten) In den Anhang gehören "`Hintergrundinformationen"', also weiterführende Information, ausführliche Listings, Graphen, Diagramme oder Tabellen, die den Haupttext mit detaillierten Informationen ergänzen. -### **Anhang** (~5-10 Seiten) - A: arc42-Dokumentation (vollständig) - B: CI/CD-Pipeline-Code (GitLab CI YAML) - C: Image-Sync-Script (Bash/Python)