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)** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/erangross27/redoubt/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) ![Platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20Windows%2011-informational) ![Rust](https://img.shields.io/badge/rust-1.74%2B-orange.svg) ![Entitlement‑free](https://img.shields.io/badge/runs-free%2C%20no%20cloud%2C%20no%20account-brightgreen.svg)
威胁已经改变。攻击者不再是在键盘前运行已知工具的人类;而是一台能够独立进行探测、变异和移动的快速、自适应机器。特征码和静态规则是为旧世界构建的。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 # in enforce mode Redoubt does this itself ``` ### 2 · 触发 honeytoken(主动欺骗) `redoubtd` 在启动时会在 `~/.redoubt/decoys` 中植入诱饵凭证文件并监视它们。 没有任何合法程序会触碰它们,因此任何更改都几乎是恶意的: ``` chmod u+w ~/.redoubt/decoys/aws_credentials echo 'stolen' >> ~/.redoubt/decoys/aws_credentials # what an attacker/ransomware does redoubtctl alerts # → [CRIT] T1552 Honeytoken accessed … redoubtctl incidents # → #N [OPEN] score 0.90 techniques: T1552 redoubtctl strategy N # → P1 "Credential access — honeytoken tripped", 90% — rotate the secrets, # hunt the accessor · plus the on-device Reasoner's independent read ``` ### 3 · 狩猎在你安装 Redoubt *之前*植入的持久化据点 在启动时(以及通过慢速计时器),Redoubt 会扫描 launchd 持久化面和出站连接,寻找实时事件流从未看到的东西 —— 一个已变得持久的 payload,一个已经在暗中通信的 beacon: ``` # 模拟潜伏的据点:一个 LaunchAgent 自动运行 /tmp payload。 cat > ~/Library/LaunchAgents/com.evil.persist.plist <<'EOF' Labelcom.evil.persist ProgramArguments/tmp/.cache/payload RunAtLoad EOF redoubtctl alerts # → [CRIT] T1543.001 Persistence foothold in a staging directory … rm ~/Library/LaunchAgents/com.evil.persist.plist # clean up the simulation ``` ### 4 · Agent 对抗 Agent —— 向自主攻击者证明其实力 ``` cargo run -p redoubt-redteam # an attacker agent runs 7 campaigns (incl. a closed-loop # adaptive kill-chain that mutates when it's caught) # → Static classifier 2/7 Naive adaptive 2/7 Redoubt 7/7 ``` ## 工作区 | Crate | 作用 | | --- | --- | | `redoubt-brain` | 自主决策引擎:按主机自适应学习 + 经过训练的模型,用于判断每个事件并决定是让其运行、对其采取行动还是上报。 | | `redoubt-core` | 共享词汇表:`Event`、`Features`、`Decision`、`Policy`、`Verdict`。 | | `redoubt-train` | 离线训练 pipeline,用于重新生成发布的决策模型。 | | `redoubt-detect` | 检测深度:真实的 `codesign` 丰富、MITRE ATT&CK 规则、YARA (`--features yara`)。 | | `redoubt-incident` | 将告警 + 决策关联为带有评分的**事件**,并附带理由 + playbook 触发器。 | | `redoubt-strategist` | 二级推理:基于规则的分析 + 设备端 Reasoner(*无云端 LLM*)。 | | **`redoubt-reason`** | **Reasoner runtime:** 我们的 tokenizer、从零构建的 transformer、手工编写的推理、内置权重。 | | `redoubt-corpus` *(开发)* | 通过从基于规则的 strategist 中自蒸馏,生成 Reasoner 的训练语料库。 | | `redoubt-reason-train` *(开发)* | 从零构建、经过梯度检查的 trainer(纯 Rust,无 ML 框架)。 | | `redoubt-deception` | 主动欺骗:植入凭证 honeytoken,当诱饵被触碰时引发 Critical `T1552` 告警。 | | `redoubt-selfdefense` | 保护保护者:篡改检测、强制终止哨兵、勒索软件金丝雀。 | | `redoubt-hunt` | 主动狩猎:持久化面 (T1543/T1547)、C2/数据外传 beacon (T1071)。 | | `redoubt-redteam` | Agent 对抗 agent 的验证场:自主攻击者在 7 次活动中对抗三种防御架构。 | | `redoubt-cloud` | 出站连接器 —— 通过相同的 `Command`/`Response` 协议连接到远程控制平面(TCP,或通过 `--features tls` 使用 TLS)。 | | `redoubt-ipc` | 命令协议(`Command`/`Response`)+ 本地客户端。一份契约,两种传输方式。 | | `redoubt-respond` | 自主执行的手:带护栏的 `kill` + 文件隔离(移开二进制文件,剥离执行位);网络隔离即将推出。 | | `redoubt-sensor-poll` | 阶段 0 传感器:进程启动(`sysinfo`)+ 文件更改(FSEvents),无需授权。 | | `redoubt-daemon` | `redoubtd` —— 将传感器 → 检测 → 欺骗 → 决策 → 关联 → 响应 → socket 连接起来。 | | `redoubtctl` | 本地 CLI 控制器。 | 计划中:`redoubt-s-esf`(实时 Endpoint Security —— 需要 100 美元的 Apple 授权)。 ## 文档 | 文档 | 内容详情 | | --- | --- | | [`00-vision.md`](docs/00-vision.md) | 目标、北极星指标、“像专家一样思考”的含义。 | | [`01-architecture.md`](docs/01-architecture.md) | 组件以及“一份契约,两种传输”的设计。 | | [`02-decision-brain.md`](docs/02-decision-brain.md) | 决策引擎:特征、基线、融合、阈值。 | | [`03-threat-model.md`](docs/03-threat-model.md) | 攻击者 agent、MITRE ATT&CK 覆盖范围、基线污染。 | | [`04-roadmap.md`](docs/04-roadmap.md) | 阶段和版本。 | | [`05-command-protocol.md`](docs/05-command-protocol.md) | Agent ↔ 控制器契约。 | | [`06-macos-esf-notes.md`](docs/06-macos-esf-notes.md) | 授权、签名、SIP 开发模式。 | | [`07-local-install.md`](docs/07-local-install.md) | 在你的 Mac 上免费运行(监控 vs. 强制)。 | | [`08-packaging.md`](docs/08-packaging.md) | 在 macOS、Linux 或 Windows 11 上安装;发布/CI 构建 pipeline。 | | [`09-ondevice-model.md`](docs/09-ondevice-model.md) | 从零构建的 Reasoner:设计 + [构建检查点](docs/09-ondevice-model-checkpoint.md)。 | ## 构建与测试 ``` cargo build --workspace cargo test --workspace cargo clippy --workspace --all-targets -- -D warnings ``` CI ([`.github/workflows/ci.yml`](.github/workflows/ci.yml)) 会在 macOS、 Linux 和 Windows 上对每次 push 运行构建 + 测试 + clippy —— 这是跨平台代码在所有三个系统上都能运行的切实证明,而不仅仅是在编写它的机器上运行。 ## 更新日志 日期为开发里程碑;正式的 `v*` 发布标签将随后跟进(参见 [`docs/08-packaging.md`](docs/08-packaging.md))。 ### 未发布 - **设备端 Reasoner** —— 一个从零构建的 107 K 参数 transformer,在设备端基于自蒸馏语料库进行训练,内置于二进制文件中,通过手工编写的 Rust 前向传播和经过梯度检查的 trainer 对每个事件进行推理 *(2026-07-11)*。 - **跨平台打包与 CI** —— 适用于 macOS / Linux / Windows 11 的按用户安装程序,以及构建独立包的发布 pipeline,并由 CI 证明在所有三个 OS 上均能通过构建 + 测试 + clippy *(2026-07-11)*。 - **主动狩猎** —— 休眠持久化扫描 (T1543/T1547) 和粗略的 C2/数据外传 beacon 检测 (T1071)。 - **主动欺骗** —— 凭证 honeytoken,包括在真实的 `~/.aws`/`~/.ssh` 密钥中植入诱饵,并带有内容哈希触发式警报。 - **自我防御** —— 二进制文件/agent 篡改检测、强制终止哨兵、勒索软件批量修改金丝雀。 - **Agent 对抗 agent 的验证场** —— 自主攻击者在 7 次活动(包括闭环自适应 kill-chain)中对抗三种防御架构。 - **自主响应** —— 在强制模式下带护栏的检测并终止 (`kill(2)`),无需授权。 - **基础切片** —— 阶段 0 感知,带有自训练内置模型的自适应决策引擎,`codesign` + MITRE 检测,事件关联,设备端二级 strategist。 ## 许可证 MIT —— 见 [`LICENSE`](LICENSE)。
标签:AMSI绕过, EDR, Rust, 可视化界面, 威胁检测, 安全, 本地AI, 端点防御, 网络流量审计, 脆弱性评估, 超时处理, 通知系统