你 AI 的边界安全。
运行时执行、策略控制,以及每次 AI 操作的完整审计追踪。
AI 代理可以读取你的文件、推送代码、查询数据库、执行 shell 命令以及调用外部 API。它们自主完成这些操作,速度快如机器。
传统安全控制措施并非为此而生。
Mastyf.ai 充当 AI 的边界安全层。它拦截每一次工具调用,使用多代理群组分析评估你的安全策略,并在恶意或未授权操作执行之前将其阻止。
每个决策都会被强制执行、记录并审计。
克隆仓库并运行设置脚本。
要求:
git clone https://github.com/mastyf-ai/mastyf.ai.git
cd mastyf.ai
chmod +x setup.sh
./setup.sh
设置脚本会自动:
mastyf shell 别名安装完成后,启动代理和仪表盘:
node dist/cli.js start
或者,打开新终端后直接使用别名:
mastyf
仪表盘将在以下地址可用:
如果仪表盘正在运行,验证 HTTP 桥接:
curl -X POST http://localhost:4000/mcp -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}'
完全洞察你 AI 的每一次操作。
| 部分 | 你能看到什么 |
|---|---|
| 防护 | 阻止率、最常触发的规则、实时威胁流 |
| 活动 | 每次工具调用,包含完整参数、允许或阻止状态、时间戳 |
| 策略 | 实时规则编辑器,支持从 YAML 热加载 |
| 威胁实验室 | AI 建议的攻击测试,审核批准后才应用 |
如果未启用仪表盘认证,请不要将端口 4000 公开暴露。默认的本地开发配置中
DASHBOARD_AUTH_DISABLED=true。
每次工具调用在到达你的基础设施之前,会经过三层检查。
第一层 - 模式检测 基于正则表达式的扫描,用于检测注入、危险路径、泄露的秘密、shell 命令和编码技巧。微秒级执行,无需外部依赖。
第二层 - 模式验证 拒绝格式错误的负载、过大的参数以及 JSON-RPC 违规,在策略评估之前将其阻止。
第三层 - 语义审查 一个可选的本地 LLM(Ollama)或云端模型,用于评估通过模式检查但存在争议的调用。如果未配置模型,则回退到启发式规则。
任何失败的内容都会被阻止。工具永远不执行。所有操作都会被记录。
你的规则位于 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 |
HIPAA、PCI-DSS、GxP 和数据驻留的预置模板位于 policy-templates/。
mastyf.ai 运行两个协同群组。CI 群组在代码发布前攻击你的策略。运行时群组在生产环境中强制执行并从每次实时工具调用中学习。四个反馈循环连接它们,使系统随着时间的推移越来越难以绕过。
flowchart TB
AI["🤖 AI 客户端\nCursor · Claude Desktop · Cline"]
subgraph CI["🔵 CI 群组(PR + 夜间)"]
direction LR
Scout["🔍 侦察代理\nSAST、依赖项、配置扫描"]
Corpus["📋 语料库代理\n228 个夹具评估"]
Evasion["⚡ 规避代理\n120+ 探针 + 生成新探针"]
Parity["🔄 一致性代理\nNode 与 Python 对比"]
ProxyA["🖥️ 代理群组代理\n实时 stdio MCP 测试"]
Report["📊 报告代理\nsecurity-swarm/latest.json"]
Scout --> Corpus --> Evasion --> Parity --> ProxyA --> Report
end
subgraph Runtime["🟢 运行时群组(生产代理)"]
direction LR
BG["🛡️ BlockGuard\n同步策略"]
IL["📈 InstantLearner\n每次阻止的统计数据 + 建议"]
SA["🧠 SemanticAuditor\n异步 LLM,可选"]
PS["🔗 PatternSynthesizer\n批量建议"]
Cal["⚙️ 校准器\n标签 + 阈值"]
BG --> IL --> PS --> Cal
BG --> SA --> PS
end
Tools["🗄️ MCP 工具\n文件系统 · GitHub · 数据库 · API"]
AI -->|"每次工具调用"| BG
BG -->|"✅ 允许"| Tools
Report -->|"🔁 循环 A:绕过结果进入语料库"| Corpus
Cal -->|"🔁 循环 B:阻止结果进入规则"| BG
Cal -->|"🔁 循环 C:标签传输给 LLM"| SA
Report -->|"🔁 循环 D:CI 指标每周"| 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% 一致性
在每个 PR 和夜间运行。六个代理按顺序工作,每个代理加固前一个代理发现的问题。
在生产代理内部,每次工具调用时运行。
| 组件 | 工作内容 |
|---|---|
| BlockGuard | 每次调用时同步执行活动策略。失败时关闭。 |
| InstantLearner | 实时追踪每次阻止的统计数据,并呈现规则建议 |
| 循环 |
|---|
代理支持五种传输协议:stdio、HTTP、SSE、流式 HTTP 和 WebSocket。
关于使用 Redis、Postgres 和 Kubernetes 的企业级部署,请参阅 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
在从 npm 安装任何 MCP 服务器之前,请访问 https://www.mastyf.ai/certified 检查其信任评分。评分涵盖 CVE 暴露度、域名抢注风险、维护者信号以及已知的攻击模式。免费,无需账户。
| 威胁 | 表现形式 |
|---|
| 提示注入 | 隐藏在工具参数中的恶意指令,用于劫持代理行为 |
| 路径遍历 | 尝试访问 /etc/passwd、.ssh/id_rsa、.aws/credentials |
| 秘密泄露 | 通过工具参数泄漏 API 密钥和令牌 |
| shell 注入 | 反弹 shell、rm -rf、编码后的 PowerShell 命令 |
| 数据泄露 | 批量 SQL 导出、git push、aws s3 cp、未经授权的文件传输 |
| SSRF | 对元数据端点、localhost 和私有 IP 范围的调用 |
| 编码绕过 | 使用 Base64 块和 Unicode 同形异义字绕过模式检测 |
| 成本滥用 | 失控的代理循环耗尽 token 预算 |
| rug-pull 攻击 | 在会话中途静默更改工具定义 |
| 成本 | 每次工具调用的 token 使用量和成本估算 |
| 记录并标记,但仍然转发 |
| 强制执行前的调整阶段 |
block | 在执行前阻止违规行为 | 生产环境 |
| 代理 | 工作内容 |
|---|
| Scout | SAST 扫描、依赖审计、配置审查 |
| Corpus | 评估所有 228 个攻击夹具对当前策略的影响 |
| Evasion | 运行 120+ 绕过探针,并使用 LLM 生成新探针 |
| Parity | 验证 Node 和 Python 实现产生相同的决策 |
| Proxy | 对正在运行的代理实例进行实时 stdio MCP 会话测试 |
| Report | 将完整结果和指标写入 security-swarm/latest.json |
| SemanticAuditor |
| 可选的异步 LLM 审查,用于那些通过模式检查但看起来可疑的调用 |
| PatternSynthesizer | 将 InstantLearner 和 SemanticAuditor 的建议批量生成候选规则 |
| Calibrator | 标记候选规则、调优阈值,并将批准的规则提升回 BlockGuard |
| 信号 |
|---|
| 效果 |
|---|
| A | CI 发现绕过 | 添加到语料库,CI 现在永久防御它 |
| B | 运行时阻止模式 | 合成为新规则,提升到 BlockGuard |
| C | 校准器标签 | 用于微调 SemanticAuditor 阈值 |
| D | CI 指标(每周) | 更新运行时配置——使 CI 与生产环境保持同步 |
| 命令 | 作用 |
|---|
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 发布尚未上线。请使用 git clone 和 pnpm install |