DuckyHax040/N-Guard
GitHub: DuckyHax040/N-Guard
N-Guard 是一款集静态分析、行为监控、机器学习与云端情报于一体的 Windows 平台开源 EDR 防御工具包。
Stars: 0 | Forks: 0
# 🛡️ N-Guard v1.0 高级 EDR 就绪恶意软件防御工具包
**N-Guard v1.0** 是一款企业级的 **终端检测与响应 (EDR)** 工具包,旨在保护 Windows 系统免受现代网络威胁的侵害。它集成了 **静态分析**、**行为监控**、**机器学习**、**云端智能** 和 **实时响应**,以检测、分析并清除恶意软件、勒索软件和网络攻击。
## ✨ 主要功能
| 类别 | 功能 |
|----------|----------|
| **🔍 静态分析** | – 哈希计算 (MD5, SHA1, SHA256)
– 通过魔数检测文件类型
– 深度 PE 分析(可疑导入、熵、加壳器、入口点异常、时间戳检查)
– 字符串提取(带大小限制)与启发式模式匹配 (URL、PowerShell、base64、勒索软件关键词)
– **YARA 规则扫描**(支持热重载) | | **🧠 机器学习** | – 基于文件特征(大小、熵、可疑导入、加壳状态、数字签名)训练的随机森林分类器
– 集成到威胁评分引擎中的实时概率评分 | | **☁️ 云端智能** | – **VirusTotal** 哈希查询(支持可选文件上传,大小限制为 32 MB)
– **AbuseIPDB** 针对外部连接的 IP 信誉检查 | | **📊 行为监控** | – **文件系统**(watchdog)—— 监控受监视目录中的文件创建/修改
– **进程** (psutil) —— 检测新进程、网络连接、文件访问、可疑命令行
– **网络** —— 检测端口扫描(SYN‑sent 追踪)并通过 Windows 防火墙自动阻止违规 IP
– **ETW (Windows)** —— 监控安全事件(进程创建)—— 需要管理员权限
– **注册表** —— 监控持久化位置 (Run, RunOnce, Services) | | **⚖️ 威胁评分** | 来自所有检测器的加权评分,产生判定结果:
– **CLEAN** (0‑4)
– **SUSPICIOUS** (5‑9)
– **MALICIOUS** (10‑14)
– **CRITICAL** (15+) | | **🚨 响应操作** | – 自动 **隔离**(带密码的 AES‑256 加密 ZIP)
– 通过 Sandboxie‑Plus **沙箱执行**(如果已安装)
– **进程终止**(受白名单保护)
– 用户决策的交互式提示
– 所有事件记录到 **SQLite** 数据库并在 **实时 Web 仪表板** 中显示 | | **🌐 Web 仪表板** | 使用 **Flask** 构建 —— 实时警报、系统统计信息,方便地在 `http://localhost:5000` 进行监控 | ## 📦 环境要求 - **Python 3.8+** - **Windows**(以获得完整的 EDR 功能;某些功能在 Linux 上也可用,但 ETW、注册表和防火墙阻止仅限于 Windows) - **管理员权限**(用于 ETW、防火墙阻止和部分注册表监控) ### Python 库 使用 `pip` 安装所有依赖项(参见 [安装](#installation)): ``` yara-python, requests, pefile, psutil, watchdog, python-magic, python-dotenv, pyzipper, joblib, scikit-learn, numpy, flask, pywin32 ``` ## 🔧 安装 ### 1. 克隆仓库 ``` git clone https://github.com/DuckyHax040/N-Guard.git cd N-Guard ``` ### 2. 创建虚拟环境(推荐) ``` python -m venv venv venv\Scripts\activate # On Windows ``` ### 3. 安装依赖项 ``` pip install -r requirements.txt ``` 如果未提供 `requirements.txt`,请手动安装: ``` pip install yara-python requests pefile psutil watchdog python-magic python-dotenv pyzipper joblib scikit-learn numpy flask pywin32 ``` ## ⚙️ 配置 ### API 密钥(可选但推荐) 在项目根目录下创建 `.env` 文件: ``` VT_API_KEY=your_virustotal_api_key_here ABUSEIPDB_API_KEY=your_abuseipdb_api_key_here ``` - **VirusTotal API key**: 从 [virustotal.com](https://www.virustotal.com) 获取(有免费层级)。 - **AbuseIPDB API key**: 在 [abuseipdb.com](https://www.abuseipdb.com) 注册。 如果未提供密钥,云端功能将被禁用。 ### YARA 规则 将您的 YARA 规则文件(`.yar` 或 `.yara`)放入 `rules/` 目录中。该工具会自动加载所有规则,并在检测到更改时 **热重载** 它们。 仓库中提供了示例规则。 ### 监控目录 默认情况下,该工具监控其自身的基础目录。您可以通过编辑代码中的 `Config.MONITORED_DIRS` 或添加您自己的配置机制(尚未通过 CLI 暴露)来更改此项。 ## 🚀 使用方法 N-Guard v1.0 提供三种操作模式: ### 1️⃣ 交互式 CLI 不带参数运行该工具以进入交互式菜单: ``` python n-guard.py ``` 您将看到: ``` Options: 1. Scan file 2. Scan directory 3. Start monitoring 4. Show recent alerts 5. Exit ``` ### 2️⃣ 命令行扫描 ``` # 扫描单个文件 python n-guard.py scan path/to/file.exe # 递归扫描目录中的所有文件 python n-guard.py scan path/to/directory ``` ### 3️⃣ 实时监控 ``` python n-guard.py monitor ``` 这将启动所有启用的监控器(文件、进程、网络、ETW、注册表)。Web 仪表板将在 [http://localhost:5000](http://localhost:5000) 上可用。按 `Ctrl+C` 停止。 ## 🌐 Web 仪表板 当监控模式处于活动状态时,打开浏览器并访问 `http://localhost:5000`。仪表板显示: - **最新警报**,包含时间戳、源、目标、评分和判定结果。 - **系统统计信息**(进程数、CPU、内存使用情况)。 仪表板每 2 秒自动刷新一次。 ## 📁 项目结构 ``` N-Guard/ ├── n-guard.py # Main application ├── .env # API keys (create this file) ├── requirements.txt # Python dependencies ├── rules/ # YARA rules directory (hot‑reload enabled) ├── quarantine/ # Quarantined files (AES‑encrypted ZIPs) ├── logs/ # Log files (N-Guard v1.0.log) ├── db/ # SQLite database (reputation.db) └── models/ # ML model storage (classifier.pkl) ``` ## 🧪 示例演练 1. **首次扫描** `suspicious.exe`: - 计算哈希值。 - 检测到 YARA 匹配 → 评分 +3。 - PE 分析显示加壳区段 → 评分 +2。 - VT 查询返回“未找到”,提示用户上传。 - 总评分 = 5 → **SUSPICIOUS**。 - 用户选择隔离。 2. **第二次扫描** 同一文件(隔离后): - 缓存命中:文件已在数据库中,评分为 5 → 立即返回结果。 3. **监控模式**: - 在监控目录中创建了一个新文件 `malware.exe`。 - FileMonitorHandler 触发扫描。 - ProcessMonitor 检测到一个连接到可疑 IP 的新进程。 - 针对 AbuseIPDB 检查 IP → 评分 80 → 生成警报。 - 添加防火墙规则以阻止该 IP。 ## 🛠 高级主题 ### 自定义评分权重 编辑 `n-guard.py` 中 `Config` 类里的 `SCORE_*` 常量。 ### 添加新检测器 该工具在设计时考虑了可扩展性。您可以添加新的监控或分析类,并将它们集成到 **N-Guard v1.0 Core** 中。 ### 作为 Windows 服务运行 要将 N-Guard v1.0 作为后台服务运行,您可以使用 **NSSM** (Non‑Sucking Service Manager) 或使用 `pythonw.exe` 和批处理脚本对其进行封装。 ## 🤝 贡献 欢迎贡献!请遵循以下步骤: 1. Fork 该仓库。 2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`)。 3. 提交您的更改 (`git commit -m 'Add some amazing feature'`)。 4. 推送到分支 (`git push origin feature/amazing-feature`)。 5. 打开一个 Pull Request。 ## 📄 许可证 本项目在 MIT 许可证下发布。 您可以在此查看完整许可证:https://github.com/DuckyHax040/N-Guard/blob/main/LICENSE.md ## ⚠️ 免责声明 **N-Guard v1.0 Pro** 仅供教育和防御用途提供。作者不对因滥用该工具造成的任何损害或损失负责。在监控或扫描您不拥有的系统之前,请务必确保您拥有适当的授权。 ## 📬 联系方式 如果您有任何问题、建议或遇到问题,请在 GitHub 上提出 issue 或通过 Telegram 联系维护者:https://t.me/hovercs **保持安全。保持安全。** 🛡️
– 通过魔数检测文件类型
– 深度 PE 分析(可疑导入、熵、加壳器、入口点异常、时间戳检查)
– 字符串提取(带大小限制)与启发式模式匹配 (URL、PowerShell、base64、勒索软件关键词)
– **YARA 规则扫描**(支持热重载) | | **🧠 机器学习** | – 基于文件特征(大小、熵、可疑导入、加壳状态、数字签名)训练的随机森林分类器
– 集成到威胁评分引擎中的实时概率评分 | | **☁️ 云端智能** | – **VirusTotal** 哈希查询(支持可选文件上传,大小限制为 32 MB)
– **AbuseIPDB** 针对外部连接的 IP 信誉检查 | | **📊 行为监控** | – **文件系统**(watchdog)—— 监控受监视目录中的文件创建/修改
– **进程** (psutil) —— 检测新进程、网络连接、文件访问、可疑命令行
– **网络** —— 检测端口扫描(SYN‑sent 追踪)并通过 Windows 防火墙自动阻止违规 IP
– **ETW (Windows)** —— 监控安全事件(进程创建)—— 需要管理员权限
– **注册表** —— 监控持久化位置 (Run, RunOnce, Services) | | **⚖️ 威胁评分** | 来自所有检测器的加权评分,产生判定结果:
– **CLEAN** (0‑4)
– **SUSPICIOUS** (5‑9)
– **MALICIOUS** (10‑14)
– **CRITICAL** (15+) | | **🚨 响应操作** | – 自动 **隔离**(带密码的 AES‑256 加密 ZIP)
– 通过 Sandboxie‑Plus **沙箱执行**(如果已安装)
– **进程终止**(受白名单保护)
– 用户决策的交互式提示
– 所有事件记录到 **SQLite** 数据库并在 **实时 Web 仪表板** 中显示 | | **🌐 Web 仪表板** | 使用 **Flask** 构建 —— 实时警报、系统统计信息,方便地在 `http://localhost:5000` 进行监控 | ## 📦 环境要求 - **Python 3.8+** - **Windows**(以获得完整的 EDR 功能;某些功能在 Linux 上也可用,但 ETW、注册表和防火墙阻止仅限于 Windows) - **管理员权限**(用于 ETW、防火墙阻止和部分注册表监控) ### Python 库 使用 `pip` 安装所有依赖项(参见 [安装](#installation)): ``` yara-python, requests, pefile, psutil, watchdog, python-magic, python-dotenv, pyzipper, joblib, scikit-learn, numpy, flask, pywin32 ``` ## 🔧 安装 ### 1. 克隆仓库 ``` git clone https://github.com/DuckyHax040/N-Guard.git cd N-Guard ``` ### 2. 创建虚拟环境(推荐) ``` python -m venv venv venv\Scripts\activate # On Windows ``` ### 3. 安装依赖项 ``` pip install -r requirements.txt ``` 如果未提供 `requirements.txt`,请手动安装: ``` pip install yara-python requests pefile psutil watchdog python-magic python-dotenv pyzipper joblib scikit-learn numpy flask pywin32 ``` ## ⚙️ 配置 ### API 密钥(可选但推荐) 在项目根目录下创建 `.env` 文件: ``` VT_API_KEY=your_virustotal_api_key_here ABUSEIPDB_API_KEY=your_abuseipdb_api_key_here ``` - **VirusTotal API key**: 从 [virustotal.com](https://www.virustotal.com) 获取(有免费层级)。 - **AbuseIPDB API key**: 在 [abuseipdb.com](https://www.abuseipdb.com) 注册。 如果未提供密钥,云端功能将被禁用。 ### YARA 规则 将您的 YARA 规则文件(`.yar` 或 `.yara`)放入 `rules/` 目录中。该工具会自动加载所有规则,并在检测到更改时 **热重载** 它们。 仓库中提供了示例规则。 ### 监控目录 默认情况下,该工具监控其自身的基础目录。您可以通过编辑代码中的 `Config.MONITORED_DIRS` 或添加您自己的配置机制(尚未通过 CLI 暴露)来更改此项。 ## 🚀 使用方法 N-Guard v1.0 提供三种操作模式: ### 1️⃣ 交互式 CLI 不带参数运行该工具以进入交互式菜单: ``` python n-guard.py ``` 您将看到: ``` Options: 1. Scan file 2. Scan directory 3. Start monitoring 4. Show recent alerts 5. Exit ``` ### 2️⃣ 命令行扫描 ``` # 扫描单个文件 python n-guard.py scan path/to/file.exe # 递归扫描目录中的所有文件 python n-guard.py scan path/to/directory ``` ### 3️⃣ 实时监控 ``` python n-guard.py monitor ``` 这将启动所有启用的监控器(文件、进程、网络、ETW、注册表)。Web 仪表板将在 [http://localhost:5000](http://localhost:5000) 上可用。按 `Ctrl+C` 停止。 ## 🌐 Web 仪表板 当监控模式处于活动状态时,打开浏览器并访问 `http://localhost:5000`。仪表板显示: - **最新警报**,包含时间戳、源、目标、评分和判定结果。 - **系统统计信息**(进程数、CPU、内存使用情况)。 仪表板每 2 秒自动刷新一次。 ## 📁 项目结构 ``` N-Guard/ ├── n-guard.py # Main application ├── .env # API keys (create this file) ├── requirements.txt # Python dependencies ├── rules/ # YARA rules directory (hot‑reload enabled) ├── quarantine/ # Quarantined files (AES‑encrypted ZIPs) ├── logs/ # Log files (N-Guard v1.0.log) ├── db/ # SQLite database (reputation.db) └── models/ # ML model storage (classifier.pkl) ``` ## 🧪 示例演练 1. **首次扫描** `suspicious.exe`: - 计算哈希值。 - 检测到 YARA 匹配 → 评分 +3。 - PE 分析显示加壳区段 → 评分 +2。 - VT 查询返回“未找到”,提示用户上传。 - 总评分 = 5 → **SUSPICIOUS**。 - 用户选择隔离。 2. **第二次扫描** 同一文件(隔离后): - 缓存命中:文件已在数据库中,评分为 5 → 立即返回结果。 3. **监控模式**: - 在监控目录中创建了一个新文件 `malware.exe`。 - FileMonitorHandler 触发扫描。 - ProcessMonitor 检测到一个连接到可疑 IP 的新进程。 - 针对 AbuseIPDB 检查 IP → 评分 80 → 生成警报。 - 添加防火墙规则以阻止该 IP。 ## 🛠 高级主题 ### 自定义评分权重 编辑 `n-guard.py` 中 `Config` 类里的 `SCORE_*` 常量。 ### 添加新检测器 该工具在设计时考虑了可扩展性。您可以添加新的监控或分析类,并将它们集成到 **N-Guard v1.0 Core** 中。 ### 作为 Windows 服务运行 要将 N-Guard v1.0 作为后台服务运行,您可以使用 **NSSM** (Non‑Sucking Service Manager) 或使用 `pythonw.exe` 和批处理脚本对其进行封装。 ## 🤝 贡献 欢迎贡献!请遵循以下步骤: 1. Fork 该仓库。 2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`)。 3. 提交您的更改 (`git commit -m 'Add some amazing feature'`)。 4. 推送到分支 (`git push origin feature/amazing-feature`)。 5. 打开一个 Pull Request。 ## 📄 许可证 本项目在 MIT 许可证下发布。 您可以在此查看完整许可证:https://github.com/DuckyHax040/N-Guard/blob/main/LICENSE.md ## ⚠️ 免责声明 **N-Guard v1.0 Pro** 仅供教育和防御用途提供。作者不对因滥用该工具造成的任何损害或损失负责。在监控或扫描您不拥有的系统之前,请务必确保您拥有适当的授权。 ## 📬 联系方式 如果您有任何问题、建议或遇到问题,请在 GitHub 上提出 issue 或通过 Telegram 联系维护者:https://t.me/hovercs **保持安全。保持安全。** 🛡️
标签:AbuseIPDB, Apex, Ask搜索, CISA项目, Conpot, CSV导出, DNS信息、DNS暴力破解, EDR, ETW, IP信誉检查, IP 地址批量处理, PE分析, PE 加载器, Python安全工具, VirusTotal, Windows安全, XXE攻击, YARA规则, 云安全监控, 云情报, 企业级安全, 加壳检测, 勒索软件防护, 启发式扫描, 哈希计算, 威胁评分, 字符串提取, 安全仪表盘, 实时响应, 恶意软件防御, 持久化检测, 数据包嗅探, 文件系统监控, 无线安全, 机器学习, 注册表监控, 熵检测, 端口扫描检测, 端点检测与响应, 网络安全, 网络安全审计, 网络攻击防护, 脆弱性评估, 脱壳工具, 行为监控, 逆向工具, 防火墙阻断, 随机森林, 隐私保护, 静态分析