# Analyse-Auftrag: VS-NfD-Ist-Aufnahme Dorfteich > Diese Datei in das Repo legen (z. B. `docs/vs-nfd/00-analyse-auftrag.md`) > und Claude Code anweisen: _„Arbeite `docs/vs-nfd/00-analyse-auftrag.md` ab."_ --- ## Rahmen **Ziel des Vorhabens:** Dorfteich soll in einer nach VSA freigegebenen IT-Umgebung einer Bundesbehörde betrieben werden können — Einstufung VS-NfD. Es wird **keine** eigene BSI-Zulassung angestrebt. **Leitprinzip, an dem alles zu messen ist:** Dorfteich darf **keine Sicherheitsgrundfunktion im Sinne von §52 VSA selbst implementieren**. Verschlüsselung, Authentisierung, Netzabschluss und Datenträgerschutz gehören auf die Plattform der Behörde. Jede Stelle, an der die Anwendung selbst schützt statt zu delegieren, ist ein Befund. **Diese Analyse ist read-only.** Keine Codeänderungen, keine Refactorings, keine Bugfixes. Nur Befunde. --- ## Arbeitsweise - Jeder Befund braucht einen **Fundort**: `pfad/zur/datei.ts:123`. - Wo du unsicher bist, schreib „unklar" statt zu raten. Eine ehrliche Wissenslücke ist brauchbar, eine erfundene Antwort ist gefährlich. - Keine Verbesserungsvorschläge im Fließtext — dafür gibt es die Spalte „Handlungsbedarf". - Bewertungsskala pro Befund: - **OK** — unkritisch, keine Anpassung nötig - **ANPASSEN** — muss geändert werden, aber überschaubar - **BLOCKIEREND** — verhindert den Einsatz, bis es gelöst ist - **UNKLAR** — nicht abschließend bewertbar --- ## 1. Sicherheitsgrundfunktionen (höchste Priorität) Beantworte präzise, was die Anwendung **selbst** tut: 1. **Authentisierung** — Gibt es eine eigene Benutzer-/Passwortdatenbank? Welches Hashing-Verfahren? Existiert bereits OIDC-/SAML-/LDAP-Anbindung oder Unterstützung für Client-Zertifikate / Reverse-Proxy-Header? 2. **Session-Verwaltung** — Eigene Implementierung oder Framework? Wo liegen Sessions (Cookie, Server, Redis)? Wie lange gültig? 3. **Kryptographie** — Wird irgendwo im Code selbst ver-/entschlüsselt oder signiert? Suche nach eigenen Krypto-Aufrufen, nicht nur nach Bibliotheken. Falls ja: Was, womit, warum? 4. **Zugriffskontrolle** — Wie ist das Berechtigungsmodell aufgebaut? Wo wird es durchgesetzt (zentral im Middleware-Layer oder verstreut)? Gibt es Pfade, die es umgehen (API, Suche, Export, Anhänge)? 5. **Integrität** — Gibt es Prüfsummen, Signaturen, Manipulationsschutz? ## 2. Datenhaltung 6. Wo liegen Seiteninhalte — Datenbank, Filesystem, beides? 7. Wo liegen Anhänge und hochgeladene Dateien? 8. Existiert ein Volltextsuchindex? Welche Technologie, wo persistiert er, und enthält er Klartext der Seiteninhalte? 9. Welche weiteren Kopien der Inhalte entstehen im Betrieb — Caches, Thumbnails, Vorschaubilder, Render-Artefakte, Temp-Dateien? 10. Wie ist die Revisions-/Versionshistorie abgelegt? ## 3. Löschen und Vernichtung 11. Was passiert beim Löschen einer Seite — Soft- oder Hard-Delete? 12. Werden dabei erfasst: Revisionen, Anhänge, Suchindex, Caches, Thumbnails, Papierkorb, Backlinks? 13. Gibt es einen Weg, eine Seite samt **aller** Spuren rückstandsfrei zu entfernen? Falls nein: Was bleibt konkret übrig und wo? ## 4. Ausgehende Verbindungen 14. Liste **jede** Stelle, an der die Anwendung eine Verbindung nach außen aufbaut oder aufbauen könnte: Update-Checks, Telemetrie, Analytics, Crash-Reporting, Lizenzprüfung, Link-Vorschauen, oEmbed, Avatar-Dienste, Karten, externe Schriften, Icons, Skripte. 15. Prüfe auch die gepinnten Fremdmodule (Editor, Flowchart) — laden diese zur Laufzeit etwas nach? 16. Backups: Wohin kann konfiguriert werden? Gibt es eine Einschränkung oder ist jedes Ziel erlaubt? Werden Backups verschlüsselt, und wenn ja, wie? 17. Läuft die Anwendung vollständig ohne Internetzugang? Was bricht? ## 5. Ausgabekanäle (für die Kennzeichnungspflicht) 18. Liste alle Wege, auf denen Inhalte die Anwendung verlassen: Web-Ansicht, Druck, PDF-/DOCX-Export, API, Feeds, Suchergebnisse, Anhang-Download, Backup. 19. Gibt es bereits ein Metadatenmodell pro Seite, in das eine Einstufung aufgenommen werden könnte? Wie ist es strukturiert, und wird es an die Ausgabekanäle durchgereicht? 20. Wo genau müsste eingegriffen werden, damit ein Kopf-/Fußaufdruck in _allen_ Ausgaben erscheint? Nenne die konkreten Stellen. ## 6. Protokollierung 21. Was wird heute protokolliert — nur Änderungen oder auch Lesezugriffe? 22. Wohin (Datei, stdout, DB)? Ist Syslog-/SIEM-Export möglich? 23. Ist die Aufbewahrungsdauer konfigurierbar? 24. Landen Inhalte oder personenbezogene Daten in Logs, die dort nicht hingehören? ## 7. Lieferkette 25. Erzeuge eine vollständige Abhängigkeitsliste mit Versionen und Lizenzen. 26. Welche Abhängigkeiten sind nicht aus EU-/DACH-Quellen oder haben einen unklaren Maintainer-Status? 27. Sind alle Versionen tatsächlich gepinnt — auch transitiv (Lockfiles)? 28. Wie läuft das Deployment: Container-Images (welche Basis?), Pakete, Quellcode? Wäre eine Offline-Installation möglich? ## 8. Betriebsmodell 29. Ist die Anwendung mandantenfähig oder Single-Tenant? 30. Welche Konfiguration ist zur Laufzeit änderbar, welche nur beim Deploy? 31. Gibt es Funktionen, die ein Betreiber hart abschalten kann (Feature-Flags)? --- ## Ergebnis Schreibe das Resultat nach `docs/vs-nfd/10-ist-aufnahme.md` mit folgendem Aufbau: 1. **Management-Zusammenfassung** — max. 15 Zeilen. Wie weit ist Dorfteich vom Ziel entfernt? Was sind die drei größten Brocken? 2. **Befundtabelle** — je Zeile: Nr. | Thema | Fundort | Ist-Zustand | Bewertung | Handlungsbedarf | grobe Aufwandsschätzung (S/M/L) 3. **Detailbefunde** — pro Kapitel oben, mit Codeauszügen wo hilfreich 4. **Offene Punkte** — was du nicht klären konntest und warum Sortiere die Befundtabelle nach Bewertung: BLOCKIEREND zuerst.