Skip to content

Commit 7cfd0b5

Browse files
Add evidence storage restore drill phase two
1 parent 67b1262 commit 7cfd0b5

8 files changed

Lines changed: 1296 additions & 141 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ The project uses release tags for immutable release points. Changes under **Unre
88

99
### Added
1010

11+
- add Evidence Object Storage & Restore Drill Phase 2 with an internal local-filesystem artifact storage abstraction
12+
- add tenant-scoped Evidence storage overview/detail APIs, bounded storage drill APIs, and storage event filtering without introducing production S3 or cloud credentials
13+
- extend `/evidence/integrity/` with local storage metadata and administrator/editor Storage-Drill actions
1114
- add Evidence Integrity & Disposition Phase 1 through additive migration `0033_rust_evidence_integrity_disposition`
1215
- add tenant-scoped Evidence integrity overview, manual and bounded batch SHA-256 re-check APIs, Legal Hold metadata, disposition decisions, and integrity/disposition audit events
1316
- add Web UI support under `/evidence/integrity/` for safe Evidence integrity metadata, re-hash actions, Legal Hold set/release, and metadata-only disposition decisions
@@ -31,6 +34,9 @@ The project uses release tags for immutable release points. Changes under **Unre
3134

3235
### Security
3336

37+
- route Evidence artifact checks through a canonical media-root-contained filesystem backend that blocks traversal, absolute-path references, and symlink escapes
38+
- audit Evidence storage drills, artifact presence, unreadable/missing artifacts, hash matches, hash mismatches, drill failures, and drill completion without exposing absolute paths, raw payloads, SQL details, or secrets
39+
- reuse the existing Evidence Integrity metadata and audit table for storage drills, avoiding a new Evidence engine or destructive migration
3440
- keep Evidence re-hash, Legal Hold, and disposition writes tenant-scoped and restricted to administrator/editor roles while allowing read-only roles to inspect safe metadata
3541
- audit Evidence integrity checks, hash mismatches, missing artifacts, Legal Hold changes, and disposition decisions without storing raw file payloads, secret values, authorization material, SQL details, or absolute media paths
3642
- make `disposition_completed_metadata_only` an explicit governance decision state; this release does not physically delete Evidence files or implement data destruction

docs/ISCY_Handbuch.md

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,9 @@ Typische Funktionen:
456456
- Legal Hold mit Begruendung setzen oder freigeben
457457
- Disposition-/Retention-Entscheidungen als Governance-Metadaten dokumentieren
458458
- Integritaets-, Legal-Hold- und Disposition-Ereignisse auditierbar nachvollziehen
459+
- lokale Evidence-Artefakte ueber eine interne Storage-Abstraktion pruefen
460+
- Storage-/Restore-Drills fuer Vorhandensein, Lesbarkeit und SHA-256-Konsistenz ausloesen
461+
- sichere Storage-Fehlerklassen sehen, ohne absolute Dateipfade oder Rohpayloads offenzulegen
459462

460463
Fachlicher Nutzen:
461464

@@ -466,6 +469,7 @@ Fachlicher Nutzen:
466469
- belastbarere Aussage, ob Nachweise nur vorhanden oder wirklich reviewt und verwertbar sind
467470
- nachvollziehbare Integritaet und Lifecycle-Steuerung ohne pauschal fest codierte gesetzliche Aufbewahrungsfrist
468471
- klare Trennung zwischen Nachweisqualitaet, Integritaetspruefung, Legal Hold und metadata-only Disposition
472+
- belastbarer Restore-/Integrity-Nachweis fuer lokal referenzierte Artefakte, ohne produktives Cloud-Storage vorauszusetzen
469473

470474
Fuer Nicht-Sicherheitsleute:
471475
Evidence ist der Ordner mit den Belegen, aber strukturiert und auswertbar.
@@ -1232,6 +1236,63 @@ Objektspeicher/S3, kontrollierte physische Loeschung, technische
12321236
Datenvernichtung, eine neue Evidence-, Risk-, Control- oder Notification-Engine
12331237
sowie Plattform-, Docker-, Postgres-, nginx-, Nix- oder Dependency-Upgrades.
12341238

