Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
nova-tracer — NOVA - Claude代码保护系统,用于防范提示注入攻击 | Kitploit
工具/GitHubGitHub/nova-hunting/nova-tracer
防御工具代码分析威胁情报学习与教育AI 安全异常检测
GitHubnova-hunting/nova-tracer

nova-tracer

NOVA - Claude代码保护系统,用于防范提示注入攻击

查看仓库
94136个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Nova-tracer

代理监控与可见性

使用 NOVA Framework 为 Claude Code 提供安全监控和提示注入防御。

功能特性

  • 会话追踪 - 捕获所有工具使用情况,包含时间戳和元数据
  • 提示注入检测 - 三级扫描(关键词、语义ML、LLM)- 被动监控并发出警告
  • 危险命令拦截 - 在执行前主动阻止破坏性操作
  • MCP 与技能追踪 - 追踪 MCP 服务器调用和代理技能调用,提供详细分解
  • 交互式 HTML 报告 - 可视化时间线、对话追踪和可展开的事件详情
  • AI 驱动摘要 - 通过 Claude Haiku 生成智能会话摘要
  • 可配置 - 自定义报告位置、检测阈值和规则

快速开始

root@kitploit:~
# 克隆仓库
git clone https://github.com/fr0gger/nova-claude-code-protector.git
cd nova_claude_code_protector

# 全局安装(注册钩子到 ~/.claude/settings.json)
./install.sh

# 重启 Claude Code 以激活钩子

就这么简单!Nova-tracer 现在将保护你所有的 Claude Code 会话。

安装

先决条件

  • Python 3.10+
  • UV - Python 包管理器(安装)
  • jq - JSON 处理器(在 macOS 上通过 brew install jq 安装)

安装

root@kitploit:~
./install.sh

安装程序将:

  1. 验证所有先决条件已安装
  2. 在 ~/.claude/settings.json 中注册四个 Nova-tracer 钩子
  3. 保留你可能已配置的任何现有钩子
  4. 使钩子脚本可执行

卸载

root@kitploit:~
./uninstall.sh

卸载程序将:

  1. 仅从 settings.json 中移除 Nova-tracer 钩子
  2. 保留所有其他钩子和设置
  3. 可选地清理 .nova-tracer/ 目录

工作原理

Nova-tracer 注册了四个协同工作的 Claude Code 钩子:

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                    Claude Code 会话                           │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  1. SessionStart 钩子                                        │
│     └── 创建会话 JSONL 文件                                 │
│     └── 使用会话 ID 初始化追踪                              │
│                                                              │
│  2. PreToolUse 钩子 (Bash, Write, Edit)          [ACTIVE]   │
│     └── 在执行前扫描命令                                     │
│     └── 阻止危险操作 (rm -rf, 等)                           │
│                                                              │
│  3. PostToolUse 钩子 (Read, Bash, WebFetch, 等) [PASSIVE]   │
│     └── 扫描工具输出以检测提示注入                           │
│     └── 如果检测到威胁,向 Claude 发出警告                    │
│     └── 记录事件并附上 NOVA 判定                             │
│                                                              │
│  4. SessionEnd 钩子                                          │
│     └── 生成交互式 HTML 报告                                │
│     └── 创建 AI 驱动的会话摘要                              │
│     └── 保存到 .nova-tracer/reports/                         │
│                                                              │
└─────────────────────────────────────────────────────────────┘

主动与被动保护

Nova-tracer 提供两种保护模式:

模式钩子

重要提示: 提示注入检测是被动的。当 Nova-tracer 在文件或网页中检测到提示注入时,Claude 已经读取了该内容。Nova-tracer 会向 Claude 发送一条警告消息,建议其对该内容持怀疑态度,但不会阻止 Claude 看到恶意内容。

这是 PostToolUse 钩子架构的限制——它在工具执行之后运行。主动阻止提示注入需要在 Claude 读取内容之前扫描内容,这需要读取文件两次(一次用于扫描,一次供 Claude 使用)。

主动阻止的内容:

  • 破坏性命令:rm -rf /、sudo rm -rf、mkfs
  • 危险操作:dd if=... of=/dev/、fork 炸弹
  • 凭据泄露:curl ... | sh、读取 ~/.ssh/id_rsa

被动警告的内容:

  • 文件中的提示注入(Read 工具)
  • 网页中的提示注入(WebFetch 工具)
  • 命令输出中的提示注入(Bash 工具)
  • MCP 工具响应中的提示注入

三级检测

检测到的攻击类别

  • 指令覆盖 - "忽略之前所有指令"、伪造系统提示
  • 越狱/角色扮演 - DAN 尝试、角色切换
  • 编码/混淆 - Base64、十六进制、Unicode、Leetspeak
  • 上下文操纵 - 虚假权威声明、隐藏指令

使用

自动保护

安装后,Nova-tracer 将自动工作:

  1. 启动任意 Claude Code 会话 - SessionStart 钩子初始化追踪
  2. 正常使用 Claude - 所有工具调用都将被监控和扫描
  3. 结束会话 - SessionEnd 钩子生成 HTML 报告

查看报告

报告保存在每个项目的 .nova-tracer/reports/ 目录中:

root@kitploit:~
# 列出当前项目的报告
ls .nova-tracer/reports/

# 在浏览器中打开报告
open .nova-tracer/reports/session-abc123.html

报告功能

交互式 HTML 报告包含:

  • 会话摘要 - 持续时间、工具调用次数、安全事件
  • AI 摘要 - 智能的 2-3 句描述
  • 事件时间线 - 所有工具调用的可视化时间顺序视图
  • 过滤 - 按工具类型或 NOVA 判定(允许/警告/阻止)过滤
  • 可展开详情 - 点击任意事件查看完整的输入/输出
  • Nova-tracer 判定详情 - 严重性、匹配规则、扫描时间

