headlessripper/Aria-Security
GitHub: headlessripper/Aria-Security
一款基于机器学习的 Windows 杀毒与系统防御平台,融合多层检测引擎与实时防护能力,通过本地 Web UI 提供统一安全管理。
Stars: 1 | Forks: 0
# Aria 安全
一款基于 AI 的 Windows 杀毒与系统防御平台。
Aria 结合了基于真实机器学习的 PE 分类器与 YARA 规则、哈希签名、证书信誉和行为分析,并搭配了实时的网络、勒索软件、漏洞利用程序和可移动存储保护功能——所有这些都由一个本地 Web UI 和内置的安全助手驱动。
## 核心亮点
- **真实的 ML 检测。** 一个基于完整 EMBER 2018 标注集(30 万个正常样本 / 30 万个恶意样本)训练的 LightGBM 模型,并导出为 ONNX。**保留集 AUC 为 0.99755。**
- **四层文件判定。** ML 评分、模糊/导入哈希、YARA 规则和 Authenticode 证书信誉通过显式的优先级策略进行融合,而不是仅依赖单一信号。
- **实时保护。** 网络信誉/IOC 阻断、勒索软件金丝雀和熵分析、漏洞利用链检测、行为规则,以及端口扫描 / SYN 泛洪防御。
- **覆盖所有驱动器。** 实时监控涵盖用户配置文件以及每个已连接的固定和可移动驱动器——包括 U 盘和外部 HDD/SSD——并且支持无需重启即可识别后续插入的驱动器。
- **Sentinel Sense。** 追踪每个安装程序在计算机上的写入内容,并在卸载后,以数据树的形式显示残留文件,同时提供将其移除的选项。
- **Argus。** 一个内置的安全助手,*无需*模型即可运行(通过真实工具进行确定性命令路由),并在存在本地 GGUF 模型时提供更丰富的功能。破坏性操作需要确认授权。
## 架构
```
┌──────────────────────────────┐
│ UI: Flutter shell / WebView │ custom frameless window
└──────────────┬───────────────┘
│ HTTP + Socket.IO
┌──────────────▼───────────────┐
│ Flask app (127.0.0.1:8765) │ 85 REST routes, live events
└──────────────┬───────────────┘
│
┌───────────────────┼────────────────────┐
│ │ │
┌──▼──────────┐ ┌─────▼────────┐ ┌────────▼────────┐
│ Detection │ │ Protection │ │ Support │
│ engine │ │ services │ │ services │
│ ML · YARA │ │ network · │ │ vault · history │
│ hash · cert │ │ ransom · │ │ scheduler · │
│ · fusion │ │ exploit · │ │ whitelist · │
│ │ │ storage │ │ sense · Argus │
└──────┬──────┘ └──────┬───────┘ └────────┬────────┘
└────────────────┼───────────────────┘
┌──────▼───────┐
│ SentinelBrain│ event bus + protection level
└──────────────┘
```
UI 是一个纯客户端:它仅通过 HTTP 和 Socket.IO 进行通信,因此引擎或服务对其具体的显示方式完全无感知。
## 系统要求
- Windows 10/11 (x64)
- Python 3.11(用于从源码运行)
- 管理员权限 —— 杀毒软件需要此权限来配置防火墙规则和进行隔离
- 可选:[WebView2 运行时](https://developer.microsoft.com/microsoft-edge/webview2/)
用于 Flutter 外壳(Windows 11 已预装)
## 从源码运行
```
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\python SentinelUI_Flask.py
```
这将启动后端并打开桌面窗口。要以无头模式运行并改用浏览器,请传入 `--no-elevate` 并打开 。
## 构建
### 桌面应用程序
```
.venv\Scripts\python -m PyInstaller packaging\aria.spec --noconfirm
```
→ `dist\AriaSecurity\AriaSecurity.exe`(独立运行;无需 Python)
### Windows 服务
```
.venv\Scripts\python -m PyInstaller packaging\aria_service.spec --noconfirm
```
→ `dist\AriaService\AriaService.exe`
以管理员身份运行:
```
AriaService.exe install # register, auto-start
AriaService.exe start
AriaService.exe stop
AriaService.exe remove
AriaService.exe debug # run in the console
```
作为服务运行时,Aria 将以 **LocalSystem** 身份执行:保护机制在用户登录前即启动,在窗口关闭后依然保持运行,并且仅在安装时进行一次提权,而不会在每次启动时提示。
### UI 外壳 (Flutter)
```
cd Client
flutter pub get
flutter build windows --release
```
→ `Client\build\windows\x64\runner\Release\aria_shell.exe`
一个用于显示 UI 的极简无边框窗口。它**不会**启动后端。
### 安装程序
```
iscc packaging\Aria.iss
```
→ `dist\installer\AriaSecurity-Setup-.exe`
安装并注册服务,同时一并安装 UI 外壳。
## 数据存储位置
| 环境 | 位置 |
|---|---|
| 桌面运行 | `%USERPROFILE%\.AriaSecurity` |
| 服务 (LocalSystem) | `%ProgramData%\AriaSecurity` |
| 自定义覆盖 | `ARIA_DATA_DIR` |
存放白名单、隔离区、安全保险库、扫描历史记录、计划任务、Sense 映射和 Argus 历史记录。桌面端的数据会在服务首次启动时迁移至系统级目录中。
在 `%ProgramData%` 目录下,ACL 设置为 `SYSTEM`/`Administrators: FullControl`,
`Users: ReadAndExecute` —— 这是刻意为之,以确保非管理员用户无法篡改隔离区和白名单。所有的写入操作均通过服务执行。
**卸载程序会保留此目录** —— 被隔离的文件和保险库属于您的个人数据,而非安装产物。
## 检测引擎
| 防护层 | 功能说明 |
|---|---|
| **ML** | EMBER 2381 维特征 → LightGBM → ONNX。AUC 0.99755 |
| **Hash** | MD5/SHA-256 签名库 |
| **Fuzzy** | 导入哈希 + TLSH(在不可用时平滑降级) |
| **YARA** | 精选规则命名空间,支持用户从 UI 中自行扩展 |
| **Certificate** | 通过 WinVerifyTrust 验证 Authenticode,支持内嵌**及**目录签名 |
| **Fusion** | 基于上述所有层的显式优先级策略 |
使用您自己的数据集重新训练:
```
python -m Engine.Properties.vectorize_ember --data --out --split train --labeled-only
python -m Engine.Properties.train --data --format ember --max-rows 200000
```
`--max-rows` 用于限制类别平衡子样本的数量,以确保训练过程能容纳于可用的 RAM 中。
## 内核驱动程序(仅供开发/测试使用)
`Plugins/Filter/` 包含一个文件系统 minifilter,它会在打开文件时进行扫描,若发现感染则通过 FltMgr 端口咨询用户模式引擎,并以 `STATUS_VIRUS_INFECTED` 拦截受感染的打开操作。它采用**故障开放(fails open)**设计:如果没有连接桥接或往返超时,访问将被允许。
它可以编译(`build.bat`,WDK),但**在开发高度上仅进行了测试签名**。加载它需要开启测试签名模式并重启计算机,而且有缺陷的内核驱动程序可能会导致系统蓝屏崩溃 —— **请务必在虚拟机 (VM) 中使用**。生产环境分发需要 EV 证书、Microsoft 证明签名 (attestation signing) 以及已分配的高度;详见 `Plugins/Filter/README.md`。
Aria 的其余部分均在用户模式下运行,完全不需要这些操作。
## 开发说明
```
.venv\Scripts\python -m pytest tests\ -q # test suite
.venv\Scripts\python scripts\verify_reachability.py # dead-code gate
```
`verify_reachability.py` 会从入口点遍历导入项,如果实时模块数量发生偏移,或者已废弃的 `cleanup/` 路径下的任何内容再次变得可达,则会报错终止。
设计文档和实施计划存放于 `docs/superpowers/` 目录中。
## 项目布局
```
Engine/ detection engine (compiler, ML, YARA, signatures, model)
Services/ protection + support services, brain, monitors
Argus/ embedded security assistant
Interface/ shared helpers, icons
Actions/ response actions (quarantine, terminate)
Config/ configuration and path resolution
templates/ the single-page UI
Client/ Flutter Windows shell
Plugins/Filter/ kernel minifilter (dev/test)
packaging/ PyInstaller specs + Inno Setup installer
tests/ test suite
docs/ design specs and plans
```
## 安全提示
- Aria 需要管理员权限;这是其功能设计的固有要求。
- `Config/Config.json` 中的 API 密钥以明文形式存储。请将该文件视为机密文件,切勿提交真实的密钥。
- 当前构建版本未签名,因此在使用代码签名证书进行签名之前,SmartScreen 在其他计算机上会发出警告。
- **严禁向此仓库提交 PE 二进制文件** —— Aria 自身的扫描器会隔离在 `.git` pack 对象中发现的 PE 字节,这会导致仓库损坏。构建输出被添加到 .gitignore 正是因为这个原因。
## 许可证
专有软件。完整的 *Aria Security AI Antivirus License Agreement* 已打包在 `Config/Sys_Config.py` 中,并在安装时展示。它授予了用于个人或内部商业用途的非排他性、不可转让的许可;不允许进行重新分发、再授权或逆向工程。
*Aria Security —— 由 Samuel Ikenna Great 开发。*
标签:Apex, CNCF毕业项目, DNS 反向解析, EDR, Flask, Flutter, IP 地址批量处理, YARA, 云资产可视化, 机器学习, 漏洞挖掘, 知识库安全, 终端安全, 网络信息收集, 网络安全审计, 脆弱性评估, 逆向工具, 防病毒软件