73 lines
3.4 KiB
Markdown
73 lines
3.4 KiB
Markdown
---
|
|||
|
|
type: adr
|
||
|
|
id: "0016"
|
||
|
|
status: accepted
|
||
|
|
date: 2026-08-14
|
||
|
|
supersedes: null
|
||
|
|
superseded_by: null
|
||
|
|
related:
|
||
|
|
- "docs/adr/0001-gitlab-kanonisch-push-mirror.md"
|
||
|
|
- "docs/issues/0030-der-restore-ist-nie-geprobt-sicherungen-sind.md"
|
||
|
|
---
|
||
|
|
|
||
|
|
# 0016 — Das Notfallhandbuch bleibt lab-intern und wird nicht gespiegelt
|
||
|
|
|
||
|
|
**Status:** akzeptiert · **Datum:** 2026-08-14 · **Entscheider:** sorb
|
||
|
|
|
||
|
|
## Kontext
|
||
|
|
|
||
|
|
ADR-0001 legt fest: git.lab ist kanonisch, **alle** Repos werden per Push-Mirror nach
|
||
|
|
Gitea (`rohana.axion1337.de`) beliefert. Das dient der Verfügbarkeit — Gitea ist von
|
||
|
|
überall erreichbar, git.lab nur im Lab bzw. über VPN.
|
||
|
|
|
||
|
|
Am 2026-08-14 entstand mit `axion1337.chat/notfallhandbuch` ein Repo, dessen Inhalt
|
||
|
|
qualitativ anders ist als Code oder Konfiguration: Es beschreibt die Wiederherstellung
|
||
|
|
der Plattform und damit zwangsläufig **den Aufbau der Infrastruktur, den Ablageort der
|
||
|
|
Sicherungen (Storage Box, Borg-Repos) und wo die Schlüssel zu finden sind** (Vault,
|
||
|
|
`sops-age`, die Kette bis zur Borg-Passphrase). Werte enthält es nicht — aber die
|
||
|
|
vollständige Landkarte dorthin.
|
||
|
|
|
||
|
|
Rein aus Verfügbarkeitssicht wäre ein Mirror besonders naheliegend: git.lab ist genau
|
||
|
|
dann nicht erreichbar, wenn man das Handbuch am dringendsten braucht. Diese Empfehlung
|
||
|
|
wurde in #0030 zunächst auch so gegeben.
|
||
|
|
|
||
|
|
## Entscheidung
|
||
|
|
|
||
|
|
**Das Notfallhandbuch wird bewusst NICHT nach Gitea gespiegelt** und bleibt
|
||
|
|
ausschließlich auf git.lab — eine dauerhafte Ausnahme von ADR-0001.
|
||
|
|
|
||
|
|
Begründung: Gitea/rohana ist aus dem Internet erreichbar und Teil des Stacks, den das
|
||
|
|
Handbuch wiederherstellen soll. Wird dieser Stack kompromittiert, wäre ein dort
|
||
|
|
gespiegeltes Notfallhandbuch genau die Aufklärung, die ein Angreifer für den nächsten
|
||
|
|
Schritt braucht — Backup-Ziele, Schlüsselverwahrung, Wiederanlaufpfade. Ein Angreifer
|
||
|
|
mit rohana-Zugriff soll **nicht** zusätzlich erfahren, wo die Sicherungen liegen.
|
||
|
|
|
||
|
|
**Vertraulichkeit geht hier vor Verfügbarkeit.**
|
||
|
|
|
||
|
|
Die Verfügbarkeitslücke wird stattdessen über einen **lokalen Clone** geschlossen
|
||
|
|
(Laptop, verschlüsselter Datenträger), der nach Änderungen aktualisiert wird. Das ist
|
||
|
|
eine Kopie unter eigener Kontrolle, kein öffentlich erreichbarer Spiegel.
|
||
|
|
|
||
|
|
## Konsequenzen
|
||
|
|
|
||
|
|
- **Kein Mirror einrichten** — auch nicht „der Vollständigkeit halber" oder beim
|
||
|
|
Vereinheitlichen der Mirror-Konfiguration. Die Begründung steht zusätzlich im README
|
||
|
|
des Repos, weil dort zuerst hinschaut, wer die Lücke bemerkt.
|
||
|
|
- Ohne Lab-Zugang (unterwegs, Lab offline) ist das Repo nicht abrufbar. **Der lokale
|
||
|
|
Clone ist damit Teil des Notfallkonzepts**, nicht bloß Bequemlichkeit — veraltet er,
|
||
|
|
verliert man im Ernstfall den aktuellen Stand.
|
||
|
|
- Das Handbuch darf weiterhin **keine Secret-Werte** enthalten, nur Fundorte. Die
|
||
|
|
Vertraulichkeit dieses Repos ist eine zusätzliche Schutzschicht, kein Ersatz für die
|
||
|
|
Secrets-Hygiene.
|
||
|
|
- Andere Repos bleiben von dieser Ausnahme unberührt; ADR-0001 gilt für sie weiter.
|
||
|
|
|
||
|
|
## Verworfene Alternativen
|
||
|
|
|
||
|
|
- **Mirror wie bei allen anderen Repos:** verworfen — verlagert das Handbuch auf genau
|
||
|
|
den Host, dessen Kompromittierung einer der abgedeckten Fälle ist.
|
||
|
|
- **Mirror in ein privates Gitea-Repo:** verworfen — der Schutz stünde und fiele mit der
|
||
|
|
Gitea-Rechteverwaltung, also erneut mit der Integrität des kompromittierten Systems.
|
||
|
|
- **Handbuch ohne Fundorte schreiben** (damit es gefahrlos spiegelbar wäre): verworfen —
|
||
|
|
ein Notfallhandbuch, das verschweigt, wo die Sicherungen und Schlüssel liegen, ist im
|
||
|
|
Ernstfall wertlos.
|