使用说明
:large_blue_diamond:棱镜扫描仪
用于AI代理技能、插件和MCP服务器的安全扫描程序。
Prism分析代码中的恶意行为 之前 您安装它,并检查您的系统是否存在遗留威胁 之后 您卸载。
与仅限市场的信任评分不同,Prism为您提供了完整的生命周期覆盖,在每个平台上都具有代码级的透明度——预安装、运行时和卸载后,完全开源。
:sparks:v0.2.x中的新功能
- P10——代理人心理操纵检测:检测技能描述、提示和代码字符串中嵌入的煤气灯、内疚感、权威模仿、紧迫压力和情绪胁迫模式。基于东北大学/哈佛大学/麻省理工学院对人工智能代理会话操纵的研究——据我们所知,这是针对此类攻击的第一个开源自动检测器。
- M7--发布卫生检查:捕获源地图,
.env文件、私钥、IDE配置和包管理器凭据在发货前。受到Anthropic 2026年4月源代码映射泄漏的启发,该泄漏通过npm暴露了512K行Claude Code内部。将其连接到您的CI:prism scan ./dist --fail-on high - 误报率降低47%-93% 关于现实世界的技能(S1、S4、S8、S12发动机修复;针对之前充斥着虚假标志的3种代表性ClawHub技能进行了验证)。
- 共41条检测规则 在S1-S14(行为)、M1-M7(元数据+发布卫生)、P1-P10(模式+操作)和R1-R10(残基)之间。
- v0.2.2修复了外观版本字符串不匹配的问题(
prism --version报道0.1.3升级后0.2.1);检测行为与v0.2.1相同。
为什么是棱镜?
| 市场信任评分 | 棱镜扫描仪 | |
|---|---|---|
| 预安装 | :white_check_mark:信誉评分 | :white_ccheck_mark:深度代码分析 |
| 卸载后 | :x: | :white_check_mark:残留物和持久性扫描 |
| 检查 | 黑盒评级 | 代码级别,按规则 |
| 平台 | 单一生态系统 | ClawHub、MCP、npm、pip |
| 源 | 关闭 | 打开(Apache 2.0) |
| 执行 | 需要上传 | 本地优先,离线OK |
快速开始
pip install prism-scanner
# Scan a local skill directory
prism scan ./my-skill/
# Scan a GitHub repo directly
prism scan https://github.com/user/skill-repo
# Check your system for agent residue
prism clean --scan
# Generate a cleanup plan (non-destructive)
prism clean --plan
# Execute cleanup with automatic backups
prism clean --apply
自制(macOS)
brew tap prismlab/tools
brew install prism-scanner
npx(无需安装)
npx prism-scanner scan https://github.com/user/skill-repo
GitHub操作(CI/CD)
将Prism添加到您的CI管道中——结果显示在GitHub的安全选项卡中:
# .github/workflows/prism-scan.yml
name: Prism Security Scan
on: [push, pull_request]
permissions:
security-events: write
contents: read
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: aidongise-cell/prism-scanner@main
with:
path: '.'
fail-on: 'high'
MCP服务器(克劳德桌面/光标/VS代码)
Prism Scanner可以作为MCP服务器运行,使AI助手可以直接访问安全扫描工具。
pip install "prism-scanner[mcp]"
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"prism-scanner": {
"command": "prism-mcp"
}
}
}
或者对于克劳德代码:
claude mcp add prism-scanner prism-mcp
这暴露了4个工具: prism_scan, prism_grade, prism_clean_scan, prism_clean_plan.
码头工人
# Build the image
docker build -t prism-scanner .
# Scan a local directory
docker run -v $(pwd)/my-skill:/workspace/target:ro prism-scanner scan /workspace/target
# Scan a remote repo
docker run prism-scanner scan https://github.com/user/skill-repo
# Generate HTML report
docker run -v $(pwd):/workspace/output prism-scanner scan https://github.com/user/repo --format html -o /workspace/output/report.html
或者使用已发布的图像:
docker run ghcr.io/prismlab/prism-scanner scan <target>
它检测到什么
Prism横跨 3个分析层,每个都针对代理生命周期的不同阶段:
| 图层 | 焦点 | 规则 | 示例 |
|---|---|---|---|
| 1.代码行为 (S1-S14) | 代码是什么 做 | 14 | Shell执行、数据泄露、SSRF、持久化机制、不安全的反序列化、下载和执行 |
| 2.元数据 (M1-M6,P1-P9) | 包装是什么 索赔 vs。 包含 | 15 | 硬编码凭据、拼写错误、安装脚本、混淆的有效载荷、提示注入、可疑域 |
| 3.系统残留物 (R1-R10) | 什么是 被遗忘 | 10 | LaunchAgents、crontab条目、shell配置污染、孤立凭据、systemd单元、登录项 |
总计:39条检测规则 使用轻量级的文件内污染分析。
输出示例
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Prism Scanner v0.1.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target: evil_skill
Platform: clawhub
Duration: 42ms
[1/3] Behavior Analysis
✗ CRITICAL S8 Data exfiltration: secrets sent to external endpoint evil_skill.py:10
✗ CRITICAL S10 Download and execute: fetches remote payload evil_skill.py:24
✗ HIGH S1 Shell execution with untrusted input evil_skill.py:14
✗ HIGH S13 Persistence: writes LaunchAgent plist evil_skill.py:36
⚠ MEDIUM S6 Dynamic code execution (eval/exec) evil_skill.py:21
[2/3] Metadata Analysis
✗ CRITICAL P1 Hardcoded credential: AWS Access Key evil_skill.py:47
⚠ MEDIUM P2 Base64-encoded executable content evil_skill.py:50
⚠ MEDIUM P6 Prompt injection pattern in string literal evil_skill.py:53
[3/3] Residue Scan
(skipped — use `prism clean --scan` for system-level checks)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Grade: F (Critical)
Key Risks:
▸ CRITICAL: Data exfiltration to external endpoint (S8)
▸ CRITICAL: Download and execute remote payload (S10)
▸ CRITICAL: Hardcoded AWS credential (P1)
▸ HIGH: Shell execution with user input (S1)
▸ HIGH: Persistence mechanism installed (S13)
Behavior Profile:
exfiltrates_data, executes_shell, downloads_and_executes, installs_persistence
Recommendation: DO NOT INSTALL — Critical security risks detected.
Findings: 3 critical, 2 high, 3 medium
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
分级系统
| 等级 | 标签 | 含义 | 推荐 |
|---|---|---|---|
| A. | 安全 | 无发现或仅供参考 | 使用安全 |
| B | 注意 | 只有低严重程度的发现 | 可能安全——轻微观察 |
| C | 警告 | 1-4中等发现 | 使用前检查——需要手动检查 |
| D | 危险 | 1-2高,或5+中 | 仅在沙箱中使用-重大风险 |
| F | 临界 | 任何临界或3+高 | 请勿安装 --关键安全风险 |
输出格式
# Rich terminal output (default) — color-coded severity, grade highlighting
prism scan ./skill/
# Machine-readable JSON
prism scan ./skill/ --format json
# Standalone HTML report — dark-themed, self-contained, shareable
prism scan ./skill/ --format html -o report.html
# SARIF for GitHub Code Scanning
prism scan ./skill/ --format sarif -o results.sarif
HTML报告
生成一个 独立、自包含的HTML报告 具有完整的发现、成绩可视化和风险细分功能,非常适合与队友分享或存档:
prism scan https://github.com/user/skill-repo --format html -o report.html
HTML报告具有一个带有颜色编码严重程度的深色主题UI、一个交互式评分环和一个完整的调查结果表。没有外部依赖关系——只需打开 .html 任何浏览器中的文件。
CI/CD集成
将Prism添加到您的GitHub Actions工作流中,以根据安全发现对部署进行审查:
name: Security Scan
on: [push, pull_request]
jobs:
prism-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install Prism Scanner
run: pip install prism-scanner
- name: Run security scan
run: prism scan . --format sarif -o results.sarif --fail-on high
- name: Upload SARIF results
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
这 --fail-on 如果任何发现达到或超过指定的严重性,则标志退出,代码为1(critical, high,或 medium),使CI管道失败。
主要特点
- 污点跟踪分析技术 --跟踪每个文件中从源(环境变量、用户输入)到汇(shell、网络)的数据流
- 多平台 --使用平台感知规则扫描ClawHub技能、MCP服务器、npm包和pip包
- 对目标零依赖 --纯静态分析;从不执行扫描代码
- 残留物扫描仪 --检测未安装工具留下的持久性机制、shell配置污染和凭据泄漏
- 安全清理 --三层工作流程(
scan->plan->apply)具有自动备份和--rollback - 压制 --使用
.prismignore通过带有理由的规则ID抑制已知发现 - 脱机模式 --跑步
--offline跳过所有外部查找
添加自定义规则
检测规则在YAML文件中定义 rules/ 目录:
rules/
├── malicious_signatures.yaml # Known malicious code signatures and hashes
├── permissions.yaml # Permission baseline definitions
└── suspicious_domains.yaml # C2 domains, dynamic DNS, disposable TLDs
模式引擎(P1-P9)和清单引擎(M1-M6)在扫描时从这些文件加载规则。添加条目以扩展检测,而无需修改Python代码。
项目结构
src/prism/
├── cli.py # CLI entry point and output formatting
├── scanner.py # Orchestrator — runs engines, collects findings
├── models.py # Finding, ScanResult, Severity, Layer data models
├── scoring.py # Letter-grade risk assessment (A-F)
├── report.py # HTML report generator
├── fetcher.py # Git clone / URL fetching with security guards
├── cleaner.py # System cleanup: plan, apply, rollback
├── suppression.py # .prismignore parsing
├── rules_loader.py # YAML rule loading
└── engines/
├── ast_engine.py # AST-based analysis (S1-S14)
├── pattern_engine.py # Regex pattern matching (P1-P9)
├── manifest_engine.py # Metadata & manifest analysis (M1-M6)
├── residue_engine.py # System residue scanner (R1-R10)
└── taint.py # Intra-file taint tracking
贡献
欢迎捐款。请看 贡献.md 关于以下方面的指导方针:
- 添加新的检测规则
- 编写和运行测试
- 代码风格和提交约定
许可证
Apache许可证2.0 --免费供商业和个人使用。
Prism验证徽章
显示您的项目已被Prism扫描。在README中添加徽章:
A级(安全):
[](https://github.com/aidongise-cell/prism-scanner)
所有等级:
| 等级 | 徽章 |
|---|---|
A.  |
|
B  |
|
C  |
|
D  |
|
F  |
预览:
支持
如果Prism Scanner帮助您发现安全风险或让您放心,请考虑给它一个⭐ 在GitHub上——它帮助其他人发现项目并保持开发。
致谢
棱镜扫描仪由 棱镜实验室 解决人工智能代理生态系统中的一个缺口:缺乏跨平台工作并覆盖整个代理生命周期的透明代码级安全工具。我们认为,开发人员在将技能或插件托付给他们的系统之前,应该确切地了解它的作用。
