article
README
🚀 安全扫描器MCP服务器
这是一个用于代码仓库的全面安全扫描工具,以MCP(模型上下文协议)服务器的形式提供服务。该工具可帮助开发者识别代码库中的安全漏洞、暴露的机密信息、依赖项问题和配置问题。
✨ 主要特性
- 机密信息检测:扫描暴露的API密钥、密码、令牌和其他敏感信息。
- 漏洞分析:识别代码中常见的安全漏洞。
- 依赖项审计:检查是否存在过时或有漏洞的依赖项。
- Git安全:分析.gitignore文件和git历史记录中的安全问题。
- 实时扫描:在提交代码前检查内容是否包含机密信息。
- 安全最佳实践:提供可操作的安全建议。
📦 安装指南
使用以下命令全局安装:
npm install -g @rupeshpanwar/security-scanner-mcp
或者使用npx临时使用:
npx @rupeshpanwar/security-scanner-mcp
💻 使用示例
CLI使用(v1.1.0版本新增)
该软件包现在包含一个独立的CLI工具,可直接在命令行进行扫描:
# 扫描一个目录并输出摘要报告
security-scan scan /path/to/project
# 扫描并输出详细报告
security-scan scan /path/to/project --format detailed
# 扫描特定类别
security-scan scan /path/to/project --categories secrets vulnerabilities
# 以JSON格式输出
security-scan scan /path/to/project --format json
# 将报告保存到文件
security-scan scan /path/to/project --format detailed > security-report.txt
CLI选项:
--format <format>:输出格式(summary|detailed|json),默认值:summary。--categories <categories...>:要扫描的特定类别(secrets|vulnerabilities|dependencies|gitignore|git-history),默认值:全部。
与Claude桌面版配合使用
将服务器添加到Claude桌面版配置中:
macOS
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"security-scanner": {
"command": "npx",
"args": ["@rupeshpanwar/security-scanner-mcp"]
}
}
}
Windows
编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"security-scanner": {
"command": "npx",
"args": ["@rupeshpanwar/security-scanner-mcp"]
}
}
}
可用工具
1. scan_repository
对仓库进行全面的安全扫描。 参数:
path(必需):要扫描的仓库路径。outputFormat(可选):输出格式 - "summary"、"detailed" 或 "json"(默认值:"summary")。categories(可选):要扫描的特定类别(默认值:全部)。- "secrets":API密钥、密码、令牌。
- "vulnerabilities":代码漏洞。
- "dependencies":依赖项问题。
- "gitignore":.gitignore分析。
- "git-history":git历史记录扫描。 示例:
扫描 /path/to/repo 仓库中的所有安全问题
2. check_secret
检查一段内容是否包含潜在的机密信息或敏感信息。 参数:
content(必需):要检查机密信息的内容。fileType(可选):用于上下文感知扫描的文件类型/扩展名。 示例:
检查此配置文件是否包含机密信息:AWS_ACCESS_KEY=AKIA1234567890ABCDEF
3. check_gitignore
分析.gitignore文件是否缺少安全规则。 参数:
path(必需):仓库路径。patterns(可选):要检查的其他规则。 示例:
检查 /path/to/repo 中的.gitignore文件是否包含所有推荐的安全规则
4. get_security_tips
获取特定主题的安全最佳实践和建议。 参数:
topic(必需):安全主题。- "secrets":机密信息管理最佳实践。
- "gitignore":.gitignore建议。
- "dependencies":依赖项安全。
- "docker":Docker安全。
- "ci-cd":CI/CD安全。
- "general":通用安全建议。 示例:
给我一些关于机密信息管理的安全建议
🔧 检测到的安全规则
机密信息
- AWS访问密钥和秘密密钥
- API密钥(OpenAI、Google、GitHub等)
- 私钥(SSH、SSL证书)
- 数据库连接字符串
- OAuth令牌
- JWT令牌
- 还有很多...
漏洞
- SQL注入风险
- 命令注入风险
- 硬编码的IP地址和凭证
- 弱加密使用
- 不安全的反序列化
- 生产环境中的调试代码
- 不安全的随机数生成
配置问题
- 缺少.gitignore规则
- 暴露的配置文件
- 临时文件使用
- 未使用TLS的HTTP
示例工作流程
- 初始仓库扫描
扫描 ./my-project 仓库并显示详细报告 - 提交代码前检查
检查此配置文件是否包含任何机密信息: [粘贴你的配置内容] - 修复.gitignore问题
检查我的.gitignore文件,告诉我缺少哪些安全规则 - 获取安全建议
给我一些在代码库中管理机密信息的最佳实践
输出格式
摘要格式
快速概览,按严重程度显示问题数量。
详细格式
完整列出所有发现的问题,包括:
- 问题描述
- 文件位置和行号
- 严重程度
- 修复建议
JSON格式
机器可读格式,可与其他工具集成。
📚 详细文档
最佳实践
- 定期扫描:集成到CI/CD管道中。
- 优先修复关键问题:立即处理高严重程度和关键的问题。
- 更新.gitignore:确保排除所有敏感文件规则。
- 轮换暴露的机密信息:如果发现任何机密信息,立即进行轮换。
- 保持依赖项更新:定期更新依赖项可减少漏洞。
贡献
欢迎贡献代码!请随时提交拉取请求。
📄 许可证
MIT
致谢
该工具是在发现生产代码中暴露的凭证后创建的。其目的是通过提供主动扫描和安全最佳实践教育,帮助开发者预防类似的安全事件。
扫码联系在线客服