安全审计合规服务器

MCP Shamash是一个用于安全审计、渗透测试和合规验证的服务器,具有严格的项目边界执行功能。

  • by NeoTecDigital
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 TheNexusGroup/mcp_shamash

使用说明

MCP Shamash-安全审计与合规服务器

用于安全审计、渗透测试和合规性验证的模型上下文协议(MCP)服务器,具有严格的项目边界执行。

特性

  • 项目范围内的安全扫描:永远不会脱离项目边界
  • 多种安全工具:Semgrep、Trivy、Gitleaks、OWASP ZAP等
  • 网络渗透测试:项目范围内的安全网络扫描
  • 合规性验证:OWASP、CIS、NIST、ISO 27001框架
  • 容器化执行:使用Docker独立执行扫描程序
  • 并行处理:同时执行扫描仪以提高速度
  • 智能高速缓存:缓存结果以优化性能
  • 代币效率:每次操作少于1000个令牌,并进行监控
  • 全面的审计日志记录:完整的操作轨迹
  • 实时边界执行:多层安全隔离

快速开始

安装

npm install
npm run build

运行服务器

npm start

或用于开发:

npm run dev

演示

通过交互式演示体验所有功能:

node demo.js

这表明:

  • 真正的安全工具集成(Semgrep、Trivy、Gitleaks、OWASP ZAP)
  • 边界执行(防止外部访问)
  • 项目范围内的网络扫描
  • 合规性验证(OWASP、CIS、NIST)
  • 缓存性能改进
  • 并行扫描仪执行

MCP集成

在MCP兼容客户端中配置:

{
  "mcpServers": {
    "shamash": {
      "command": "node",
      "args": ["/path/to/mcp_shamash/dist/index.js"]
    }
  }
}

可用工具

scan_工程

项目目录的全面安全扫描。

{
  "name": "scan_project",
  "arguments": {
    "path": "/path/to/project",
    "profile": "standard",
    "tools": ["semgrep", "trivy", "gitleaks"]
  }
}

扫描网络

项目边界内的网络扫描。

{
  "name": "scan_network",
  "arguments": {
    "target": "127.0.0.1",
    "ports": "80,443",
    "serviceDetection": true
  }
}

pentest_应用程序

部署的应用程序的渗透测试。

{
  "name": "pentest_application",
  "arguments": {
    "targetUrl": "http://localhost:3000",
    "testTypes": ["sql_injection", "xss", "csrf"],
    "depth": "thorough"
  }
}

检查合规性

合规框架验证。

{
  "name": "check_compliance",
  "arguments": {
    "path": "/path/to/project",
    "frameworks": ["OWASP", "CIS", "NIST"]
  }
}

安全边界

项目范围检测

  • Docker Compose网络的自动发现
  • Kubernetes服务检测
  • Node.js应用程序的Package.json分析
  • 本地服务枚举

多层强制执行

  1. 路径验证:阻止目录遍历
  2. 网络边界:基于CIDR的网络限制
  3. 集装箱隔离:Docker安全强化
  4. 资源限制:内存、CPU和进程限制

受阻操作

  • 系统路径访问(/etc, /usr, /var)
  • 外部网络扫描
  • 管理端口访问(223389445)
  • 特权升级尝试

建筑

mcp-shamash/
├── src/
│   ├── core/           # MCP server core
│   ├── boundaries/     # Scope enforcement
│   ├── scanners/       # Tool integrations
│   ├── compliance/     # Framework validators
│   └── utils/          # Token management, audit logging
├── containers/         # Docker configurations
├── rules/             # Security rules
└── tests/            # Test suites

发展

建筑

npm run build

测试

npm test
npm run test:coverage

代码检查

npm run lint
npm run format

容器使用情况

构建扫描仪容器

# Build Semgrep scanner
docker build -f containers/Dockerfile.semgrep -t shamash-semgrep .

# Build all scanners
docker-compose -f containers/docker-compose.scanners.yml build

运行隔离扫描

# Set target path and run scan
export SHAMASH_TARGET_PATH=/path/to/project
docker-compose -f containers/docker-compose.scanners.yml up semgrep

配置

环境变量

  • SHAMASH_MAX_TOKENS_PER_SCAN:每次扫描的令牌限制(默认值:1000)
  • SHAMASH_MAX_TOKENS_PER_HOUR:每小时令牌限制(默认值:50000)
  • SHAMASH_AUDIT_LOG_PATH:审核日志位置(默认值:./Audit.log)

项目配置

创建 .shamash.yml 在项目根目录中:

networks:
  allowed:
    - 172.20.0.0/16
    - 127.0.0.1/32
  blocked:
    - 10.0.0.0/8

ports:
  allowed: [80, 443, 3000, 8080]
  blocked: [22, 3389, 445]

tools:
  semgrep:
    config: "auto"
    timeout: 300
  trivy:
    severity: "HIGH,CRITICAL"
  gitleaks:
    entropy_threshold: 4.5

合规框架

OWASP十大覆盖范围

  • A01:访问控制中断
  • A02:加密失败
  • A03:注射
  • A04:不安全的设计
  • A05:安全配置错误
  • A06:易损部件
  • A07:身份验证失败
  • A08:软件/数据完整性
  • A09:安全日志记录
  • A10:服务器端请求伪造

CIS控制

  • 资产清查与控制
  • 访问控制管理
  • 持续漏洞管理
  • 网络基础设施管理
  • 数据保护

NIST网络安全框架

  • 识别:资产管理、治理
  • 保护:访问控制、数据安全
  • 检测安全监控、检测流程
  • 回应:响应计划、事件管理
  • 恢复:恢复规划、改进

安全考虑

仅防御

  • 没有进攻能力
  • 只读文件系统操作
  • 无凭证收集
  • 所有操作的审计跟踪

边界执法

  • 多个验证层
  • 实时监控
  • 自动违规检测
  • 紧急停机能力

许可证管理

  • 每次扫描限制(1000个令牌)
  • 速率限制(5000/分钟,50000/小时)
  • 使用情况跟踪和报告

许可证

MIT许可证

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 确保所有测试通过
  5. 提交拉取请求

支持

对于问题和疑问:

  • 在GitHub上创建问题
  • 检查审核日志以排除故障
  • 审查边界执法日志