1239+
### 6.13 Evidence Object Storage & Restore Drill Phase 2
1240+
1241+
Phase 2 fuehrt eine interne Storage-Abstraktion fuer Evidence-Artefakte ein,
1242+
ohne produktives S3, Cloud-Credentials oder ein neues Speichersystem
1243+
einzufuehren. Das erste Backend ist bewusst nur `local_filesystem` und nutzt
1244+
weiter den bestehenden Media Root. Bestehende Uploads und gespeicherte
1245+
Evidence-Pfade bleiben kompatibel.
1246+
1247+
Die Storage-Schicht kapselt:
1248+
1249+
- sichere Artefaktreferenzen
1250+
- canonical path containment unterhalb des Media Root
1251+
- Blockade von absoluten Pfaden, Directory Traversal und Symlink-Flucht
1252+
- sichere Metadaten wie Backend, Referenz vorhanden, Artefakt vorhanden,
1253+
lesbar, leer und Groesse
1254+
- serverseitige SHA-256-Berechnung fuer Drills
1255+
- sichere Fehlerklassen ohne absolute Pfade
1256+
1257+
Die API ergaenzt:
1258+
1259+
- `GET /api/v1/evidence/storage`
1260+
- `GET /api/v1/evidence/{evidence_id}/storage`
1261+
- `POST /api/v1/evidence/{evidence_id}/storage-drill`
1262+
- `POST /api/v1/evidence/storage-drills`
1263+
- `GET /api/v1/evidence/{evidence_id}/storage-events`
1264+
1265+
Der Storage-/Restore-Drill prueft, ob der Evidence-Datensatz tenantgebunden
1266+
existiert, ob eine Artefaktreferenz vorhanden ist, ob das lokale Artefakt sicher
1267+
unterhalb des Media Root erreichbar und lesbar ist und ob der serverseitig
1268+
berechnete SHA-256 mit dem gespeicherten Evidence-Hash uebereinstimmt.
1269+
Fehlende Artefakte, unsichere Referenzen, fehlende erwartete Hashes und
1270+
Hash-Mismatches werden mit sicheren Fehlerklassen klassifiziert.
1271+
1272+
Die Webansicht `/evidence/integrity/` zeigt Storage-Backend, Artefaktstatus,
1273+
sichere Fehlerklasse, letzten Drill-/Integritaetszeitpunkt und den vorhandenen
1274+
Integrity-, Legal-Hold- und Disposition-Kontext. Admin- und Editor-Rollen
1275+
duerfen Storage-Drills ausloesen. Read-only-Rollen sehen nur sichere
1276+
Metadaten.
1277+
1278+
Auditereignisse nutzen die bestehende Evidence-Integrity-Ereignistabelle und
1279+
werden als `storage_*` Events geschrieben, darunter Start, Artefakt gefunden,
1280+
Artefakt fehlt, Artefakt nicht lesbar, Hash gueltig, Hash-Mismatch, Drill
1281+
fehlgeschlagen und Drill abgeschlossen. Auditdetails enthalten keine Secrets,
1282+
Tokens, Authorization Header, Rohpayloads, vertraulichen Dateiinhalte,
1283+
SQL-Details, fremden Tenant-IDs oder absoluten Dateipfade.
1284+
1285+
Fuer Phase 2 ist keine neue Datenbankmigration noetig: Die bestehenden
1286+
Integrity-Felder aus Migration `0033_rust_evidence_integrity_disposition`
1287+
speichern letzten Pruefzeitpunkt, Status, berechneten Hash und sichere
1288+
Fehlerklasse bereits ausreichend. Storage-Events werden in der bestehenden
1289+
Ereignistabelle auditierbar gefuehrt.
1290+
1291+
Bewusst nicht umgesetzt sind produktives S3/Object Storage, Cloud-Credentials,
1292+
physische Loeschung, technische Datenvernichtung, Backup-Restore aus externem
1293+
Storage, komplexer Scheduler, neue Evidence-/Risk-/Control-/Notification-
1294+
Engines sowie Docker-, Postgres-, nginx-, Nix- oder Dependency-Upgrades.
1295+
12351296
## 7. Was die wichtigsten Begriffe bedeuten
12361297

