djproject-id/token-thrift

GitHub: djproject-id/token-thrift

面向敏感代码库的安全优先 AI 代码审查工具,通过本地知识图谱索引和多层安全防护机制,在 AI 辅助审查时保护密钥、钱包等机密信息不被泄露。

Stars: 0 | Forks: 0

# token-thrift **针对敏感代码库的安全优先代码审查。** 一个强化的 CLI 工具,可将您的代码库索引到本地知识图谱中,让 AI 助手仅读取所需内容,并对钱包、密钥和机密信息设置严格的防护机制。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE) [![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20termux-blue?style=flat-square)](#) [![Python](https://img.shields.io/badge/python-3.10%2B-blue?style=flat-square)](#) [![欢迎 PR](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/djproject-id/token-thrift/pulls) [![新手友好 Issues](https://img.shields.io/github/issues/djproject-id/token-thrift/good%20first%20issue?style=flat-square&label=good%20first%20issues&color=7057ff)](https://github.com/djproject-id/token-thrift/issues?q=is%3Aopen+label%3A%22good+first+issue%22) [![Stars](https://img.shields.io/github/stars/djproject-id/token-thrift?style=flat-square)](https://github.com/djproject-id/token-thrift/stargazers)
## 为什么选择 token-thrift 大多数 AI 代码审查工具都以效率为优化目标。而 token-thrift 的优化原则是 **安全第一,效率第二**。 专为交易机器人、钱包工具、包含 `.env` 机密的代码库,以及任何将供应链攻击或意外数据泄露视为切实威胁的项目而构建。 | 功能 | 提供的优势 | |---------|-------------------| | 🔒 预检扫描器 | 检测 `*.key`、`wallet*.json`、`.env`、`*mnemonic*`,在被正确忽略之前拒绝对其进行索引。 | | 🌐 默认禁用云端流量出口 | 在 runtime 下取消设置 Cloud API 环境变量(OpenAI, Google, MiniMax)。socket 级别的防护也会阻止已知的云主机。 | | ✅ SHA256 校验安装 | 主 wheel 包以及(当存在 lock 文件时)所有传递依赖在安装前均会进行哈希校验。 | | 📦 隔离执行 | 在由 pipx 管理的 virtualenv 中运行。您的全局 Python 环境保持不受影响。 | | 🚫 无侵入式 hooks | 永不修改编辑器配置(.cursor、.windsurf、.zed)和 git hooks。 | | 🛡️ 全局忽略模板 | 内置针对钱包、密钥、机密信息和加密制品的安全默认配置。 | | 🧬 防篡改包装器 | 包装器在安装时对自身进行哈希处理,如果被修改过则拒绝运行。 | | 📜 审计日志 | 每次调用都会追加到 `~/.token-thrift/audit.log` 中,以供取证分析。 | | 🔍 内容机密扫描器 | 基于正则表达式扫描内联机密(PEM 密钥、API token、mnemonics)。 | | 📂 扩展名白名单 | 纵深防御:对不在已知安全白名单内的文件类型发出警告。 | | 🔐 加密备份 | 一键 `backup` 和 `restore` 状态,使用 age、gpg 或 openssl。 | | 🔄 自我更新 | `token-thrift self-update` 拉取最新发布版本,并支持可选的 GPG 验证。 | ## 快速安装 ``` git clone https://github.com/djproject-id/token-thrift.git cd token-thrift bash install.sh ``` 安装程序将会: 1. 检查 Python 3.10 或更高版本。 2. 如果缺失则安装 pipx。 3. 在安装前验证主包 wheel 的 SHA256。 4. 如果存在 `requirements.lock`,则对所有传递依赖强制执行 `--require-hashes`。 5. 将引擎安装在隔离的 pipx venv 中。 6. 将 `token-thrift` 包装器放入 `~/.local/bin/` (chmod 700)。 7. 将辅助库放在 `~/.token-thrift/lib/`,数据文件放在 `~/.token-thrift/data/` (chmod 600)。 8. 对包装器、MCP 配置和 pipx venv 二进制文件进行快照(SHA256),以进行篡改检测。 9. 在 `~/.claude.json` 中注册 MCP server (chmod 600)。 重启 Claude Code,该工具即处于活动状态。 ## 用法 ### 核心审查命令 ``` token-thrift build # Parse the codebase in cwd, after a pre-flight scan. token-thrift update # Refresh the graph, after a pre-flight scan. token-thrift status # Show graph status. token-thrift help # Full command list. ``` ### 安全扫描器 ``` token-thrift scan ~/myproject # Filename-based check for sensitive files. token-thrift secret-scan ~/myproject # Content-level regex scan for inline secrets. token-thrift ext-scan ~/myproject # Flag files with extensions outside the allowlist. token-thrift init ~/myproject # Drop the default ignore template into a project. ``` ### 操作 ``` token-thrift audit # Show the last 50 audit-log entries. token-thrift audit-path # Print the audit log path. token-thrift verify # Re-run all integrity checks (wrapper, MCP, venv). token-thrift backup out.age # Encrypted backup of ~/.token-thrift/. token-thrift restore out.age # Restore from an encrypted backup. token-thrift self-update # Pull and reinstall the latest release. ``` 其他子命令会透明地传递到底层 CLI,但始终处于下文所述的安全防护机制之下。 ## 被阻止的子命令(为了您的安全) | 子命令 | 阻止原因 | |------------|---------------------| | `install` | 会修改许多系统文件(设置、git hooks)。请改用捆绑的安装程序。 | | `apply-refactor` | 直接写入源文件。请改用您的编辑器。 | | `cross-repo-search` | 跨 repo 注册表验证极少。存在路径遍历风险。 | ## 预检扫描器 在执行 `build` 或 `update` 之前,扫描器会查找任何匹配以下内容的文件: ``` *.key, *.pem, id_rsa*, id_ed25519*, *.gpg wallet*.json, keypair*.json, phantom*.json, solflare*.json, backpack*.json .env, *.env, secrets.json, auth.json, credentials* *mnemonic*, *passphrase*, *seed.json, *master.key ``` 如果发现任何尚未添加到 `.code-review-graphignore` 的匹配项,构建将停止。要覆盖此设置,请输入字面短语 `i-accept-the-risk`。这是刻意制造的阻力,以防您的钱包被意外索引。 内容级别的机密扫描器与文件名检查同时运行,负责在文本文件中查找内联模式(PEM 密钥、API token、mnemonics)。完整列表请参见 `data/secret-patterns.txt`。可自由定制。 ## 威胁模型 token-thrift 可防范: - ✅ 供应链攻击(主 wheel 的 SHA256 验证,以及当存在 lock 文件时对传递依赖项的 `--require-hashes` 校验)。 - ✅ 云端数据泄露(强制取消设置云端环境变量,且 socket 级网络防护会拒绝向已知云主机的出站连接)。 - ✅ 侵入式的自动配置(危险的子命令已被阻止)。 - ✅ 钱包或种子文件被错误索引(文件名 + 内容扫描器,以及文件扩展名白名单)。 - ✅ 跨 repo 路径遍历(`cross-repo-search` 已被阻止)。 - ✅ 全局 Python 环境污染(pipx 隔离的 venv)。 - ✅ 包装器被篡改(启动时进行自哈希校验,不匹配则拒绝运行)。 - ✅ MCP 配置被篡改(`~/.claude.json` 哈希监视器在发生偏移时会发出警告)。 token-thrift 无法防范: - ❌ 解析器或 SQLite 中的 Zero-day 漏洞。请以偏执的心态运行。 - ❌ `~/.claude.json` 被攻破。请保护好此文件(安装时已设置为 chmod 600)。 - ❌ pipx venv 二进制文件被攻破。如果 venv 快照发生偏移,请重新安装。 - ❌ 您自己 `data/` 文件中不受信任的模式。在定制前请进行审计。 ## 多设备设置 在第二台设备上克隆 repo,运行 `bash install.sh`。每台设备都会获得自己独立的安装。 如果与最初生成的 lock 文件的平台不同,可选择为该平台重新生成 `requirements.lock`: ``` bash scripts/gen-lock.sh ``` ## 自行验证 安装时验证的主 wheel SHA256: ``` 08d715607aefde3414d28b3a7844243823b150dc63ba4dd4529d6919f540d048 ``` 手动验证: ``` pip download --no-deps code-review-graph==2.3.2 sha256sum code_review_graph-2.3.2-py3-none-any.whl ``` 如果提交了 `requirements.lock`,则每个传递依赖项也都会被锁定。该 lock 文件由 `scripts/gen-lock.sh` 在受信任的机器上生成,并提交到 repo 中。 ## 文件布局 安装后: ``` ~/.local/bin/token-thrift # Main wrapper (chmod 700) ~/.token-thrift/ global-ignore # Default ignore patterns wrapper.sha256 # Hash of the wrapper at install time claude.json.sha256 # Hash of ~/.claude.json at install time pipx-venv.sha256 # Hash list of pipx venv binaries audit.log # Append-only audit log lib/ integrity.sh # Hash storage and verification helpers audit.sh # Audit-log helpers allowlist.sh # Extension-allowlist scanner secret-scan.sh # Content-level secret scanner backup.sh # Encrypted backup and restore selfupdate.sh # Self-update from GitHub network-guard.py # Runtime socket-level egress guard data/ secret-patterns.txt # Regex patterns for content scanner allowed-extensions.txt # File-type allowlist blocked-hosts.txt # Network egress blocklist ``` 在每个项目中,包装器会在首次构建时根据全局模板自动创建 `.code-review-graphignore`。 ## 架构 token-thrift 包含: - `install.sh`:带有 SHA256 校验、pipx 隔离、MCP 注册和完整性快照的已验证安装程序。 - `token-thrift`:Bash 包装器,增加了预检扫描器、环境变量加固、runtime 网络防护和子命令防护。 - `lib/`:用于完整性、审计、扫描、备份和自更新的内置辅助脚本。 - `data/`:用户可定制的模式和列表(机密正则表达式、扩展名白名单、主机黑名单)。 - `scripts/gen-lock.sh`:为每个传递依赖项重新生成带有 SHA256 哈希的 `requirements.lock`。 知识图谱引擎:PyPI 上的 [code-review-graph](https://pypi.org/project/code-review-graph/),固定为版本 2.3.2 并具有 SHA256 验证。 AI 集成:MCP (Model Context Protocol)。兼容 Claude Code 和任何其他支持 MCP 的客户端。 ## 卸载 ``` pipx uninstall code-review-graph rm ~/.local/bin/token-thrift rm -rf ~/.token-thrift # 手动从 ~/.claude.json 中移除 “token-thrift” 条目。 ``` ## License MIT © 2026 djproject-id ## 贡献 欢迎您的贡献——尤其是对扫描器模式、文档和 CI 的改进。 浏览 [新手友好 issues](https://github.com/djproject-id/token-thrift/issues?q=is%3Aopen+label%3A%22good+first+issue%22) 以查找小而明确界定的任务,或者发起一个 [讨论](https://github.com/djproject-id/token-thrift/discussions) 来提问或分享想法。 如果 token-thrift 对您有帮助,点个 star 可以帮助其他人发现它。
标签:Blue Team, 云安全监控, 人工智能, 代码审查, 依赖管理, 安全合规, 应用安全, 用户模式Hook绕过, 网络代理, 逆向工具, 静态分析