Unmanaged-Bytes/bc-vigil
GitHub: Unmanaged-Bytes/bc-vigil
一个基于 Python 与 bc-hash 的计划任务文件完整性监控系统,提供 Web UI 与存储管理,解决基线比对与变更告警问题。
Stars: 0 | Forks: 0
# BitCrafts Vigil
Web 前端用于 [`bc-hash`](https://github.com/unmanaged-bytes/bc-hash)。注册文件树以
监控,调度周期性扫描,并检测与参考基线的完整性偏差
(`added` / `removed` / `modified`)。
同时提供一个 **Storage** 模块,展示每个挂载点的磁盘使用情况、数据库
备份/恢复/重置功能、FR/EN 界面切换,以及 100% 测试覆盖率保障。
## 要求
- Python 3.11+
- `bc-hash`(>= 1.0.0,且包含 `diff` 子命令)需在 `PATH` 中可用
## 安装(Debian 13 trixie — 生产环境)
从 GitHub Releases 页面下载最新的 `.deb` 包,然后执行:
```
sudo apt install ./bc-vigil_X.Y.Z-1_amd64.deb
systemctl status bc-vigil
curl http://127.0.0.1:8080/
```
该软件包会:
- 在 `/opt/venvs/bc-vigil/` 下安装一个嵌入式虚拟环境(支持离线使用)
- 创建一个 `bc-vigil` 系统用户
- 安装一个沙箱化的 systemd 服务单元,并启用及启动它
- 默认监听 `0.0.0.0:8080`(可通过 `/etc/bc-vigil/bc-vigil.env` 调整)
完整的部署、升级与回滚流程请参见 [packaging/README.md](packaging/README.md)。
## 开发
```
git clone https://github.com/unmanaged-bytes/bc-vigil.git
cd bc-vigil
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
pytest # full test suite (190 tests, 100 % coverage gate)
bc-vigil --reload # dev server on http://127.0.0.1:8080
```
## 配置
环境变量(全部以 `BC_VIGIL_` 为前缀):
| 变量 | 默认值 | 用途 |
|---|---|---|
| `BC_VIGIL_HOST` | `127.0.0.1` | 监听地址(`.deb` 包使用 `0.0.0.0`) |
| `BC_VIGIL_PORT` | `8080` | 监听端口 |
| `BC_VIGIL_DATA_DIR` | `./var` | SQLite 数据库与摘要目录 |
| `BC_VIGIL_BC_HASH_BINARY` | `bc-hash` | `bc-hash` 二进制文件路径或名称 |
| `BC_VIGIL_DEFAULT_ALGORITHM` | `sha256` | `crc32`、`sha256`、`xxh3`、`xxh128` |
| `BC_VIGIL_DEFAULT_THREADS` | `auto` | `auto`、`0` 或整数 |
| `BC_VIGIL_MAX_PARALLEL_SCANS` | `2` | 最大并发扫描数 |
| `BC_VIGIL_DISPLAY_TZ` | `UTC` | 显示时区(例如 `Europe/Paris`)— 数据库始终使用 UTC |
| `BC_VIGIL_SCAN_RETENTION_DAYS` | `0` | 自动清理超过 N 天的已完成扫描(0 表示关闭) |
## 数据模型
- **Target** — 名称 + 路径 + 算法 + 线程数 + 包含/排除规则
- **Schedule** — 附加到目标的 UTC cron 表达式
- **Scan** — 执行:`bc-hash hash` 生成摘要,`bc-hash diff` 与基线比较
- **Baseline** — 首次成功的扫描会自动成为基线;
在任意一次成功的扫描中点击“提升基线”按钮可采纳新的参考
- **IntegrityEvent** — 每行一条变更文件记录:`added` / `removed` / `modified`
## 架构
```
src/bc_vigil/
├── app.py, config.py, db.py, models.py, i18n.py # infra
├── core/ # dashboard, admin (backup/restore/reset), help, lang switch
├── integrity/ # bc-hash orchestration: targets, scans, schedules
└── storage/ # disk usage module (psutil)
```
`src/bc_vigil/templates/` 下的模板(FR 与 EN 字符串位于 `i18n.py`,
通过 Cookie 与 `/lang/
` 路由切换)。
## 许可证
MIT — 参见 [LICENSE](LICENSE)。标签:bc-hash, Debian, Python, SQLite, systemd, UI多语言, Web前端, x64dbg, 前端界面, 后台服务, 周期性扫描, 基线比对, 备份还原, 多语言支持, 存储管理, 安全测试框架, 定时任务, 嵌入式虚拟环境, 开发环境, 性能监控, 数据库备份, 文件修改, 文件删除, 文件哈希, 文件新增, 无后门, 沙箱, 测试覆盖, 生产部署, 磁盘用量, 系统健康检查, 系统打包, 系统服务, 系统服务管理, 系统用户管理, 网络监听, 覆盖率门控, 运维工具, 逆向工具, 重置数据库