12371298
- ISO 27001: internationaler Standard fuer Informationssicherheits-Managementsysteme
@@ -1272,12 +1333,12 @@ ISCY strukturiert, dokumentiert, priorisiert und verbindet. Entscheidungen muess
12721333

12731334
## 10. Strategische Weiterentwicklung
12741335

1275-
Die Rust-Migration ist abgeschlossen. Mit V23.7.19 ist das regulatorische Organisationsprofil als erster strategischer Baustein umgesetzt; V23.7.20 ergaenzt Management-Review- und Audit-Pakete als steuerbaren Review-Workflow; V23.7.21 liefert Exporte, Snapshot-Ruecklinks und Evidence-Qualitaet; V23.7.22 setzt Third-Party-/Supplier-Risk als eigenes Rust-Web-/API-Modul um; V23.7.23 baut Product Security um VEX, SBOM-Diff und CRA-Readiness aus; V23.7.24 fuegt AI Governance hinzu; V23.7.25 schliesst Agent-Policy-Profile, erwartete Flottenabdeckung und aktive Policy-Webhooks an; V23.7.26 ergaenzt versionierte Product-Security-Evidence-Pakete. Migration `0027_rust_ai_governance_links` verbindet AI-Systeme tenantgebunden mit Risiken, Roadmap-Tasks, Incidents und Changes. Migration `0028_rust_guided_agent_onboarding` ergaenzt den gefuehrten, tenantgebundenen Agent-Rollout mit Token-Lifecycle, Policy-Zuordnung und Auditspur. Migration `0029_rust_cross_domain_notifications` fuehrt Evidence-, CVE-, Incident- und Roadmap-Signale in denselben sicheren Kanalbetrieb. Migration `0031_rust_supplier_review_workflow` ergaenzt Supplier-Reviews mit Freigabehistorie, Subprocessors, Vertragslaufzeiten, Exit-Test-Nachweisen und tenantgesicherten Evidence-/Control-/Risk-Links. Migration `0032_rust_management_regulatory_templates` ergaenzt Management-/Regulatory-Templates fuer ISO 27001, NIS2, DORA, KRITIS und generische Security-Governance-Reviews. Migration `0033_rust_evidence_integrity_disposition` ergaenzt Evidence Integrity & Disposition Phase 1 mit manueller und begrenzter Batch-Re-Hash-Pruefung, Legal-Hold-Metadaten, metadata-only Disposition und auditierbaren Integritaetsereignissen. Die weitere ISCY-Agenda konzentriert sich deshalb nicht mehr auf Abloesung alter Python-/Django-Pfade, sondern auf fachliche Produktreife.
1336+
Die Rust-Migration ist abgeschlossen. Mit V23.7.19 ist das regulatorische Organisationsprofil als erster strategischer Baustein umgesetzt; V23.7.20 ergaenzt Management-Review- und Audit-Pakete als steuerbaren Review-Workflow; V23.7.21 liefert Exporte, Snapshot-Ruecklinks und Evidence-Qualitaet; V23.7.22 setzt Third-Party-/Supplier-Risk als eigenes Rust-Web-/API-Modul um; V23.7.23 baut Product Security um VEX, SBOM-Diff und CRA-Readiness aus; V23.7.24 fuegt AI Governance hinzu; V23.7.25 schliesst Agent-Policy-Profile, erwartete Flottenabdeckung und aktive Policy-Webhooks an; V23.7.26 ergaenzt versionierte Product-Security-Evidence-Pakete. Migration `0027_rust_ai_governance_links` verbindet AI-Systeme tenantgebunden mit Risiken, Roadmap-Tasks, Incidents und Changes. Migration `0028_rust_guided_agent_onboarding` ergaenzt den gefuehrten, tenantgebundenen Agent-Rollout mit Token-Lifecycle, Policy-Zuordnung und Auditspur. Migration `0029_rust_cross_domain_notifications` fuehrt Evidence-, CVE-, Incident- und Roadmap-Signale in denselben sicheren Kanalbetrieb. Migration `0031_rust_supplier_review_workflow` ergaenzt Supplier-Reviews mit Freigabehistorie, Subprocessors, Vertragslaufzeiten, Exit-Test-Nachweisen und tenantgesicherten Evidence-/Control-/Risk-Links. Migration `0032_rust_management_regulatory_templates` ergaenzt Management-/Regulatory-Templates fuer ISO 27001, NIS2, DORA, KRITIS und generische Security-Governance-Reviews. Migration `0033_rust_evidence_integrity_disposition` ergaenzt Evidence Integrity & Disposition Phase 1 mit manueller und begrenzter Batch-Re-Hash-Pruefung, Legal-Hold-Metadaten, metadata-only Disposition und auditierbaren Integritaetsereignissen. Evidence Object Storage & Restore Drill Phase 2 nutzt diese bestehenden Metadaten fuer eine interne lokale Storage-Abstraktion, sichere Artefaktreferenzen und tenantgebundene Restore-/Integritaetsdrills ohne neues Speichersystem. Die weitere ISCY-Agenda konzentriert sich deshalb nicht mehr auf Abloesung alter Python-/Django-Pfade, sondern auf fachliche Produktreife.
12761337

