语义层 vs MCP:ERP 安全风险

许多架构师都在为 LLM 能通过 MCP 连接到企业系统而欢欣鼓舞。但他们忽略了一个重大风险:恶意的提示词(prompt)可能会触发 ERP 系统中真实的写入操作。而这一切在发生时,既没有警报,也没有人工审核。

你必须理解语义层(semantic layer)与 MCP 之间的区别。

语义层位于 LLM 与数据之间。它公开指标(metrics)和 KPI。它是只读的。如果 LLM 犯了错,它也只能读取它已有权限查看的数据。造成的损害很小。

MCP 则不同。MCP 服务器执行的是真实的业务操作。它们可以更新记录、更改价格或批准订单。危险正是在这里产生的。

如果用户注入了提示词,LLM 可能会发出一个带有恶意意图的有效 MCP 命令。

失败案例:

为了防止这种情况,每一次 MCP 写入操作都需要三种控制措施:

  1. 提示词验证 (Prompt Validation) 在指令到达 MCP 服务器之前对其进行验证。检查该操作是否符合用户目标。检查数值是否在安全范围内。将提示词视为不可信输入。

  2. Schema 强制执行 (Schema Enforcement) MCP 服务器必须使用严格的契约(contracts)。明确定义允许哪些参数。一个一次只能更新单个价格的工具,比一个执行批量更新的工具更安全。

  3. 人机协同 (Human-in-the-loop, HITL) 定价或库存等关键数据需要人工审批。智能体(agent)必须提交请求并等待。在 MCP 服务器执行命令之前,必须由人工进行审批。不要让 LLM 绕过这一关卡。

你还需要具备全面的可观测性(observability)。每一次写入操作都需要审计追踪(audit trail)。你必须追踪是谁发起的、使用了什么提示词、验证结果如何,以及是谁批准了该操作。

使用语义层进行数据读取,使用 MCP 进行数据写入。但绝不要在没有经过验证、严格的 Schema 约束和人工审批的情况下,让 MCP 触碰你的 ERP。

治理(Governance)是企业级 AI 的基石。

来源:https://dev.to/dnyandeo/semantic-layer-vs-mcp-why-direct-erp-write-access-is-an-enterprise-security-risk-3po8

可选学习社区:https://t.me/GyaanSetuAi