Repository navigation
FinAnalyzer Enterprise v2.4.0
یادداشت انتشار FinAnalyzer Enterprise — نسخه 2.4.0
تاریخ انتشار: ۱۲ اوت ۲۰۲۶
وضعیت: آماده برای انتشار پس از ساخت در محیط ایزوله ویندوز
حوزه انتشار: لاگ ممیزی غیرقابلدستکاری، سختسازی وابستگیها و کنترل انتشار Windows EXE
این نسخه یک ارتقای امنیتی و عملیاتی است. هدف آن فراهمکردن قابلیت ردیابی قابلاتکا برای رخدادهای حساس سازمانی و جلوگیری از ساخت فایل اجرایی با وابستگیهای شناختهشده آسیبپذیر است.
خلاصه مدیریتی
FinAnalyzer 2.4.0 مدل لاگبرداری قبلی را به یک ثبت رویداد ساختاریافته، زنجیرهای و قابلراستیآزمایی ارتقا میدهد. هر رخداد جدید با یک HMAC-SHA256 که به هش رخداد پیشین متصل است امضا میشود. کلید امضا در ویندوز با DPAPI حفاظت میشود؛ بنابراین تغییر یک رکورد تاریخی، حذف یک حلقه از زنجیره یا جایگزینی جزئیات رخداد در بررسی صحت زنجیره آشکار خواهد شد.
همزمان، baseline ساخت ویندوز برای وابستگیهای pypdf و wheel اصلاح شد، وابستگی ناامن و بلااستفاده xhtml2pdf از مسیر انتشار حذف شد و وابستگی qifparse اختیاری شد. پیش از ساخت EXE، یک دروازه fail-closed وضعیت بستهها و نتیجه pip-audit را بررسی و فایلهای شواهد انتشار را ثبت میکند.
| حوزه | تغییر اصلی | اثر عملیاتی |
|---|---|---|
| ممیزی | زنجیره HMAC-SHA256 با checkpoint | کشف تغییرات در لاگهای ساختاریافته |
| حریم داده | پاکسازی فیلدهای حساس پیش از ذخیره | جلوگیری از ثبت token، password و secret در audit |
| مجوزدهی | رخدادهای allow/deny ساختاریافته | امکان بررسی دسترسیهای حساس و تلاشهای ناموفق |
| هویت | ثبت ورود، خروج، revoke و خطای ورود SSO | ردیابی چرخه نشست Entra/OIDC |
| بانکداری | ثبت Link، اتصال، sync، حذف و خطای Plaid | قابلیت پاسخگویی و بررسی عملیات بانکی |
| گزارشدهی | ثبت ایجاد schedule، تولید، تحویل و خطا | ردیابی گزارشهای خودکار و delivery خارجی |
| زنجیره تأمین | constraints و gate برای build ویندوز | جلوگیری از انتشار با بستههای مسدود یا آسیبپذیر |
ثبت ممیزی v2.4.0
مدل AuditLog علاوه بر متن legacy، اکنون شناسه رخداد، شماره توالی، شرکت، نشست، دسته، شدت، نتیجه، منبع، هدف، هش قبلی، هش فعلی و شناسه کلید را نگهداری میکند. جدول AuditChainState وضعیت آخرین رخداد امضاشده را نگهداری میکند تا ایجاد رخدادهای بعدی بهصورت ترتیبی و تراکنشی انجام شود. مهاجرت SQLite افزایشی است؛ یعنی ستونها و indexهای جدید به پایگاههای داده موجود افزوده میشوند و رویدادهای قدیمی بهعنوان legacy قابلتشخیص باقی میمانند.
| گروه رخداد | نمونه action | داده ساختاریافته کلیدی |
|---|---|---|
| Authorization | authorization.denied |
actor، permission، company، MFA، دلیل |
| Identity | identity.sign_in_succeeded |
provider، session، identity provider |
| Banking | bank.item_synced |
Plaid item، company، تعداد تغییرات |
| Reporting | report.delivered |
schedule، قالبها، کانال تحویل |
| Audit | audit.migration_checked |
وضعیت migration و شمارش legacy |
جزئیات رخداد پیش از ذخیرهسازی scrub میشود. کلیدهایی مانند access_token، refresh_token، password، secret، client_secret، authorization و cookie با مقدار [REDACTED] جایگزین میشوند. هیچ token خام، کلید رمزنگاری یا گذرواژهای نباید در audit log ثبت شود.
اصلاح وابستگیها و انتشار Windows EXE
| وابستگی / رفتار | تصمیم v2.4.0 | دلیل |
|---|---|---|
pypdf |
الزام >= 6.15.0 |
رفع یافتههای نسخه پایینتر در baseline انتشار |
wheel |
الزام >= 0.46.2 |
جلوگیری از استفاده از نسخه آسیبپذیر گزارششده |
xhtml2pdf |
حذف از مسیر runtime و build | نسخه 0.2.x برای PYSEC-2026-2056 / CVE-2024-25885 رفع منتشرشده ندارد |
qifparse |
اختیاری | نبود آن نباید مانع اجرای قابلیتهای اصلی شود |
pip-audit |
اجرای اجباری در gate | ممیزی محیط واقعی ساخت، نه فقط فایل requirements |
مسیر ساخت باید در یک virtual environment تازه و ایزوله ویندوز اجرا شود:
py -3.12 -m venv .venv-build
.\.venv-build\Scripts\Activate.ps1
py -m pip install --upgrade pip
py -m pip install -r requirements-windows-build.txt
py scripts\verify_windows_release.py
py build_exe.pyاگر verify_windows_release.py خطا برگرداند، ساخت release باید متوقف شود. این اسکریپت فایلهای security-reports/windows-build-dependencies.json و security-reports/pip-audit.json را بهعنوان شواهد قابلبازبینی تولید میکند. build_exe.py نیز در ویندوز همین gate را پیش از اجرای PyInstaller فراخوانی میکند.
تضمین کیفیت
مجموعه آزمون v2.4.0 شامل ایجاد زنجیره، پاکسازی داده حساس، کشف دستکاری، مهاجرت افزایشی schema و ثبت denial مجوزدهی است. این آزمونها همراه با آزمونهای SSO/MFA، RBAC/DPAPI، Plaid و گزارشدهی اجرا شدهاند.
| کنترل | نتیجه اعتبارسنجی |
|---|---|
| syntax compile برای ماژولهای امنیتی و integration | موفق |
| تستهای واحد و یکپارچه پروژه | ۱۷ تست موفق |
| تشخیص tamper در زنجیره HMAC | موفق |
| ثبت denial مجوزدهی با metadata ساختاریافته | موفق |
دروازه وابستگی Windows و pip-audit |
موفق در محیط اعتبارسنجی بهروزشده |
ملاحظات عملیاتی و ارتقا
۱. کلید امضای audit باید بخشی از backup و disaster-recovery سازمان باشد. در ویندوز، بازیابی همان زنجیره روی دستگاه/حساب دیگر به برنامه حفاظت و بازیابی DPAPI سازمان وابسته است.
۲. برای export یا انتقال لاگ به SIEM، ابتدا نتیجه AuditLogger.verify_chain() را ثبت کنید. خروجی نامعتبر باید بهعنوان رخداد امنیتی بررسی شود، نه صرفاً یک خطای نرمافزاری.
۳. تمامی buildهای release باید از محیط جدید، بدون xhtml2pdf و با manifest requirements-windows-build.txt انجام شوند. نصب مستقیم و کنترلنشده بستهها پس از عبور gate، مبنای صدور release نیست.
۴. این نسخه جایگزین کنترلهای زیرساختی مانند محدودیت دسترسی به فایل پایگاه داده، backup رمزنگاریشده، EDR، SIEM و policyهای Entra نیست؛ بلکه شواهد کاربردی مکمل آن کنترلها را فراهم میکند.
فایلهای کلیدی
| مسیر | کارکرد |
|---|---|
core/audit.py |
کلید امضا، HMAC chain، scrub و verify |
core/models.py |
مدلهای توسعهیافته AuditLog و AuditChainState |
core/database.py |
migration افزایشی v2.4.0 برای SQLite |
constraints-windows.txt |
حداقل نسخهها و exclusionهای امنیتی ویندوز |
requirements-windows-build.txt |
manifest ساخت ایزوله ویندوز |
scripts/verify_windows_release.py |
دروازه fail-closed وابستگی و pip-audit |
tests/test_audit_v24.py |
آزمونهای ممیزی ساختاریافته v2.4.0 |
برای جزئیات اجرایی dependency remediation و واکنش به خطای gate، سند docs/V2_4_AUDIT_AND_WINDOWS_RELEASE_FA.md را مطالعه کنید.