手动测试

在不运行 Claude Code 的情况下测试 Nova-tracer 检测:

root@kitploit:~
# 运行示例攻击测试
uv run hooks/test-nova-guard.py --samples

# 测试特定文本
uv run hooks/test-nova-guard.py --text "ignore previous instructions"

# 测试文件
uv run hooks/test-nova-guard.py --file suspicious.txt

# 交互模式
uv run hooks/test-nova-guard.py -i

配置

Nova-tracer 使用合理的默认配置,但你可以自定义行为。

Nova-tracer 保护器配置

编辑 config/nova-tracer.yaml:

root@kitploit:~
# 报告输出目录
# 留空 = {project}/.nova-tracer/reports/(默认)
# 相对路径 = 相对于项目
# 绝对路径 = 精确位置
report_output_dir: ""

# AI 驱动的会话摘要
# 设置为 false 则仅使用统计摘要(无 API 调用)
ai_summary_enabled: true

# 报告中工具输出的最大大小(KB)
# 更大的输出将被截断
output_truncation_kb: 10

# 自定义 NOVA 规则目录
custom_rules_dir: "rules/"

Nova-tracer 扫描配置

编辑 config/nova-config.yaml:

root@kitploit:~
# 三级检测的 LLM 提供商
llm_provider: anthropic
model: claude-3-5-haiku-20241022

# 检测层级(启用/禁用)
enable_keywords: true
enable_semantics: true
enable_llm: true

# 阈值(0.0 - 1.0)
semantic_threshold: 0.7
llm_threshold: 0.7

# 严重性过滤器
min_severity: low  # low, medium, or high

环境变量

root@kitploit:~
# AI 摘要和 LLM 层级检测必需
export ANTHROPIC_API_KEY=sk-ant-...

自定义规则

在 rules/ 目录中创建 .nov 文件:

root@kitploit:~
rule MyCustomRule
{
    meta:
        description = "检测我的特定攻击模式"
        author = "你的名字"
        severity = "high"
        category = "custom"

    keywords:
        $pattern1 = /my regex pattern/i
        $pattern2 = "exact string match"

    semantics:
        $sem1 = "攻击的语义描述" (0.75)

    llm:
        $llm1 = "供 LLM 评估的问题" (0.7)

    condition:
        any of ($pattern*) or $sem1 or $llm1
}

文件结构

root@kitploit:~
nova_claude_code_protector/
├── install.sh                    # 全局安装脚本
├── uninstall.sh                  # 卸载脚本
├── config/
│   ├── nova-config.yaml          # NOVA 扫描配置
├── rules/
│   ├── instruction_override.nov  # 指令覆盖攻击规则
│   ├── roleplay_jailbreak.nov    # 越狱攻击规则
│   ├── encoding_obfuscation.nov  # 编码攻击规则
│   └── context_manipulation.nov  # 上下文操纵攻击规则
├── hooks/
│   ├── session-start.py          # SessionStart 钩子
│   ├── pre-tool-guard.py         # PreToolUse 钩子(拦截)
│   ├── post-tool-nova-guard.py   # PostToolUse 钩子(扫描)
│   ├── session-end.py            # SessionEnd 钩子(报告)
│   ├── test-nova-guard.py        # 测试工具
│   └── lib/
│       ├── session_manager.py    # 会话追踪逻辑
│       ├── report_generator.py   # HTML 报告生成
│       ├── ai_summary.py         # AI 摘要生成
│       └── config.py             # 配置管理
├── tests/                        # 全面测试套件(483 个测试)
└── test-files/                   # 示例注入文件

故障排除

钩子未激活

  1. 验证安装:cat ~/.claude/settings.json | jq '.hooks'
  2. 完全重启 Claude Code(退出并重新打开)
  3. 检查钩子脚本是否可执行:ls -la hooks/*.py

报告未生成

  1. 检查是否有活动会话:ls .nova-tracer/sessions/
  2. 验证项目目录的写入权限
  3. 检查会话结束时的 stderr 错误信息

ML 模型未加载

首次运行将下载约 1GB 的模型。如果出现问题:

root@kitploit:~
# 清除模型缓存并重试
rm -rf ~/.cache/huggingface/
uv run hooks/test-nova-guard.py --samples

AI 摘要无效

  1. 验证 API 密钥:echo $ANTHROPIC_API_KEY
  2. 检查配置中 ai_summary_enabled: true
  3. 统计摘要会作为备用方案使用

开发

运行测试

root@kitploit:~
# 运行所有测试
uv run pytest tests/ -v

# 运行特定测试文件
uv run pytest tests/test_report_generator.py -v

# 带覆盖率的测试
uv run pytest tests/ --cov=hooks/lib

测试覆盖

  • 483 个测试覆盖所有功能
  • 会话管理、报告生成、AI 摘要
  • 配置加载、安装脚本
  • 所有验收标准均已验证

许可证

MIT 许可证 - 参见 LICENSE

下载工具
行为
使用场景
主动 (ACTIVE)PreToolUse在执行前阻止危险命令(rm -rf /、sudo rm 等)
被动 (PASSIVE)PostToolUse内容被读取后向 Claude 发出警告文件、网页、命令输出中的提示注入
层级方法速度捕获范围
关键词正则模式~1ms已知攻击模式、精确短语
语义ML 相似度~50ms释义攻击、变体
LLMAI 评估~500-2000ms复杂、新颖的攻击