121 lines
10 KiB
JSON
121 lines
10 KiB
JSON
{
|
||
"surface": "report",
|
||
"manifest": {
|
||
"version": 1,
|
||
"surface": "report",
|
||
"title": "ASSESSOR – Ist-Zustand",
|
||
"description": "High-Level-Ist-Zustand des aktuellen ASSESSOR aus Quellcode und Projektdokumentation.",
|
||
"generatedAt": "2026-09-09T12:00:00+02:00",
|
||
"blocks": [
|
||
{
|
||
"id": "title",
|
||
"type": "markdown",
|
||
"body": "# ASSESSOR – Ist-Zustand"
|
||
},
|
||
{
|
||
"id": "executive-summary",
|
||
"type": "markdown",
|
||
"body": "## Executive Summary\n\n- ASSESSOR ist aktuell eine lokale Browseranwendung mit Node-Backend und PostgreSQL; Oberfläche und API laufen same-origin.\n- Standardberichte werden aus fünf Formatfamilien verarbeitet: CSV/Text, HTML, Excel, JSON und XML.\n- Eigene Profile bestehen für Purple Knight, PingCastle, CIS-CAT Pro und Maester; unbekannte strukturierte Quellen laufen über das generische Profil.\n- GPO-Backups und Microsoft Security Baselines werden über einen separaten spezialisierten Analysepfad verarbeitet.\n- Sichtbares Ergebnis sind vereinheitlichte Findings, Evidenzen, Umgebungsdaten und Policy-Vergleiche in Client Info, Work, Result DB und Pathfinder."
|
||
},
|
||
{
|
||
"id": "inputs",
|
||
"type": "markdown",
|
||
"body": "## Unterstützte Eingaben\n\n- **CSV/Text:** .csv und .txt; Komma, Semikolon, Tabulator und Pipe.\n- **HTML:** .html und .htm; Tabellen und erkannte statische Berichtsdaten.\n- **Excel:** .xlsx und .xls; Arbeitsblätter werden übernommen, Formeln nicht ausgeführt.\n- **JSON:** .json; Objekte und Arrays werden tabellarisch strukturiert.\n- **XML:** .xml; hierarchische Strukturen ohne aktive externe XML-Konstrukte.\n- **Scannerprofile:** Purple Knight, PingCastle, CIS-CAT Pro, Maester und Generic.\n- **GPO/Baseline:** GPO-Backup als ZIP oder unterstützte Ordnerauswahl; Microsoft Security Baseline als ZIP.\n- **GPO-Artefakte:** Registry.pol, GptTmpl.inf, audit.csv sowie ausgewählte Group Policy Preferences für Registry, Services, Laufwerkszuordnungen und lokale Benutzer/Gruppen."
|
||
},
|
||
{
|
||
"id": "scanner-specifics",
|
||
"type": "markdown",
|
||
"body": "## Scannerbezogene Besonderheiten\n\n- **Purple Knight:** HTML und tabellarische Exporte; Findings, Detailtabellen, Zusammenfassungen und ausgewählte Umgebungskennzahlen.\n- **PingCastle:** HTML liefert Risk Rules und Details; XML liefert eigenständige strukturierte Berichtsdaten und Kontext, aber nicht die vollständige HTML-Findingansicht.\n- **CIS-CAT Pro:** HTML mit Benchmark-Ergebnissen, Regelstatus, Evidenztabellen, Summary-Abgleich und System-/Benchmarkkontext.\n- **Maester:** HTML mit sicher lesbarem statischem Ergebnisobjekt sowie tabellarische/Excel-Ausgaben; Tests, Status, Ergebnistext und Berichtskontext.\n- **Generic:** strukturierte Tabellen/Objekte; fachliche Feldzuordnung nur bei ausreichender Erkennung oder Nutzerbestätigung."
|
||
},
|
||
{
|
||
"id": "flow",
|
||
"type": "markdown",
|
||
"body": "## Datenstrecke: sichtbarer Start- bis Endpunkt\n\n1. **Start:** Berichtdateien im Data Hub auswählen oder GPO-/Baseline-Import starten.\n2. **Eingangskontrolle:** Format, Signatur, Ressourcenlimits und unsichere Inhalte lokal prüfen.\n3. **Strukturierung:** Formatadapter erzeugt ein gemeinsames Zwischenmodell.\n4. **Erkennung:** Tool, Ergebnistabelle und fachliche Felder mit Konfidenz bestimmen; unsichere Zuordnungen bestätigen lassen.\n5. **Normalisierung:** Status, Severity, Titel, Kategorien, Evidenz, Referenzen und Kontext in das kanonische Modell überführen; Originalwerte und Provenienz erhalten.\n6. **Persistenz:** Bestätigten Import atomar als Projekt, Assessment, Scanlauf, Findings, Evidenz, Diagnosen und Historie in PostgreSQL speichern.\n7. **Endpunkt:** Gewählten Client/Timeslot in Client Info, Work, Result DB und Pathfinder anzeigen."
|
||
},
|
||
{
|
||
"id": "capabilities",
|
||
"type": "markdown",
|
||
"body": "## Weitere Fähigkeiten\n\n- **Datahub:** Clients/Projekte, Mehrdatei-Vorschau, Tool-/Formatprüfung, Importdiagnosen, Dublettenhinweise, Reimport/Ersatzläufe, Historie und Timeslots.\n- **Client Info:** Umgebungsfakten, Overall Score, Security Domains, deviation-basierte Priority Findings, Assessment Gaps, Statuskontext und Source Overview.\n- **Work:** Reports als Standardansicht sowie Matrix, Grid und Raw Data; Suche, Sortierung und dynamische Filter.\n- **Finding-Bearbeitung:** Bookmark, Reviewstatus, Priorität, Owner/Team, Fälligkeit, Voraussetzungen, Rollen, Next Step, Evidenzkriterien, Kommentar und Reportmarkierungen.\n- **Vergleich:** Neue, fortbestehende, behobene und wiederkehrende Befunde über Scanläufe/Timeslots.\n- **Result DB:** Vereinheitlichte Scanner-, Kontext- und Policy-Ergebnisse mit Facetten, Details und JSONL-Export.\n- **Pathfinder:** Deviation-basierter Graph mit Kategorie-, Asset-, MITRE ATT&CK- und D3FEND-Beziehungen.\n- **GPO-Analyse:** Baselinevergleich mit Misconfigured, Match/Passed, Not configured, Conflicts, Duplicates und Review required.\n- **Exporte:** Sichere CSV, ASSESSOR-Snapshot als JSON, Result DB als JSONL und HTML-basierter Aktions-/Dashboardexport.\n- **Betrieb:** Backend-Health, DB-Strukturansicht, versionierte Migrationen und technische Verarbeitungsdiagnosen."
|
||
},
|
||
{
|
||
"id": "security",
|
||
"type": "markdown",
|
||
"body": "## Sicherheit und Betriebsgrenzen\n\n- Lokale Verarbeitung ohne externe Uploads, Telemetrie, CDN-Abhängigkeiten oder automatische externe APIs.\n- Importiertes HTML wird nicht ausgeführt; aktive Inhalte werden entfernt.\n- XML mit DTD/ENTITY/SYSTEM/PUBLIC, Excel mit VBA oder verschlüsselten Archiven und nicht statisch lesbare Maester-Ausdrücke werden abgelehnt.\n- Standardgrenzen: 100 MiB je Datei, 140 MiB je Request und 50 Dateien je Batch; zusätzlich Zeit-, Speicher-, Mengen- und Parallelitätsgrenzen.\n- PostgreSQL ist die kanonische lokale Datenhaltung; kein stiller Fallback bei konfigurierter, aber nicht erreichbarer Datenbank.\n- Noch kein freigegebener Mehrbenutzer-Firmenbetrieb: HTTPS, SSO, Rollen und Autorisierung gehören zu Phase 14."
|
||
},
|
||
{
|
||
"id": "maturity",
|
||
"type": "markdown",
|
||
"body": "## Reifegrad des Umsetzungsplans\n\n- **15 Phasen/Teilphasen abgeschlossen:** Phase 0 bis 13A.\n- **2 Teilphasen in Arbeit:** 13B GPO/Baseline-Analyse und 13C Scanner Context/Environment Inventory.\n- **1 Phase offen:** Phase 14 Mehrbenutzer- und Firmenbetrieb."
|
||
},
|
||
{
|
||
"id": "phase-chart-block",
|
||
"type": "chart",
|
||
"chartId": "phase-status"
|
||
},
|
||
{
|
||
"id": "next-steps",
|
||
"type": "markdown",
|
||
"body": "## Empfohlene nächste Schritte\n\n- Phase 13B gegen die definierten GPO-/Baseline-Akzeptanzkriterien abschließen.\n- Phase 13C für alle unterstützten Scannerprofile vervollständigen.\n- Vor Firmenbetrieb Phase 14 mit HTTPS, SSO, Rollen, Autorisierung, Betriebsüberwachung sowie Backup/Restore umsetzen.\n- Format- und Profilkompatibilität weiter mit synthetischen Referenzberichten und Vollständigkeitsabgleichen absichern."
|
||
},
|
||
{
|
||
"id": "questions",
|
||
"type": "markdown",
|
||
"body": "## Offene Fragen\n\n- Welche Scanner oder Reportvarianten sollen als Nächstes ein eigenes Profil erhalten?\n- Welche zusätzlichen GPO-Artefaktarten sind fachlich zwingend?\n- Wird zusätzlich eine Capability-Matrix „Format × Tool × sichtbare Felder“ benötigt?"
|
||
},
|
||
{
|
||
"id": "caveats",
|
||
"type": "markdown",
|
||
"body": "## Caveats\n\n- Stand: aktueller Workspace am 09.09.2026; Basis sind Quellcode, Sicherheitsdokumentation und Umsetzungsplan, keine Kundendaten.\n- „Parsebar“ heißt strukturell lesbar; vollständige Findings setzen ein passendes Profil oder bestätigtes Mapping voraus.\n- GPO/Baseline und Environment sind nutzbar, die zugehörigen Phasen 13B und 13C bleiben aber in Arbeit.\n- High-Level-Ist-Zustand, kein Feld-für-Feld- oder Parser-Testnachweis."
|
||
}
|
||
],
|
||
"charts": [
|
||
{
|
||
"id": "phase-status",
|
||
"title": "Umsetzungsstatus nach Phasen",
|
||
"type": "bar",
|
||
"dataset": "phase_status",
|
||
"encodings": {
|
||
"x": { "field": "status", "type": "nominal", "title": "Status" },
|
||
"y": { "field": "anzahl", "type": "quantitative", "title": "Anzahl Phasen/Teilphasen" }
|
||
},
|
||
"options": { "orientation": "vertical", "grouping": "grouped", "showLegend": false },
|
||
"source": {
|
||
"id": "phase-status-values",
|
||
"label": "Aus dem ASSESSOR-Umsetzungsplan abgeleitete Statuszählung",
|
||
"query": {
|
||
"engine": "static-sql",
|
||
"description": "Zählt die dokumentierten Phasen und Teilphasen nach Status; Grundlage: docs/IMPLEMENTATION_PLAN.md.",
|
||
"sql": "SELECT status, anzahl, umfang FROM (VALUES ('Abgeschlossen', 15, 'Phase 0–13A'), ('In Arbeit', 2, 'Phase 13B und 13C'), ('Offen', 1, 'Phase 14')) AS phase_status(status, anzahl, umfang)"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"sources": [
|
||
{ "id": "implementation-plan", "label": "ASSESSOR Umsetzungsplan", "path": "docs/IMPLEMENTATION_PLAN.md" },
|
||
{ "id": "import-code", "label": "Importengine und Toolprofile", "path": "src/importers; src/profiles" },
|
||
{ "id": "app-code", "label": "Anwendungsbereiche und sichtbare Datenprojektionen", "path": "src/app; src/features" },
|
||
{ "id": "backend-code", "label": "Backend, GPO-Analyse und Persistenz", "path": "server; src/persistence; src/api" },
|
||
{ "id": "security-docs", "label": "Sicherheitsmodell und Importgrenzen", "path": "SECURITY.md; docs/IMPORT_SECURITY_LIMITS.md" }
|
||
]
|
||
},
|
||
"snapshot": {
|
||
"version": 1,
|
||
"generatedAt": "2026-09-09T12:00:00+02:00",
|
||
"status": "ready",
|
||
"datasets": {
|
||
"phase_status": [
|
||
{ "status": "Abgeschlossen", "anzahl": 15, "umfang": "Phase 0–13A" },
|
||
{ "status": "In Arbeit", "anzahl": 2, "umfang": "Phase 13B und 13C" },
|
||
{ "status": "Offen", "anzahl": 1, "umfang": "Phase 14" }
|
||
]
|
||
}
|
||
},
|
||
"sources": [
|
||
{ "id": "implementation-plan", "label": "ASSESSOR Umsetzungsplan", "path": "docs/IMPLEMENTATION_PLAN.md" },
|
||
{ "id": "import-code", "label": "Importengine und Toolprofile", "path": "src/importers; src/profiles" },
|
||
{ "id": "app-code", "label": "Anwendungsbereiche und sichtbare Datenprojektionen", "path": "src/app; src/features" },
|
||
{ "id": "backend-code", "label": "Backend, GPO-Analyse und Persistenz", "path": "server; src/persistence; src/api" },
|
||
{ "id": "security-docs", "label": "Sicherheitsmodell und Importgrenzen", "path": "SECURITY.md; docs/IMPORT_SECURITY_LIMITS.md" }
|
||
]
|
||
}
|