Bezpečnost od návrhu
Analyzátor bankovních výpisů je vytvořen pro zpracování citlivých finančních dat. Každé návrhové rozhodnutí upřednostňuje bezpečnost, soukromí a auditovatelnost.
Nulový přístup k síti
Veškeré zpracování probíhá lokálně ve vašem prostředí. Knihovna nevykonává žádná API volání, žádná cloudová připojení a neshromažďuje žádnou telemetrii. XML parsery jsou explicitně nakonfigurovány s no_network=True, resolve_entities=False a load_dtd=False, aby se zabránilo jakémukoli odchozímu přístupu.
Maskování PII
Osobní identifikační údaje (jména, IBAN, poštovní adresy) jsou automaticky maskovány ve výstupu CLI a v streamovacím režimu. Ve výchozím nastavení je tato funkce zapnuta.
- CLI: Citlivá pole se zobrazují jako
***REDACTED*** - Streaming:
parse_streaming(redact_pii=True)(výchozí) - Exporty: CSV/JSON/Excel zachovávají kompletní data pro následné zpracování
- Volitelné: Použijte
--show-piineboredact_pii=False, pokud potřebujete nemaskovaný výstup
Zabezpečení XML (ochrana před XXE)
Veškerá analýza XML používá lxml se zpřísněným nastavením:
resolve_entities=False-- zabraňuje útokům na expanzi XML entitno_network=True-- blokuje veškerý odchozí síťový přístup z parseruload_dtd=False-- zabraňuje útokům založeným na DTD- Odstranění jmenných prostorů před zpracováním -- bezpečně zvládá jakoukoli variantu CAMT.053
Zabezpečení ZIP archivů
iter_secure_xml_entries() validuje každý člen ZIP před extrakcí:
- Limit velikosti záznamu: 10 MB na záznam (konfigurovatelné)
- Celkový limit velikosti: 50 MB celkem nekomprimovaných (konfigurovatelné)
- Limit kompresního poměru: výchozí 100:1 -- detekuje ZIP bomby
- Odmítnutí šifrovaných záznamů: Šifrované záznamy jsou přeskočeny s varováním
- Žádné zápisy na disk: XML bajty přecházejí přímo do parseru přes
from_bytes()
Prevence průchodu cestou
Validace vstupů blokuje nebezpečné cesty k souborům:
- Nulové bajty, vzory průchodu adresáři (
../) a symbolické odkazy jsou odmítnuty - Validace přípony souboru proti očekávaným formátům
- Limity velikosti souborů (výchozí 100 MB, konfigurovatelné)
Deterministický výstup
Pro stejný vstupní soubor parser vytváří bajtově identický výstup při každém spuštění. Žádná náhodnost, žádná modelová inference, žádné heuristické vzorkování. To je klíčové pro:
- Reprodukovatelnost auditu: Spusťte stejný soubor dvakrát a porovnejte výstup
- Regulatorní compliance: Prokázání konzistentního zpracování
- Ověření CI: 467 testů vynucuje determinismus se 100% pokrytím větví
Zabezpečení dodavatelského řetězce
- Závislosti uzamčené hashem SHA-256: Každý balíček v
poetry.lockmá ověřené hashe souborů - CycloneDX SBOM: Každé vydání obsahuje Software Bill of Materials
- Provenance buildu na GitHubu: Atestace propojuje každý artefakt se zdrojovým commitem
- Podepsané commity: Všechny commity jsou podepsány SSH a ověřeny v CI
- Ověření závislostí:
scripts/verify_locked_hashes.pyověřuje všechny hashe lokálně
Lokální ověření
python -m pytest # 467 testů, 100% pokrytí větví
python scripts/verify_locked_hashes.py # Ověření hashů SHA-256
git log --show-signature -1 # Ověření podpisu commitu