12771338
Die priorisierte Roadmap liegt in `docs/ISCY_STRATEGIC_ROADMAP.md` und umfasst:
12781339

12791340
1. Feinere Management-/Regulatory-Template-Varianten und kontextsensitive Pruefpakete
1280-
2. Evidence-Integrity-Worker, kontrollierte physische Disposition und optionales Objektspeicher-Backend
1341+
2. Evidence-Integrity-Worker, kontrollierte physische Disposition und spaeteres produktives Objektspeicher-Backend
12811342
3. Signierte Agent-Pakete sowie eine spaetere getrennte CA-/PKI-Stufe
12821343
4. Performance-, HA- und visuelle Regressionstests
12831344

docs/ISCY_Handbuch.pdf

4.11 KB
Binary file not shown.

docs/ISCY_STRATEGIC_ROADMAP.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Erfolgskriterium:
7474

7575
Ziel: Evidence soll nicht nur vorhanden sein, sondern belastbar bewertet werden.
7676

77-
Status: In V23.7.21 als Evidence-Quality-API und Webansicht umgesetzt; am 2026-06-27 um den persistierten Evidence-Lifecycle erweitert. Im Unreleased-Stand kommt Evidence Integrity & Disposition Phase 1 hinzu.
77+
Status: In V23.7.21 als Evidence-Quality-API und Webansicht umgesetzt; am 2026-06-27 um den persistierten Evidence-Lifecycle erweitert. Im Unreleased-Stand kommen Evidence Integrity & Disposition Phase 1 sowie Evidence Object Storage & Restore Drill Phase 2 hinzu.
7878

7979
Umgesetzt:
8080

@@ -95,12 +95,17 @@ Umgesetzt:
9595
- Serverseitige SHA-256-Neuberechnung vorhandener Evidence-Artefakte mit Status `valid`, `mismatch`, `missing_artifact` oder `check_failed`.
9696
- Legal Hold kann Disposition-Entscheidungen blockieren und wird mit Begruendung, Akteurreferenz und Zeitpunkt auditierbar gefuehrt.
9797
- Disposition bleibt in Phase 1 ein Governance-/Audit-Metadatenmodell; `disposition_completed_metadata_only` loescht keine Dateien.
98+
- Interne Storage-Abstraktion fuer Evidence-Artefakte mit erstem Backend `local_filesystem`.
99+
- Storage-API-Pfade fuer Uebersicht, Detail, einzelne Drills, begrenzte Batch-Drills und Storage-Events.
100+
- Die bestehende Weboberflaeche `/evidence/integrity/` zeigt lokale Storage-Metadaten und bietet fuer Admin/Editor einen Storage-/Restore-Drill an.
101+
- Filesystem-Backend prueft Artefaktreferenzen ueber canonical path containment, blockiert Traversal, absolute Pfade und Symlink-Flucht aus dem Media Root und gibt nur sichere Fehlerklassen zurueck.
102+
- Restore-/Integrity-Drill belegt, dass referenzierte Artefakte am erwarteten lokalen Storage-Ort vorhanden, lesbar und SHA-256-konsistent sind; Ergebnisse werden in den bestehenden Evidence-Integrity-Feldern und `storage_*` Audit-Events dokumentiert.
98103

