erangross27/redoubt
GitHub: erangross27/redoubt
一款基于 Rust 的自主端点防御工具,内置从零训练的设备端推理模型,通过学习每台机器的行为基线来检测并自主响应威胁。
Stars: 0 | Forks: 0
# Redoubt
**一款自主的端点防御工具 —— 为攻击者同样也是 agent 的世界而生。**
**[Redoubt 官网 ↗](https://erangross27.github.io/redoubt/)** · **[下载 v0.1.0 ↗](https://github.com/erangross27/redoubt/releases/latest)**
[](https://github.com/erangross27/redoubt/actions/workflows/ci.yml)
[](LICENSE)



威胁已经改变。攻击者不再是在键盘前运行已知工具的人类;而是一台能够独立进行探测、变异和移动的快速、自适应机器。特征码和静态规则是为旧世界构建的。Redoubt 则是为新世界而生。
Redoubt **自主决策并采取行动。** 它不会等待特征码更新或人类分析师。它会学习*这台*机器上“正常”的状态,并在此上下文中判断每一个与安全相关的事件,**消除不属于这里的一切** —— 自主地、在设备端、在微秒级完成。在强制模式下,它会亲自阻断威胁;全程无需人工干预。
因为它的判断是*基于每个端点*学习的,攻击者无法预先计算出 Redoubt 会标记什么。这种不确定性本身就是武器 —— 也就是 Redoubt 中的 *doubt*(疑虑)。
## 目录
[独特之处](#what-makes-it-different) ·
[设备端 Reasoner](#the-on-device-reasoner-trained-from-scratch) ·
[状态](#status) ·
[开放核心](#open-core--free-engine-commercial-prevention-tier) ·
[安装](#install--free-cross-platform-no-account) ·
[运行效果](#see-it-work) ·
[工作区](#workspace) ·
[文档](#documentation) ·
[更新日志](#changelog)
## 独特之处
- **它是自主的。** 在强制模式下,Redoubt 检测到威胁后会自行将其消除 —— 终止进程、隔离文件 —— 通过带有护栏的 playbook 执行,而不是等待人类点击。
- **它能适应每台机器。** 它会实时维护*这里*正常状态的每主机基线,并将每一个新观察结果融入其中。这台主机上的常规程序评分较低;从未见过且格格不入的东西评分较高。边界是按端点学习的,因此无法被预先计算绕过。
- **智能位于设备端且完全属于我们。** 决策引擎运行着一个*我们训练并内置在二进制文件中*的紧凑模型 —— 无需下载、无需云端调用、无需外部推理 runtime。每次安装都携带着可用的智能,并且**关于你机器的任何信息都不会离开设备。**
- **它使用我们从零开始构建的模型对事件进行推理。** 一个微型的 transformer —— *每个权重都归我们所有,在我们自己的安全语料库上从零开始训练* —— 会在每次事件上运行,以命名攻击模式、目标、优先级和响应。见下文。
- **经过对抗自主攻击者的验证。** 在 `redoubt-redteam` 中,一个攻击者 agent 对 Redoubt 发起了完整的 kill-chain —— 包括在被抓取时会发生变异的闭环自适应攻击活动。Redoubt 在 signature 时代防御者放任任务运行的每一个阶段都阻止了它。
## 设备端 Reasoner(从零训练)
Redoubt 发布了一个用于对安全事件进行推理的小型语言模型 —— 并且它**完全属于我们**:
- **从零训练。** 随机权重 → 仅在我们自蒸馏的安全语料库上进行训练。没有预训练模型,没有 Llama/Qwen 权重,没有云端,没有账号。
- **微小且在设备端运行。** 107 K 参数,**429 KB**,内置于二进制文件中。毫秒级推理;**runtime 中没有 ML 框架** —— 直接在权重上手工编写的前向传播。
- **经过验证,而非信口开河。** 从零开始构建的 trainer 的反向传播会根据数值梯度进行检查,并且一致性测试保证了 trainer 和 runtime 计算出完全相同的 logits。
- **在闭环中运行。** 它在每个相关联的事件上运行,并将其独立的解读与基于规则的评估一起呈现,而后者仍然是权威的基准底线。
```
cargo run -p redoubt-strategist --example reasoner_demo
# ── 触发 honeytoken ──
# pattern: Credential access — honeytoken tripped priority: P1 confidence: 0.90
# narrative: … · On-device reasoner (trained-from-scratch model) 将其解读为
# "Credential access honeytoken tripped", priority P1, confidence 0.9 —
# 与基于规则的解读一致。
```
设计与构建日志:[`docs/09-ondevice-model.md`](docs/09-ondevice-model.md) ·
[构建检查点](docs/09-ondevice-model-checkpoint.md)。
## 状态
一个完整的垂直切片可**免费运行 —— 无需 Apple 授权,无需云账号,无需付费。**
**目前已实现**(阶段 0、2、3、4、5):
| 能力 | 功能 |
| --- | --- |
| 感知 | 进程启动(`sysinfo`)+ 文件更改(FSEvents/`notify`),无需授权 |
| 决策引擎 | 通过内置在二进制文件中的自训练模型做出自主、自适应的判定 |
| 检测 | 真实的 `codesign` 来源 + MITRE ATT&CK 规则 |
| 事件 | 关联生成带有评分的事件,并配有带护栏的自主响应 playbook |
| **Reasoner** | **从零构建的设备端模型**,用于命名攻击模式 / 目标 / 优先级 / 操作 |
| 欺骗 | 凭证 honeytoken,包括在你真实的 `~/.aws` / `~/.ssh` 密钥中投放诱饵 |
| 自我防御 | 篡改检测 + 强制终止哨兵 + 勒索软件金丝雀 |
| 主动狩猎 | 休眠持久化扫描 + 粗略的 C2/数据外传 beacon 检测 |
| 验证场 | 在 7 次攻击活动中对抗自主攻击者与 Redoubt |
**可在 macOS、Linux 和 Windows 11 上运行**,每个系统都提供按用户安装的程序。
**路线图中:** 通过 ESF 实现实时 Endpoint Security(阶段 1 —— 需要付费 100 美元的 Apple 授权),随着语料库的增长将 Reasoner 提升为主要路径,以及原生的双击安装程序(`.deb`/`.AppImage`、`.msi`、`.pkg`)。
## 开放核心 —— 免费引擎,商业防护层
**Redoubt 引擎是免费且开源的(MIT),并且将一直保持如此。** 上面记录的所有内容 —— 感知、自适应决策大脑、`codesign` + MITRE 检测、事件关联、从零构建的设备端 Reasoner、欺骗、自我防御、主动狩猎以及自主的检测并终止响应 —— 你都可以在 macOS、Linux 和 Windows 上零成本运行、阅读、fork 和发布。这对于个人、研究人员或构建者来说就是完整的產品。
**Redoubt Pro** *(计划中,商业版)* 是组织付费的层级。它不会限制开放核心 —— 它添加的是集群所需要的功能:
| Redoubt(免费,开源) | Redoubt Pro(计划中) |
| --- | --- |
| 在进程启动*之后*检测并终止 | **实时防御** —— 通过已签名的 Apple Endpoint Security (ESF) 在执行*之前*拦截 |
| 单端点,本地 CLI | **集群控制台** —— 从一处跨多个端点进行策略管理、遥测和响应 |
| 社区检测 + 发布的模型 | **托管检测与模型更新** + 支持 SLA |
| 尽力而为的社区支持 | **付费支持与上手指导** |
免费层级是我们的信誉和社区所在;Pro 是大规模的防护和管理。如果你的组织想要使用 Pro 层级,请提交一个
[GitHub issue](https://github.com/erangross27/redoubt/issues) 来开启对话。
## 安装 —— 免费、跨平台、无需账号
将 Redoubt 作为常驻的**按用户**后台服务运行。无需 `sudo`/管理员权限,无需授权,无需
付费。在每个 OS 上使用相同的引擎(LaunchAgent / systemd 用户单元 / 计划任务),如果停止会自动重启。
```
# macOS
./dist/install.sh # MONITOR mode (advisory, safe default)
./dist/install.sh --enforce # ENFORCE mode (Redoubt acts on its own)
# Linux
./dist/linux/install.sh # add --enforce to let it act autonomously
```
```
# Windows 11 (PowerShell)
powershell -ExecutionPolicy Bypass -File .\dist\windows\install.ps1 # add -Enforce
```
```
redoubtctl status # confirm it's running
```
**更倾向于使用预构建的包?** 每个 [GitHub Release](https://github.com/erangross27/redoubt/releases)
都会为每个 OS 附带一个独立的 `.tar.gz` / `.zip`(二进制文件 + 安装程序)。完整指南:
[`docs/08-packaging.md`](docs/08-packaging.md) · macOS 深入了解:
[`docs/07-local-install.md`](docs/07-local-install.md)。
### 从检出的代码运行
```
# Terminal A — 启动 daemon (sensor → decide → act → command socket)
cargo run -p redoubt-daemon
# Terminal B — 与其通信
cargo run -p redoubtctl -- status
cargo run -p redoubtctl -- decisions --limit 20
cargo run -p redoubtctl -- mode enforce # let Redoubt act autonomously on confident threats
```
## 运行效果
四件你可以在一分钟内尝试的事情。所有操作都是安全的 —— 它们模拟的是攻击者*自己*的动作。
### 1 · 观看它如何自行阻止落地的 payload
在 Apple Silicon 上,Mach-O 必须至少经过 ad-hoc 签名才能运行,因此一个真实的落地 payload 是在它落地*之后*被签名的:
```
cp /bin/sleep /tmp/redoubt-demo
codesign -s - -f /tmp/redoubt-demo # what a real macOS payload does
/tmp/redoubt-demo 300 & # unsigned-provenance binary, launched from /tmp
cargo run -p redoubtctl -- decisions --limit 5
# → [STOP] score 0.94 … · 从可疑目录启动
# · unsigned/unknown provenance
# · 在此主机上从未见过 — 相对于学习到的 baseline 异常
cargo run -p redoubtctl -- kill 标签:AMSI绕过, EDR, Rust, 可视化界面, 威胁检测, 安全, 本地AI, 端点防御, 网络流量审计, 脆弱性评估, 超时处理, 通知系统