安全漏洞扫描服务

一个基于Trivy的安全漏洞扫描服务,支持多语言项目扫描、自动修复漏洞,并能与Claude Desktop和Cursor等MCP兼容客户端集成。

  • by Mr-Neutr0n
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Mr-Neutr0n/trivy-mcp-server

使用说明

Trivy安全扫描器MCP服务器

一种模型上下文协议(MCP)服务器,通过以下方式提供安全漏洞扫描功能 Trivy,一个全面的安全扫描器。这允许您扫描漏洞,并直接从Claude Desktop、Cursor或任何兼容MCP的客户端自动修复它们。

特性

  • 🔍 项目扫描:扫描目录以查找依赖关系中的安全漏洞
  • 🔧 自动修复:自动将软件包更新为安全版本
  • 📦 多语言支持:支持Python(pip)、Node.js(npm)、Go、Rust、PHP和Ruby
  • 📊 详细报告:获取具有严重级别的全面漏洞报告
  • 🤖 人工智能集成:与Claude Desktop和Cursor无缝协作

先决条件

1.安装Trivy

macOS:

brew install trivy

Linux:

sudo apt-get install wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy

窗户: 下载自 Trivy发布

2.Python 3.8+

请确保您已安装Python 3.8或更高版本。

安装

  1. 克隆此存储库:

    git clone https://github.com/your-username/trivy-mcp-server.git
    cd trivy-mcp-server
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 测试安装:

    python server.py --help
    

配置

🖥️ Claude桌面设置

  1. 找到您的Claude Desktop配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 视窗: ~/AppData/Roaming/Claude/claude_desktop_config.json
  2. 将Trivy MCP服务器添加到您的配置中:

    {
      "mcpServers": {
        "trivy-security-scanner": {
          "command": "python",
          "args": [
            "/full/path/to/trivy-mcp-server/server.py",
            "--transport",
            "stdio"
          ],
          "env": {}
        }
      }
    }
    
  3. 替换 /full/path/to/ 带有克隆存储库的实际路径

  4. 重新启动克劳德桌面

  5. 验证它是否正常工作: 在Claude Desktop中,您现在应该可以问:

    “扫描我的项目以查找安全漏洞”

🎯 光标设置

  1. 打开光标设置 (Cmd/Ctrl + ,)

  2. 在设置中搜索“MCP”

  3. 添加Trivy MCP服务器配置:

    {
      "mcp.servers": {
        "trivy-security-scanner": {
          "command": "python",
          "args": [
            "/full/path/to/trivy-mcp-server/server.py",
            "--transport",
            "stdio"
          ]
        }
      }
    }
    
  4. 替换 /full/path/to/ 使用存储库的实际路径

  5. 重新启动游标

  6. 测试集成: 现在,您可以在Cursor的AI聊天中直接使用Trivy命令。

用法

一旦配置了Claude Desktop或Cursor,您就可以使用自然语言命令:

🔍 扫描漏洞

"Scan my current project for security vulnerabilities"
"Check for critical and high severity vulnerabilities only"
"Scan the /path/to/my/project directory for security issues"

🔧 修复漏洞

"Fix the lodash vulnerability in my project"
"Update the vulnerable packages to secure versions"
"Do a dry run to see what packages would be updated"

📚 研究漏洞

"Get details about CVE-2021-44228"
"Tell me more about this vulnerability: CVE-2021-23337"

可用工具

MCP服务器提供三个主要工具:

1. scan_project

  • 目的:扫描目录以查找安全漏洞
  • 参数:
    • workspace (必需):要扫描的目录路径
    • severity_filter (可选):按严重程度过滤(例如,“高,临界”)
    • include_fixed (可选):包括已修复的漏洞

2. fix_vulnerability

  • 目的:自动将软件包更新为安全版本
  • 参数:
    • workspace (必填):包含项目的目录
    • pkg_name (必填):要更新的包的名称
    • target_version (必填):要更新的版本
    • dry_run (可选):模拟修复而不进行更改

3. get_vulnerability_details

  • 目的:获取有关特定漏洞的详细信息
  • 参数:
    • vulnerability_id (必填):CVE ID(例如,“CVE-2021-44228”)

示例工作流

每日安全审查

  1. 晨间扫描:“扫描我的所有项目以查找新漏洞”
  2. 审查结果:检查发现问题的严重性和影响
  3. 应用修复程序:“修复发现的关键漏洞”
  4. 验证:重新扫描以确认已应用修复

拉取请求安全检查

  1. 合并前:“扫描此分支以查找任何新的安全漏洞”
  2. 如果发现问题,则阻止:如果引入了关键漏洞,请不要合并
  3. 可能时自动修复:“将易受攻击的依赖项更新为安全版本”

脆弱性研究

  1. 深潜:“获取有关CVE-2021-44228的详细信息,并检查我的任何项目是否受到影响”
  2. 影响评估:了解范围和严重程度
  3. 补救计划:计划更新和修复

支持的包管理器

  • ✅ python: requirements.txt, pyproject.toml
  • ✅ Node.js: package.json
  • ✅ 去: go.mod
  • 🔄 锈: Cargo.toml (仅检测)
  • 🔄 PHP程序: composer.json (仅检测)
  • 🔄 红宝石: Gemfile (仅检测)

注意:Python、Node.js和Go目前支持自动修复。其他语言具有手动修复指导的检测支持。

故障排除

常见问题

1.“未找到Trivy”错误

  • 确保Trivy已安装并位于您的PATH中
  • 测试: trivy --version

2.“权限被拒绝”错误

  • 确保server.py文件具有执行权限
  • 尝试: chmod +x server.py

3.“找不到模块”错误

  • 安装依赖项: pip install -r requirements.txt
  • 检查Python版本: python --version (应为3.8+)

4.Claude Desktop无法识别服务器

  • 检查配置中的文件路径是否正确(使用绝对路径)
  • 配置更改后重新启动Claude Desktop
  • 检查Claude Desktop日志中的错误消息

获取帮助

  1. 检查Trivy安装: trivy --version
  2. 测试服务器: python server.py --help
  3. 验证MCP连接:在Claude Desktop/Cursor中查找服务器日志
  4. 检查文件路径:确保配置文件中的所有路径都是绝对正确的

发展

独立运行

# Start with default settings (SSE transport on port 54321)
python server.py

# Start with custom settings
python server.py --port 8080 --transport sse

# Start for Claude Desktop (stdio transport)
python server.py --transport stdio

添加新的包管理器

要添加对其他包管理器的支持,请执行以下操作:

  1. 更新 detect_package_manager() 函数
  2. 在中添加修复逻辑 fix_vulnerability() 函数
  3. 使用示例项目进行测试

安全考虑

  • 服务器执行系统命令(Trivy、包管理器)
  • 在生产中应用修复程序之前,始终审查更改
  • 考虑在生产环境中以有限权限运行
  • 验证工作区路径以防止目录遍历攻击

贡献

欢迎投稿!请随时提交拉取请求。

许可证

这个项目是开源的。请参阅各自许可证的依赖关系。


🔒 通过自动漏洞扫描保护您的代码安全!