Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
pkgxray — 为AI代理、npm包和MCP服务器提供安装前安全检测。零依赖本地静态分析;常规扫描绝不执行包代码。 | Kitploit
工具/GitHubGitHub/adamsjack711-ux/pkgxray
静态分析漏洞扫描器代码分析DevSecOps秘密检测供应链安全AI 安全
GitHubadamsjack711-ux/pkgxray

pkgxray

为AI代理、npm包和MCP服务器提供安装前安全检测。零依赖本地静态分析;常规扫描绝不执行包代码。

查看仓库
1114414天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站
<div align="center">

<img src="https://raw.githubusercontent.com/adamsjack711-ux/pkgxray/main/docs/banner.png" alt="pkgxray — 在安装前分析软件包" width="820">

# pkgxray —— npm 包、MCP 服务器和 AI 代理的安装前安全检测

在安装或连接 npm 包、MCP 服务器**之前**检查它们,并获得
基于证据的确定性 `SAFE`、`REVIEW` 或 `BLOCK` 判定。
本地、零依赖的静态分析 —— 常规扫描从不执行包代码。

[![npm version](https://img.shields.io/npm/v/pkgxray)](https://www.npmjs.com/package/pkgxray)
[![npm downloads](https://img.shields.io/npm/dm/pkgxray)](https://www.npmjs.com/package/pkgxray)
[![tests](https://github.com/adamsjack711-ux/pkgxray/actions/workflows/pkgxray-test.yml/badge.svg)](https://github.com/adamsjack711-ux/pkgxray/actions/workflows/pkgxray-test.yml)
[![calibration benchmark](https://github.com/adamsjack711-ux/pkgxray/actions/workflows/pkgxray-benchmark.yml/badge.svg)](https://github.com/adamsjack711-ux/pkgxray/actions/workflows/pkgxray-benchmark.yml)
[![license: MIT](https://img.shields.io/npm/l/pkgxray)](LICENSE)

[**网站**](https://pkgxray.ca) · [**文档**](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/README.md) · [**校准**](https://pkgxray.ca/stats) · [**报告问题**](https://github.com/adamsjack711-ux/pkgxray/issues)

<img src="https://assets.kitploit.com/production/public/readmes/43061/49ce4b9fed6753583cc0f87fd2c64c556d14806d31791844eaeefc14f7c4749e.gif" alt="pkgxray guard 以 SAFE A+ 判定放行 [email protected],然后以 BLOCK F 判定和高危凭据获取发现阻止一个投毒的示例包" width="820">

<sub>真实运行:<code>guard</code> 放行 <code>[email protected]</code>,随后阻止一个模拟 2024 年 <code>@solana/web3.js</code> 事件的示例包。</sub>

</div>

## 亮点

- **零运行时依赖** —— 纯 Node,完全在你的机器上运行(静态扫描约 25 ms)。
- **常规扫描从不执行包代码** —— tarball 在隔离区中以字节流方式读取。
- **确定性、带引用的判定** —— 每项发现都会指明文件和证据;判定路径中不涉及 LLM,因此注入的文本无法左右结果。
- **为代理时代而生** —— 在连接前审查 MCP 服务器,为代理执行的安装把关,并重新审查实时的 MCP 流量。
- **经过校准并有回归门禁** —— 在下载量最高的前 1000 个包上零启发式误拦截,由 CI 强制执行。

> **[1. 快速开始](#quick-start)** · [2. 扫描与检测内容](#what-it-scans--detects) · [3. 判定](#verdicts) · [4. 用法](#usage) · [5. 集成](#integrations) · [6. 对比](#how-it-compares) · [7. 文档](#documentation)

## 为什么

AI 编码助手以机器速度安装软件包并连接 MCP 服务器,通常没有人类阅读代码。Sonatype 在 2025 年识别出**受监控生态系统中超过 454,600 个新增恶意开源软件包**,其中超过 99% 位于 npm
([Sonatype](https://www.sonatype.com/state-of-the-software-supply-chain/2026/open-source-malware))。
`npm audit` 回答的是*“是否存在已知 CVE?”*;pkgxray 还会在安装前回答*“这段代码实际上做了什么”*。

## 快速开始

**1. 扫描一个已知良性的包**(无需安装 pkgxray):

```bash
npx --yes [email protected] guard npm:[email protected]
```

它会在隔离区中暂存 tarball 并运行静态和供应链检查
—— 不执行 `npm install`、不运行生命周期脚本、不执行任何包代码。

<details>
<summary>示例输出</summary>

```text
Decision: SAFE   Grade: A+ (99/100)
No high- or medium-risk indicators were found in the provided evidence.

Notes:
- INFO npm-vs-github-clean — npm tarball matches the linked GitHub repo at the
  published version. (15/16 files match GitHub @4.21.0)
```

</details>

**2. 阅读判定:**

| 判定 | 退出码 | 含义 |
|---|---:|---|
| `SAFE` | `0` | 无高危或中危指标;默认策略允许放行。 |
| `REVIEW` | `3` | 证据不完整,或特权能力需要人工审查。 |
| `BLOCK` | `2` | 存在高严重性且带引用的证据 —— 拒绝或调查。 |

`SAFE` 并不证明某个包无害;静态分析无法看到仅在运行时下载的有效载荷。参见[威胁模型](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/threat-model.md)。

**3. 在随附的惰性测试样本上查看 BLOCK:**

```bash
npx --yes [email protected] --file examples/onboarding-malicious.json --format markdown
```

该测试样本是模拟拆分字符串 SSH 密钥读取和外传的惰性源码文本 —— **它永远不会被执行**。它返回 `BLOCK`(退出码 `2`)并附上引用的文件和证据。

**4. 将其加入你的工作流** —— [复查与 CI](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/reference.md#monitoring-pkgxray-recheck)、
[MCP](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/mcp.md#the-pkgxray-mcp-server)、[Hookshot 安装门禁](https://github.com/adamsjack711-ux/pkgxray/blob/main/examples/hookshot)。

> **两种执行模型。** 默认的 `guard` 和 `audit` 扫描是**静态**的 ——
> 从不执行包代码。枚举 MCP 服务器可能会启动它,`mcp-proxy` 会在门禁后运行它;可选的
> [`canary`](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/canary-threat-model.md) 是唯一有意**执行**包的例外,
> 它会在沙箱中运行以确认行为 —— 它能确认恶意,但永远无法证明某个包是安全的。完整边界:[SECURITY.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/SECURITY.md#scope)。

## 扫描与检测内容

**扫描** —— `pkgxray guard npm:name@version`、`github:owner/repo`、本地目录、整个锁文件(`npm`、`yarn`、`pnpm`)、MCP 服务器和 AI 代理扩展。

**检测** —— 凭据窃取(包括拆分片段路径)、云实例元数据与密钥存储收集、提示注入、Unicode 走私、base64 载荷与阶段二加载器、外传、持久化(shell 配置文件、操作系统调度器和被注入的 CI/CD 工作流)、自删除投放器、注册表蠕虫式复制(安装时执行 `npm publish`)、混淆的计算参数执行、已知 CVE(通过 OSV,在下载前)、npm↔GitHub 产物不一致、被投毒的更新(`recheck`)以及 MCP 能力面滥用。

完整的覆盖矩阵 —— 以及已知的“后续下载”盲区 —— 见[威胁模型](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/threat-model.md);并排对比表见[网站](https://pkgxray.ca/#catches)。

## 判定

| 判定 | 你应该 |
|---|---|
| `SAFE` | 安装。默认只有 `safe` 能从隔离区放行。 |
| `REVIEW` | 在放行前检查隔离区中的副本。 |
| `BLOCK` | 不要安装。每项发现都会指明文件和证据。 |

退出码稳定且适合 CI:**`0`** 安全/允许 · **`2`** 阻止 · **`3`** 复查。

## 用法

```bash
pkgxray guard npm:[email protected] [--format json]   # 安装前审查软件包
pkgxray mcp --package npm:[email protected] npx some-mcp-server   # 审查 MCP 服务器;--recheck 可捕捉“rug-pull”变脸攻击
pkgxray audit package-lock.json [--deep]               # 也支持:yarn.lock、pnpm-lock.yaml、package.json
pkgxray recheck package-lock.json                      # 定时执行:仅在出现回归时返回非零
```

一个可选的 `.pkgxray.json`(所有入口都会读取)用于调整策略;零配置意味着最大严格度。CVE 永远无法被豁免,任何放宽都会打印出来,扫描出错时会安全失败,判定为 `review`。模式与不变量:
[configuration.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/configuration.md) · [`.pkgxray.example.json`](https://github.com/adamsjack711-ux/pkgxray/blob/main/.pkgxray.example.json)。

## 集成

每个入口背后都是同一个引擎。“Works with”表示有文档化的设置指南,而非厂商背书的集成。

| 位置 | 功能 | 指南 |
|---|---|---|
| 编码代理 —— Codex、Claude Code、Cursor、Windsurf | 为安装把关,并向代理开放审计工具 | [coding-agents.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/integrations/coding-agents.md) |
| MCP 客户端 | 在连接前审查服务器;也可将 pkgxray 本身作为 MCP 服务器运行 | [mcp.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/mcp.md) |
| GitHub Actions / CI | 当依赖越过策略时让构建失败 | [github-actions.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/integrations/github-actions.md) |
| 安装门禁 —— Hookshot | 对代理尝试安装的每个包运行 `guard` | [examples/hookshot/](https://github.com/adamsjack711-ux/pkgxray/blob/main/examples/hookshot) |
| 运行时 MCP 门禁 | 代理一个实时 MCP 服务器,并为每次工具调用把关 | [`mcp-proxy`](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/mcp.md#per-call-runtime-gate-pkgxray-mcp-proxy) |
| 依赖监控 | 定时重新审查已安装的依赖,并在升级前预先审查 | [`recheck`](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/reference.md#monitoring-pkgxray-recheck) |

## 对比

请将 pkgxray 与 `npm audit` / OSV-Scanner **并行**使用,而不是替代它们 —— 它们回答的是*“已知 CVE?”*。与同类工具(行为型供应链审查 —— Socket.dev、OpenSSF Package Analysis、Cisco MCP Scanner)的完整能力对比见 [docs/comparison.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/comparison.md) 和[网站](https://pkgxray.ca/#comparison)。

## 证据

**在下载量最高的前 1000 个包上的零启发式误拦截校准**由 CI 进行回归门禁([范围与方法](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/benchmark.md)),已发布的运行结果位于 [pkgxray.ca/stats](https://pkgxray.ca/stats)。该声明仅限于被安装最多的集合 —— 并非声称所有包都零误拦截。

## 文档

| 文档 | 内容 |
|---|---|
| [architecture.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/architecture.md) · [design.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/design.md) | 流水线、入口、原则 |
| [threat-model.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/threat-model.md) | 范围、盲区、提示注入立场 |
| [mcp.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/mcp.md) · [mcp-registry.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/mcp-registry.md) | MCP 审查、运行时代理、注册表条目 |
| [canary-threat-model.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/canary-threat-model.md) | 可选的行为型 canary |
| [configuration.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/configuration.md) · [reference.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/reference.md) | `.pkgxray.json`、严重性策略、`recheck`、缓存服务器 |
| [benchmark.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/benchmark.md) · [comparison.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/comparison.md) | 校准与对比 |
| [compatibility.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/compatibility.md) · [json-schema.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/json-schema.md) | 1.0 契约、`--format json` 模式 |

从[文档索引](https://github.com/adamsjack711-ux/pkgxray/blob/main/docs/README.md)开始。

## 贡献

```bash
npm test                 # 零依赖 node --test 套件
npm run benchmark        # 校准语料库:精确率/召回率 + 零误拦截门禁
npm run validate:website # 重新生成并校验校准页面
```

欢迎提交 Pull Request —— 请阅读 [CONTRIBUTING.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/CONTRIBUTING.md) 和
[行为准则](https://github.com/adamsjack711-ux/pkgxray/blob/main/CODE_OF_CONDUCT.md)。按 [SECURITY.md](https://github.com/adamsjack711-ux/pkgxray/blob/main/SECURITY.md) 的规定私下报告漏洞。发布版以带出处(SLSA 证明)的形式发布到 npm,并以测试、校准基准和 pkgxray 自身的供应链守卫作为门禁。

<div align="center">
<sub>由 <a href="https://github.com/adamsjack711-ux">Jack Adams-Lovell</a> 构建 · <a href="https://github.com/adamsjack711-ux/pkgxray/blob/main/LICENSE">MIT</a> · <a href="https://pkgxray.ca">pkgxray.ca</a></sub>
</div>
下载工具