关于 Penthera
Penthera 是一款开源安全扫描工具,用于检查应用、依赖项、代码库和 AI 编码工具配置。它在本地运行,依据可读规则提供发现结果,并为编码 Agent 提供 6 个只读 MCP 工具。
主要功能
- 01扫描应用、代码库和依赖项
- 02审计 AI 工具配置
- 03提供带文件行号证据的规则发现
- 04应用获准的修复并重新扫描
- 05生成 Markdown、JSON 和 SARIF 报告
- 06本地仪表板与安全检查
适用场景
- 01部署前审查代码库
- 02安装前检查软件包能力
- 03审计技能、MCP 服务、钩子和插件
- 04通过编码 Agent 执行只读安全检查
MCP 相关
Penthera 提供 MCP 服务,包含 6 个只读工具,可用于扫描代码库、检查依赖项、审计 AI 工具、查询运行时公告、解释发现结果和被动扫描 URL。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 3 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| path | string | 否 | 要扫描的项目文件夹路径,相对于工作区根目录,或为工作区内的绝对路径。默认值:工作区根目录。 |
| max_findings | integer | 否 | 要返回的发现项数量,按严重程度从高到低排列(默认 50)。 |
详细介绍
Penthera:你的开源网络安全 Agent
你一直没时间做的安全审查。离线运行、基于规则,而且每项发现都可自行验证。
penthera.org:几秒钟即可检查你正在运行的网站。被动扫描,不存储任何内容。
132 条易读规则 · 6 个只读 MCP 工具 · 1 个运行时依赖 · 基准测试中没有请求发往回环地址以外 · MIT,无遥测
penthera ui,简洁模式,深色 | penthera ui,高级模式,浅色 |
|---|---|
![]() | ![]() |
观看 80 秒操作演示:设置、扫描、仪表板、批准一项修复、查看报告。使用演示数据,无声音,视频内含字幕。
它是什么
Penthera 会在你自己的机器上检查你的应用、依赖项和 AI 编码工具。经你批准后,它会修复能修复的问题。每项发现都来自一条可阅读的规则,并附有 file:line 格式的证据。模型可以提出建议;规则负责判定。
这也是一个开放的研发项目。我们会公开衡量每项检查并发布结果,无论好坏,让你了解可以在多大程度上信任它。
它能发现已知类型的问题,但不能发现新型问题。它不能替代人工渗透测试。
30 秒快速开始
你需要 Node.js 22 或更高版本。无需安装,无需账户。
在终端中运行。 在你的项目文件夹中运行:
npx penthera
它会离线检测你的环境,询问要检查哪些内容,并为每个领域评分,还会列出最优先修复的三项问题。只有在你确认该应用属于你之后,它才会扫描正在运行的应用。不会提交或推送任何内容 (引导式开始)。
在编码 Agent 中作为技能使用。 然后提出“扫描我的应用,查找安全问题”:
npx skills add danoszz/penthera
在编码 Agent 中作为 MCP 服务使用。 为 Claude Code、 Cursor、Codex、VS Code 和 Windsurf 提供六个只读工具,1.9.0 中新增。固定版本:
claude mcp add penthera -- npx -y [email protected] mcp
在 Claude Code 中作为插件使用。 在 Claude Code 的提示词中输入:
/plugin marketplace add danoszz/penthera
/plugin install penthera@penthera
在 Gemini CLI 中作为扩展使用。 使用相同的固定版本 MCP 服务:
gemini extensions install https://github.com/danoszz/penthera
其他客户端: docs/commands/mcp.md。其他技能安装方式: docs/commands/skill.md。
要在容器中运行:
docker build -t penthera . && docker run --rm penthera https://your-app.example。
功能介绍
flowchart LR
U["You or your AI agent"] --> P(("Penthera<br/>on your machine"))
P --> APP["Your app<br/>URL scan, repo scan<br/>runtime advisories"]
P --> DEP["Your dependencies<br/>capabilities, install firewall<br/>typosquats, upgrade diff"]
P --> AI["Your AI tooling<br/>skills, MCP, hooks<br/>plugins, rule files"]
APP --> F[["Findings<br/>severity, confidence<br/>evidence at file:line"]]
DEP --> F
AI --> F
F --> FIX["Fix loop<br/>asks first, local branch<br/>cannot edit its own tests"]
FIX -. "re-scan proves it" .-> F
F --> R["Reports and dashboard<br/>terminal, Markdown, SARIF<br/>penthera ui, MCP tools"]
F --> E["Evidence<br/>signed bundle<br/>NIS2 and CRA drafts"]
classDef core fill:#0000ed,stroke:#0000ed,color:#ffffff
classDef box fill:#ffffff,stroke:#000000,color:#000000
class P core
class U,APP,DEP,AI,F,FIX,R,E box
部署前
| 任务 | Penthera 的功能 | 命令 |
|---|---|---|
| 测试应用 | 扫描你的 localhost 或预览 URL(TLS、标头、CORS、Cookie、身份验证、JWT、IDOR、OAuth、OpenAPI;只有在你提出要求并确认后,才会进行注入测试和模糊测试),以及你的代码仓库(路由、信任边界、代码执行入口、机密信息,包括 AI 密钥) | penthera <url> --repo . |
| 检查运行时 | 根据已签名的安全公告包,检查你运行的 PHP、nginx、Apache、Node.js、Python、OpenSSL 或 MongoDB 版本是否受到已知安全公告影响 | 运行时安全公告 |
| 修复并验证 | 在本地分支应用确定性修复方案,重新扫描以验证修复是否生效,并记住结果。绝不会推送 | penthera agent --loop |
| 在提交时拦截 | 在机密信息、风险较高的 Agent 配置和依赖项变更被提交前予以拦截 | penthera hook install |
开发时使用
| 任务 | Penthera 的功能 | 命令 |
|---|---|---|
| 审查依赖项 | 显示每个 npm 和 Python 包能做什么(安装脚本、Shell、网络、环境变量、混淆)、升级新增了什么、相似名称和许可证 | penthera deps --base main |
| 防护安装 | 在运行任何安装脚本前,显示新软件包会带来什么,并根据你的策略阻止安装 | penthera install <pkg> |
| 审查拉取请求 | 在每个修改锁文件的 PR 上评论依赖项能力差异 | GitHub Action |
| 审计 AI 工具 | 检查技能、MCP 服务、钩子、插件和规则文件是否包含隐藏指令、未固定版本的服务、权限范围过宽和静默更新 | penthera agents --home |
| 通过 Agent 使用 | 提供 6 个只读 MCP 工具:扫描代码仓库、检查依赖项、审计 AI 工具、查看运行时安全公告、解释发现的问题,以及被动扫描 URL | penthera mcp |
发布后
| 任务 | Penthera 的功能 | 命令 |
|---|---|---|
| 报告并举证 | 为开发者、所有者和审计人员生成报告;生成带哈希、可签名的证据包;生成 NIS2 和 CRA 准备情况报告及草稿 | penthera <url> --audience auditor --evidence out/ |
| 查看全局情况 | 在 127.0.0.1 上运行本地仪表板。简易模式面向非程序员:提供一句话结论、通俗易懂的问题说明,以及可对每项变更选择应用、跳过或停止的检查与修复模式。高级模式还包含依赖项、AI 工具、历史记录和证据 | penthera ui |
| 持续监控 | 定期检查生产环境是否出现偏差:证书、标头、新端点、软件包中的密钥,以及 SBOM 中新增的 CVE | 见路线图 |
每项发现都包含严重程度、置信度标签(confirmed、likely、
potential、needs-human-review)、相关证据及背后的研究资料。
报告可输出为 Markdown、JSON 和 SARIF,供 GitHub 代码扫描使用。退出
代码 1 表示发现严重或高危问题。所有命令和标志详见
docs/commands/。合规输出仅用于评估准备情况,
不构成认证,也不构成法律建议。
AI 模式(可选加入,1.9.0 新增)。 penthera --repo . --ai 可让本地模型
提出规则未描述的问题。Penthera 会使用规则检查每条建议;任何未经确认的建议都会标记为
“模型提出,未经验证”,且绝不会导致 CI 失败。目前尚未衡量这种模式是否能发现规则单独使用时
发现不了的问题(AI 模式)。
各部分的成熟度
| 部分 | 状态 |
|---|---|
| 扫描:URL、仓库、依赖项、AI 工具、安装、pre-commit hook | 稳定:自 1.x 的每个版本起均已涵盖,并纳入测试和发布门禁 |
修复循环和本地仪表板(penthera ui) | 稳定;仪表板已在 1.9.0 中重新设计 |
| MCP 服务、Agent Skill、Claude Code 插件、Gemini CLI 扩展 | 稳定,在 1.9.0 中新增(Gemini 扩展在 1.9.0 之后新增) |
| 证据包、NIS2 和 CRA 草案 | 作为就绪度工具而言稳定,但不代表认证 |
AI 模式(--ai) | 实验性:尚未衡量它是否比单独使用规则发现更多问题(AI 模式) |
| 在 penthera.org 上进行实时检查 | Beta:仅被动检查,条款 |
如何衡量
每项功能都遵循相同流程:方法 → 证据 → 工具。
- 方法。方法论阐述了威胁模型、黑盒(HTTP)和白盒(源码)分析能够及不能够观察到的内容、置信度模型,以及每项探测的误报控制。每项设计决策都会引用其依据的研究或标准:docs/references.md 中以 APA 格式列出了 95 条经核实的参考资料。
- **证据。**每次发布都会运行基准测试;如果精确率或召回率下降超过 0.02,发布门禁就会失败。决定下一步发布内容的实验会在收集任何数据之前,预先登记在 docs/research/prereg/ 中,结果无论如何都会公开。
- **工具。**经审查并签名的发布版本会包含经验证有效的内容。未经验证有效的内容会被弃用,规则则会保留。
| 指标 | 结果 | 样本 |
|---|---|---|
| 精确率,内置基准测试 | 0.92,95% CI 0.74 至 0.98 | 22 个真阳性,2 个假阳性 |
| 召回率,内置基准测试 | 0.96,95% CI 0.79 至 0.99 | 漏报 1 项,说明 |
| 基准测试期间发往环回地址之外的请求 | 0 | 由网络防护机制强制执行 |
| E10 试点,已知存在漏洞的应用 | 精确率 0.88,95% CI 0.78 至 0.93。修复前召回率为 0.07,修复后为 0.71(CI 0.45 至 0.88) | Juice Shop 和 DVNA 中的 14 个根本原因(结果) |
| 检测规则,均可阅读 | 此版本共 132 条:16 个 URL 扫描模板、21 种密钥和 AI 密钥模式、15 项依赖能力、39 条 AI 工具规则、5 个修复方案,以及已签名的规则包 | 规则包 |
内置基准测试包含我们自行编写的小型实验环境中的 24 项发现。它能捕捉回归问题,但不能衡量现实世界中的准确性。E10 试点仅由一名标注人员完成,并非独立评估:修复方案是在同两个应用中发现漏报后编写的。在留出测试的 WebGoat 上,召回率仍为 9 项中 2 项。真实项目上的准确性将由实验 E1 评估,该实验已预先登记,但尚未运行。区间采用 Wilson 方法计算。Penthera 无法观察到的内容列在已知限制中。使用 npm run docs:numbers 和 npm run bench 更新计数。
引用此仓库,请使用 GitHub 上的按钮或 CITATION.cff。APA 和 BibTeX 格式见方法论。
为什么你可以信任它
- 本地运行,离线可用。 无需账户、没有遥测,也不使用云服务。
--offline会将网络流量限制为仅访问你指定的目标,每份报告都会列出它联系过的主机(网络使用情况)。 - 结果确定。 规则可供阅读,并提供
file:line证据。模型可以提出修复方案或线索;最终由确定性重新扫描和你的测试来决定。 - 默认不执行破坏性操作。 默认扫描不会发送攻击载荷。载荷测试(
--deep、--fuzz、--all)需主动启用,会要求确认目标,并受到速率限制。 - 更改前会先征求同意。 修复流程会在本地分支上进行,默认每次更改前都会征求同意,绝不会推送代码或创建拉取请求。
- 没有可被劫持的更新渠道。 检测规则随经过审核的版本一同发布,包含已签名、带版本号的规则包。你可以通过路径添加自己的规则(
--rules <dir>)。运行时不会下载并执行任何内容。 - 发布版本可供验证。 通过可信发布机制提供 npm 来源证明,每个版本均需维护者通过 2FA 批准,CI 使用 SHA 固定版本,并采用 CodeQL 和 OpenSSF Scorecard。每次发布都会通过包含八项门槛的内部审计(最新报告)。
亲自验证。 在空文件夹中运行:
npm install [email protected] && npm audit signatures
npx [email protected] rules list
第一条命令会检查 npm 注册表签名,以及你获取的软件包的构建来源证明。第二条命令会列出所有内置规则包及其签名密钥;如果规则包的签名无法验证,除非传入 --allow-unsigned-rules,否则将拒绝该规则包。
Penthera 能发现已知类别的问题,但无法发现新型问题,也不能取代人工渗透测试人员或事件响应。其背后的决策、局限性以及如何对其提出质疑,请参阅宣言和常见问题。
如何与其他工具配合
Penthera 可与现有工具配合使用;例如,其 SARIF 输出可直接用于 GitHub 代码扫描。每个对比页面都会说明其他工具在哪些方面更进一步,以及如何将两者配合使用。
| 重点 | 运行位置 | 判定方式 | |
|---|---|---|---|
| Penthera | 你的应用、依赖项和 AI 工具;修复;欧盟证据 | 你的机器或 CI,离线运行 | 可读的确定性规则,并提供证据 |
| Socket | 跨软件包注册表的供应链风险 | 云服务、GitHub App、CLI | 注册表规模的软件包分析,包括 AI 审核 |
| Snyk | 依赖项、代码、容器、IaC 中的已知漏洞 | 云服务、IDE、CLI | 精选漏洞数据库加静态分析 |
| GitHub Dependabot 和代码扫描 | 已知 CVE 警报、更新拉取请求、CodeQL | GitHub | 安全公告数据库、CodeQL 查询 |
| OWASP ZAP | Web 应用动态测试 | 你的机器或 CI | 主动和被动扫描规则 |
| Semgrep | 对自有代码进行静态分析 | 你的机器、CI、云平台 | 模式规则,以及付费的跨文件引擎 |
所有对比,包括 Cloudflare 的安全审计技能: docs/compare/。
从这里开始
| 你想了解什么 | 阅读内容 |
|---|---|
| 我的应用可以安全发布吗? | 我是新手,然后扫描 |
| 这个软件包或 MCP 服务安全吗? | 依赖项、安装、Agent |
| 如何通过编码 Agent 使用它? | MCP 服务、技能、安全使用 Agent |
| 如何将它放进 CI? | GitHub Action、在 CI 中扫描 |
| 应该向审计员提供什么? | 证据包、NIS2、CRA |
| 如何运行修复循环? | 修复并验证、本地循环 |
按使用情境整理的完整指南,涵盖从首次扫描到研究的内容,请参阅 docs/index.md。
伦理与授权
Penthera 会向你提供的目标发送 HTTP 请求,某些模式
(--deep、--fuzz、--all)在确认后会发送攻击载荷。仅扫描你拥有的目标、获得书面授权可以测试的目标,或你所控制的本地环境。请勿用它探测第三方系统、窃取数据、中断服务或伤害任何人。未经授权的测试可能违反计算机滥用相关法律,例如美国 CFAA、英国《计算机滥用法》及欧盟对应法律。如有疑问,请勿扫描。
本软件按“原样”提供,不作任何保证。作者不对滥用行为承担责任,你有责任确保运行的每次扫描都合法。penthera.org 上的实时检查另有自己的条款。
公开开发
在一个地方了解有哪些变更、我们在衡量什么,以及接下来要做什么。
| 当前进展 | 了解更多 | |
|---|---|---|
| 最新版本 | npm latest 上的 1.9.0(2026-10-23):penthera mcp、可选启用的 AI 模式、新检测规则、默认扫描不发送攻击载荷、焕然一新的仪表板 | 变更日志、路线图 |
| 研究 | 已发布 E10 试点:在两个已知存在漏洞的应用上,修复后精确率为 0.88,召回率从 0.07 提升到 0.71(由一名标注员评估,并非独立评估;由于默认扫描不再发送登录检查,正在等待重新运行)。真实代码上的 E1 已预注册;E8(Agent 防护措施)为草案 | E10 结果、E1 预注册、安全使用 Agent |
| 下一步 | 带区间的真实场景精确率和召回率(E1),无论结果如何都会发布 | 路线图:下一步、研究计划 |
我们有意放慢发布节奏:任何新的次要版本发布之前,都会先冻结功能、进行独立审查、完成发布检查,并发布候选版本。请关注仓库以了解版本发布,或加入 讨论区。
Penthera 的构建方式
Penthera 的开发得到了生成式 AI 的大量协助:截至 v1.7.0,91% 的提交是维护者通过 Claude Code 指导并审查后,使用 Claude(Anthropic)编写的,并标注了共同作者信息。生成的代码与任何更改一样,都要通过相同的审核关卡:测试、CodeQL、独立审查、内部审计,以及经 2FA 批准的发布。在产品内部,模型只会提出建议;由确定性检查作出判断。完整披露以及 AI 辅助贡献的规则,请参阅 docs/genai.md。
贡献与支持
克隆此代码库并运行 npm install,然后运行 npm test 执行测试套件,并运行
npm run bench 测量精确率和召回率。
CONTRIBUTING.md 介绍了项目结构、发布节奏和发布清单;AGENTS.md 是面向编码 Agent 的简短版本。路线图 展示了接下来的发布内容,研究计划则说明了我们要衡量的内容。欢迎提交问题和拉取请求。
Penthera 免费。如果它在你发布之前发现了问题,你可以 赞助其维护工作。赞助费用用于支付维护者的时间,不会影响调查结果 (赞助级别)。
许可证
MIT。请参阅 LICENSE。如需报告 Penthera 本身的漏洞,请通过 SECURITY.md 提交。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。


