Egyan07/VaultSentry

GitHub: Egyan07/VaultSentry

一款Windows备份完整性监控工具,通过SHA-256哈希验证和Shannon熵值分析检测篡改、勒索加密和文件损坏,提供每日摘要邮件和快照恢复功能。

Stars: 1 | Forks: 0

# VaultSentry v1.0 **Windows 备份完整性监控器** 每日夜间自动检测篡改、勒索软件加密、损坏、文件丢失、备份过期以及备份容量骤降。 ## 功能概述 VaultSentry 在首次运行时会对备份文件夹中的每个文件进行哈希计算,并将其存储为已知良好的基线。每天晚上,它会重新计算哈希值并进行比对。如果发现任何更改、丢失、损坏、疑似加密,或总备份大小下降的情况,它会触发警报。每日摘要邮件会在每天早上将所有信息汇总成一份清晰的报告。 **检测内容:** - 哈希变更 — 自基线以来的篡改或损坏 - 勒索软件加密 — 哈希变更 + 熵值飙升至 7.8 以上 - 勒索信 — 名为 `readme_decrypt`、`how_to_restore` 等的新文件 - 文件丢失 — 备份被删除或移动 - 备份过期 — 最新备份的时间早于配置的阈值 - 文件损坏 — ZIP/Excel/Word 结构验证失败 - 备份容量骤降 — 总大小较上次运行下降 ≥30% ## 功能特性 | 功能 | 详情 | |---|---| | SHA-256 哈希 | 加密级别的强完整性验证 | | Shannon 熵分析 | 无需特征码即可检测勒索软件加密 | | 4 步夜间流水线 | 基线验证 → 新文件扫描 → 期限检查 → 结构完整性 | | 备份容量趋势追踪 | 容量下降时警报,仪表盘显示迷你趋势图 | | 警报去重 | 24 小时内抑制相同警报 | | 每日邮件摘要 | 每天一份 HTML 摘要 —— 而非泛滥的单独警报邮件 | | 基线快照 | 命名的节点时间副本,比对任意两个快照以查看变化 | | 恢复能力 | 复制文件回原位并保留子文件夹结构 | | 桌面 GUI | 深蓝色仪表盘 —— 包含 Dashboard、Alerts、Reports、Restore、Snapshots、Settings | | Excel 报告 | 彩色编码的 3 页表格报告 | | 邮件警报 | SMTP 并进行正确的 TLS 证书验证 | | Windows Task Scheduler | 每晚 02:00 自动运行 | | CLI 模式 | 用于脚本编写的无头 (headless) 运行模式 | ## 系统要求 - Windows 10 或 11 - Python 3.10+ - `pip install openpyxl` — 用于生成 Excel 报告 ## 安装说明 ``` right-click Install_VaultSentry.bat → Run as administrator ``` 安装至 `C:\SecurityLogs\VaultSentry\`,创建计划任务,运行基线建立。 ## 使用说明 ``` python main.py --gui # Launch GUI python main.py --baseline # First-time baseline hash python main.py --verify # Nightly verification python main.py --snapshot "Before audit Mar 2026" # Save named snapshot python main.py --list-snapshots # List all snapshots python main.py --restore # Interactive CLI restore python main.py --digest # Send daily digest now python main.py --report # Generate Excel report python main.py --status # Quick console summary ``` ## GUI 标签页 | 标签页 | 功能 | |---|---| | **Dashboard** | 实时统计卡片、备份容量趋势迷你图(最近 14 次运行)、扫描控制、实时日志 | | **Alerts** | 完整警报历史、严重性筛选、详情面板 | | **Reports** | 生成并浏览 Excel 报告 | | **Restore** | 按状态筛选 → 预览计划 → 执行并提供逐文件覆盖提示 | | **Snapshots** | 保存快照、浏览文件、比对两个快照、删除旧快照 | | **Settings** | 配置查看器、路径检查、环境变量状态、快捷操作 | ## 邮件设置 **单独警报** — 在 `config.py` 中设置 `EMAIL_ENABLED = True`。 **每日摘要** — 设置 `DIGEST_ENABLED = True` 和 `DIGEST_TIME = 8`(发送时间,小时)。 摘要每天发送一封 HTML 邮件,包含完整摘要 —— 扫描结果、过去 25 小时内的所有警报以及状态横幅。单独的 CRITICAL 警报无论设置如何仍会立即触发。 将您的密码存储为环境变量 —— 切勿写在 config.py 中: ``` # 以管理员身份运行 PowerShell [System.Environment]::SetEnvironmentVariable( 'VAULTSENTRY_EMAIL_PASSWORD', 'your_app_password', 'Machine') ``` ## 测试 8 个模块共 162 个单元测试。覆盖率 73%。 ``` pip install pytest pytest-cov pytest tests/ -v ``` | 模块 | 测试数 | 覆盖内容 | |---|---|---| | `test_file_utils.py` | 35 | SHA-256、熵、文件遍历、完整性 | | `test_database.py` | 20 | DB 层 —— 表、约束、统计 | | `test_alerts.py` | 6 | 警报分发、去重、TLS 验证 | | `test_scanner.py` | 16 | 4 步验证流水线 | | `test_restore.py` | 20 | 恢复引擎 —— 计划、执行、边缘情况 | | `test_snapshots.py` | 23 | 快照 CRUD + 差异比对 | | `test_size_trend.py` | 12 | 容量追踪、骤降警报 | | `test_digest.py` | 30 | HTML/文本构建器、发送逻辑、调度 | ## 项目结构 ``` VaultSentry/ ├── main.py # Entry point — CLI + GUI launcher ├── config.py # All settings ← edit before deploying ├── logger.py # Rotating log handler ├── Install_VaultSentry.bat ├── Uninstall_VaultSentry.bat ├── .github/workflows/ci.yml # Python 3.10/3.11/3.12 CI ├── core/ │ ├── database.py # DB layer — all queries, stats, snapshots, size trend, digest data │ ├── alerts.py # Alert dispatcher — popup, msg.exe, email (TLS verified) │ ├── scanner.py # Baseline + 4-step verification + size drop check │ ├── restore.py # Restore engine — plan and execute │ ├── digest.py # Daily HTML digest builder and sender │ └── reports.py # Excel report generator ├── gui/ │ ├── app.py # Main window + tab switching │ ├── theme.py # Dark blue colour scheme │ ├── tab_dashboard.py # Stats + size trend sparkline + live log │ ├── tab_alerts.py # Alert history with filter │ ├── tab_reports.py # Generate + browse reports │ ├── tab_restore.py # Restore with preview + per-file prompts │ ├── tab_snapshots.py # Snapshot list, diff viewer, delete │ └── tab_settings.py # Config viewer + quick actions ├── utils/ │ └── file_utils.py # SHA-256, entropy, file walking, integrity check └── tests/ ├── conftest.py ├── test_file_utils.py ├── test_database.py ├── test_alerts.py ├── test_scanner.py ├── test_restore.py ├── test_snapshots.py ├── test_size_trend.py └── test_digest.py ``` ## 勒索软件检测原理 Shannon 熵用于衡量字节级别的随机性。正常文件的得分在 4.0–6.5 之间。加密文件的得分在 7.5–8.0 之间。当哈希值发生变化 **且** 熵值飙升至 7.8 以上时,VaultSentry 会触发 CRITICAL 警报:**RANSOMWARE SUSPECTED — BACKUP ENCRYPTED**。 容量趋势检查增加了第二层防护:如果总备份大小一夜之间下降 ≥30%,将触发第二个 CRITICAL 警报 —— 勒索软件在勒索信出现之前,通常会先删除原文件并用较小的加密版本替换。 ## 更新日志 **v1.0** *(当前版本)* *Phase 5 — 每日邮件摘要* - `core/digest.py` — `build_digest_html()`, `build_digest_text()`, `send_digest()`, `should_send_digest()` - HTML 摘要邮件 —— 状态横幅、扫描摘要表、警报表、Red Parrot 品牌 - 针对不支持 HTML 渲染的邮件客户端的纯文本回退 - `DIGEST_ENABLED` 和 `DIGEST_TIME` 配置选项 - 在满足时间条件后于 `--verify` 运行完自动触发;每天不重复发送 - `--digest` CLI 标志用于按需发送 - 数据库层中的 `get_digest_data()` —— 查询该时段的警报 + 上次扫描运行 - `test_digest.py` 中增加 30 个测试,覆盖率提升至 73% *Phase 4 — 备份容量趋势追踪* - 每次验证运行时存储 `total_backup_size` - 当大小较上次运行下降 ≥30% 时触发 CRITICAL 警报 - Dashboard 上的容量趋势迷你图(最近 14 次运行,骤降标红) - `get_size_trend()`, `get_previous_backup_size()`, `_calculate_total_backup_size()` - `test_size_trend.py` 中增加 12 个测试 *Phase 3 — 基线快照版本控制* - `snapshots` 和 `snapshot_files` DB 表 - `create_snapshot()`, `list_snapshots()`, `get_snapshot_files()`, `diff_snapshots()`, `delete_snapshot()` - Snapshots GUI 标签页,带分页差异查看器 (Added / Removed / Changed / Unchanged) - `--snapshot "label"` 和 `--list-snapshots` CLI 标志 - `test_snapshots.py` 中增加 23 个测试 *Phase 2 — 恢复能力* - `core/restore.py` — 计划并执行文件恢复,保留子文件夹结构 - Restore GUI 标签页 —— 筛选、预演预览、通过对话框进行逐文件覆盖提示 - `--restore` CLI 标志,带交互式提示 - `test_restore.py` 中增加 20 个测试 *Phase 1 — 测试 + CI* - 修复 `starttls()` → `ssl.create_default_context()` (MITM 漏洞) - 警报去重(24 小时冷却期) - 76 个测试,CI 支持 Python 3.10/3.11/3.12 ## 免责声明 VaultSentry 用于检测完整性违规 —— 它不会恢复文件或拦截勒索软件。请将任何 CRITICAL 警报视为需要立即处理的事件。 *由 Egyan | Red Parrot Accounting Ltd 构建*
标签:DeepSeek, HTML 报表, PB级数据处理, Ransomware Detection, SHA-256, TLS, Windows 安全工具, x64dbg, Zenmap, 任务计划, 备份恢复, 备份监控, 备份策略, 子域名变形, 安全运维, 异常检测, 数据完整性, 数据篡改检测, 文件哈希校验, 源代码审计, 熵值分析, 逆向工具, 邮件告警, 防勒索软件, 防御工具