安全分析服务器

一个提供全面安全分析能力的模型上下文协议(MCP)服务器,通过集成OSV.dev漏洞数据库和基于Go的代码分析及秘密检测引擎。

  • by gleicon
  • Go
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 gleicon/mcp-osv

使用说明

MCP安全分析师

模型上下文协议(MCP)服务器通过与OSV.dev漏洞数据库和本机基于Go的代码分析和秘密检测引擎集成,提供全面的安全分析功能。

特性

  • 供应链脆弱性分析:与OSV.dev API集成,用于依赖性漏洞评估
  • 秘密侦查:Gitleaks v8集成了100+内置的凭据和API密钥检测规则
  • 静态代码分析:基于AST的Go代码分析,用于安全反模式
  • 模式匹配:基于正则表达式的常见安全漏洞检测
  • MCP协议支持:AI助手集成的标准协议实施
  • 社区审查规则:安全社区维护的Gitleaks模式

需求

核心要求

make deps
make install

建立依赖关系

  • 转到1.25.4或更高版本
  • github/mark3labs/mcp-go
  • github/zricethezav/titleaks/v8

安装

make deps     # Install Go module dependencies
make build    # Compile binary
make install  # Install to /usr/local/bin
make run       # Build and execute server
make clean     # Remove build artifacts

预构建版本

mcp-osv二进制文件使用mcp协议通过stdin/stdout进行通信。

IDE配置

光标IDE

导航到配置>MCP并添加:

{
  "mcpServers": {
    "security_analyst": {
      "name": "Security Analyst",
      "type": "stdio",
      "command": "/usr/local/bin/mcp-osv"
    }
  }
}

克劳德桌面版

在“设置”>“开发人员”中编辑MCP配置文件:

{
  "mcpServers": {
    "mcp_osv": {
      "command": "/usr/local/bin/mcp-osv",
      "args": []
    }
  }
}

可用工具

服务器公开了三个MCP工具用于安全分析:

检查漏洞

查询OSV.dev数据库以查找特定软件包版本中的已知漏洞。

参数:

  • package_name (字符串,必填):包标识符
  • version (string,必填):版本字符串

功能:

  • API请求受限(1个请求/秒)
  • HTTP超时保护(10秒)
  • JSON响应解析
  • 漏洞详细信息提取

分析安全

结合多种检测引擎的全面安全分析。

参数:

  • file_path (字符串,必填):目标文件或目录路径

分析组件:

  • 基于Native Go AST的代码分析
  • Gitleaks v8秘密检测,100多条规则
  • OSV.dev依赖项漏洞检查(go.mod文件)
  • 基于模式的漏洞检测

检测到的问题:

  • 指令注入向量
  • 反序列化漏洞
  • SQL注入模式
  • 硬编码凭证
  • API密钥和令牌
  • 私钥和证书
  • 数据库连接字符串

scan_secrets

使用Gitleaks v8和100多个社区维护的检测规则进行专门的秘密检测。

参数:

  • path (字符串,必填):目标文件、目录或存储库路径
  • scan_git_history (布尔值,可选):启用git历史扫描(默认值:false)

检测能力(100多种模式):

  • AWS访问密钥、密钥、会话令牌
  • GitHub个人访问令牌、OAuth令牌
  • Google云平台API密钥
  • Azure凭据和连接字符串
  • Slack令牌和Webhook
  • 条纹API密钥
  • 专用SSH/PGP/RSA密钥
  • JWT代币
  • 数据库连接字符串(PostgreSQL、MySQL、MongoDB)
  • 具有熵分析的通用API密钥
  • 安全社区维护了90多种模式

输出: 安全显示的部分秘密编辑(前4个字符+后4个字符)

集成模式

MCP服务器使AI助手能够通过自然语言请求执行安全分析:

依赖漏洞扫描:

Request: "Check dependencies in go.mod for vulnerabilities"
Tool Execution: analyze_security -> OSV.dev API queries
Response: Vulnerability report with CVE details

秘密检测:

Request: "Scan repository for exposed credentials"
Tool Execution: scan_secrets -> Pattern matching + entropy analysis
Response: Detected secrets with file locations and types

全面审计:

Request: "Perform full security analysis"
Tool Execution: analyze_security -> All detection engines
Response: Combined report (code issues + secrets + vulnerabilities)

安全实施细节

速率限制

OSV.dev API请求速率限制为每秒1个请求,使用golang.org/x/time/rate限制器来防止服务节流。

输入验证

所有文件路径都经过清理,以防止目录遍历攻击:

  • 通过文件路径进行路径清理。Clean()
  • 目录遍历模式检测
  • 存在性验证

秘密行动

检测到的机密在显示之前会被部分编辑:

  • 秘密<=8个字符:完全编辑
  • 秘密>8个字符:前4个+“***”+后4个字符

Gitleaks集成

由Gitleaks v8支持的秘密检测:

  • 100+社区维护的检测规则
  • 高随机性字符串的熵分析
  • 基于关键字的性能预过滤
  • 定期更新新的秘密类型

添加安全规则

要扩展检测能力:

  1. 秘密和凭证检测:Gitleaks规则在上游维护 gitleaks
  2. 代码分析:将AST检查扩展到 runGoCodeAnalysis()
  3. 模式匹配:正则表达式模式可以添加到 analyzeFile() 检查地图,创建分支,并解释如何合并它们

许可证

麻省理工学院