MCP安全窃听器
](https://www.npmjs.com/package/mcp-security-linter) ](https://www.npmjs.com/package/mcp-security-linter) 
模型上下文协议(MCP)存储库安全漏洞的静态分析工具。
概述
这个门楣工具 Anthropic推荐的5项安全检查中的3项 对于MCP服务器。它使用高级静态分析(污染跟踪、控制流分析)以高精度和低误报检测漏洞。
特性
目前已实施(高级分析)
- 危险指令执行检测 ✅
- 技术:递归Taint分析 - 检测:通过命令注入 exec, spawn, eval, vm.runInContext. - 能力:跟踪不受信任的输入(process.env,函数参数)通过变量赋值、字符串连接和模板文字。 - 安全:忽略安全的硬编码命令(例如。, exec('ls -la')).
- 令牌通过检测 ✅
- 技术:迭代污染分析(定点) - 检测:传递给日志记录功能或外部网络请求的敏感数据(API密钥、机密)。 - 能力:通过复杂的数据流跟踪秘密,包括对象/数组包装和三元运算符。 - 范围:尊重变量范围和阴影。
- 未经身份验证的端点检测 ✅
- 技术:中间件堆栈模拟 - 检测:API端点在没有身份验证中间件的情况下暴露。 - 能力:理解 app.use() 顺序、路由器安装层次结构和特定于路由的中间件。
缺失/计划中的分析器(人为建议)
以下两项建议检查为 尚未实现:
- OAuth卫生检查器 ❌
- *目标*:确保正确处理OAuth令牌和作用域。
- 参数验证 ❌
- *目标*:使用前验证所有用户输入是否经过验证。
______________________________________________________________________
安装
来自NPM(推荐)
全局安装以在任何地方使用CLI:
npm install -g mcp-security-linter或者将其作为开发依赖项添加到您的项目中:
npm install --save-dev mcp-security-linter然后运行:
mcp-lint . # Scan current directory
mcp-lint src/ --format json # Scan src/ with JSON output
mcp-lint --config custom-config.json # Use custom config作为GitHub行动
步骤1:创建工作流目录
在您的存储库中,创建目录结构(如果不存在):
mkdir -p .github/workflows步骤2:创建工作流文件
创建一个新文件 .github/workflows/mcp-security.yml (你可以给它起任何以结尾的名字 .yml):
name: MCP Security Check
on: [push, pull_request]
jobs:
security-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: fonCki/mcp-security-linter@master
with:
path: '.'
fail-on-warnings: true第三步:承诺并推动
git add .github/workflows/mcp-security.yml
git commit -m "Add MCP security linter workflow"
git push现在,该操作将在每次推送和拉取请求时自动运行!
对于贡献者
如果你想为发展做出贡献:
git clone https://github.com/fonCki/mcp-security-linter.git
cd mcp-security-linter
npm install看 贡献.md 发展指南。
用法
命令行界面
# From the project directory
node src/cli.js # Analyze current directory
node src/cli.js src/ # Analyze specific path
node src/cli.js --format sarif --output results.sarif # SARIF output
node src/cli.js --config .mcp-lint.json # Use custom config配置
v1.1.0版本+ 引入了高级配置选项。看 配置.md 完整的指南。
创建 .mcp-lint.json (可选):
{
"command-exec": {
"enabled": true,
"severity": "error"
},
"token-passthrough": {
"enabled": true,
"severity": "warning"
}
}高级配置(v1.1.0+):
- 📁 自定义文件扩展名(扫描任何语言)
- 🧪 自定义测试模式(跳过测试文件)
- 🚫 自定义排除模式(忽略目录)
- ⚙️ 分析仪特定的覆盖
看 配置.md 例如示例和详细文档。
发展
# Install dependencies
npm install
# Run tests
npm test
# Run tests with coverage
npm run test:coverage团队
该项目是DTU 02234课程“网络安全研究课题”的一部分。
有关详细的团队信息、贡献和联系方式,请参阅 TEAM.md.
团队成员:
- 梅丽莎·萨法里(s224818)
- 康(251598)
- 阿方索·佩德罗·里多(243942)
许可证
麻省理工学院-参见 许可证 详细信息文件
