2
0

section -> chapter

This commit is contained in:
2026-06-30 10:11:35 +02:00
parent 6f5f2534d3
commit 352c251793
7 changed files with 41 additions and 41 deletions

View File

@@ -5,31 +5,31 @@
\todox{Einleitung schreiben am Ende (4-5 Seiten)} \todox{Einleitung schreiben am Ende (4-5 Seiten)}
\subsection{Problemstellung} \section{Problemstellung}
- Firmen liefern Software an Kunden mit unterschiedlichen Netzwerkumgebungen (Online vs. Air-Gapped) - 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] - 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 - Aktuelle Herausforderung: Security-Updates ohne Internetverbindung, manuelle Prozesse fehleranfällig
\subsection{Zielsetzung} \section{Zielsetzung}
- Entwurf einer Softwarearchitektur für hybrides Kubernetes-Deployment (Online + Air-Gapped) - Entwurf einer Softwarearchitektur für hybrides Kubernetes-Deployment (Online + Air-Gapped)
- Implementierung automatisierter Container-Supply-Chain mit Security Gates - Implementierung automatisierter Container-Supply-Chain mit Security Gates
- Automatisiertes Patch-Management mit nachweisbarem CVE-Response (<48h) - Automatisiertes Patch-Management mit nachweisbarem CVE-Response (<48h)
\subsection{Forschungsfrage} \section{Forschungsfrage}
- Hauptfrage + 3 Unterfragen (siehe oben) - Hauptfrage + 3 Unterfragen (siehe oben)
\subsection{Eigener Beitrag} \section{Eigener Beitrag}
- Praktische Migration aus Praktikum (20-30 Container) als Basis - Praktische Migration aus Praktikum (20-30 Container) als Basis
- Architektur-Entwurf mit Security-by-Design - Architektur-Entwurf mit Security-by-Design
- Proof of Concept mit Security-Metriken - Proof of Concept mit Security-Metriken
\subsection{Aufbau der Arbeit} \section{Aufbau der Arbeit}
- Kurze Beschreibung der Kapitel - Kurze Beschreibung der Kapitel
\section{\LaTeX\ installieren und einrichten} \section{\LaTeX\ installieren und einrichten}
\subsection{Unter Windows} \section{Unter Windows}
Als LaTeX-Distribution unter Windows steht \href{http://www.miktex.org/}{\textit{MikTeX}} zu Verfügung, die als freie Software im Internet erhältlich ist. Als LaTeX-Distribution unter Windows steht \href{http://www.miktex.org/}{\textit{MikTeX}} zu Verfügung, die als freie Software im Internet erhältlich ist.
\textit{MikTeX} unterstützt Windows XP, Vista und Windows 7. Neben \textit{MikTeX} wird noch ein PostScript-Interpreter benötigt, \textit{MikTeX} unterstützt Windows XP, Vista und Windows 7. Neben \textit{MikTeX} wird noch ein PostScript-Interpreter benötigt,
@@ -37,7 +37,7 @@ z.B. GhostScript, zu finden auf \href{http://www.chip.de}{Chip.de}.
\textit{Wichtig:} Bei \textit{MikTeX} unbedingt Vollinstallation auswählen, sonst sind eventuell benötigte Packages nicht vorhanden. \textit{Wichtig:} Bei \textit{MikTeX} unbedingt Vollinstallation auswählen, sonst sind eventuell benötigte Packages nicht vorhanden.
\subsection{Unter Linux} \section{Unter Linux}
Unter Linux existiert die LaTeX-Distribution \textit{texlive}, die als aktuelle Version aus den Paketquellen geladen werden kann (unter Ubuntu mit Unter Linux existiert die LaTeX-Distribution \textit{texlive}, die als aktuelle Version aus den Paketquellen geladen werden kann (unter Ubuntu mit
\lstinline{apt-get install texlive-full}). Auch hier ist ganz wichtig, die volle Distribution zu laden, damit alle Packages zur Verfügung stehen. \lstinline{apt-get install texlive-full}). Auch hier ist ganz wichtig, die volle Distribution zu laden, damit alle Packages zur Verfügung stehen.
@@ -81,7 +81,7 @@ verwendeten Zeichensatz umzustellen: UTF-8 ohne BOM (Byte Order Mark).
Die vorliegende Vorlage für Abschlussarbeiten besteht aus einer internen Struktur, die grundsätzlich nicht verändert werden sollte. % Außer, der Student weiß genau, was er tut. Die vorliegende Vorlage für Abschlussarbeiten besteht aus einer internen Struktur, die grundsätzlich nicht verändert werden sollte. % Außer, der Student weiß genau, was er tut.
\subsection{Struktur der Vorlage} \section{Struktur der Vorlage}
\label{subsec:strukturvorlage} \label{subsec:strukturvorlage}
%\begin{figure} %\begin{figure}
@@ -124,7 +124,7 @@ Die vorliegende Vorlage für Abschlussarbeiten besteht aus einer internen Strukt
\end{description} \end{description}
\subsection{Gebrauch der Vorlage} \section{Gebrauch der Vorlage}
Grundsätzlich ist nicht viel zu tun, um die Vorlage für Abschlussarbeiten zu verwenden. Man entpackt den Hauptordner in das gewünschte Verzeichnis und nutzt die Dateien so, wie in Grundsätzlich ist nicht viel zu tun, um die Vorlage für Abschlussarbeiten zu verwenden. Man entpackt den Hauptordner in das gewünschte Verzeichnis und nutzt die Dateien so, wie in
\autoref{subsec:strukturvorlage} beschrieben. Danach werden \textit{alle} Dateien gespeichert und die Hauptdatei, \textit{htwsaar-i-mst-vorlage.tex}, mehrfach kompiliert \autoref{subsec:strukturvorlage} beschrieben. Danach werden \textit{alle} Dateien gespeichert und die Hauptdatei, \textit{htwsaar-i-mst-vorlage.tex}, mehrfach kompiliert

View File

@@ -1,9 +1,9 @@
\section{Theoretische Grundlagen} % (16-20 Seiten) \chapter{Theoretische Grundlagen} % (16-20 Seiten)
\subsection{Kubernetes-Architektur} %(4 Seiten) \section{Kubernetes-Architektur} %(4 Seiten)
\subsubsection{Control Plane} \subsubsection{Control Plane}
\todox{(API Server, Scheduler, Controller Manager, etcd)} \todox{(API Server, Scheduler, Controller Manager, etcd)}
@@ -15,7 +15,7 @@
\todox{Kernkonzepte: Pods, Deployments, Services, ConfigMaps, Secrets} \todox{Kernkonzepte: Pods, Deployments, Services, ConfigMaps, Secrets}
\subsection{Air-Gapped-Umgebungen} % (4 Seiten) \section{Air-Gapped-Umgebungen} % (4 Seiten)
\subsubsection{Definition} \subsubsection{Definition}
\todox{Air-Gap vs. Netzwerktrennung vs. restricted network[1]} \todox{Air-Gap vs. Netzwerktrennung vs. restricted network[1]}
@@ -26,7 +26,7 @@
\subsubsection{Best Practices} \subsubsection{Best Practices}
- Best Practices für Air-Gapped Kubernetes[7][8][1] - Best Practices für Air-Gapped Kubernetes[7][8][1]
\subsection{Container-Supply-Chain Sicherheit} % (4 Seiten) \section{Container-Supply-Chain Sicherheit} % (4 Seiten)
\subsubsection{Software Bill of Materials} \subsubsection{Software Bill of Materials}
- **SBOM** (Software Bill of Materials): Format (SPDX, CycloneDX), Tools (Syft)[1] - **SBOM** (Software Bill of Materials): Format (SPDX, CycloneDX), Tools (Syft)[1]
@@ -41,7 +41,7 @@
- **Policy Enforcement**: OPA Gatekeeper, Kyverno für Image-Verification - **Policy Enforcement**: OPA Gatekeeper, Kyverno für Image-Verification
\subsection{GitOps} \section{GitOps}
**2.4 GitOps \& Automatisierung** (3 Seiten) **2.4 GitOps \& Automatisierung** (3 Seiten)
- GitOps-Prinzipien: Declarative Configuration, Continuous Sync[9] - GitOps-Prinzipien: Declarative Configuration, Continuous Sync[9]
- **Flux CD**: Architektur, Sync-Strategien, Multi-Cluster[10][9] - **Flux CD**: Architektur, Sync-Strategien, Multi-Cluster[10][9]
@@ -52,7 +52,7 @@
- **arc42**-Template: 7 Perspektiven für Softwarearchitektur[11] - **arc42**-Template: 7 Perspektiven für Softwarearchitektur[11]
- Anwendung auf Kubernetes-Systeme - Anwendung auf Kubernetes-Systeme
\subsection{Architekturbewertungsmethoden} \section{Architekturbewertungsmethoden}
**2.6 Architekturbewertungsmethoden** (2.5 Seiten) **2.6 Architekturbewertungsmethoden** (2.5 Seiten)
\subsubsection{Architecture Tradeoff Analysis Method} \subsubsection{Architecture Tradeoff Analysis Method}

View File

@@ -1,13 +1,13 @@
\section{Anforderungserhebung} %(10-12 Seiten) %long dash \chapter{Anforderungserhebung} %(10-12 Seiten) %long dash
\subsection{Stakeholder-Analyse} \section{Stakeholder-Analyse}
- DevOps-Team (Automatisierung, Wartbarkeit) - DevOps-Team (Automatisierung, Wartbarkeit)
- Sicherheitsteam (Compliance, Audit) - Sicherheitsteam (Compliance, Audit)
- Kunden (Air-Gapped-Betrieb, Support) - Kunden (Air-Gapped-Betrieb, Support)
- Entwickler (CI/CD-Geschwindigkeit) - Entwickler (CI/CD-Geschwindigkeit)
\subsection{Funktionale Anforderungen} \section{Funktionale Anforderungen}
| ID | Anforderung | Priorität | | ID | Anforderung | Priorität |
|----|-------------|-----------| |----|-------------|-----------|
| FA-1 | Container-Image-Build mit automatischem SBOM | Hoch | | FA-1 | Container-Image-Build mit automatischem SBOM | Hoch |
@@ -18,7 +18,7 @@
| FA-6 | Cluster-Provisioning mit kubeadm in <2h | Mittel | | FA-6 | Cluster-Provisioning mit kubeadm in <2h | Mittel |
| FA-7 | Rollback bei Failed Deployment | Hoch | | FA-7 | Rollback bei Failed Deployment | Hoch |
\subsection{Qualitative Anforderungen} %(Qualitätsziele) \section{Qualitative Anforderungen} %(Qualitätsziele)
| Qualitätsmerkmal | Zielwert | Messung | | Qualitätsmerkmal | Zielwert | Messung |
|------------------|----------|---------| |------------------|----------|---------|
| **Verfügbarkeit** (Air-Gapped) | 99,9% ohne Internet | Uptime-Monitoring | | **Verfügbarkeit** (Air-Gapped) | 99,9% ohne Internet | Uptime-Monitoring |
@@ -28,13 +28,13 @@
| **Deployment-Zeit** (Air-Gapped) | kleiner gleich30min nach Sync | CI/CD-Logs | | **Deployment-Zeit** (Air-Gapped) | kleiner gleich30min nach Sync | CI/CD-Logs |
| **Wartbarkeit** | Vollständig dokumentiert (arc42) | Checkliste | | **Wartbarkeit** | Vollständig dokumentiert (arc42) | Checkliste |
\subsection{Randbedingungen} \section{Randbedingungen}
- Bestehender Stack: 20-30 Container aus Praktikum - Bestehender Stack: 20-30 Container aus Praktikum
- Team-Kenntnisse: Kubernetes-Basis, wenig Security-Expertise - Team-Kenntnisse: Kubernetes-Basis, wenig Security-Expertise
- Budget: Open-Source-Tools bevorzugt - Budget: Open-Source-Tools bevorzugt
- Compliance: BSI-Kritis/ISO 27001 (optional, aber empfohlen) - Compliance: BSI-Kritis/ISO 27001 (optional, aber empfohlen)
\subsection{Zielkonflikte} \section{Zielkonflikte}
| Konflikt | Auflösung | | Konflikt | Auflösung |
|----------|-----------| |----------|-----------|
| Security-Scans verlangsamen CI | Parallelisierung, Caching | | Security-Scans verlangsamen CI | Parallelisierung, Caching |

View File

@@ -1,12 +1,12 @@
\section{Architekturentwurf} %(18-22 Seiten) \chapter{Architekturentwurf} %(18-22 Seiten)
\subsection{Systemkontext} \section{Systemkontext}
- **Akteure**: DevOps-Engineer, Security-Team, Kubernetes-Cluster (Online/Air-Gapped) - **Akteure**: DevOps-Engineer, Security-Team, Kubernetes-Cluster (Online/Air-Gapped)
- **Fremdsysteme**: GitLab (CI/CD), Harbor (Registry), Vault (Secrets), Prometheus (Monitoring) - **Fremdsysteme**: GitLab (CI/CD), Harbor (Registry), Vault (Secrets), Prometheus (Monitoring)
\subsection{Komponenten} \section{Komponenten}
\todox{Modulview umbennenen?} \todox{Modulview umbennenen?}
**4.2 Bausteinsicht - Ebene 1: Grobarchitektur** **4.2 Bausteinsicht - Ebene 1: Grobarchitektur**
``` ```
@@ -47,7 +47,7 @@
| Vault (lokal) | Secrets Management | HashiCorp Vault | | Vault (lokal) | Secrets Management | HashiCorp Vault |
| Image-Sync-Script | Pull aus externer Registry, Push lokal | Custom Bash/Python | | Image-Sync-Script | Pull aus externer Registry, Push lokal | Custom Bash/Python |
\subsection{Laufzeit} \section{Laufzeit}
\todox{Laufzeitsicht umbennenen?} \todox{Laufzeitsicht umbennenen?}
**4.5 Laufzeitsicht - Sequenzdiagramme** **4.5 Laufzeitsicht - Sequenzdiagramme**
@@ -70,7 +70,7 @@
7. Argo CD (lokal) $\rightarrow$ Sync zu Cluster $\rightarrow$ Pods starten 7. Argo CD (lokal) $\rightarrow$ Sync zu Cluster $\rightarrow$ Pods starten
``` ```
\subsection{Topographie} %verteilungssicht \section{Topographie} %verteilungssicht
- **On-Premise**: Bare Metal oder VMware (3 Nodes: 1 Control Plane + 2 Worker) - **On-Premise**: Bare Metal oder VMware (3 Nodes: 1 Control Plane + 2 Worker)
- **Cloud**: AWS EC2 oder Azure VMs (für Online-Cluster) - **Cloud**: AWS EC2 oder Azure VMs (für Online-Cluster)
- **Network**: Air-Gapped = physische Trennung, Transfer per USB/USB-Drive - **Network**: Air-Gapped = physische Trennung, Transfer per USB/USB-Drive

View File

@@ -1,7 +1,7 @@
\section{Architekturbewertung} %(14-18 Seiten) \chapter{Architekturbewertung} %(14-18 Seiten)
\subsection{ATAM: Utility Tree} \section{ATAM: Utility Tree}
\todox{Umbenennen in was gutes} \todox{Umbenennen in was gutes}
``` ```
Verfügbarkeit (Weight: 0.3) Verfügbarkeit (Weight: 0.3)
@@ -20,7 +20,7 @@ Wartbarkeit (Weight: 0.3)
Vollständige Dokumentation (arc42) (S9) Vollständige Dokumentation (arc42) (S9)
``` ```
\subsection{Szenarien-Bewertung} \section{Szenarien-Bewertung}
\todox{Besserer Titel} \todox{Besserer Titel}
| Szenario | Auslöser | Erwartetes Ergebnis | Bewertung | | Szenario | Auslöser | Erwartetes Ergebnis | Bewertung |
|----------|----------|---------------------|-----------| |----------|----------|---------------------|-----------|
@@ -29,7 +29,7 @@ Vollständige Dokumentation (arc42) (S9)
| S5: Image-Verifikation | Unsigned Image in Registry | Argo CD blockiert Sync | Gut | | S5: Image-Verifikation | Unsigned Image in Registry | Argo CD blockiert Sync | Gut |
| S7: Automatisierung | Manuelle Steps zählen | <10% manuelle Intervention | Gut | | S7: Automatisierung | Manuelle Steps zählen | <10% manuelle Intervention | Gut |
\subsection{STRIDE-Security-Bewertung} \section{STRIDE-Security-Bewertung}
| Bedrohung | Risiko | Gegenmaßnahme | | Bedrohung | Risiko | Gegenmaßnahme |
|-----------|--------|---------------| |-----------|--------|---------------|
| **Spoofing** (Identity) | Mittel | mTLS, RBAC, OIDC-Auth | | **Spoofing** (Identity) | Mittel | mTLS, RBAC, OIDC-Auth |
@@ -39,7 +39,7 @@ Vollständige Dokumentation (arc42) (S9)
| **DoS** (Cluster) | Mittel | Resource Limits, Network Policies | | **DoS** (Cluster) | Mittel | Resource Limits, Network Policies |
| **Elevation** (Privileges) | Hoch | Pod Security Standards, least privilege | | **Elevation** (Privileges) | Hoch | Pod Security Standards, least privilege |
\subsection{}Risiken identifizieren** \section{}Risiken identifizieren**
| Risiko | Wahrscheinlichkeit | Auswirkung | Gegenmaßnahme | | Risiko | Wahrscheinlichkeit | Auswirkung | Gegenmaßnahme |
|--------|-------------------|------------|---------------| |--------|-------------------|------------|---------------|
| Image-Sync-Lücke (veraltete Images) | Mittel | Hoch | Automatisiertes Scheduling (alle 24h), Alerting | | Image-Sync-Lücke (veraltete Images) | Mittel | Hoch | Automatisiertes Scheduling (alle 24h), Alerting |

View File

@@ -1,13 +1,13 @@
\section{Proof of Concept} % Fallstudie (10-14 Seiten) \chapter{Proof of Concept} % Fallstudie (10-14 Seiten)
\subsection{Bestehendes Setup} \section{Bestehendes Setup}
\todox{besserer Name} \todox{besserer Name}
- Bestehender Stack: 20-30 Container (Liste der Services) - Bestehender Stack: 20-30 Container (Liste der Services)
- Ursprüngliche Architektur: Monolithisch oder loosen coupled? - Ursprüngliche Architektur: Monolithisch oder loosen coupled?
- Migrationshürden: Stateful Services, Secrets, Network Policies - Migrationshürden: Stateful Services, Secrets, Network Policies
\subsection{Security-Gates} \section{Security-Gates}
\todox{besserer Name} \todox{besserer Name}
| Gate | Implementierung | Ergebnis | | Gate | Implementierung | Ergebnis |
|------|-----------------|----------| |------|-----------------|----------|
@@ -16,7 +16,7 @@
| Vulnerability Scan | Trivy $\rightarrow$ SARIF | 0 critical CVEs in Production | | Vulnerability Scan | Trivy $\rightarrow$ SARIF | 0 critical CVEs in Production |
| Policy Enforcement | OPA Gatekeeper | Blockiert unsigned Images | | Policy Enforcement | OPA Gatekeeper | Blockiert unsigned Images |
\subsection{Automatisierte Patch-Pipeline} \section{Automatisierte Patch-Pipeline}
``` ```
CVE-Veröffentlichung (z.B. Log4j) CVE-Veröffentlichung (z.B. Log4j)
@@ -34,7 +34,7 @@ Argo CD $\rightarrow$ Auto-Sync (Air-Gapped nach 24h Sync)
Deployed in <48h (gemessen: 36h) Deployed in <48h (gemessen: 36h)
``` ```
\subsection{}Metriken \& Ergebnisse** \section{}Metriken \& Ergebnisse**
| Metrik | Vorher | Nachher | Ziel | | Metrik | Vorher | Nachher | Ziel |
|--------|--------|---------|------| |--------|--------|---------|------|
| Deployment-Zeit (Online) | 2h | 15min | kleiner gleich30min n | | Deployment-Zeit (Online) | 2h | 15min | kleiner gleich30min n |

View File

@@ -1,22 +1,22 @@
\section{Fazit \& Ausblick} % (3-5 Seiten) \chapter{Fazit \& Ausblick} % (3-5 Seiten)
\subsection{Zusammenfassung} \section{Zusammenfassung}
- AIr-Gapped Kubernetes mit Security-by-Design ist umsetzbar - AIr-Gapped Kubernetes mit Security-by-Design ist umsetzbar
- Automatisierte Supply-Chain reduziert manuelle Steps um >90% - Automatisierte Supply-Chain reduziert manuelle Steps um >90%
- Patch-Reaktionszeit kleiner gleich48h erreichbar (mit 24h-Sync + Critical-Bypass) - Patch-Reaktionszeit kleiner gleich48h erreichbar (mit 24h-Sync + Critical-Bypass)
\subsection{Beantwortung der Forschungsfrage} \section{Beantwortung der Forschungsfrage}
- n Security-Mechanismen: Signing, SBOM, Scanning automatisierbar - n Security-Mechanismen: Signing, SBOM, Scanning automatisierbar
- n Patch-Management: 24h-Sync + Alerting ermöglicht kleiner gleich48h Response - n Patch-Management: 24h-Sync + Alerting ermöglicht kleiner gleich48h Response
- n Tradeoffs: Security Overhead akzeptabel (<10min CI), Komplexität beherrschbar - n Tradeoffs: Security Overhead akzeptabel (<10min CI), Komplexität beherrschbar
\subsection{Limitationen} \section{Limitationen}
- nur 20-30 Container (nicht massiv-skaliert) - nur 20-30 Container (nicht massiv-skaliert)
- keine Multi-Tenant-Szenarien getestet - keine Multi-Tenant-Szenarien getestet
- Economic Analysis (Kosten) nicht durchgeführt - Economic Analysis (Kosten) nicht durchgeführt
\subsection{Ausblick} \section{Ausblick}
- Erweiterung auf Multi-Cluster (Kandidaten: Kunde A, B, C) - Erweiterung auf Multi-Cluster (Kandidaten: Kunde A, B, C)
- Integration von Service Mesh (Istio) für Zero-Trust - Integration von Service Mesh (Istio) für Zero-Trust
- Automatisierte Compliance-Reports (BSI-Kritis) - Automatisierte Compliance-Reports (BSI-Kritis)