MAVIS-creator/PaintGuard
GitHub: MAVIS-creator/PaintGuard
PaintGuard 是一款专攻 Paint Virus 恶意软件的企业级 Windows 安全响应平台,集成了文件完整性基线保险库、零数据丢失隔离、实时自愈修复和系统免疫加固功能。
Stars: 0 | Forks: 0
# 🛡️ PaintGuard 企业级网络安全事件响应与基线保险库套件
[](LICENSE)
[](#security--hardening-controls)
[](#architecture-overview)
[](#-quick-start-guide)
[](#2-zero-data-loss-quarantine-vault)
[](#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)。
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\
标签:AI合规, IPv6, Libemu, PowerShell, 库, 应急响应, 恶意软件清除, 文件完整性