mastyf-ai/mastyf.ai

GitHub: mastyf-ai/mastyf.ai

Mastyf.ai 是一个开源的 AI 安全平台,通过多代理集群分析和策略强制执行,为 LLM 和 AI Agent 的每一次工具调用提供运行时边界防护与实时威胁拦截。

Stars: 12 | Forks: 4

mastyf.ai logo

mastyf.ai

为您 AI 提供的边界安全。

为每一个 AI 操作提供运行时强制执行、策略控制以及完整的审计追踪。

网站 · 快速开始 · 策略 · 控制台 · GitHub

License CI Version TypeScript npm

## 问题所在 AI 代理可以读取您的文件、推送代码、查询数据库、执行 shell 命令以及调用外部 API。它们会以机器速度自主执行这些操作。 传统的安全控制机制并非为此而生。 Mastyf.ai 充当 AI 的边界安全层。它会拦截每一次工具调用,利用多代理集群分析结合您的安全策略对其进行评估,并在恶意的或未经授权的操作执行前将其拦截。 每一个决策都会被强制执行、记录,并且可供审计。 ## 它所拦截的威胁 | 威胁 | 具体表现 | |--------|--------------------| | Prompt injection | 嵌入在工具参数中的恶意指令,旨在劫持代理行为 | | 路径遍历 | 尝试访问 `/etc/passwd`、`.ssh/id_rsa`、`.aws/credentials` | | 机密泄露 | 通过工具参数泄露的 API 密钥和 token | | Shell 注入 | 反向 shell、`rm -rf`、编码后的 PowerShell 命令 | | 数据渗出 | 批量 SQL 转储、`git push`、`aws s3 cp`、未经授权的文件传输 | | SSRF | 对 metadata endpoint、localhost 以及私有 IP 段的调用 | | 编码逃逸 | 用于绕过模式检测的 Base64 数据块和 Unicode 同形字 | | 成本滥用 | 失控的代理循环大量消耗 token 预算 | | Rug-pull 攻击 | 在会话中途静默更改的工具定义 | ## 快速开始 ### 从源码构建 克隆代码仓库并运行安装脚本。 **环境要求:** - Git - Linux(如有需要,安装脚本会自动安装 Nix) ``` git clone https://github.com/mastyf-ai/mastyf.ai.git cd mastyf.ai chmod +x setup.sh ./setup.sh ``` 安装脚本会自动: - 安装 Nix(如果需要) - 启用 Nix flakes - 创建开发环境 - 安装所有项目依赖 - 重新编译原生包 - 构建整个项目 - 添加便捷的 `mastyf` shell 别名 安装完成后,启动代理和控制台: ``` node dist/cli.js start ``` 或者打开新终端后直接使用别名: ``` mastyf ``` 控制台将通过以下地址访问: - 控制台: http://localhost:4000 ### 测试安装 如果控制台正在运行,请验证 HTTP 网桥: ``` curl -X POST http://localhost:4000/mcp -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}' ``` ## 控制台 全面洞察您的 AI 所执行的每一项操作。 20260628-1234-42 0110563 | 板块 | 显示内容 | |---------|-------------| | 防护 | 拦截率、最常触发的规则、实时威胁动态 | | 活动 | 包含完整参数的每一次工具调用、允许或拦截状态、时间戳 | | 策略 | 支持 YAML 热重载的实时规则编辑器 | | 威胁实验室 | AI 建议的攻击测试,在应用前需经过审查和批准 | | 成本 | 每次工具调用的 token 使用量和成本估算明细 | ## 强制执行机制 每一个工具调用在抵达您的基础设施之前,都会经过三层检验。 **第 1 层 - 模式检测** 基于 Regex 的扫描,用于检测注入、危险路径、泄露的机密、shell 命令以及编码欺骗。在微秒级内运行,无需外部依赖。 **第 2 层 - Schema 校验** 在进入策略评估之前,拒绝格式错误的 payload、超大的参数以及 JSON-RPC 违规。 **第 3 层 - 语义审查** 可选的本地 LLM (Ollama) 或云端模型,用于评估通过了模式检查的边界调用。如果未配置模型,则回退到启发式算法。 任何未通过检验的内容都会被拦截。工具永远不会运行。所有过程均会被记录。 image ## 策略 您的规则位于 `default-policy.yaml` 中。它们完全归您所有。mastyf.ai 负责强制执行它们。 ``` policy: mode: block default_action: pass unicode_strict: true rules: - name: block-sensitive-paths action: block argPatterns: - field: path patterns: ['^/etc/', '/\.ssh', '/\.aws/credentials'] - name: rate-limit-tool-calls action: block maxCallsPerMinute: 120 - name: block-shell-injection action: block patterns: ['rm\s+-rf', 'curl\s', 'wget\s', '`[^`]+`'] ``` 通过三种强制执行模式安全发布: | 模式 | 行为 | 适用场景 | |------|----------|-------------| | `audit` | 记录一切,不拦截任何内容 | 第一步:了解您的 AI 在做什么 | | `warn` | 记录并标记,仍然放行 | 强制执行前的调优阶段 | | `block` | 在执行前拦截违规行为 | 生产环境 | 针对 HIPAA、PCI-DSS、GxP 和数据驻留的预置模板位于 [`policy-templates/`](policy-templates/) 中。 image ## 架构 mastyf.ai 运行着两个协同的集群。CI Swarm 在代码发布前对您的策略进行攻击测试。Runtime Swarm 在生产环境中强制执行并从每一次实时的工具调用中学习。四个反馈循环将它们连接起来,使得系统随着时间推移变得更难被绕过。 ``` flowchart TB AI["🤖 AI Clients\nCursor · Claude Desktop · Cline"] subgraph CI["🔵 CI Swarm (PR + Nightly)"] direction LR Scout["🔍 Scout Agent\nSAST, deps, config scan"] Corpus["📋 Corpus Agent\n228 fixtures eval"] Evasion["⚡ Evasion Agent\n120+ probes + generate new"] Parity["🔄 Parity Agent\nNode vs Python"] ProxyA["🖥️ Proxy Agent\nLive stdio MCP tests"] Report["📊 Report Agent\nsecurity-swarm/latest.json"] Scout --> Corpus --> Evasion --> Parity --> ProxyA --> Report end subgraph Runtime["🟢 Runtime Swarm (Production Proxy)"] direction LR BG["🛡️ BlockGuard\nsync policy"] IL["📈 InstantLearner\nper-block stats + suggestions"] SA["🧠 SemanticAuditor\nasync LLM, optional"] PS["🔗 PatternSynthesizer\nbatch suggestions"] Cal["⚙️ Calibrator\nlabels + thresholds"] BG --> IL --> PS --> Cal BG --> SA --> PS end Tools["🗄️ MCP Tools\nfilesystem · GitHub · databases · APIs"] AI -->|"every tool call"| BG BG -->|"✅ allowed"| Tools Report -->|"🔁 Loop A: bypasses to corpus"| Corpus Cal -->|"🔁 Loop B: blocks to rules"| BG Cal -->|"🔁 Loop C: labels to LLM"| SA Report -->|"🔁 Loop D: CI metrics weekly"| Cal style CI fill:#EFF6FF,stroke:#3B82F6,stroke-width:2px,color:#1E3A5F style Runtime fill:#F0FDF4,stroke:#22C55E,stroke-width:2px,color:#14532D style Scout fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF style Corpus fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF style Evasion fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF style Parity fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF style ProxyA fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF style Report fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF style BG fill:#BBF7D0,stroke:#16A34A,color:#14532D style IL fill:#BBF7D0,stroke:#16A34A,color:#14532D style SA fill:#BBF7D0,stroke:#16A34A,color:#14532D style PS fill:#BBF7D0,stroke:#16A34A,color:#14532D style Cal fill:#BBF7D0,stroke:#16A34A,color:#14532D style AI fill:#FEF3C7,stroke:#F59E0B,stroke-width:2px,color:#78350F style Tools fill:#FEF3C7,stroke:#F59E0B,stroke-width:2px,color:#78350F ``` **标准检验关卡:** 228/228 测试集,0 次绕过,100% 一致性 ### CI Swarm 在每次 PR 和每晚会话中运行。六个代理顺序工作,每一个都在前一个发现的基础上进行强化。 | 代理 | 功能 | |-------|-------------| | Scout | SAST 扫描、依赖审计、配置审查 | | Corpus | 针对当前策略评估所有 228 个攻击测试用例 | | Evasion | 运行 120 多种绕过探测,并使用 LLM 生成新型探测 | | Parity | 验证 Node 和 Python 实现是否产生一致的决策 | | Proxy | 针对正在运行的代理实例进行实时的 stdio MCP 会话测试 | | Report | 编写包含完整结果和指标的 `security-swarm/latest.json` | ### Runtime Swarm 在生产环境代理内的每次工具调用中运行。 | 组件 | 功能 | |-----------|-------------| | BlockGuard | 在每次调用时同步执行活动策略。默认失败拒绝 (Fail-closed)。 | | InstantLearner | 跟踪单次拦截统计数据,并实时呈现规则建议 | | SemanticAuditor | 针对通过模式检查但看似可疑的调用,提供可选的异步 LLM 审查 | | PatternSynthesizer | 将 InstantLearner 和 SemanticAuditor 的建议批量处理为候选规则 | | Calibrator | 为候选规则添加标签,调整阈值,并将批准的规则提升回 BlockGuard | ### 反馈循环 | 循环 | 信号 | 效果 | |------|--------|--------| | A | 发现 CI 绕过方式 | 添加到测试集中,CI 从此对其进行永久防御 | | B | 运行时拦截模式 | 合成为新规则,提升至 BlockGuard | | C | Calibrator 标签 | 用于微调 SemanticAuditor 阈值 | | D | CI 指标(每周) | 更新运行时配置 — 保持 CI 和生产环境同步 | 代理支持五种传输协议:stdio、HTTP、SSE、streamable HTTP 和 WebSocket。 如需了解包含 Redis、Postgres 和 Kubernetes 的企业级部署,请参阅 [`docs/ENTERPRISE_DEPLOYMENT.md`](docs/ENTERPRISE_DEPLOYMENT.md)。 ## 威胁实验室 威胁实验室会监控实时流量,并在检测到可疑模式时利用本地 LLM 提出新的攻击测试用例。没有任何操作会自动应用。在它成为规则之前,您需要在控制台中审查并批准每一条建议。 获得批准的发现将被反馈到 CI 攻击测试集中,用于持续的回归测试。 ``` ollama serve ollama pull qwen3:8b export OLLAMA_BASE_URL=http://127.0.0.1:11434 export MASTYF_AI_LLM_PROVIDER=ollama export MASTYF_AI_LLM_MODEL=qwen3:8b pnpm dashboard:proxy ``` image ## MCP 软件包信任评分 在从 npm 安装任何 MCP server 之前,请在 [https://www.mastyf.ai/certified](https://www.mastyf.ai/certified) 检查其信任评分。评分涵盖了 CVE 暴露、域名误植风险、维护者信号以及已知的攻击模式。免费,且无需账号。 ## 常用命令 | 命令 | 功能 | |---------|-------------| | `node dist/cli.js start` | 在 4000 端口启动代理和控制台 | | `node dist/cli.js onboard` | 封装您的 MCP 配置,使其通过代理进行路由 | | `node dist/cli.js doctor` | 对数据库、策略和运行环境进行健康检查 | | `node dist/cli.js scan --all` | 扫描 MCP 配置以查找 CVE 和注入风险 | | `pnpm test` | 运行完整的测试套件 | | `pnpm security-swarm:fast` | 快速安全回归测试,耗时 5 到 15 分钟 | | `pnpm security-swarm:analyze` | 全面的对抗性分析 | ## 故障排除 | 问题 | 解决方案 | |---------|-----| | 控制台无数据显示 | 代理和控制台必须共享相同的 `MASTYF_AI_DB_PATH`。默认值为 `~/.mastyf-ai/history.db` | | 找不到 `dist/cli.js` | 运行 `pnpm build` | | AI 仍然直接调用工具 | 运行 `node dist/cli.js onboard --apply` | | 启动时出现 Ollama 警告 | 运行 `ollama serve` 或从您的环境中移除 `MASTYF_AI_LLM_PROVIDER` | | npm install 失败 | npm publish 尚未上线。请使用 `git clone` 和 `pnpm install` | ## 了解更多 - [企业级部署 (Redis, Postgres, Helm)](docs/ENTERPRISE_DEPLOYMENT.md) - [深入解析防御流水线](docs/DEFENSE_FABRIC.md) - [安全集群与 CI 红蓝对抗](security-swarm/README.md) - [真实世界的 MCP 集成示例](docs/REAL_WORLD_INTEGRATION.md) - [核心检测引擎](packages/core/README.md)
标签:AI代理, AI安全, AI风险缓解, AMSI绕过, Chat Copilot, CISA项目, DLL 劫持, Lerna, MITM代理, TypeScript, 大语言模型, 威胁检测, 子域名突变, 安全插件, 搜索引擎查询, 测试用例, 策略执行, 网络安全审计, 自动化攻击, 防御平台