RideMatch1/a.e.g.i.s
GitHub: RideMatch1/a.e.g.i.s
AEGIS 是一个面向 Next.js/Supabase 的栈特定安全扫描与评分工具,旨在发现通用 SAST 遗漏的框架级漏洞并与 Semgrep 协同增强防护。
Stars: 0 | Forks: 0
# A.E.G.I.S
**The paranoid audit tool your vibe-coded app deserves.**






[](https://github.com/RideMatch1/a.e.g.i.s/releases/tag/v0.6.1)
## 什么是 AEGIS?
AEGIS(Automated Enterprise-Grade Inspection Suite)是一个**针对 Next.js/Supabase 的栈特定安全扫描器**,拥有 59 个扫描器、基于 AST 的单文件污点追踪器,以及 0-1000 的评分系统。它能够发现通用 SAST 工具(Semgrep、CodeQL、SonarQube)遗漏的漏洞,因为这些工具缺乏框架特定的规则。
**建议与 Semgrep 一起使用,而不是替代它。** AEGIS 覆盖 Supabase/Next.js 特定的空白(多租户隔离、RLS 绕过、Server Component 数据泄露、Zod 强制),而 Semgrep 覆盖通用 SAST 领域。
它的不同之处在于:AEGIS 追踪**文件内的数据流**。它将 `const id = req.body.id; db.query(id)` 识别为 SQL 注入——不仅仅是模式匹配,而是通过变量赋值、解构、模板字面量和函数返回值进行污点传播。每个 CWE 的 sanitizer 感知意味着 `parseInt()` 能阻止 SQL 注入但不能阻止 XSS,`DOMPurify.sanitize()` 能阻止 XSS 但不能阻止 SQL 注入。
除此之外:37 个内置正则扫描器 + 1 个 AST 污点分析器,16 个外部工具封装(Semgrep、Gitleaks、ZAP、Trivy...),5 个实时攻击探测,4 个合规框架(GDPR、SOC2、ISO27001、PCI-DSS)、一个用于 AI 代理的 MCP 服务器,以及带有 PR 评论的 GitHub Action。
## 快速开始
```
npx @aegis-scan/cli scan .
```
```
# 或全局安装
npm install -g @aegis-scan/cli
aegis scan .
# 使用所有扫描器进行全面审计
aegis audit .
# 生成配置
aegis init .
```
## AEGIS 能发现通用 SAST 工具遗漏的漏洞
这些是 **栈特定** 的漏洞,存在于 Next.js/Supabase 应用中。通用工具如 Semgrep 或 CodeQL 没有这些规则,因为它们是框架特定的模式:
| 漏洞 | 类别 |
|---|---|
| 缺少 `tenant_id` 过滤 — 跨租户数据泄露 | 多租户 |
| API 路由中的 `service_role` RLS 绕过 | Supabase |
| 通过函数名中的 `.rpc()` 模板插值导致的 SQLi | Supabase |
| 批量赋值 — 未验证的 `request.json()` 到 `.insert()` | Supabase |
| 敏感端点缺少速率限制 | Next.js API |
| API 路由缺少认证保护 | Next.js API |
| Server Component 将完整数据库记录传递给客户端(CWE-200) | React Server Components |
| 提示注入 — LLM 提示中的用户输入 | AI/LLM |
| 缺少 Zod `.strict()` 的变异模式 | 校验 |
| 数据库查询缺少分页 | 性能/DoS |
AEGIS 不是 Semgrep 的替代品 — 它是 **Semgrep 的放大器**。AEGIS 能发现通用 SAST 工具遗漏的栈特定漏洞。当安装 Semgrep 时,AEGIS 会自动封装它,从而同时获得两者的能力。
## 污点分析引擎
基于 AST 的污点追踪器使用 TypeScript 编译器 API 来跟踪用户输入在代码中的流动:
```
// AEGIS tracks this data flow:
const id = req.body.id; // Source: user input
const trimmed = id.trim(); // Propagates: method call
const query = `SELECT * WHERE id = ${trimmed}`; // Propagates: template literal
db.query(query); // Sink: SQL Injection (CWE-89, CRITICAL)
```
**每个 CWE 的 sanitizer 感知:**
| Sanitizer | 阻止 SQLi | 阻止 XSS | 阻止 SSRF | 阻止命令注入 |
|---|---|---|---|---|
| `parseInt()` | 是 | 否 | 是 | 是 |
| `DOMPurify.sanitize()` | 否 | 是 | 否 | 否 |
| `encodeURIComponent()` | 否 | 是 | 是 | 否 |
| `z.parse()` (Zod) | 是 | 是 | 是 | 是 |
## 跨文件污点追踪(v0.7,开发中 — 在 `main` 分支,尚未打标签)
v0.7 将污点追踪扩展到模块边界:在一个文件中受到污染的输入,通过导入的函数流向另一个文件中的接收器(sink),现在可以被检测并显示为跨文件发现。调用端发现会同时携带 `crossFile: true` 和一个指向实际接收器所在文件的 `crossFileOrigin` 指针。
**在 `main` 上检测的内容:**
- 裸标识符导入的调用者:`import { runQuery } from './lib'; runQuery(tainted);`
- 箭头函数变量导出:`export const fn = (x) => sink(x);`
- 默认导出:`export default function (x) { sink(x); }`
- 桶式重导出(最多深度 5):`export { fn } from './impl';`
- 每个 CWE sanitizer 识别 — 当导入的函数通过 `parseInt()`、`DOMPurify.sanitize()`、`encodeURIComponent()` 或 Zod 的 `.parse` / `.safeParse` 包装其参数时,跨文件调用会被抑制。
- SARIF 2.1.0 的 `relatedLocations` 将调用端发现链接到跨文件源头,以便 GitHub Code Scanning、GitLab 和 Azure DevOps 消费者可以在两者之间跳转。
**推迟到 v0.8(类型感知扩展):**
- 包装接收器的高阶组件/柯里化模式:`withAuth(sinkFn)`、`withLogger(fn)`。
- 泛型传递返回污点:`const r = identityFn(x); sink(r);` 其中 `identityFn` 是导入的。
- 方法调用跨文件调用者:`obj.method(x)` 其中 `obj` 是导入的命名空间。
- 条件导入置信度降级(策略 §4 的置信度为 “medium”)。
所有四项都需要基于类型检查器的符号解析,v0.8 Sprint 2 将引入。v0.7 的语法级处理会很脆弱,并且需要在 v0.8 中重新做。Spa-App 上的第 5 阶段 dogfood 将衡量这些空白对实际使用的影响;如果影响显著,范围可能会在 v0.7.x 补丁中重新审视。详见 [CHANGELOG](./CHANGELOG.md)。
## 扫描模式
| 模式 | 命令 | 功能 |
|------|---------|--------------|
| **scan** | `aegis scan .` | 快速通过 — 安全、依赖、质量、合规、国际化(~3 秒) |
| **audit** | `aegis audit .` | 完整审计 — 包含 DAST、基础设施、TLS 的所有扫描器 |
| **siege** | `aegis siege . --target URL --confirm` | 对实时目标进行 4 阶段攻击模拟 |
| **fix** | `aegis fix .` | AI 驱动的修复(Claude、OpenAI、Ollama 或模板) |
| **history** | `aegis history . --blame` | Git 责任增强 — 标注每个发现的引入者 |
| **diff** | `aegis scan . --diff main` | 仅报告与 git ref 相比有变更的文件中的发现 |
## 扫描器(总计 59 个)
### 内置(38 个扫描器:37 个正则表达式 + 1 个 AST 污点分析器)
| 扫描器 | 类别 | 检查内容 |
|---------|----------|----------------|
| `taint-analyzer` | 安全 | **基于 AST 的数据流分析** — 跟踪用户输入从源到接收器的流动,并具备每个 CWE sanitizer 的感知能力 |
| `auth-enforcer` | 安全 | 缺失认证保护、未受保护的路由、RBAC 缺口 |
| `tenant-isolation-checker` | 安全 | Sup 查询缺少 `tenant_id` 过滤 — 跨租户数据泄露检测 |
| `rls-bypass-checker` | 安全 | Supabase `.rpc()` 和 `service_role` 使用绕过行级安全 |
| `crypto-auditor` | 安全 | 弱算法、硬编码密钥、不安全的随机数、eval() 注入 |
| `zod-enforcer` | 安全 | 缺少 Zod 验证的变异路由,缺少 `.strict()` |
| `sql-concat-checker` | 安全 | 通过字符串拼接而非参数化查询的 SQL |
| `xss-checker` | 安全 | 未净化的用户输入在 HTML 响应中 |
| `ssrf-checker` | 安全 | 服务器端请求伪造模式 |
| `csrf-checker` | 安全 | 缺少 CSRF 保护的变异处理器 |
| `rate-limit-checker` | 安全 | 敏感路由缺少速率限制 |
| `path-traversal-checker` | 安全 | 用户输入流入文件系统操作(CWE-22) |
| `prompt-injection-checker` | 安全 | LLM 提示中的用户输入未净化(CWE-77) |
| `redos-checker` | 安全 | 灾难性回溯模式(CWE-1333) |
| `rsc-data-checker` | 安全 | Server Component 将完整数据库记录传递给客户端(CWE-200) |
| `mass-assignment-checker` | 安全 | 未校验的请求体到数据库写入 |
| `open-redirect-checker` | 安全 | 使用未校验用户输入的重定向 |
| `cors-checker` | 安全 | 配置错误的 CORS(通配符/反射来源) |
| `header-checker` | 安全 | 缺失安全头(CSP、HSTS、COOP 等) |
| `config-auditor` | 安全 | Docker、Next.js、Firebase 配置错误 |
| `cookie-checker` | 安全 | 缺失 Secure/HttpOnly/SameSite 标志 |
| `entropy-scanner` | 安全 | 通过香农熵检测高熵字符串(泄露密钥) |
| `timing-safe-checker` | 安全 | 使用 `===` 而非常量时间的密钥比较 |
| `upload-validator` | 安全 | 缺乏魔数校验的文件上传 |
| `error-leakage-checker` | 安全 | 堆栈跟踪泄露到客户端响应 |
| `env-validation-checker` | 安全 | 缺少集中式环境变量校验 |
| `http-timeout-checker` | 安全 | 缺少超时的 HTTP 调用 |
| `jwt-checker` | 质量 | JWT 实现问题、弱签名 |
| `logging-checker` | 质量 | 缺少结构化日志 |
| `console-checker` | 质量 | 生产代码中的调试残留 |
| `gdpr-engine` | 合规 | GDPR/DSGVO:隐私页面、同意、PII、Google Fonts、双重确认 |
| `soc2-checker` | 合规 | SOC 2 Type II 控制缺口 |
| `iso27001-checker` | 合规 | ISO 27001 控制映射 |
| `pci-dss-checker` | 合规 | PCI DSS 卡持有数据暴露 |
| `pagination-checker` | 安全 | 缺少行限制的数据库查询 |
| `i18n-quality` | 国际化 | 硬编码 UI 字符串、缺失语言键 |
| `supply-chain` | 依赖 | 依赖混淆、拼写劫持、锁文件完整性 |
| `dep-confusion-checker` | 依赖 | 缺少私有注册表映射的范围包 |
### 外部封装(16 个扫描器,在未安装时自动跳过)
| 扫描器 | 安装方式 |
|---------|---------|
| Semgrep | `brew install semgrep` |
| Bearer | `brew install bearer` |
| Gitleaks | `brew install gitleaks` |
| TruffleHog | `brew install trufflehog` |
| OSV-Scanner | `brew install osv-scanner` |
| npm audit | 内置在 npm 中 |
| license-checker | `npm i -g license-checker` |
| Nuclei | `brew install nuclei` |
| OWASP ZAP | 需要 Docker |
| Trivy | `brew install trivy` |
| Hadolint | `brew install hadolint` |
| Checkov | `pip install checkov` |
| testssl.sh | `brew install testssl` |
| React Doctor | `npx react-doctor@latest .` |
| axe/Lighthouse | 需要 Chromium |
| Lighthouse Performance | 需要 Chromium |
### 攻击探测(5 个,仅 siege 模式)
`auth-probe`、`header-probe`、`rate-limit-probe`、`privesc-probe`、`race-probe`
## 计分
| 分数 | 等级 | 徽章 |
|------|------|------|
| 950-1000 | S | FORTRESS |
| 850-949 | A | HARDENED |
| 700-849 | B | SOLID |
| 500-699 | C | NEEDS_WORK |
| 300-499 | D | AT_RISK |
| 0-299 | F | CRITICAL |
某些发现(代码注入、硬编码密钥、未授权的管理路由)属于 **BLOCKER** 严重级别,会直接将分数强制设为 0/F。
## MCP 服务器
```
{
"mcpServers": {
"aegis": {
"command": "node",
"args": ["node_modules/@aegis-scan/mcp-server/dist/index.js"]
}
}
}
```
工具:`aegis_scan`、`aegis_findings`、`aegis_score`、`aegis_compliance`、`aegis_fix_suggestion`
## CI/CD — GitHub Action
```
name: Security
on: [push, pull_request]
jobs:
aegis:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: RideMatch1/a.e.g.i.s/ci/github-action@main
with:
fail-below: 700
```
在 PR 评论中发布分数、严重性表格和顶级发现。
## 致谢
详见 [CREDITS.md](./CREDITS.md) 获取完整贡献名单。
## 许可证
MIT
**The paranoid audit tool your vibe-coded app deserves.**






[](https://github.com/RideMatch1/a.e.g.i.s/releases/tag/v0.6.1)
## 什么是 AEGIS?
AEGIS(Automated Enterprise-Grade Inspection Suite)是一个**针对 Next.js/Supabase 的栈特定安全扫描器**,拥有 59 个扫描器、基于 AST 的单文件污点追踪器,以及 0-1000 的评分系统。它能够发现通用 SAST 工具(Semgrep、CodeQL、SonarQube)遗漏的漏洞,因为这些工具缺乏框架特定的规则。
**建议与 Semgrep 一起使用,而不是替代它。** AEGIS 覆盖 Supabase/Next.js 特定的空白(多租户隔离、RLS 绕过、Server Component 数据泄露、Zod 强制),而 Semgrep 覆盖通用 SAST 领域。
它的不同之处在于:AEGIS 追踪**文件内的数据流**。它将 `const id = req.body.id; db.query(id)` 识别为 SQL 注入——不仅仅是模式匹配,而是通过变量赋值、解构、模板字面量和函数返回值进行污点传播。每个 CWE 的 sanitizer 感知意味着 `parseInt()` 能阻止 SQL 注入但不能阻止 XSS,`DOMPurify.sanitize()` 能阻止 XSS 但不能阻止 SQL 注入。
除此之外:37 个内置正则扫描器 + 1 个 AST 污点分析器,16 个外部工具封装(Semgrep、Gitleaks、ZAP、Trivy...),5 个实时攻击探测,4 个合规框架(GDPR、SOC2、ISO27001、PCI-DSS)、一个用于 AI 代理的 MCP 服务器,以及带有 PR 评论的 GitHub Action。
## 快速开始
```
npx @aegis-scan/cli scan .
```
```
# 或全局安装
npm install -g @aegis-scan/cli
aegis scan .
# 使用所有扫描器进行全面审计
aegis audit .
# 生成配置
aegis init .
```
## AEGIS 能发现通用 SAST 工具遗漏的漏洞
这些是 **栈特定** 的漏洞,存在于 Next.js/Supabase 应用中。通用工具如 Semgrep 或 CodeQL 没有这些规则,因为它们是框架特定的模式:
| 漏洞 | 类别 |
|---|---|
| 缺少 `tenant_id` 过滤 — 跨租户数据泄露 | 多租户 |
| API 路由中的 `service_role` RLS 绕过 | Supabase |
| 通过函数名中的 `.rpc()` 模板插值导致的 SQLi | Supabase |
| 批量赋值 — 未验证的 `request.json()` 到 `.insert()` | Supabase |
| 敏感端点缺少速率限制 | Next.js API |
| API 路由缺少认证保护 | Next.js API |
| Server Component 将完整数据库记录传递给客户端(CWE-200) | React Server Components |
| 提示注入 — LLM 提示中的用户输入 | AI/LLM |
| 缺少 Zod `.strict()` 的变异模式 | 校验 |
| 数据库查询缺少分页 | 性能/DoS |
AEGIS 不是 Semgrep 的替代品 — 它是 **Semgrep 的放大器**。AEGIS 能发现通用 SAST 工具遗漏的栈特定漏洞。当安装 Semgrep 时,AEGIS 会自动封装它,从而同时获得两者的能力。
## 污点分析引擎
基于 AST 的污点追踪器使用 TypeScript 编译器 API 来跟踪用户输入在代码中的流动:
```
// AEGIS tracks this data flow:
const id = req.body.id; // Source: user input
const trimmed = id.trim(); // Propagates: method call
const query = `SELECT * WHERE id = ${trimmed}`; // Propagates: template literal
db.query(query); // Sink: SQL Injection (CWE-89, CRITICAL)
```
**每个 CWE 的 sanitizer 感知:**
| Sanitizer | 阻止 SQLi | 阻止 XSS | 阻止 SSRF | 阻止命令注入 |
|---|---|---|---|---|
| `parseInt()` | 是 | 否 | 是 | 是 |
| `DOMPurify.sanitize()` | 否 | 是 | 否 | 否 |
| `encodeURIComponent()` | 否 | 是 | 是 | 否 |
| `z.parse()` (Zod) | 是 | 是 | 是 | 是 |
## 跨文件污点追踪(v0.7,开发中 — 在 `main` 分支,尚未打标签)
v0.7 将污点追踪扩展到模块边界:在一个文件中受到污染的输入,通过导入的函数流向另一个文件中的接收器(sink),现在可以被检测并显示为跨文件发现。调用端发现会同时携带 `crossFile: true` 和一个指向实际接收器所在文件的 `crossFileOrigin` 指针。
**在 `main` 上检测的内容:**
- 裸标识符导入的调用者:`import { runQuery } from './lib'; runQuery(tainted);`
- 箭头函数变量导出:`export const fn = (x) => sink(x);`
- 默认导出:`export default function (x) { sink(x); }`
- 桶式重导出(最多深度 5):`export { fn } from './impl';`
- 每个 CWE sanitizer 识别 — 当导入的函数通过 `parseInt()`、`DOMPurify.sanitize()`、`encodeURIComponent()` 或 Zod 的 `.parse` / `.safeParse` 包装其参数时,跨文件调用会被抑制。
- SARIF 2.1.0 的 `relatedLocations` 将调用端发现链接到跨文件源头,以便 GitHub Code Scanning、GitLab 和 Azure DevOps 消费者可以在两者之间跳转。
**推迟到 v0.8(类型感知扩展):**
- 包装接收器的高阶组件/柯里化模式:`withAuth(sinkFn)`、`withLogger(fn)`。
- 泛型传递返回污点:`const r = identityFn(x); sink(r);` 其中 `identityFn` 是导入的。
- 方法调用跨文件调用者:`obj.method(x)` 其中 `obj` 是导入的命名空间。
- 条件导入置信度降级(策略 §4 的置信度为 “medium”)。
所有四项都需要基于类型检查器的符号解析,v0.8 Sprint 2 将引入。v0.7 的语法级处理会很脆弱,并且需要在 v0.8 中重新做。Spa-App 上的第 5 阶段 dogfood 将衡量这些空白对实际使用的影响;如果影响显著,范围可能会在 v0.7.x 补丁中重新审视。详见 [CHANGELOG](./CHANGELOG.md)。
## 扫描模式
| 模式 | 命令 | 功能 |
|------|---------|--------------|
| **scan** | `aegis scan .` | 快速通过 — 安全、依赖、质量、合规、国际化(~3 秒) |
| **audit** | `aegis audit .` | 完整审计 — 包含 DAST、基础设施、TLS 的所有扫描器 |
| **siege** | `aegis siege . --target URL --confirm` | 对实时目标进行 4 阶段攻击模拟 |
| **fix** | `aegis fix .` | AI 驱动的修复(Claude、OpenAI、Ollama 或模板) |
| **history** | `aegis history . --blame` | Git 责任增强 — 标注每个发现的引入者 |
| **diff** | `aegis scan . --diff main` | 仅报告与 git ref 相比有变更的文件中的发现 |
## 扫描器(总计 59 个)
### 内置(38 个扫描器:37 个正则表达式 + 1 个 AST 污点分析器)
| 扫描器 | 类别 | 检查内容 |
|---------|----------|----------------|
| `taint-analyzer` | 安全 | **基于 AST 的数据流分析** — 跟踪用户输入从源到接收器的流动,并具备每个 CWE sanitizer 的感知能力 |
| `auth-enforcer` | 安全 | 缺失认证保护、未受保护的路由、RBAC 缺口 |
| `tenant-isolation-checker` | 安全 | Sup 查询缺少 `tenant_id` 过滤 — 跨租户数据泄露检测 |
| `rls-bypass-checker` | 安全 | Supabase `.rpc()` 和 `service_role` 使用绕过行级安全 |
| `crypto-auditor` | 安全 | 弱算法、硬编码密钥、不安全的随机数、eval() 注入 |
| `zod-enforcer` | 安全 | 缺少 Zod 验证的变异路由,缺少 `.strict()` |
| `sql-concat-checker` | 安全 | 通过字符串拼接而非参数化查询的 SQL |
| `xss-checker` | 安全 | 未净化的用户输入在 HTML 响应中 |
| `ssrf-checker` | 安全 | 服务器端请求伪造模式 |
| `csrf-checker` | 安全 | 缺少 CSRF 保护的变异处理器 |
| `rate-limit-checker` | 安全 | 敏感路由缺少速率限制 |
| `path-traversal-checker` | 安全 | 用户输入流入文件系统操作(CWE-22) |
| `prompt-injection-checker` | 安全 | LLM 提示中的用户输入未净化(CWE-77) |
| `redos-checker` | 安全 | 灾难性回溯模式(CWE-1333) |
| `rsc-data-checker` | 安全 | Server Component 将完整数据库记录传递给客户端(CWE-200) |
| `mass-assignment-checker` | 安全 | 未校验的请求体到数据库写入 |
| `open-redirect-checker` | 安全 | 使用未校验用户输入的重定向 |
| `cors-checker` | 安全 | 配置错误的 CORS(通配符/反射来源) |
| `header-checker` | 安全 | 缺失安全头(CSP、HSTS、COOP 等) |
| `config-auditor` | 安全 | Docker、Next.js、Firebase 配置错误 |
| `cookie-checker` | 安全 | 缺失 Secure/HttpOnly/SameSite 标志 |
| `entropy-scanner` | 安全 | 通过香农熵检测高熵字符串(泄露密钥) |
| `timing-safe-checker` | 安全 | 使用 `===` 而非常量时间的密钥比较 |
| `upload-validator` | 安全 | 缺乏魔数校验的文件上传 |
| `error-leakage-checker` | 安全 | 堆栈跟踪泄露到客户端响应 |
| `env-validation-checker` | 安全 | 缺少集中式环境变量校验 |
| `http-timeout-checker` | 安全 | 缺少超时的 HTTP 调用 |
| `jwt-checker` | 质量 | JWT 实现问题、弱签名 |
| `logging-checker` | 质量 | 缺少结构化日志 |
| `console-checker` | 质量 | 生产代码中的调试残留 |
| `gdpr-engine` | 合规 | GDPR/DSGVO:隐私页面、同意、PII、Google Fonts、双重确认 |
| `soc2-checker` | 合规 | SOC 2 Type II 控制缺口 |
| `iso27001-checker` | 合规 | ISO 27001 控制映射 |
| `pci-dss-checker` | 合规 | PCI DSS 卡持有数据暴露 |
| `pagination-checker` | 安全 | 缺少行限制的数据库查询 |
| `i18n-quality` | 国际化 | 硬编码 UI 字符串、缺失语言键 |
| `supply-chain` | 依赖 | 依赖混淆、拼写劫持、锁文件完整性 |
| `dep-confusion-checker` | 依赖 | 缺少私有注册表映射的范围包 |
### 外部封装(16 个扫描器,在未安装时自动跳过)
| 扫描器 | 安装方式 |
|---------|---------|
| Semgrep | `brew install semgrep` |
| Bearer | `brew install bearer` |
| Gitleaks | `brew install gitleaks` |
| TruffleHog | `brew install trufflehog` |
| OSV-Scanner | `brew install osv-scanner` |
| npm audit | 内置在 npm 中 |
| license-checker | `npm i -g license-checker` |
| Nuclei | `brew install nuclei` |
| OWASP ZAP | 需要 Docker |
| Trivy | `brew install trivy` |
| Hadolint | `brew install hadolint` |
| Checkov | `pip install checkov` |
| testssl.sh | `brew install testssl` |
| React Doctor | `npx react-doctor@latest .` |
| axe/Lighthouse | 需要 Chromium |
| Lighthouse Performance | 需要 Chromium |
### 攻击探测(5 个,仅 siege 模式)
`auth-probe`、`header-probe`、`rate-limit-probe`、`privesc-probe`、`race-probe`
## 计分
| 分数 | 等级 | 徽章 |
|------|------|------|
| 950-1000 | S | FORTRESS |
| 850-949 | A | HARDENED |
| 700-849 | B | SOLID |
| 500-699 | C | NEEDS_WORK |
| 300-499 | D | AT_RISK |
| 0-299 | F | CRITICAL |
某些发现(代码注入、硬编码密钥、未授权的管理路由)属于 **BLOCKER** 严重级别,会直接将分数强制设为 0/F。
## MCP 服务器
```
{
"mcpServers": {
"aegis": {
"command": "node",
"args": ["node_modules/@aegis-scan/mcp-server/dist/index.js"]
}
}
}
```
工具:`aegis_scan`、`aegis_findings`、`aegis_score`、`aegis_compliance`、`aegis_fix_suggestion`
## CI/CD — GitHub Action
```
name: Security
on: [push, pull_request]
jobs:
aegis:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: RideMatch1/a.e.g.i.s/ci/github-action@main
with:
fail-below: 700
```
在 PR 评论中发布分数、严重性表格和顶级发现。
## 致谢
详见 [CREDITS.md](./CREDITS.md) 获取完整贡献名单。
## 许可证
MIT标签:AEGIS, AI安全, Chat Copilot, CodeQL, GDPR, Gitleaks, GNU通用公共许可证, ISO27001, LNA, MCP服务, MITM代理, Node.js, PCI-DSS, RLS, SAST, Semgrep, SOC2, SonarQube, Supabase, TypeScript, WordPress安全扫描, XSS, Zod, 企业级, 合规框架, 安全扫描, 安全插件, 安全评估工具, 审计工具, 开源, 开源框架, 持续集成, 数据流跟踪, 时序注入, 服务器组件, 杀软绕过, 正则扫描, 漏洞情报, 盲注攻击, 网络调试, 自动化, 自动化攻击, 评分系统, 静态应用安全测试