防御性Windows安全应用程序,通过SMB监控、攻击检测、自动防火墙响应、配置审计和安全报告,为CVE-2017-0144(EternalBlue/MS17-010)提供补偿控制,适用于遗留和不支持的系统。
一款 Windows 桌面安全应用程序,为仍然暴露于 CVE-2017-0144(MS17-010 / EternalBlue) 的系统提供防御性补偿控制——最常见的是无法再接收微软官方安全更新的旧版或不支持安装的 Windows。
LegacyShield 不会修补底层 SMBv1 漏洞。 它通过监控、启发式检测、自动化(临时、可逆)防火墙缓解措施、结构化日志记录和专业报告来减少攻击面并提高可见性。应用官方的 MS17-010 更新,或升级到受支持的 Windows 版本,仍然是最终的修复方案。
本项目不包含任何漏洞利用代码、概念验证攻击代码、权限提升技术或任何攻击性工具。
| 功能 | 概要 |
|---|---|
| 系统评估 | 读取(仅读取,从不写入)Windows 版本、SMBv1 状态、139/445 端口暴露情况、防火墙状态、文件共享和网络配置文件。生成 0–100 的安全评分。 |
| SMB 监控 | 通过操作系统连接表轮询 TCP 139/445 端口,检测新的入站连接。不进行数据包捕获或负载检查。 |
| 检测引擎 | 可配置的启发式规则:连接突发、每分钟连接量、重复协商失败。 |
| 自动响应 | 创建临时、带标签、自动过期的 Windows 防火墙阻止规则,针对攻击来源;永远不会修改它未创建的规则;支持完全回滚。 |
| 日志记录 | 结构化的 JSON/CSV/纯文本日志,以及高严重性事件的 Windows 事件日志条目。 |
| 报告生成 | 安全报告(执行摘要)可导出为 JSON、HTML 或 PDF 格式。 |
| 桌面界面 | 基于 PySide6 的仪表盘、侧边栏导航、系统托盘通知。 |
| 后台服务 | 可选的基于 pywin32 的 Windows 服务,关闭界面后保护仍持续运行。 |
LegacyShield/
├── main.py # GUI 入口(+ 安装/卸载/回滚 CLI 命令)
├── legacyshield/
│ ├── core/ # 只读系统检查、评分、共享模型
│ ├── modules/ # 配置、检测引擎、响应引擎、白名单
│ ├── services/ # SMB 监控器、防火墙服务、后台 Windows 服务
│ ├── logging_/ # JSON/CSV/文本日志写入器 + Windows 事件日志镜像
│ ├── reports/ # JSON/HTML/PDF 报告生成器 + HTML 模板
│ └── ui/ # PySide6 主窗口、侧边栏、仪表盘、页面、托盘
├── config/default_config.json # 随附的默认配置
├── installer/ # PyInstaller 规范、构建脚本、清单、Inno Setup 脚本
├── tests/ # pytest 测试套件,包含模拟 Windows API 的测试
├── samples/ # 示例配置/日志/报告输出
└── docs/ # 下面引用的指南
有关完整设计(包括 UML 类图和时序图),请参阅 ARCHITECTURE.md。
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements-dev.txt
pytest tests/ -v
python main.py
GUI(
main.py)和 Windows 服务(legacyshield/services/background_service.py)需要 Windows +pywin32。核心/模块/服务的业务逻辑是平台无关的,其测试套件通过模拟的 Windows API 协议可在任何操作系统上运行——请参阅tests/mocks/windows_mocks.py。
pip install -r requirements-dev.txt
python installer/build.py # 先运行测试,然后 PyInstaller -> dist/LegacyShield.exe
iscc installer/installer.iss # 可选:Inno Setup -> dist/installer/LegacyShield-Setup-*.exe
这是一个防御性工程作品项目,用于展示 Windows 系统编程、监控/检测设计以及安全应用架构。该项目未附带特定许可证;在分发前请根据您的预期用途添加适当的许可证。