AI安全扫描器

Prism Scanner是一款开源的AI代理技能、插件和MCP服务器安全扫描工具,提供安装前代码分析和卸载后系统残留检测的全生命周期安全覆盖。

  • by aidongise-cell
  • Python
  • 本地部署
  • 27 星标
  • 更新于
在 GitHub 查看 aidongise-cell/prism-scanner

使用说明

: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级(安全):

[![Prism Grade A](https://img.shields.io/badge/Prism-Grade%20A-brightgreen?style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAxTDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHoiLz48L3N2Zz4=)](https://github.com/aidongise-cell/prism-scanner)

所有等级:

等级 徽章
A. ![Prism Grade A](https://img.shields.io/badge/Prism-Grade%20A-brightgreen?style=flat-square)
B ![Prism Grade B](https://img.shields.io/badge/Prism-Grade%20B-green?style=flat-square)
C ![Prism Grade C](https://img.shields.io/badge/Prism-Grade%20C-yellow?style=flat-square)
D ![Prism Grade D](https://img.shields.io/badge/Prism-Grade%20D-orange?style=flat-square)
F ![Prism Grade F](https://img.shields.io/badge/Prism-Grade%20F-red?style=flat-square)

预览:


支持

如果Prism Scanner帮助您发现安全风险或让您放心,请考虑给它一个⭐ 在GitHub上——它帮助其他人发现项目并保持开发。


致谢

棱镜扫描仪由 棱镜实验室 解决人工智能代理生态系统中的一个缺口:缺乏跨平台工作并覆盖整个代理生命周期的透明代码级安全工具。我们认为,开发人员在将技能或插件托付给他们的系统之前,应该确切地了解它的作用。