使用说明
Heimdall
The watchman for your local AI agents' MCP layer.
Heimdall对MCP配置和服务器文件进行指纹识别 克劳德桌面, Claude Code、Cursor、Windsurf和LM Studio 加载,并发出警报 你背后的一个瞬间被改变了。
以守卫通往阿斯加德的一座桥并进行打击的挪威守望者命名 当敌人靠近时,号角会保护你 切入点它 手表 并发出警告而且它并没有假装成一堵墙。 (原名克劳德·Defender, 一旦它超过了克劳德,就改名了。)
目录
- 威胁:LOTL通过MCP · 运作原理 · 看看里面
- 为什么基线不能伪造 · 支持的MCP主机 · 特性
- 足迹 · 基准测试 · 安装 · 命令行界面
- 它是什么,不是什么 · 路线图 · 安全和许可证
威胁:LOTL通过MCP
生活在陆地上的攻击者不会带来恶意软件——他们颠覆了合法的 工具已经在你的机器上了。MCP服务器是一个完美的目标:值得信赖的 您的代理以完全访问权限启动程序。毒害其来源,或泄漏 恶意服务器进入代理读取的配置,并且您有一个特洛伊木马条目 每次运行的点——以及 看起来没什么问题这就是重点 洛特。
Heimdall的工作是注意:它会对每个配置和服务器文件进行指纹识别 一旦发生变化,它就会显示给你 正是 什么改变了,让你恢复。
运作原理
flowchart LR
subgraph Hosts["MCP hosts (auto-discovered)"]
A[Claude Desktop]
B[Claude Code]
C[Cursor]
D[Windsurf]
E[LM Studio]
end
Hosts -->|configs + server files| W[Filesystem watcher<br/>event-driven]
W --> Core[Detection core<br/>BLAKE3 fingerprints]
Core <-->|sign / verify| TR[trustroot<br/>keyed-MAC state]
TR <-->|MAC key| KS[(OS keystore)]
Logs[Claude logs] --> IA[Intrusion analysis]
Core --> V{Verdict}
IA --> V
V -->|clean| OK[Protected]
V -->|changed| DIFF[Diff → accept / revert]
V -->|state forged| TAMPER[Tamper alert]
事件驱动:仅当 观看 文件发生了变化,所以在静止时也会发生变化 有效地没有工作并且检测是亚秒级的。
看看里面
|
Changes detected — a real syntax-highlighted diff with per-file or all-at-once accept / revert. |
Baseline tamper — the keystore-anchored integrity alert, with one-click rebuild from the current files. |
|
Settings — toggle the mascot, add custom files to watch, and manage the intrusion-notice ignore list. |
Protected (logo mode) — the same dashboard with the static crest instead of the animated mark. |
为什么基线不能伪造
篡改检测器的可信度取决于其基线。如果这是一个普通的 文件中,编辑服务器的攻击者可以重写基线以匹配 同样的违规行为,下一次检查显示“没有变化”
Heimdall以以下方式结束 trustroot:每条记录(哈希,
快照、挂起队列、审计日志)使用密钥进行身份验证 布莱克3
媒体访问控制 谁的钥匙在你的 操作系统密钥库 (凭证管理器/钥匙链/
特勤局),不在磁盘上。
sequenceDiagram
participant Atk as Attacker (file write)
participant State as baseline
participant KS as OS keystore
participant H as Heimdall
Atk->>State: rewrite hashes to hide the change
Note over Atk,KS: can't read the MAC key — it's in the keystore
H->>State: verify MAC
State-->>H: invalid → TAMPER 🔔
现在需要建立基线 代码执行,而不仅仅是文件写入-- 删除它没有帮助,因为设置后丢失的基线被视为 篡改。这是 不 篡改-证明 针对已经拥有 像你一样执行代码,或者一个受损的操作系统。看 它是什么,不是什么.
支持的MCP主机
自动发现——只有当主机的配置存在时,才会对其进行监视。稍后安装 重新扫描会发现它。
| 主机 | 配置 |
|---|---|
| 克劳德桌面 | %APPDATA%\Claude\claude_desktop_config.json (+操作系统等效值) |
| 克劳德代码 | ~/.claude.json |
| 光标 | ~/.cursor/mcp.json |
| 风帆冲浪 | ~/.codeium/windsurf/mcp_config.json |
| LM工作室 | ~/.lmstudio/mcp.json |
| 自定义 | 您在“设置”中添加的任何文件 |
特性
- 完整性监测 --每个主机配置的实时BLAKE3指纹 以及每个服务器的源代码树 (不仅仅是入口文件,还有它的模块 使用锁文件也可以导入)。在更改时,语法突出显示与 每个文件或一次全部 接受 / 回复 (可疑版本已备份 第一)。即使稍后恢复,也会捕获瞬态编辑。
- 梯形锚定基线 --上面的篡改证据。
- 入侵分析 --开采克劳德自己的原木(
mcp-info.json,mcp-server-*.log)进入每台服务器的时间线,标记 最近添加, 误差尖峰,以及 孤儿.按行或批量消除噪音。 - 隔离 --禁用可疑服务器(已备份、可逆)。
- 审计报告 --导出判决+时间线+签名痕迹到Markdown/JSON。
- 无头CLI --相同的引擎,没有GUI,用于脚本编写和始终在线观看。
足迹
- 无头观察者 (
watch): 约7.5 MB,约0.1%CPU --没有浏览器,没有投票。 - 桌面图形用户界面:约35 MB发动机+ WebView 2(Chromium) UI运行时(~310MB, 主要是共享操作系统页面,修剪成托盘)。任何webview应用程序都是固有的。
运行无头 watch 始终处于保护状态;打开GUI进行查看。
基准测试
可复制(Ryzen 9 8945H,发布)——见 基准.md.
- BLAKE3哈希 8.3千兆字节/秒;基线验证 约27µs (
cargo bench). check约40毫秒 在典型的配置上; 约170毫秒内有1000台服务器 (~0.12ms/文件)。- 检测亚秒(400毫秒去抖动+~40毫秒扫描)。
安装
Windows--预构建安装程序
抓住 .msi 或 .exe 来自
发布;它安装到
托盘,将自己添加到启动中,并在首次启动时建立基线。这
安装程序是 无符号,因此SmartScreen将发出警告-- 更多信息→ 无论如何都要跑.
根据发布的SHA-256验证下载。
从源代码构建——推荐;macOS和Linux需要
目前还没有预构建的macOS/Linux捆绑包,Tauri也无法交叉编译,所以 构建本机安装程序 在目标操作系统上:
git clone https://github.com/2alf/Claude-Defender
cd Claude-Defender/claudeDefender-tauri
npm run setup # frontend deps
npm run tauri build # native bundle → src-tauri/target/release/bundle/
# or: npm run tauri dev # run without packaging
先决条件: 锈 + 节点18+.On Linux还安装了webview/keystore构建deps:
sudo apt install libdbus-1-dev libwebkit2gtk-4.1-dev libgtk-3-dev \
libappindicator3-dev librsvg2-dev patchelf pkg-config
平台状态: 构建并测试于 视窗macOS和Linux路径 (钥匙链/特勤局,
notify,本地对话框)已实现,但 不 尚未验证 --欢迎测试人员。
命令行界面
相同的核心,无头:
heimdall watch # real-time monitoring (~8 MB, no GUI)
heimdall check # scan once — exit 0 clean / 1 changes / 2 tamper
heimdall accept | revert # accept/revert pending changes
heimdall reinit # rebuild baseline from current files (recovery)
heimdall intrusion # MCP install/run trace from logs
heimdall report # export an audit report (Markdown + JSON)
heimdall quarantine <server> # disable a suspect server (restore to undo)
heimdall status # watched files + last verdict
heimdall reset --yes # factory reset: wipe all state + keystore anchors
用以下内容覆盖路径 CLAUDE_DEFENDER_CONFIG / CLAUDE_DEFENDER_STATE_DIR.
该二进制文件目前作为
claude-defender-cli;heimdall是重命名吗 目标。原始Python脚本已退役legacy/.
它是什么,不是什么
A. 防篡改侦探 控制。诚实是这个名字的重点。
是: 一个实时观察器,它告诉每个服务器发生了什么变化以及何时发生变化 出现;一个不能默默伪造基线的信任锚;一键 恢复/隔离。
不是: 一 墙 (它警告;你决定)· 防损毁的 反对代码exec
作为您的用户或受损的操作系统 防病毒/沙盒.对于
LOTL的预执行外壳侧(curl … | sh 来自一个有毒的README),请参阅
兄弟项目 whatif.
路线图
已签署的发布+SBOM·审计链的远程锚定·更丰富的日志↔配置 关联·一个非WebView UI,用于数十MB的GUI·完整标识符重命名 (二进制文件,捆绑包id)。
安全和许可证
开源。欢迎披露——请参阅
可变数据印刷.国家生活
在...之下 MCPMonitor/ (所有MAC签名;哈希链 audit.log.json;预还原
backups/). GPL-3.0。
感谢所有提供帮助的人-- 名人堂.
