lordbasilaiassistant-sudo/alltest
GitHub: lordbasilaiassistant-sudo/alltest
一个分层递进式代码测试引擎,通过静态分析、动态测试、fuzzing 和自检多层探测发现代码库中的 bug、安全漏洞、密钥泄露和智能合约缺陷,并生成可直接修复的报告。
Stars: 1 | Forks: 0
# alltest
**分层代码测试引擎。** 将其指向*任何*代码库,它会运行一层又一层的
探测——静态分析、动态构建/测试执行、fuzzing 和 meta
自检——以暴露 bug、安全漏洞、硬编码密钥、智能合约缺陷
和质量问题。然后,它会生成 **可由 AI 修复的** 报告,在此过程中 **学习** 新的问题模式
(RSI),并输出一个 **带标签的 ML 训练语料库**,用于未来的问题检测模型。
专为 AI agent 打造,只需一条命令即可彻底测试任何人的代码。
```
npx alltest scan .
```
```
alltest — /your/project
418 files · 6 languages · 13 probes · 210ms
server/db/users.js
✗ HIGH SQL built via string concatenation/interpolation:88
↳ Possible SQL injection. Use parameterized queries instead of building the query string.
.env
✗ HIGH Environment file committed: .env:1
↳ Remove the .env (git rm --cached), add it to .gitignore, and rotate anything it contained.
contracts/Vault.sol
⛔ CRITICAL Authorization via tx.origin:42
↳ tx.origin auth is phishable. Use msg.sender for authorization checks.
Summary: 1 critical · 2 high
```
## 为什么选择 alltest
大多数扫描器只做一件事。alltest 是一个 **多层引擎**,其设计使得覆盖范围能够
随着时间的推移而增长,而不是变得陈旧:
- **层层递进。** `static → dynamic → fuzz → meta`。每个探测都是一个微型的可插拔
单元,因此目录可以不断扩展——并且 RSI 循环可以提出新的探测。
- **它测试自身。** 测试套件 *在自身上运行*,一个 meta 探测验证其自身的完整性,
而一个 meta-**meta** 测试则证明自检确实能在出现回归时报错(变红)。
无限套娃(`npm run test:layers`)。
- **发现即待修复项。** 每一项发现都包含精确的 `file:line`、脱敏的
代码片段、问题严重性的原因、具体的修复建议以及验收标准——随时可供
AI agent(或人类)采取行动,或作为 GitHub issue 提交。
- **越用越聪明。** 新的发现特征会被学习到知识库中;重复出现的
特征会被提升为候选检测规则。每一项发现也会作为带标签的
训练样本输出——这是模型学习直接发现问题所需的种子语料库。
- **零摩擦。** 依赖轻量,无需构建步骤,在 Node ≥ 18 上运行,适用于任何 repo,
无需任何配置。
## 安装
```
# one-off
npx alltest scan .
# 或安装
npm i -g alltest # global CLI
npm i -D alltest # dev dependency + programmatic API
```
## 用法
### 扫描代码库
```
alltest scan # static probes (safe, no code execution)
alltest scan . --exec # also build + run the test suite
alltest scan . --format sarif --out report.sarif # CI / GitHub code scanning
alltest scan . --format json # machine-readable (for agents)
alltest scan . --min medium # severity floor
alltest scan . --fail-on high # exit non-zero → CI gate
alltest scan . --corpus data/findings.jsonl --learn # feed ML corpus + RSI
```
### 测试目录下的每一个项目
```
alltest sweep ~/code --corpus data/findings.jsonl --out sweep.json
```
查找每个项目根目录并扫描它们——只需一条命令即可“检查我所有的 repo”。
### 提交可由 AI 修复的 GitHub issue
```
alltest report . --github owner/repo --min-severity high # dry run
alltest report . --github owner/repo --min-severity high --confirm # create them
```
通过特征去重,因此重新运行绝不会造成垃圾信息。需要 [`gh`](https://cli.github.com) CLI。
### 编程式 API
```
import { scan, render } from 'alltest';
const result = await scan({ root: './my-app', allowExec: false });
console.log(render(result, 'markdown'));
for (const f of result.findings) {
console.log(f.severity, f.ruleId, f.location, '→', f.fixHint);
}
```
## 它能捕获什么 —— 跨越 4 个层的 15 个探测
| 层 | 探测 | 示例 |
|---|---|---|
| static | secrets | 私钥(包括 EVM `Wallet()`)、40 多种供应商模式(AWS、GitHub、GitLab、OpenAI、Anthropic、Stripe、Slack、npm、Twilio、SendGrid、Google OAuth、Telegram 等)、数据库/凭据 URL、凭据分配 |
| static | **entropy-secrets** | **0-day 密钥**:匹配不到任何特征的高熵 token(供应商/格式 *未知*)(在测试中发现了真实硬编码的 `ADMIN_KEY`) |
| static | dangerous-js | eval(包括间接的 `(0,eval)`)、`Function()`、字符串参数的 `setTimeout`、命令和 SQL 注入、DOM-XSS (`innerHTML +=`)、禁用的 TLS、JWT `none`、弱随机性 |
| static | python-danger | eval/exec、pickle/yaml/torch/joblib 反序列化 (RCE)、`shell=True`、`verify=False`、SSTI、Django 密钥、assert-auth |
| static | solidity | tx.origin 认证、未经检查的/低级别的调用、delegatecall、selfdestruct、block 变量随机性、range pragma、无限循环、零地址设置器 |
| static | deps | 通配符/无限制版本、缺失 lockfile、脚本中的 `curl\|bash`、安装钩子、可选/同级依赖、无效清单 |
| static | config-hygiene | 提交的 `.env`、**私钥文件**(`.key`/`.pem`/`id_rsa`,与公共证书区分的内容感知)、未被 gitignore 的 `.env` |
| static | env-leak | 错误/堆栈泄露(Express/Koa/Fastify/render)、`process.env` 转储、通配符 CORS |
| static | ci-docker | `:latest` 镜像、`curl \| bash`、ADD-from-URL、root 容器、未固定的 Actions、`pull_request_target` |
| static | complexity | 高圈复杂度、长函数、深嵌套、超大文件——这些都是潜藏 bug 的地方 |
| fuzz | json-roundtrip | 加载时会导致崩溃的格式错误的 JSON/config |
| dynamic | build / tests | 构建失败、失败或缺失的测试套件 (`--exec`) |
| meta | self-integrity | alltest 自身的注册表 + Finding-schema 不变量 |
运行 `alltest probes` 获取实时列表。
## 针对不受信任的探测进行严格隔离
探测默认在进程内运行(速度快,类似于 ESLint 插件)。如果要使用不受信任的或
RSI 生成的探测进行扫描——或者要强制执行真实的实际时间限制——请使用 worker **sandbox**,其
supervisor 可以 `terminate()` 陷入 *同步* 死循环的探测(这是任何
同线程 timeout 都无法做到的):
```
alltest scan . --sandbox --timeout 60 # hard 60s ceiling, killable
alltest scan . --sandbox --probe-module ./my-probe.mjs
```
## 抑制误报
```
const y = eval(trusted); // alltest-ignore
const z = eval(trusted); // alltest-disable-line eval-use
```
```
# .alltestignore
vendor/
**/generated/*.js
```
## 分层自检
```
npm test # 100 tests, all layers
npm run test:layers # narrated, layer by layer
```
每一条检测规则都经过了对抗性审查;每一个确认的误报和
漏报现在都被锁定为回归测试 (`test/regressions.test.js`)。
## 路线图
- 更多探测(Rust/Go/Java 深度分析、污点追踪、AST 级别分析)。
- 代码级 fuzz 引擎(针对导出函数的属性生成)。
- 规则合成:从提升的 RSI 特征自动生成探测。
- 在收集的语料库上训练第一个问题检测模型。
## 许可证
MIT
alltest 可以使用免费的 GLM 进行可选的 AI 辅助分诊。如果您想要一个运行此类模型的编码计划,
**[z.ai 编码计划](https://z.ai/subscribe?ic=BWTG6TRYYQ)**
链接是一个引荐链接——它有助于资助 alltest 的开发。(公开引荐,非折扣。)
标签:Apex, GNU通用公共许可证, MITM代理, Node.js, 代码安全审计, 图数据库, 数据可视化, 智能合约审计, 暗色界面, 机器学习, 自定义脚本, 错误基检测, 静态代码分析