99104
Naechste Vertiefung:
100105

101106
- Periodischen Re-Hash-Worker mit Betriebssignalen und Queue-Steuerung ergaenzen.
102107
- Kontrollierte physische Loeschung/Datenvernichtung als getrennten, spaeteren Meilenstein entwerfen.
103-
- Optionales S3-/Objektspeicher-Backend inklusive Restore- und Integritaetsdrill.
108+
- Optionales produktives S3-/Objektspeicher-Backend inklusive Restore- und Integritaetsdrill als spaeteren, separaten Meilenstein pruefen.
104109

105110
Erfolgskriterium:
106111

@@ -231,7 +236,7 @@ Erfolgskriterium:
231236
## Empfohlene Umsetzungsreihenfolge
232237

233238
1. Feinere Template-Varianten und kontextsensitive NIS2-/DORA-/DSGVO-Pruefpakete auf Basis der neuen Management-/Regulatory-Template-Schicht.
234-
2. Evidence-Integrity-Worker, kontrollierte physische Disposition und optionales Objektspeicher-Backend.
239+
2. Evidence-Integrity-Worker, kontrollierte physische Disposition und optionales produktives Objektspeicher-Backend.
235240
3. Signierte Agent-Pakete, Release-Provenance und eine spaetere getrennte CA-/PKI-Stufe.
236241

237242
## Verbleibende Roadmap
@@ -247,7 +252,8 @@ Erfolgskriterium:
247252
| Unreleased | Supplier-Review-Workflow | Kritische Lieferanten erhalten Freigabehistorie, Unterauftragnehmer, Vertragsfristen, Exit-Test-Nachweise und tenantgesicherte Evidence-/Control-/Risk-Links. |
248253
| Umgesetzt / Vertiefung | Management-/Regulatory-Templates | Wiederholbare ISO-27001-, NIS2-, DORA-, KRITIS- und Governance-Pakete werden aus bestehenden Snapshots erzeugt; feinere Varianten koennen spaeter folgen. |
249254
| Unreleased | Evidence Integrity & Disposition Phase 1 | Manuelle und begrenzte Batch-Re-Hash-Pruefung, Legal Hold, metadata-only Disposition und auditierbare Integritaetsereignisse sind tenantgebunden verfuegbar. |
250-
| Reifegrad | Evidence-Worker, physische Disposition und Objektspeicher | Periodische Integritaetspruefung, kontrollierte Datenvernichtung und Storage-Restore sind auditierbar. |
255+
| Unreleased | Evidence Object Storage & Restore Drill Phase 2 | Eine interne Storage-Abstraktion mit lokalem Filesystem-Backend prueft referenzierte Artefakte sicher auf Vorhandensein, Lesbarkeit und Hash-Konsistenz. |
256+
| Reifegrad | Evidence-Worker, physische Disposition und produktiver Objektspeicher | Periodische Integritaetspruefung, kontrollierte Datenvernichtung und Storage-Restore sind auditierbar. |
251257
| Reifegrad | Performance, HA und visuelle Regression | Lastgrenzen, Mehrinstanzbetrieb und UI-Regressionen sind messbar abgesichert. |
252258

253259
## Abgrenzung

0 commit comments

Comments
 (0)