Seguridad

Paano Namin Pinoprotektahan ang Iyong Financial Data

TL;DR: Pinoproseso ng Bank Statement Parser ang lahat ng data nang lokal, rine-redact ang PII bilang default, pinatitigas ang XML parsing laban sa mga XXE attack, pinapatakbo ang mga LLM nang lokal sa pamamagitan ng Ollama, at kasama ang SHA-256 hash-locked dependencies at CycloneDX SBOM.

Seguridad ayon sa Disenyo

Ang Bank Statement Parser ay binuo para sa pagproseso ng sensitibong data sa pananalapi. Ang bawat desisyon sa disenyo ay inuuna ang seguridad, privacy, at auditability.

Zero Cloud Dependency

Lahat ng pagproseso ay nangyayari nang lokal sa loob ng iyong runtime. Ang mga deterministikong parser ay gumagawa ng zero na tawag sa network. Ang hybrid PDF pipeline ay gumagamit ng Ollama para sa lokal na LLM inference — walang data na ipinapadala sa mga cloud API. Ang mga XML parser ay tahasang naka-configure gamit ang no_network=True, resolve_entities=False, at load_dtd=False upang maiwasan ang anumang papalabas na access.

PII Redaction

Ang personally identifiable information (mga pangalan, IBAN, mga postal address) ay awtomatikong rine-redact sa CLI output at streaming mode. Naka-on ito bilang default.

XML Security (XXE Protection)

Lahat ng XML parsing ay gumagamit ng lxml na may hardened na setting:

ZIP Archive Security

Bineberipika ng iter_secure_xml_entries() ang bawat ZIP member bago ang extraction:

Path Traversal Prevention

Hinaharangan ng input validation ang mga mapanganib na file path:

Beripikasyon ng Balanse (Golden Rule)

Bawat PDF extraction ay bineberipika gamit ang equation: opening balance + credits − debits == closing balance. Ang mga resulta ay tina-tag bilang VERIFIED, DISCREPANCY, o FAILED. Ang mga diskrepansya ay maaaring suriin nang interactive gamit ang --type review.

Deterministikong Output

Para sa mga structured na format (CAMT, PAIN.001, CSV, OFX, QFX, MT940), sa parehong input file, ang parser ay gumagawa ng byte-identical na output sa bawat run. Walang randomness, walang model inference, walang heuristic sampling. Kritikal ito para sa:

Supply Chain Security

I-verify nang Lokal

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