ManagerOwen/File_Integrity_Monitor
GitHub: ManagerOwen/File_Integrity_Monitor
一款轻量级的 Python 文件完整性监控工具,通过哈希基线比对和风险分级检测关键文件的未授权更改,辅助 SOC 运营与事件响应。
Stars: 0 | Forks: 0
# 文件完整性监控系统 (FIM)
一款基于 Python 的防御性安全工具,使用加密哈希检测未经授权的文件更改 —— 在概念上类似于企业级的文件完整性监控解决方案,例如 *Tripwire*、*OSSEC* 和 *Wazuh*。
*作者:* Kajja Owen
网络安全分析师 | IT 支持专家
*网络安全专注领域:* SOC 运营 · 端点安全 · 事件响应 · 威胁检测 · 安全自动化
## 项目概述
文件完整性监控 (FIM) 是大多数安全框架(PCI-DSS、NIST 800-53、CIS Controls)中的核心控制措施,因为它能够检测关键文件(配置文件、可执行文件、系统文件)何时被未经授权地更改、添加或删除。这些更改通常是恶意软件感染、内部人员滥用或活跃入侵的早期指标。
本项目实现了一个轻量级、无依赖的 FIM 引擎,具备以下功能:
1. 为受监控目录中的每个文件构建 **可信基线**,记录其 SHA-256 哈希值和元数据。
2. 按需(或持续)重新扫描目录,并将当前状态与基线进行 **对比**。
3. 对每个检测到的更改进行分类 —— **已修改**、**新增** 或 **已删除** —— 并附带 **严重性级别**(LOW / MEDIUM / HIGH / CRITICAL),同时将其映射到相关的 **MITRE ATT&CK** 技术。
4. 生成适合 SIEM 摄取、工单系统或人工审查的 **JSON、CSV 和纯文本** 安全报告。
## 功能
- 对每个受监控文件进行 SHA-256(或 SHA-1/MD5)加密哈希处理
- 支持配置文件/扩展名排除的递归目录扫描
- 可信基线的创建、加载和受控更新
- 检测 **已修改**、**新增** 和 **已删除** 的文件
- 四级严重性分类(LOW / MEDIUM / HIGH / CRITICAL)
- 当单次扫描中出现多个未经授权的更改(勒索软件/大规模篡改的常见指标)时,自动升级为 CRITICAL
- 为每种事件类型提供 MITRE ATT&CK 技术映射
- 生成 JSON、CSV 和人类可读的文本报告
- 完整的审计日志记录至 `logs/fim.log`
- 具有可配置轮询间隔的持续监控模式 (`--monitor`)
- 使用 `argparse` 构建的命令行界面
- 无需任何第三方依赖(仅使用标准库)
## 架构
```
File_Integrity_Monitor/
│
├── main.py # CLI entry point / orchestration
├── file_scanner.py # Recursive file discovery
├── hash_engine.py # SHA-256 hashing
├── baseline_manager.py # Trusted baseline create/load/update
├── integrity_checker.py # Baseline vs. current-state comparison
├── alert_manager.py # Severity classification + alert formatting
├── report_generator.py # JSON / CSV / text report generation
├── config.json # System configuration
│
├── monitored_directory/ # Example files being watched
├── baseline/ # Stored trusted baseline (baseline.json)
├── reports/ # Generated JSON / CSV / TXT reports
├── logs/ # fim.log audit trail
│
├── requirements.txt
├── README.md
└── sample_output.txt # Example end-to-end run
```
每个模块都有单一的职责,这使得系统易于测试、扩展和推理 —— 这与生产级安全工具中使用的模块化设计理念相同。
**设计说明:** 在这个作品集项目中,基线存储为本地 JSON 文件。在生产部署中,它还需要受到严格文件权限的保护,存储在单独的/只读的介质上,并对其本身进行完整性检查(例如通过签名),这样当攻击者篡改受监控的文件时,也无法悄悄编辑基线来掩盖更改。
## 安装
```
git clone https://github.com/ManagerOwen/File_Integrity_Monitor.git
cd File_Integrity_Monitor
# 可选 — 仅用于 bonus real-time/colored-output 功能
pip install -r requirements.txt
```
需要 Python 3.10+(使用了现代 type-hint 语法)。
## 用法
创建可信基线(首先运行此命令,并在每次审查和批准更改后再次运行):
```
python main.py --create-baseline
```
针对基线运行单次完整性扫描:
```
python main.py --scan
```
运行扫描并生成 JSON/CSV/文本报告:
```
python main.py --report
```
持续监控目录(按 `config.json` 中定义的间隔进行轮询):
```
python main.py --monitor
```
指定不同的目录:
```
python main.py --scan --directory /path/to/other/directory
```
## 示例输出
```
=====================================
FILE INTEGRITY ALERT
=====================================
Event Type:
MODIFIED FILE
File:
important_config.conf
Severity:
HIGH
Previous Hash:
d73bb3fec31c1a3f69d84fd7cc5c9d7ad0333693a51ddd5aabb70fa6b135284f
Current Hash:
08ff79df1147cb6c476cef41c98903e3d7971f70ca1518a026894b5855a91f86
Timestamp:
2026-07-20 09:13:40
MITRE ATT&CK Reference:
T1565 - Data Manipulation
Recommendation:
- Verify change authorization with the responsible team.
- Investigate recent user and process activity on the host.
- Review system and application logs around the timestamp.
- Check the file and host for signs of malware infection.
=====================================
```
有关涵盖四种场景的完整演示,请参阅 [`sample_output.txt`](sample_output.txt):常规的低风险更新、未经授权的敏感配置更改、可疑的新可执行文件以及已删除的系统配置文件 —— 展示了它们分别如何被归类为 LOW、HIGH、CRITICAL 和 CRITICAL。
## 涵盖的安全概念
- 使用 SHA-256 的 **加密完整性验证**
- EDR/FIM 代理使用的 **端点安全监控** 模式
- **数字取证基础** —— 建立可信基线并检测与其发生的偏离
- **威胁检测与分诊** —— 基于 SOC 预案构建的严重性分类和升级逻辑
- **MITRE ATT&CK 映射** —— 将观察到的事件(数据篡改、指标清除、自启动执行)与已知的攻击者技术联系起来
- **安全自动化** —— 计划/持续扫描和自动生成报告
- **审计日志** —— 用于事件调查的、持久且带有时间戳的所有安全相关活动记录
## 未来改进
- 使用 `watchdog` 库进行实时监控,而不是轮询
- 风险评分计算,综合考量严重性、资产敏感度和更改频率
- 基于 SQLite 的哈希比对历史记录,用于长期趋势分析
- HTML 安全仪表板报告
- 模拟的邮件/webhook 告警发送
- 对基线文件进行数字签名,以检测基线篡改
- 与真实的 SIEM 集成(例如通过 Syslog/CEF 输出)
## 免责声明
这是一个出于教育和演示目的而构建的防御性安全作品集项目。示例演示中提到的 `suspicious_tool.exe` 是一个纯文本占位符文件,仅用于演示检测逻辑 —— 它不包含任何可执行代码,也不是恶意软件。
标签:AMSI绕过, API接口, DNS 反向解析, Python, x64dbg, 威胁检测, 子域名变形, 安全运营中心, 安全防御工具, 无后门, 网络映射, 逆向工具