sandeep0428/usb-device-control-monitoring

GitHub: sandeep0428/usb-device-control-monitoring

一个面向 Windows 的 SOC 风格 USB 安全监控框架,实现实时检测、威胁情报联动与自动化报告。

Stars: 1 | Forks: 0

# USB设备控制与监控框架 ![Python](https://img.shields.io/badge/Python-3.10+-blue) ![Platform](https://img.shields.io/badge/Platform-Windows-lightgrey) ![License](https://img.shields.io/badge/License-MIT-green) 🚀 一个轻量级的**SOC风格USB安全监控框架**,能够实时检测、控制和分析USB设备活动。 专为**蓝队操作、端点监控和威胁检测模拟**而设计,本项目展示了实用的安全工作流程,包括设备控制、文件监控、威胁情报集成和自动报告生成。 ## ⭐ 关键亮点 - 实时USB威胁检测系统 - SOC风格的端点监控流程 - 集成威胁情报(VirusTotal API) - 结合预防、检测和报告 - 模块化且可扩展的架构 ## 功能 - 可移动存储设备USB设备检测 - 新检测到的USB设备允许或阻止决策 - 本地允许列表和阻止列表支持 - 插入USB驱动器上的实时文件监控 - SHA-256文件哈希 - VirusTotal哈希信誉查询 - 自动尝试删除被归类为恶意的文件 - 检测潜在敏感文件名,如 `password`、`token` 或 `credential` - 事件关联以标记可疑的批量复制和删除行为 - 会话日志和基于CSV的哈希历史记录 - 基于DOCX的关机报告生成 ## 项目结构 ``` usb-device-control-monitoring/ │ ├── config/ │ ├── allowlist.txt │ └── blocked.txt ├── screenshots/ │ ├── main.py ├── usb_monitor.py ├── file_monitor.py ├── device_manager.py ├── correlation_engine.py ├── hash_scanner.py ├── hash_logger.py ├── vt_checker.py ├── logger.py ├── popup.py ├── report_generator.py ├── shared_state.py ├── threat_intel.json ├── requirements.txt ├── README.md ├── LICENSE └── .gitignore ``` ## 🔄 工作流程 1. 插入USB设备 2. 验证设备(允许/阻止) 3. 监控文件活动 4. 对文件进行哈希并检查VirusTotal 5. 关联事件 6. 生成日志和DOCX报告 ## 工作原理 1. `main.py` 启动监控工作流程并初始化CSV日志记录。 2. `usb_monitor.py` 检测可移动驱动器并识别USB存储设备。 3. `device_manager.py` 询问用户是否允许或阻止未知设备。 4. `file_monitor.py` 扫描复制到USB驱动器的文件并监控后续更改。 5. `hash_scanner.py` 为每个文件生成SHA-256哈希。 6. `vt_checker.py` 检查文件哈希的VirusTotal信誉。 7. `correlation_engine.py` 跟踪快速复制/删除行为以标记可疑活动。 8. `threat_intel.json` – 存储分析期间使用的威胁情报数据 9. `report_generator.py` 在程序停止时创建最终的DOCX报告。 ## 📊 日志与报告 该框架在 `logs/` 目录中生成运行时日志和报告: - 事件日志(`.log`) - 哈希历史记录(`.csv`) - 调查报告(`.docx`) 注意:此目录在执行期间自动创建,并不包含在仓库中。 ## 要求 - Windows操作系统(使用WMI和pywin32) - 推荐使用Python 3.10或更高版本 - 可能需要管理员权限来启用/禁用设备操作 - VirusTotal查询需要互联网连接 ## 安装 ``` git clone https://github.com/sandeep0428/usb-device-control-monitoring.git cd usb-device-control-monitoring pip install -r requirements.txt ``` ## VirusTotal API密钥设置 本项目从名为 `VT_API_KEY` 的环境变量中读取VirusTotal API密钥。 ### Windows命令提示符 ``` set VT_API_KEY=your_api_key_here python main.py ``` ### Windows PowerShell ``` $env:VT_API_KEY="your_api_key_here" python main.py ``` ## 🔐 USB设备控制配置 应用程序使用两个配置文件: - `config/allowlist.txt` → 授权USB设备ID列表 - `config/blocked.txt` → 阻止的USB设备ID列表 ⚡ 注意: - 这些文件在首次运行时如果不存在将**自动创建**。 - 您可以手动编辑它们以允许或阻止特定USB设备。 ### 示例条目: USBSTOR\DISK&VEN_HP&PROD_V220W&REV_1100\2015091971 ## 用法 从根文件夹运行项目: ``` python main.py ``` 当检测到新的USB存储设备时: - 弹出窗口询问是否允许或阻止设备 - 监控插入的可移动驱动器上的文件活动 - 复制的文件会被哈希并检查VirusTotal - 恶意文件可能会自动删除 - 敏感活动会被写入日志文件 ## 🛑 停止程序 按 `Ctrl + C` 安全停止监控并生成最终报告。 ## 示例输出 ``` USB Monitoring System Started 2026-04-07 04:06:39 [INFO] CSV hash log initialized USB Monitoring Started... 2026-04-07 04:06:49 [INFO] USB INSERTED -> E:\ 2026-04-07 04:07:03 [INFO] Scanning file -> E:\New Text Document.txt 2026-04-07 04:07:03 [INFO] HASH -> 2026-04-07 04:07:04 [INFO] VT RESULT -> CLEAN | Ratio: 0/72 | Code: 200 ``` ## 📁 日志文件详情 该框架在 `logs/` 文件夹中存储输出: - `events_YYYY-MM-DD.log` - 所有事件 - `alerts.log` - 告警级别事件 - `threat_hash_log.csv` - 扫描的文件哈希历史记录 - `report_YYYY-MM-DD_HH-MM-SS.docx` - 关机时生成的调查报告 ## 📸 截图 ### 🔍 分析执行 ![执行](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/bc2246c018141524.png) ### 📊 生成的报告 ![报告](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/483d0ab034141531.png) ### 📊 生成的日志 ![日志](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4ad918e3f4141536.png) ![日志](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0394d8700d141542.png) ### 🧬 哈希历史记录日志(CSV) ![日志](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e853bed629141548.png) ## 当前优势 - 清晰的模块化设计 - 实用的命令行工作流程 - 预防、监控和日志记录的有用结合 - 实时USB事件处理 - 通过环境变量更好地处理API密钥 ## 当前限制 - 专门为Windows构建 - 依赖VirusTotal哈希信誉而非完整的沙箱分析 - 文件监控主要是基于轮询的,因此非常大的目录可能会影响性能 - `active_scans` 未受线程锁保护,因此大量并行活动可能导致竞态条件 - 插入USB时扫描现有文件,但摘要计数器主要针对新检测到的复制文件增加 - 当前生成的报告基于DOCX格式,可以扩展以支持PDF导出 ## 建议的未来改进 - 使用 `threading.Lock` 添加线程安全的扫描计数器 - 在可能的情况下用文件系统事件监视器替换轮询 - 添加可配置文件扩展名策略 - 使用文件大小、文件类型和时间阈值改进关联规则 - 导出PDF格式报告(除了现有的DOCX支持) - 添加结构化JSON日志记录以进行SOC风格分析 - 添加单元测试和特定异常错误处理 ## 致谢 本项目是在一个网络安全问题陈述的背景下开发的,反映了我自己的实现、设计决策和针对实用SOC用例的增强。 使用AI辅助工具来支持开发、优化和代码精炼。 ## 🛡️ 安全注意事项 - 永远不要将您的VirusTotal API密钥上传到GitHub - API密钥通过环境变量安全加载 - 日志和报告通过 `.gitignore` 排除 ## 许可证 本项目根据MIT许可证授权。详细信息请参见 `LICENSE` 文件。 ## 👨‍💻 作者 Sandeep Kumar
标签:AMSI绕过, Ask搜索, Cloudflare, MITRE ATT&CK, Python, SHA256哈希, USB安全, VirusTotal, Windows端点, 事件关联, 可移动介质, 威胁情报, 威胁检测, 安全模拟, 开发者工具, 开源安全工具, 敏感文件检测, 文件监控, 无后门, 端点安全, 端点监测, 自动化响应, 自动阻断, 补丁管理, 设备控制, 逆向工具, 逆向工程平台