🛡️ Aegis Antivirus
一款开源、基于 Rust 驱动的防病毒和持久化扫描工具,专为 Windows 10/11 设计。
## 项目描述
**Aegis** 是一款原生 Windows 桌面防病毒软件,建立在清晰的权限分离架构之上:Tauri + React UI 通过类型化的 IPC 边界与 Rust 引擎进行通信,该引擎负责所有的扫描、检测、隔离以及(计划中的)实时保护。每一项检测都是**可解释的**——风险得分由类型化的证据构建,绝不产生黑盒效应。
## 主要功能
- **多线程文件扫描器** — 递归遍历、处理隐藏文件/符号链接,SHA-256 + MD5 哈希计算,实时吞吐量/ETA 指标 (基于 Rayon)。
- **多层检测引擎** — 哈希签名 + YARA-X 规则 + 启发式检测(熵/加壳、双重及可疑扩展名、脚本及 PowerShell 滥用指标),采用 0–100 的累加风险得分以及从“安全”到“严重”的分级。
- **加密隔离保险库** — 静态存储使用 AES-256-GCM 加密,随机化二进制大对象 (blobs),SHA-256 完整性校验恢复,防范路径遍历,完整的审计日志。
- **Windows 持久化扫描器** — 涵盖启动文件夹、注册表 Run/RunOnce 键值、计划任务、服务、驱动程序、浏览器扩展以及 hosts 文件。
- **可解释的发现** — 每一项检测均包含人类可读的证据。
## 当前状态
后端引擎已完成实现并经过验证(包含测试 + clippy + 基准测试);React UI 正处于从设计原型迁移的过程中。
| 里程碑 | 状态 |
|-----------|--------|
| ✅ 阶段 1 — 基础架构 (workspace, DB, IPC, service 骨架) | 已验证 |
| ✅ 阶段 2 — 扫描引擎 (`aegis-scan`) | 已验证 |
| ✅ 阶段 3 — 检测引擎 (`aegis-detect`, `aegis-yara`, `aegis-signatures`) | 已验证 |
| ✅ 阶段 4 — 隔离系统 (`aegis-quarantine`) | 已验证 |
| ✅ 阶段 5 — Windows 安全扫描器 (`aegis-windows`) | 已验证 |
| 🚧 UI 迁移 (原型 → React) | 进行中 |
| ⏳ 实时保护、报告、更新程序、打包 | 计划中 |
详情请参阅 [`ROADMAP.md`](ROADMAP.md) 和 [`TASKS.md`](TASKS.md)。
## 架构概览
```
┌──────────────────────────────┐
│ Aegis Desktop UI │ Tauri v2 + React + TypeScript + Zustand
│ user-mode, non-privileged │
└──────────────┬───────────────┘
│ typed IPC boundary
┌──────────────▼───────────────┐
│ AegisService (Rust) │ owns privileged operations
└──────────────┬───────────────┘
│
┌──────────────▼───────────────┐
│ Engine crates │ scan · signatures · yara · detect ·
│ │ quarantine · windows
└──────────────┬───────────────┘
│
┌──────────────▼───────────────┐
│ SQLite (migrations + repos) │
└──────────────────────────────┘
```
完整设计:[`ARCHITECTURE.md`](ARCHITECTURE.md),
[`DETECTION_ENGINE.md`](DETECTION_ENGINE.md),
[`QUARANTINE_SYSTEM.md`](QUARANTINE_SYSTEM.md),
[`WINDOWS_SCANNER.md`](WINDOWS_SCANNER.md).
## 技术栈
| 层级 | 技术 |
|-------|------|
| 后端 | Rust, Tokio, Rayon, SQLite (rusqlite), Serde |
| 检测 | YARA-X, SHA-256/MD5, 自定义启发式 |
| 加密 | AES-256-GCM (隔离保险库) |
| 前端 | Tauri v2, React 18, TypeScript, Tailwind CSS, Zustand |
| 平台 | Windows 10 / 11 (MSVC 工具链) |
## 项目结构
```
aegis-antivirus/
├── crates/
│ ├── aegis-common/ # shared domain types
│ ├── aegis-ipc/ # IPC request/response/event contracts
│ ├── aegis-db/ # SQLite migrations + connection
│ ├── aegis-scan/ # multi-threaded file scanner
│ ├── aegis-signatures/ # SHA-256/MD5 signature database
│ ├── aegis-yara/ # YARA-X rule manager
│ ├── aegis-detect/ # detection engine + threat model
│ ├── aegis-quarantine/ # AES-256-GCM encrypted vault
│ ├── aegis-windows/ # Windows persistence scanner
│ ├── aegis-service/ # Windows service runtime
│ └── aegis-update/ # update metadata (planned)
├── src/ # React + TypeScript UI
├── src-tauri/ # Tauri app shell
├── migrations/ # SQLite schema migrations
├── design-prototype/ # source-of-truth UI prototype
└── *.md # architecture & phase docs
```
## 项目截图
## 开发设置
**前置条件**
- Rust stable (1.96+) 及 **MSVC** 工具链
- Visual Studio Build Tools — *使用 C++ 的桌面开发* 工作负载
- Node.js 20+ 和 npm
- WebView2 运行时 (Windows 11 自带)
完整的工具链说明请参阅 [`DEVELOPMENT.md`](DEVELOPMENT.md)。
## 构建指南
```
# Backend — 构建和测试 Rust workspace
cargo build --workspace
cargo test --workspace --exclude aegis-tauri
# Lint(deny warnings)
cargo clippy --workspace --exclude aegis-tauri --all-targets --all-features -- -D warnings
# Frontend
npm install
npm run build
# 运行 desktop app(dev)
npm run tauri dev
```
## 路线图
下一步计划:完成 UI 迁移、实时保护(文件/进程监控)、报告生成(JSON/HTML/PDF)、签名/规则更新程序,以及 Windows 打包和代码签名。完整计划请参阅 [`ROADMAP.md`](ROADMAP.md)。
## 安全提示
Aegis 是**正在积极开发中的实验性软件**。请**不要**将其作为生产环境设备上的唯一防护手段。测试固件在运行时会合成无害的类恶意软件标记(例如 EICAR 风格的字符串)——本代码库中不存储任何真实的恶意软件。隔离保险库使用 AES-256-GCM 对隔离文件进行加密;有关其密钥管理的局限性,请参阅 [`QUARANTINE_SYSTEM.md`](QUARANTINE_SYSTEM.md)。如需报告安全漏洞,请参阅 [`SECURITY.md`](SECURITY.md)。
## 贡献
欢迎您的贡献——有关环境设置、代码规范、测试要求和 PR 指南,请参阅 [`CONTRIBUTING.md`](CONTRIBUTING.md)。
## 许可证
基于 **Apache License 2.0** 授权 — 详情请参阅 [`LICENSE`](LICENSE)。