语义层 vs MCP:ERP 安全风险
许多架构师都在为 LLM 能通过 MCP 连接到企业系统而欢欣鼓舞。但他们忽略了一个重大风险:恶意的提示词(prompt)可能会触发 ERP 系统中真实的写入操作。而这一切在发生时,既没有警报,也没有人工审核。
你必须理解语义层(semantic layer)与 MCP 之间的区别。
语义层位于 LLM 与数据之间。它公开指标(metrics)和 KPI。它是只读的。如果 LLM 犯了错,它也只能读取它已有权限查看的数据。造成的损害很小。
MCP 则不同。MCP 服务器执行的是真实的业务操作。它们可以更新记录、更改价格或批准订单。危险正是在这里产生的。
如果用户注入了提示词,LLM 可能会发出一个带有恶意意图的有效 MCP 命令。
失败案例:
- 攻击者向 AI 助手注入了一个提示词。
- 该提示词指示 LLM 将所有产品价格设为零。
- MCP 服务器接收到了一个更新价格的有效命令。
- ERP 执行了该变更。
- 在任何人察觉之前,成千上万的订单已以零元价格成交。
为了防止这种情况,每一次 MCP 写入操作都需要三种控制措施:
提示词验证 (Prompt Validation) 在指令到达 MCP 服务器之前对其进行验证。检查该操作是否符合用户目标。检查数值是否在安全范围内。将提示词视为不可信输入。
Schema 强制执行 (Schema Enforcement) MCP 服务器必须使用严格的契约(contracts)。明确定义允许哪些参数。一个一次只能更新单个价格的工具,比一个执行批量更新的工具更安全。
人机协同 (Human-in-the-loop, HITL) 定价或库存等关键数据需要人工审批。智能体(agent)必须提交请求并等待。在 MCP 服务器执行命令之前,必须由人工进行审批。不要让 LLM 绕过这一关卡。
你还需要具备全面的可观测性(observability)。每一次写入操作都需要审计追踪(audit trail)。你必须追踪是谁发起的、使用了什么提示词、验证结果如何,以及是谁批准了该操作。
使用语义层进行数据读取,使用 MCP 进行数据写入。但绝不要在没有经过验证、严格的 Schema 约束和人工审批的情况下,让 MCP 触碰你的 ERP。
治理(Governance)是企业级 AI 的基石。
可选学习社区:https://t.me/GyaanSetuAi