Güvenlik

Finansal Verilerinizi Nasıl Koruyoruz

Ozet: Bank Statement Parser tum verileri yerel olarak isler, varsayilan olarak PII'yi gizler, XXE saldirilarina karsi XML ayristirmayi guclendirir, LLM'leri Ollama uzerinden yerel calistirir ve SHA-256 hash kilitli bagimliliklar ile CycloneDX SBOM ile birlikte gelir.

Tasarımdan Gelen Güvenlik

Bank Statement Parser, hassas finansal verileri işlemek için tasarlanmıştır. Her tasarım kararı güvenliğe, gizliliğe ve denetlenebilirliğe öncelik verir.

Sıfır Bulut Bağımlılığı

Tüm işlemler çalışma zamanınız içinde yerel olarak gerçekleşir. Deterministik ayrıştırıcılar sıfır ağ çağrısı yapar. Hibrit PDF pipeline, yerel LLM çıkarımı için Ollama kullanır -- bulut API'lerine veri gönderilmez. XML ayrıştırıcıları no_network=True, resolve_entities=False ve load_dtd=False ile açıkça yapılandırılarak giden erişim engellenir.

PII Redaksiyonu

Kişisel olarak tanımlanabilir bilgiler (adlar, IBAN'lar, posta adresleri) CLI çıkışı ve streaming modunda otomatik olarak gizlenir. Bu, varsayılan olarak açıktır.

XML Güvenliği (XXE Koruması)

Tüm XML ayrıştırma lxml ile güçlendirilmiş ayarlar kullanır:

ZIP Arşiv Güvenliği

iter_secure_xml_entries() çıkarmadan önce her ZIP üyesini doğrular:

Yol Geçişi Önleme

Girdi doğrulama tehlikeli dosya yollarını engeller:

Bakiye Doğrulama (Altın Kural)

Her PDF çıkarımı şu denklemle doğrulanır: opening balance + credits − debits == closing balance. Sonuçlar VERIFIED, DISCREPANCY veya FAILED olarak etiketlenir. Tutarsızlıklar --type review ile etkileşimli olarak incelenebilir.

Deterministik Çıktı

Yapılandırılmış formatlar (CAMT, PAIN.001, CSV, OFX, QFX, MT940) için aynı girdi dosyası verildiğinde ayrıştırıcı her çalıştırmada bayt düzeyinde aynı çıktıyı üretir. Rastgelelik yok, model çıkarımı yok, buluşsal örnekleme yok. Bu şunlar için kritiktir:

Tedarik Zinciri Güvenliği

Yerel Olarak Doğrulayın

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