xdraceus/file-integrity-monitor
GitHub: xdraceus/file-integrity-monitor
基于 Python 和 SHA-256 的轻量级文件完整性监视器,通过建立基线哈希来检测文件的新增、修改和删除,适用于防御性安全监控与合规审计场景。
Stars: 0 | Forks: 0
# 🛡️ 文件完整性监视器 (FIM)
## 📌 概述
本项目使用 Python 和 SHA-256 哈希算法实现了一个轻量但高效的**文件完整性监视器 (FIM)**。
该监视器会建立文件的**已知良好基线**,并持续将当前文件状态与该基线进行比较,以识别:
- ✅ 新增文件
- ⚠️ 修改的文件
- ❌ 删除的文件
- 🔒 未更改的文件
该项目旨在模拟以下领域所使用的概念:
- 基于主机的入侵检测系统 (HIDS)
- 安全运营中心 (SOC)
- 数字取证与事件响应 (DFIR)
- 合规性与治理监控
- 企业变更检测系统
# 🧠 展示的网络安全技能
| 技能领域 | 展示的能力 |
|---|---|
| Python 安全自动化 | 自动化完整性验证 |
| 防御性安全工程 | 文件篡改检测 |
| 安全监控 | 变更监控工作流 |
| 密码学 | SHA-256 哈希 |
| 事件检测 | 基线偏差分析 |
| 安全编码 | 二进制安全的文件处理 |
| 日志与报告 | CLI + JSON + 文本导出 |
| 数字取证概念 | 痕迹完整性验证 |
| 检测工程 | 监控逻辑与比较 |
| SOC 运营 | 完整性事件报告 |
# 🏗️ 项目架构
```
file-integrity-monitor/
│
├── monitored_files/
│ ├── logs/
│ ├── text/
│ └── images/
│
├── src/
│ ├── hasher.py
│ ├── baseline.py
│ ├── monitor.py
│ ├── reporter.py
│ └── main.py
│
├── output/
│ └── .gitkeep
│
├── README.md
├── requirements.txt
└── .gitignore
```
# ⚙️ 核心组件
## 🔐 `hasher.py`
负责:
- SHA-256 哈希
- 二进制安全的文件读取
- 基于数据块的内存高效处理
### 安全相关性
使用密码学哈希来验证文件完整性并检测未经授权的修改。
## 📦 `baseline.py`
负责:
- 创建已知良好基线
- 存储基线元数据
- 加载基线数据
### 安全相关性
建立受信任的文件状态,类似于企业完整性监控系统。
## 🔍 `monitor.py`
负责:
- 将当前文件与基线哈希进行比较
- 检测:
- 新增文件
- 修改的文件
- 删除的文件
- 未更改的文件
### 安全相关性
复现以下场景中使用的核心完整性验证工作流:
- SOC 监控
- EDR/HIDS 工具
- DFIR 环境
## 📊 `reporter.py`
负责:
- CLI 报告
- JSON 报告导出
- 文本报告导出
### 安全相关性
支持:
- 事件文档记录
- 证据保存
- 告警生成
- 审计日志
## 🚀 `main.py`
负责:
- 运行应用程序
- 基线管理
- 完整性检查
- 用户交互
# 🔄 工作流
```
1. Create baseline
↓
2. Monitor files
↓
3. Detect changes
↓
4. Generate reports
↓
5. Investigate anomalies
```
# 🧪 检测场景示例
| 场景 | 检测结果 |
|---|---|
| 攻击者修改配置文件 | 已修改 |
| 恶意软件释放 payload | 新增 |
| 失陷后日志被删除 | 已删除 |
| 合法文件未被触及 | 未更改 |
# 📸 CLI 输出示例
```
File Integrity Monitor Report
========================================
Generated At: 2026-05-07T14:22:51
New Files: 1
Modified Files: 2
Deleted Files: 1
Unchanged Files: 7
Total Checked: 11
MODIFIED FILES
- text/server_config.txt
NEW FILES
- logs/suspicious.log
```
# 📁 报告输出
报告会自动导出至:
```
output/
```
格式:
- JSON
- TXT
- CLI
示例:
```
fim_report_20260507_142251.json
fim_report_20260507_142251.txt
```
# 🔒 密码学完整性验证
本项目使用:
```
SHA-256
```
为什么选择 SHA-256?
- 业界标准的密码学哈希算法
- 抗碰撞
- 广泛应用于安全工具中
- 在 DFIR 工作流中很常见
# 🛡️ 安全框架映射
# 📘 NIST 网络安全框架 (CSF)
| 功能 | 映射 |
|---|---|
| 识别 | 资产监控 |
| 保护 | 完整性保障 |
| 检测 | 未经授权的文件更改 |
| 响应 | 事件调查支持 |
| 恢复 | 基线恢复工作流 |
# 📘 CIS 控制措施映射
| CIS 控制措施 | 相关性 |
|---|---|
| CIS 控制措施 3 | 数据保护 |
| CIS 控制措施 8 | 审计日志管理 |
| CIS 控制措施 13 | 网络监控与防御 |
| CIS 控制措施 17 | 事件响应管理 |
# 📘 NIST SP 800-53 映射
| 控制 | 描述 |
|---|---|
| SI-7 | 软件、固件和信息完整性 |
| AU-6 | 审计审查与分析 |
| IR-4 | 事件处理 |
| CM-3 | 配置变更控制 |
# 🎯 CompTIA Security+ 映射
## 领域 1.0 — 通用安全概念
- 密码学哈希
- 完整性验证
## 领域 2.0 — 威胁、漏洞与缓解措施
- 恶意软件检测概念
- 持久化检测
- 未经授权的修改检测
## 领域 3.0 — 安全架构
- 防御性监控系统
- 完整性保障机制
## 领域 4.0 — 安全运营
- 日志分析
- 事件检测
- 监控工作流
- 报告
## 领域 5.0 — 安全项目管理
- 审计支持
- 合规性可见性
# 🎯 CompTIA CySA+ 映射
| CySA+ 技能领域 | 已展示 |
|---|---|
| 威胁检测 | ✅ |
| 日志监控 | ✅ |
| 安全自动化 | ✅ |
| 事件响应 | ✅ |
| 漏洞识别 | ✅ |
| 安全工具 | ✅ |
| 检测工程 | ✅ |
| DFIR 概念 | ✅ |
# 🧠 现实世界中的企业相关性
本项目展示了以下工具所使用的概念:
- Tripwire
- OSSEC
- Wazuh
- CrowdStrike
- Microsoft Defender
- Splunk 监控流水线
# 💻 使用的技术
| 技术 | 用途 |
|---|---|
| Python 3 | 核心语言 |
| hashlib | SHA-256 哈希 |
| pathlib | 文件处理 |
| json | 报告导出 |
| datetime | 时间戳 |
# 🚀 运行项目
## 1️⃣ 克隆仓库
```
git clone https://github.com/yourusername/file-integrity-monitor.git
cd file-integrity-monitor
```
## 2️⃣ 运行应用程序
```
python src/main.py
```
# 🧪 建议的测试
## 测试修改检测
编辑:
```
server_config.txt
```
然后重新运行完整性检查。
## 测试新增文件检测
将:
```
malware.exe
```
添加到被监控的文件中。
## 测试删除检测
删除:
```
auth.log
```
并重新运行监视器。
本项目作为一个专注于以下方向的网络安全作品集项目开发:
- 防御性安全工程
- 安全监控
- 事件检测
- 安全自动化
标签:AI红队测试, HIDS, JSON导出, Python, SHA-256, 主机入侵检测系统, 企业变更检测, 合规性监控, 哈希校验, 基线管理, 安全编码, 安全运营中心, 安全防御工程, 密码学, 异常检测, 手动系统调用, 数字取证与应急响应, 无后门, 日志与报告, 篡改检测, 系统完整性, 网络映射