Sicherheit durch Design
Bank Statement Parser wurde für die Verarbeitung sensibler Finanzdaten entwickelt. Jede Designentscheidung priorisiert Sicherheit, Datenschutz und Nachvollziehbarkeit.
Kein Netzwerkzugriff
Die gesamte Verarbeitung erfolgt lokal in Ihrer Laufzeitumgebung. Die Bibliothek führt keinerlei API-Aufrufe durch, stellt keine Cloud-Verbindungen her und erhebt keinerlei Telemetriedaten. XML-Parser sind explizit mit no_network=True, resolve_entities=False und load_dtd=False konfiguriert, um jeglichen ausgehenden Netzwerkzugriff zu unterbinden.
PII Redaction
Personenbezogene Daten (Namen, IBANs, Postadressen) werden in der CLI-Ausgabe und im Streaming-Modus automatisch unkenntlich gemacht. Diese Funktion ist standardmäßig aktiviert.
- CLI: Sensible Felder werden als
***REDACTED***angezeigt - Streaming:
parse_streaming(redact_pii=True)(Standard) - Exporte: CSV/JSON/Excel enthalten die vollständigen Daten für die nachgelagerte Verarbeitung
- Opt-in: Verwenden Sie
--show-piioderredact_pii=False, wenn Sie die ungeschwärzten Daten benötigen
XML-Sicherheit (XXE-Schutz)
Die gesamte XML-Verarbeitung verwendet lxml mit gehärteten Einstellungen:
resolve_entities=False-- verhindert Angriffe durch XML-Entity-Expansionno_network=True-- blockiert jeglichen ausgehenden Netzwerkzugriff des Parsersload_dtd=False-- verhindert DTD-basierte Angriffe- Namespace-Entfernung vor der Verarbeitung -- verarbeitet jede CAMT.053-Variante sicher
ZIP-Archiv-Sicherheit
iter_secure_xml_entries() validiert jeden ZIP-Eintrag vor der Extraktion:
- Eintragsgrößenlimit: 10 MB pro Eintrag (konfigurierbar)
- Gesamtgrößenlimit: 50 MB unkomprimiert insgesamt (konfigurierbar)
- Komprimierungsverhältnislimit: Standard 100:1 -- erkennt ZIP-Bomben
- Ablehnung verschlüsselter Einträge: Verschlüsselte Einträge werden mit einer Warnung übersprungen
- Kein Schreiben auf die Festplatte: XML-Bytes werden direkt über
from_bytes()an den Parser übergeben
Schutz vor Path Traversal
Die Eingabevalidierung blockiert gefährliche Dateipfade:
- Null-Bytes, Directory-Traversal-Muster (
../) und symbolische Links werden abgelehnt - Validierung der Dateiendung gegen erwartete Formate
- Dateigrößenlimits (Standard 100 MB, konfigurierbar)
Deterministische Ausgabe
Bei identischer Eingabedatei erzeugt der Parser bei jedem Durchlauf byte-identische Ausgaben. Keine Zufallswerte, keine Modellinferenz, kein heuristisches Sampling. Dies ist entscheidend für:
- Reproduzierbarkeit bei Prüfungen: Führen Sie dieselbe Datei zweimal aus und vergleichen Sie die Ausgabe
- Regulatorische Compliance: Nachweis einer konsistenten Verarbeitung
- CI-Verifizierung: 467 Tests gewährleisten Determinismus mit 100 % Branch-Abdeckung
Supply-Chain-Sicherheit
- SHA-256-Hash-gesperrte Abhängigkeiten: Jedes Paket in
poetry.lockhat verifizierte Datei-Hashes - CycloneDX SBOM: Jedes Release enthält eine Software Bill of Materials
- GitHub Build Provenance: Attestierung verknüpft jedes Artefakt mit seinem Quell-Commit
- Signierte Commits: Alle Commits sind SSH-signiert und werden in der CI verifiziert
- Abhängigkeitsverifizierung:
scripts/verify_locked_hashes.pyvalidiert alle Hashes lokal
Lokale Überprüfung
python -m pytest # 467 Tests, 100 % Branch-Abdeckung
python scripts/verify_locked_hashes.py # SHA-256-Hash-Verifizierung
git log --show-signature -1 # Commit-Signatur überprüfen