Beveiliging

Hoe wij uw financiële gegevens beschermen

TL;DR: Bank Statement Parser verwerkt alle gegevens lokaal, redigeert PII standaard, verhardt XML-parsing tegen XXE-aanvallen, draait LLM's lokaal via Ollama en wordt geleverd met SHA-256 hash-locked afhankelijkheden en een CycloneDX SBOM.

Beveiliging door ontwerp

Bank Statement Parser is gebouwd voor het verwerken van gevoelige financiële gegevens. Elke ontwerpbeslissing geeft prioriteit aan beveiliging, privacy en controleerbaarheid.

Geen cloudafhankelijkheid

Alle verwerking gebeurt lokaal binnen uw runtime. De deterministische parsers maken nul netwerkoproepen. De hybride PDF-pipeline gebruikt Ollama voor lokale LLM-inferentie — er worden geen gegevens naar cloud-API's gestuurd. XML-parsers zijn expliciet geconfigureerd met no_network=True, resolve_entities=False en load_dtd=False om uitgaande toegang te voorkomen.

PII-redactie

Persoonlijk identificeerbare informatie (namen, IBAN's, postadressen) wordt automatisch geredigeerd in CLI-uitvoer en streaming-modus. Dit staat standaard aan.

XML-beveiliging (XXE-bescherming)

Alle XML-parsing gebruikt lxml met geharde instellingen:

ZIP-archiefbeveiliging

iter_secure_xml_entries() valideert elk ZIP-bestand vóór extractie:

Pad-traversalpreventie

Invoervalidatie blokkeert gevaarlijke bestandspaden:

Saldoverificatie (Golden Rule)

Elke PDF-extractie wordt geverifieerd met de formule: opening balance + credits − debits == closing balance. Resultaten worden gemarkeerd als VERIFIED, DISCREPANCY of FAILED. Afwijkingen kunt u interactief beoordelen met --type review.

Deterministische uitvoer

Voor gestructureerde formaten (CAMT, PAIN.001, CSV, OFX, QFX, MT940) produceert de parser bij hetzelfde invoerbestand elke run byte-identieke uitvoer. Geen willekeur, geen modelinferentie, geen heuristische bemonstering. Dit is essentieel voor:

Supply-chainbeveiliging

Lokaal verifiëren

python -m pytest                          # 718 tests, 100% branch coverage
python scripts/verify_locked_hashes.py    # SHA-256 hash verification
git log --show-signature -1               # Verify commit signature