verkinicolas-eng/tesso

GitHub: verkinicolas-eng/tesso

一款用 Rust 编写的生产就绪性验证工具,整合多种安全扫描器,专门检测 AI 生成代码中的安全隐患并为部署上线提供统一评分。

Stars: 0 | Forks: 0

# TESSŌ 真鑑 **你用 LLM 写过代码。发布它安全吗?** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0fe380be98062115.svg)](https://github.com/verkinicolas-eng/tesso/actions) [![dependency status](https://deps.rs/repo/github/verkinicolas-eng/tesso/status.svg)](https://deps.rs/repo/github/verkinicolas-eng/tesso) [![Rust Report Card](https://rust-reportcard.xuri.me/badge/github.com/verkinicolas-eng/tesso)](https://rust-reportcard.xuri.me/report/github.com/verkinicolas-eng/tesso) ## 问题所在 LLM 构建速度快,但会悄无声息地引入漏洞。 45% 的 AI 生成代码包含漏洞。 你无法用肉眼发现它们。 ## TESSO 检查什么 - **暴露的 Secrets 和 tokens** —— 遗留在代码中的 API keys、GitHub/AWS/Stripe/Slack tokens - **遗忘的 LLM 占位符** —— `YOUR_API_KEY_HERE`, `password123`, `TODO: move to env` - **LLM 生成的危险模式** —— `eval()`, `pickle.loads()`, `shell=True`, CORS `*`, `verify=False` - **有漏洞的依赖项** —— 你的依赖中已知的 CVE (npm, pip, cargo) - **OWASP 漏洞** —— 通过 18 条自定义检测规则发现的注入、XSS、SSRF - **错误提交的敏感文件** —— `.env`, 凭证, 私钥 - **项目成熟度** —— 结构、测试、规范,准备好发布了吗? ## 安装 ``` git clone https://github.com/verkinicolas-eng/tesso.git cd tesso cargo install --path . ``` ## 使用 ``` tesso check ./mon-projet ``` ``` TESSO 真鑑 v5.0.0 ────────────────────────────────────── Projet : mon-projet Stack : Python [ PASS] syntax 0 errors, 0 warnings [ PASS] secrets 0 secrets found [ PASS] deps 0 vulnerabilities [ PASS] tests 12 passed, 0 failed [ PASS] size 8 files, 0 over limit [ PASS] perms 0 issues found [ PASS] inputs 0 dangerous patterns [ PASS] integrity lockfile present [ PASS] logging 0 findings [ PASS] maturity cohesion 78, entropy 65, ... [ PASS] vibe 0 vibe-code issues [ PASS] semgrep 0 findings [ PASS] trivy 0 vulnerabilities ────────────────────────────────────── Score : 92/100 GO ────────────────────────────────────── ``` ### 其他命令 ``` tesso check ./mon-projet --format json # Sortie JSON (CI/scripts) tesso check ./mon-projet --format md # Sortie Markdown (PR/rapports) tesso check ./mon-projet --skip-tests # Sans executer les tests tesso baseline ./mon-projet # Sauvegarder une baseline tesso diff ./mon-projet # Detecter les regressions tesso init ./mon-projet # Creer un tesso.toml ``` ## 13 项检查 | 检查项 | 查找内容 | |-------|-----------------| | **syntax** | 语法错误和 linting (shellcheck, clippy, ruff) | | **secrets** | 硬编码的 secrets (gitleaks) | | **deps** | 依赖项中的 CVE (cargo-audit, pip-audit, npm audit) | | **tests** | 测试是否通过,覆盖率 | | **size** | 过长的源文件 | | **perms** | 仓库中的敏感文件 (.env, 凭证) | | **inputs** | 危险模式 (eval, exec, shell=True, innerHTML) | | **integrity** | Lockfiles 是否存在,依赖是否固定 (pinned) | | **logging** | 日志配置,日志中的 secrets | | **maturity** | 项目成熟度 (5 个维度) | | **vibe** | LLM 生成代码的特定模式 | | **semgrep** | SAST 漏洞 (OpenGrep + 18 条自定义规则) | | **trivy** | OS 和依赖漏洞 (Trivy) | ## 评分 ``` Score = securite x 0.8 + maturite x 0.2 Warning -3 pts (max 3 par check) High -10 pts Critical -20 pts @blocker score force a 0 >= 90 GO 70-89 GO CONDITIONNEL < 70 NO-GO ``` ## “vibe” 检查 —— 专为 AI 生成代码设计 此检查用于检测 LLM 遗留在你代码中的模式: | 模式 | 严重程度 | 示例 | |---------|----------|---------| | 遗留的占位符 | Critical | `YOUR_API_KEY_HERE`, `REPLACE_WITH_YOUR_KEY` | | 通用密码 | Critical | `password123`, `admin123`, `secret123` | | 硬编码的 API keys | Critical | `sk-...` (OpenAI), `ghp_...` (GitHub), `AKIA...` (AWS) | | 硬编码的 Bearer tokens | Critical | `Authorization: Bearer eyJ...` | | CORS 通配符 | High | `Access-Control-Allow-Origin: *` | | 不安全的反序列化 | Critical | `pickle.loads()`, `yaml.load()`, `marshal.loads()` | | 禁用 SSL | High | `verify=False`, `NODE_TLS_REJECT_UNAUTHORIZED` | | 敏感的 localStorage | Warning | `localStorage.setItem('authToken', ...)` | | 示例域名 | Warning | 生产代码中的 `example.com` | ## 支持的技术栈 Rust, Python, JavaScript, TypeScript, Bash, Go, Java, C. 通过标记文件 (Cargo.toml, package.json, go.mod...) 自动检测。 ## CI / GitHub Actions ``` - name: TESSO check run: | cargo install --path . tesso check ./ --no-color --skip-tests tesso diff ./ || echo "Regression detectee" ``` Exit codes:`0` = GO, `1` = GO CONDITIONNEL, `2` = NO-GO. ## 基准测试 | 项目 | 类型 | 分数 | |--------|------|-------| | OWASP Juice Shop | Vulnerable | 0/100 | | WebGoat | Vulnerable | 0/100 | | DVWA | Vulnerable | 0/100 | | tokio | Production (50k+ stars) | 63/100 | | actix-web | Production (50k+ stars) | 55/100 | | TESSO (self-check) | Production | 90/100 | 详情请参阅 [BENCHMARK_REAL_PROJECTS.md](BENCHMARK_REAL_PROJECTS.md)。 ## 许可证 **AGPL-3.0-or-later** — Copyright (c) 2026 Nicolas Verkindere (NVK Labs) 自由软件:你可以根据 GNU Affero General Public License v3 或更高版本的条款使用、修改和重新分发它。 参见 [LICENSE](LICENSE)。
标签:AI代码安全, API密钥检测, API密钥检测, CORS, DevSecOps, DLL 劫持, DNS 反向解析, LNA, Python, Rust, SAST, Secrets检测, SSRF, StruQ, XSS, 上游代理, 依赖项检查, 可视化界面, 大语言模型, 开发安全, 文档安全, 无后门, 漏洞情报, 生产就绪检查, 盲注攻击, 网络流量审计, 输入验证, 输入验证, 通知系统, 错误基检测, 静态代码分析, 项目成熟度评估