rounak1434/aegis-antivirus

GitHub: rounak1434/aegis-antivirus

一款基于 Rust 与 Tauri 构建的开源 Windows 防病毒软件,提供多层检测、加密隔离和可解释的扫描结果。

Stars: 0 | Forks: 0

🛡️ Aegis Antivirus

一款开源、基于 Rust 驱动的防病毒和持久化扫描工具,专为 Windows 10/11 设计。

Rust Tauri Windows YARA-X License

## 项目描述 **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)。
标签:可视化界面, 通知系统