Assessor_2.0/reports/assessor-ist-zustand/artifact.json

121 lines
10 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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" }
]
}