iqraashraf207/File-Integrity-Monitor
GitHub: iqraashraf207/File-Integrity-Monitor
一个基于 SHA-256 的文件完整性监控 CLI 工具,检测目录变更并输出结构化日志与报告。
Stars: 0 | Forks: 0
# 文件完整性监控器
一个轻量级的、基于 CLI 的文件完整性监控工具,使用 **SHA-256 加密哈希** 检测目录的未授权变更。
## 功能
FIM 对目录进行一次加密快照(基线)。在后续每次扫描(一次性或连续)中,它会重新计算哈希并与基线对比,以检测以下变更:
| 事件 | 描述 |
|---|---|
| `ADDED` | 出现了基线中不存在的文件 |
| `DELETED` | 基线中的文件已不存在 |
| `MODIFIED` | 文件内容已更改(哈希不匹配) |
所有事件会记录到 `fim.log` 并保存为结构化的 JSON 报告。
## 为何选择 SHA-256?
文件名和大小可能保持不变,但文件内容被静默修改。SHA-256 让这种篡改无法隐藏,哪怕仅有一个字节发生变化,也会产生完全不同的 256 位哈希。这就是为什么完整性校验是以下场景的核心技术:
- 基于主机的入侵检测系统(HIDS)
- 勒索软件检测流水线
- 合规性审计(PCI-DSS、HIPAA)
## 快速开始
```
# 克隆仓库
git clone https://github.com/your-username/file-integrity-monitor.git
cd file-integrity-monitor
# (可选)创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
```
## 用法
### 1 — 构建基线
对当前目录状态进行快照:
```
python fim.py --baseline --dir ./target
```
这将创建 `baseline.json` —— 一个将每个文件路径映射到其 SHA-256 哈希的映射表。
### 2 — 一次性检查
将当前状态与基线进行比较:
```
python fim.py --check --dir ./target
```
示例输出:
```
[2024-11-15 14:32:01] [WARNING] ⚠ 2 anomaly(ies) detected!
[2024-11-15 14:32:01] [WARNING] [MODIFIED] config/settings.cfg
[2024-11-15 14:32:01] [WARNING] [ADDED] uploads/shell.php
```
### 3 — 持续监控
每 N 秒轮询目录一次:
```
python fim.py --monitor --dir ./target --interval 30
```
按 `Ctrl+C` 停止。
### 自定义基线路径
```
python fim.py --baseline --dir ./target --db snapshots/prod_baseline.json
python fim.py --check --dir ./target --db snapshots/prod_baseline.json
```
## 输出文件
| 文件 | 内容 |
|---|---|
| `baseline.json` | 初始的文件到哈希快照 |
| `fim.log` | 所有扫描事件的时间戳日志 |
| `report.json` | 包含已检测变更的最新扫描报告 |
## 运行测试
```
pytest tests/ -v
```
测试覆盖哈希正确性、确定性、内容变更检测以及三种异常类型(新增、删除、修改)。
## 项目结构
```
file-integrity-monitor/
├── fim.py # Core monitor (hashing, baselining, CLI)
├── requirements.txt
├── tests/
│ └── test_fim.py # Pytest test suite
└── README.md
```
标签:ETW劫持, HIDS, HIPAA, Homebrew安装, JSON报告, PCI-DSS, Python, SHA-256, x64dbg, 主机入侵检测系统, 加密哈希, 勒索软件检测, 变更检测, 合规, 哈希计算, 审计, 异常检测, 持续监控, 提示词模板, 文件完整性监测, 文件监控, 文档结构分析, 无后门, 日志记录, 目录监控, 轮询, 逆向工具