Believeinus/RAVEN

GitHub: Believeinus/RAVEN

RAVEN 是一款 Windows 11 本地安全检测工具,通过多维度扫描发现并帮助用户终止计算机上的远程访问软件、RAT 及监控程序,同时诚实报告每次扫描的能力边界与盲区。

Stars: 0 | Forks: 0

RAVEN — Remote Access & Visibility Examination Node
[![平台](https://img.shields.io/badge/platform-Windows%2011%20x64-0078D4?style=flat-square)](https://github.com/Believeinus/RAVEN) [![语言](https://img.shields.io/badge/C%23-.NET%208-512BD4?style=flat-square)](https://github.com/Believeinus/RAVEN) [![UI](https://img.shields.io/badge/UI-WPF%20%C2%B7%20Fluent-6A5ACD?style=flat-square)](https://github.com/Believeinus/RAVEN) [![运行](https://img.shields.io/badge/runs-fully%20offline-2E7D32?style=flat-square)](#-privacy) [![状态](https://img.shields.io/badge/status-in%20development-E8873A?style=flat-square)](#-status)
RAVEN 旨在查找运行在您计算机上的远程访问软件、RAT 以及屏幕或输入监控程序—— 然后帮助您阻止它们。它完全在本地计算机上运行。没有 服务器,无需账户,任何数据都不会离开您的计算机。 ## 🧭 决定一切的核心约束 最初的目标是*“铁证如山——如果这个工具说没有东西在监视我,那就真的没有。”* **这个标准是无法达到的,对于此类工具来说,假装能做到这一点是最危险的。** 内核 rootkit、Windows 之下的 hypervisor,或者是硬件级的 KVM-over-IP,都可以避开任何用户模式扫描器。因此,RAVEN 转而采取了另一种承诺: 由此得出三个不可妥协的原则: | | | |---|---| | **它绝不会说您的计算机是干净的** | 判定类型在*结构上*就没有 `Clean` 这个值,并且有测试断言其输出永远不会宣称安全。每一次判定都会附带本次扫描实际能检测到的范围说明。 | | **差异即为发现** | 进程和驱动程序会通过多个独立的内核接口进行枚举,并对结果进行比对。一个接口可见而对另一个接口隐藏的东西*正是*我们要找的结果。 | | **缺失的数据绝不是发现** | 权限限制会降低覆盖范围并增加一个明确的盲区。它绝不会凭空制造检测结果——本项目产生过的几乎所有误报都源于破坏了这条规则。| 每次扫描都会以一个**扫描完整性**面板和一个明确的*“本次扫描无法检测到的内容”*列表结束。这些不是脚注,而是核心产物。 ## 🖥️ 界面展示
RAVEN Scan view
The Scan view. Coverage is stated before any result is.

RAVEN Live watch view
Live watch — a scan samples one moment; this sees what happens between them.
## 🔍 检查范围 | 表面 | RAVEN 读取的内容 | |---|---| | **进程** | 每个正在运行的进程及其信任状态——包括基于**目录**签名的 Authenticode,因为 Windows 的大部分组件都是目录签名的,如果仅检查内嵌签名,会将一半的操作系统判定为未签名 | | **网络** | TCP/UDP 监听器和连接,并归因于所属进程 | | **Windows 自带的远程访问** | RDP、RDP 阴影、WinRM、OpenSSH、远程注册表、远程协助、SMB 以及 `netsh portproxy` 转发 | | **持久化** | 17 种自启动项——Run/RunOnce、启动文件夹、计划任务、服务、Winlogon、AppInit_DLLs、AppCertDlls、IFEO 调试器、COM 劫持、LSA 包、打印监视器、netsh 辅助程序、Active Setup、PowerShell 配置文件、WMI 事件订阅 | | **内核驱动程序** | 已加载模块列表、注册表项以及 `\Driver` 对象目录——这三个视图可能会产生分歧 | | **监控** | 屏幕捕获关联性以及全局输入 hook 的结构性特征 | ## ✨ 其他功能 - **识别已知工具**——基于远程访问和 RAT 家族软件目录进行识别—— 仅用作识别的*证据*,绝不作为定罪的依据。过时的目录会降低置信度,而不会提高严重性。 - **阻止运行,一切由您掌控。** 未经确认显示确切的命令及其影响,任何修复操作都不会运行。 - **绝不撒谎的白名单。** 每个条目都固定为其豁免文件的 SHA-256 值,因此一旦该文件被替换,该发现会立刻重新出现。被静默的项目仍然与所有其他项目列在同一界面上。 - **记忆并进行比较。** 每次扫描都会被记录并与上一次的扫描进行比对——如果某次扫描仅仅是看到的范围变小了,那么消失的发现绝不会被视为好消息。 - **导出**为 HTML 或 JSON 格式,并在写入文件前明确说明文件包含的内容。 - **在扫描之间进行监控**,使用实时的 ETW 跟踪,以检测那些在任何扫描察觉之前就启动、beacon(信标)并退出的软件。 ## 🛡️ 系统要求 - Windows 11, x64 - **启动时需要管理员权限。** 如果没有管理员权限,内核驱动程序身份、 `\Driver` 对象目录、安全事件日志、SMB 会话数据以及实时监控功能都将无法访问。 ## 🔒 隐私 一切都在本地计算机上进行。没有服务器,无需账户,也没有遥测数据。 扫描历史、白名单和基准数据存放在本地的 SQLite 数据库中。该数据库会 记录您计算机上正在运行的程序——包括程序路径、连接和用户名——因此,它值得像对待计算机上的其他任何敏感记录一样被妥善保管。导出的报告包含同等程度的详细信息,RAVEN 会在写入之前*提前*告知您。
为什么它拒绝告诉我我的计算机是干净的?
因为它无法得知。RAVEN 运行在用户模式下。运行在 Windows 内核、 Windows 之下的 hypervisor,或者连接到计算机的硬件中的代码,都可以在其执行的每一项检查中返回“干净”的答案。 一个声称“您的计算机是干净的”工具,是在对它根本没有检查过的事物做出断言。RAVEN 报告的是它检查了什么,以及它无法检查什么——这听起来可能没那么令人安心,但却有用得多。
它标记了我自己安装的软件。这是一个 bug 吗?
不是。远程访问软件并不是恶意软件,而且 RAVEN 不会假装知道这台计算机的主人是谁。TeamViewer、RustDesk、VNC 及其相关软件被标记,是因为它们*可能*被用来对付您,而不是因为它们本身就是恶意的。 RAVEN 旨在回答的问题,其实只有您自己才能回答:*这是您设置的吗?* 如果是, 请将其静音——该条目已固定到该具体文件,因此如果二进制文件被替换,它会立刻重新出现。
为什么非提权扫描发现的东西更少?
因为它的可见范围更小,并且这一点会被如实报告,而不是被隐藏。Windows 会保留低于高完整性的内核镜像基址,拒绝访问 `\Driver` 对象目录,并关闭安全事件日志。 RAVEN 绝不会将“我无法查看”视为“那里什么都没有”。这些缺口会在每次扫描中被单独列出,并且在与提权扫描进行比较时会带有警示,说明两者并不等同。
## 🚧 状态 正在积极开发中,尚未正式发布。已发布的可执行文件未签名,因此 SmartScreen 会在首次运行时发出警告。代码签名问题尚未解决。

Believeinus 构建
标签:.NET 8, Windows 11, WPF, 反间谍软件, 系统防御