MAVIS-creator/PaintGuard

GitHub: MAVIS-creator/PaintGuard

PaintGuard 是一款专攻 Paint Virus 恶意软件的企业级 Windows 安全响应平台,集成了文件完整性基线保险库、零数据丢失隔离、实时自愈修复和系统免疫加固功能。

Stars: 0 | Forks: 0

# 🛡️ PaintGuard 企业级网络安全事件响应与基线保险库套件 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Security Architecture](https://img.shields.io/badge/Security-Enterprise%20Grade-00f2fe.svg)](#security--hardening-controls) [![PowerShell Version](https://img.shields.io/badge/PowerShell-5.1%20%7C%207%2B-10b981.svg)](#architecture-overview) [![UI Framework](https://img.shields.io/badge/UI-Glassmorphism%20HTML5%20%2B%20Edge%20App-38bdf8.svg)](#-quick-start-guide) [![Quarantine Model](https://img.shields.io/badge/Quarantine-Zero--Data--Loss-f59e0b.svg)](#2-zero-data-loss-quarantine-vault) [![Integrity Vault](https://img.shields.io/badge/Vault-Hardened%20%2B%20Watchdog-10b981.svg)](#1-clean-file-integrity-baseline-vault) **PaintGuard Enterprise** 是一个事件响应、恶意软件修复、干净文件完整性保险库和免疫平台,旨在对抗 **Paint Virus** 恶意软件家族。Paint Virus 恶意软件的运行方式是将合法的用户可执行文件替换为 **844,288 字节 (825KB)** 的恶意 payload,使用 `Hidden` 和 `System` 属性将原始用户文件隐藏在 `v.exe` 下,并通过启动快捷方式、注册表 Run 键和 `autorun.inf` USB 钩子建立持久性。 PaintGuard 结合了**模块化 PowerShell 5.1/7+ 安全引擎**、**经过身份验证的环回 REST API 主机**、**零数据丢失隔离保险库**、**具有实时 watchdog 防护的强化干净文件基线保险库**,以及高科技的**毛玻璃拟态桌面用户界面**。 ## 📐 架构概述 ``` graph TD UI[PaintGuard UI / Edge App Window] -->|Bearer Token HTTP REST| HOST[PaintGuardEngine.ps1 REST Host] CLI[paintguard-cli.ps1] -->|Direct Cmdlet Calls| ENGINE subgraph ENGINE [PaintGuard Core Modules] DET[PaintGuard.Detection.psm1
Scored Twin-Pair & Hash Engine] REM[PaintGuard.Remediation.psm1
Quarantine Vault & Attribute Surgery] BASE[PaintGuard.Baseline.psm1
Clean-File Vault, Hardening & Watchdog] PER[PaintGuard.Persistence.psm1
Registry, Tasks, WMI & Defender Audit] VAC[PaintGuard.Vaccine.psm1
NTFS ACL Traps & AutoRun Hardening] REP[PaintGuard.Report.psm1
JSON Logger & HTML Report Generator] end HOST --> DET HOST --> REM HOST --> BASE HOST --> PER HOST --> VAC HOST --> REP BASE -->|Hardened ACL Storage| VAULT[(C:\ProgramData\PaintGuard\Vault)] BASE -->|Real-Time Self-Healing| WATCH[FileSystemWatcher Guard] REM -->|Zero-Data-Loss Storage| QVAULT[(C:\ProgramData\PaintGuard\Quarantine)] REP -->|Export| RPT[Executive Incident Report .html] ``` ## 🔥 关键安全特性 ### 1. 🏰 干净文件完整性基线保险库 将干净的可执行二进制文件快照保存到强化的本地存储库 (`C:\ProgramData\PaintGuard\Vault\`) 中: - **去重二进制存储**:保存按哈希去重的干净二进制大对象 (`blobs\.exe`)。 - **清单完整性**:`manifest.json` 会跟踪原始路径、SHA-256 哈希、文件大小、版本信息、创建/修改时间戳以及原始 NTFS ACL。 - **防篡改保护**:通过 `vault.sig` SHA-256 签名验证进行签名。 - **防投毒防御**:自动跳过受感染文件(844,288 B payload、`v`-孪生候选者或无法读取的文件)。 ### 2. 🔐 保险库强化与离线 USB 备份 - **访问控制列表 (ACL) 强化**:删除继承的权限,严格授予 `SYSTEM` 和 `Administrators` 完全控制权限,并明确拒绝 `Everyone`(读/写/删除/列出)的访问,以阻止非提权的恶意软件读取或破坏保险库。 - **离线 USB 导出**:`Export-PaintGuardBaseline` 和 `Import-PaintGuardBaseline` 可将保险库清单和大对象导出到离线 USB 驱动器,以便在遭受提权的管理员感染时进行气隙恢复。 ### 3. 🔄 3 层自我修复还原逻辑 当检测到文件损坏或感染时: 1. **第 1 层(原位孪生修复)**:如果存在隐藏的 `v` 孪生文件且其与基线清单哈希匹配,则剥离其属性并就地还原。 2. **第 2 层(保险库大对象还原)**:从 `blobs\.exe` 复制干净的二进制文件,重新应用原始的 ACL/时间戳/属性,并验证还原后的 SHA-256 哈希是否匹配。 3. **第 3 层(不可恢复警报)**:如果从未捕获过该二进制文件,则如实发出警报报告。 ### 4. 👁️ 实时 Watchdog 防护 - 在受保护的根目录(`Desktop`、`Downloads`、`Program Files`、USB 驱动器)上注册 `FileSystemWatcher`。 - 当任何 `.exe` 文件的写入或替换操作匹配 844,288 字节的 Paint Virus 签名时: 1. 立即将恶意 payload 隔离到 `Quarantine Vault`。 2. 从 `Baseline Vault` 自动还原原始干净的二进制文件。 3. 重新部署不可变的疫苗 ACL 陷阱。 ## 🚀 快速入门指南 ### 选项 1:启动桌面应用 UI(推荐) 右键点击 `Start-PaintGuard.ps1` 并选择 **使用 PowerShell 运行**(或从提权的 shell 中运行): ``` .\Start-PaintGuard.ps1 ``` ### 选项 2:系统管理员 CLI (`paintguard-cli.ps1`) 适用于恢复 shell、无头服务器或自动化脚本: ``` # 将干净系统 baseline 快照保存到 vault .\paintguard-cli.ps1 -CaptureBaseline # 对照 Vault manifest 验证磁盘文件 .\paintguard-cli.ps1 -VerifyIntegrity # 将 baseline vault 导出到离线 USB 驱动器 .\paintguard-cli.ps1 -ExportBaselinePath D:\PaintGuardVault # 启动实时自愈 Watchdog 防护 .\paintguard-cli.ps1 -StartWatchdog # 执行驱动器扫描、自动修复并生成 HTML 报告 .\paintguard-cli.ps1 -Scan -Drive C:\ -AutoRemediate -GenerateReport # 管理不可变系统 vaccine .\paintguard-cli.ps1 -EnableVaccine # 验证系统免疫状态 .\paintguard-cli.ps1 -VaccinateStatus ``` ## 🔌 REST API 参考 所有 REST API endpoint 均严格绑定到环回接口 (`127.0.0.1`),并需要 `Authorization: Bearer ` 请求头。 | Endpoint | Method | 描述 | | :--- | :---: | :--- | | `/api/status` | `GET` | 返回 REST 引擎运行状况、隔离计数、疫苗状态和 watchdog 状态 | | `/api/scan` | `POST` | 派发异步驱动器威胁扫描作业;返回 `jobId` | | `/api/jobs/{id}` | `GET` | 查询作业 `{id}` 的进度遥测和扫描结果 | | `/api/baseline/capture` | `POST` | 将干净的系统可执行文件快照保存到基线保险库 | | `/api/baseline/verify` | `GET` | 根据基线保险库清单验证磁盘文件 | | `/api/baseline/restore` | `POST` | 通过 3 层序列从保险库还原干净的二进制文件 | | `/api/baseline/export` | `POST` | 将基线保险库导出到离线 USB 媒体 (`{ DestinationPath: "..." }`) | | `/api/baseline/import` | `POST` | 导入离线基线保险库 (`{ SourceVaultPath: "..." }`) | | `/api/watchdog/start` | `POST` | 启动实时自我修复 `FileSystemWatcher` 防护 | | `/api/watchdog/stop` | `POST` | 停止 `FileSystemWatcher` 防护 | | `/api/quarantine` | `POST` | 将指定文件移动到隔离保险库 | | `/api/quarantine/vault` | `GET` | 检索隔离保险库中的项目目录 | | `/api/quarantine/restore` | `POST` | 通过 `{ QuarantineId: "..." }` 从保险库还原隔离文件 | | `/api/quarantine/purge` | `POST` | 通过 `{ QuarantineId: "..." }` 从保险库永久清除 payload | | `/api/persistence` | `GET` | 执行全面的持久化审计 | | `/api/persistence/repair` | `POST` | 修复恶意注册表键、计划任务和 WMI 钩子 | | `/api/vaccine/enable` | `POST` | 部署不可变的 ACL 虚拟陷阱并强化 AutoRun 策略 | | `/api/vaccine/disable` | `POST` | 移除疫苗目录陷阱 | | `/api/remediate-all` | `POST` | 执行一键全系统修复序列 | | `/api/report/export` | `POST` | 生成自包含的高管事件报告 `.html` 文件 | ## 📁 仓库结构 ``` Paint Virus Cleaner & Vaccine/ ├── LICENSE # MIT Open Source License ├── SECURITY.md # Threat model & vulnerability disclosure policy ├── CONTRIBUTING.md # Developer contribution guidelines ├── .gitignore # Git ignore file for logs and temp outputs ├── .gitattributes # Git line ending normalization rules ├── Start-PaintGuard.ps1 # GUI & REST Engine Bootstrap (Elevated Mutex Launcher) ├── PaintGuardEngine.ps1 # Authenticated REST Server (System.Net.HttpListener) ├── paintguard-cli.ps1 # Standalone SysAdmin Command Line Interface ├── PaintGuard-UI.html # High-Tech Cybersecurity Desktop Dashboard UI ├── Modules/ │ ├── PaintGuard.Detection.psm1 # Twin-pair scoring, hash matching, PE header checks │ ├── PaintGuard.Remediation.psm1 # Zero-loss quarantine vault, attribute surgery │ ├── PaintGuard.Baseline.psm1 # Clean-file baseline vault, ACL hardening & Watchdog │ ├── PaintGuard.Persistence.psm1 # Registry, scheduled tasks, WMI, Defender audit │ ├── PaintGuard.Vaccine.psm1 # NTFS ACL traps, FAT autorun.inf traps, registry policy │ └── PaintGuard.Report.psm1 # Incident logger & Executive HTML report builder ├── Audit-PaintVirus.ps1 # Legacy audit wrapper (Backwards compatible) ├── Safe-Malware-Sweeper.ps1 # Legacy sweeper wrapper (Backwards compatible) ├── Attributes.ps1 # Legacy attribute restoration wrapper (Backwards compatible) ├── Paint-Virus-Vaccine.ps1 # Legacy vaccine wrapper (Backwards compatible) ├── Final-Clearance-Check.ps1 # Legacy clearance check wrapper (Backwards compatible) └── RecoveryPlan.ps1 # Legacy recovery verification script ``` ## 🔒 安全与强化控制 1. **环回绑定**:HttpListener 专门绑定到 `127.0.0.1`,以防止远程 LAN 访问。 2. **加密 Bearer Token**:在运行时使用 `System.Security.Cryptography.RandomNumberGenerator` 生成。 3. **CORS 与 Origin 过滤**:严格将 origin 请求头限制为 `127.0.0.1:`。 4. **单实例 Mutex**:防止多个并发运行的清理程序实例造成竞争条件。 5. **零外部依赖**:使用标准的 Windows PowerShell 5.1/7+ 和 Microsoft Edge / 默认浏览器原生运行——不需要 Node.js、Python 或 npm 包。 ## 📜 License 基于 [MIT License](LICENSE) 分发。 有关安全准则,请参阅 [SECURITY.md](SECURITY.md)。 有关贡献细节,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
标签:AI合规, IPv6, Libemu, PowerShell, 库, 应急响应, 恶意软件清除, 文件完整性