verkinicolas-eng/tesso
GitHub: verkinicolas-eng/tesso
一款用 Rust 编写的生产就绪性验证工具,整合多种安全扫描器,专门检测 AI 生成代码中的安全隐患并为部署上线提供统一评分。
Stars: 0 | Forks: 0
# TESSŌ 真鑑
**你用 LLM 写过代码。发布它安全吗?**
[](https://github.com/verkinicolas-eng/tesso/actions)
[](https://deps.rs/repo/github/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, 上游代理, 依赖项检查, 可视化界面, 大语言模型, 开发安全, 文档安全, 无后门, 漏洞情报, 生产就绪检查, 盲注攻击, 网络流量审计, 输入验证, 输入验证, 通知系统, 错误基检测, 静态代码分析, 项目成熟度评估