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, 威胁检测, 子域名变形, 安全运营中心, 安全防御工具, 无后门, 网络映射, 逆向工具