FutrixData logo FutrixData
MongoDB 安全

面向 AI agent 的 MongoDB 安全 — 阻断 dropDatabase,门控失控聚合

面向 AI agent 的 MongoDB 安全聚焦于集合级写入、结构变更与聚合模式。FutrixData 按操作类型(find、aggregate、updateMany、dropDatabase)检视 Mongo 操作,并使用 explain 输出在向 agent 输送数 GB 数据之前捕获集合扫描。

AI 场景下 MongoDB 的风险面

MongoDB 风险与 SQL 不同。危险操作是集合 drop、角色授予、写入其他集合的聚合阶段($merge$out),以及把整个集合物化进 agent 上下文的无界 find

FutrixData 同时解析 JSON 与 shell 形式的 Mongo 操作,因此 db.users.drop(){ "drop": "users" } 解析为同一规则。

内置 MongoDB 规则

操作默认动作
findaggregatecountallow
insertOneinsertManyupdateOneupdateManyreplaceOnedeleteOnedeleteManywarn
跨集合聚合($lookup$unionWithwarn
$merge$out 的聚合require_approval
renameCollectioncollModdropIndexesrequire_approval
dropdropDatabaseblock
createUserdropUsergrantRolesToUserblock

预执行 explain 探针

findaggregate,FutrixData 会运行 explain 并检查:

命中索引字段的查询保持低风险;同样的查询若在未建索引字段上使用正则,则升级至中风险。

按集合的规则示例

示例

集合 drop 被拦截
// agent 尝试:
db.users.drop()

// FutrixData 响应:
{ "ok": false, "risk": "block", "rule": "mongo.drop_collection", "audit_id": "audit_01HQ8N..." }
带 $out 的聚合被门控
// agent 尝试:
db.events.aggregate([
  { $match: { kind: "purchase" } },
  { $out: "purchases_summary" }
])

// FutrixData 响应:
{ "ok": false, "risk": "require_approval", "rule": "mongo.aggregate_writes_other_collection" }

常见问题

FutrixData 支持副本集与分片集群吗?

支持。FutrixData 通过标准 MongoDB 驱动连接,因此 MongoDB Driver支持的一切 — 副本集、分片集群、MongoDB Atlas — 行为一致。规则评估在 FutrixData 内运行;explain 探针使用与真实查询相同的连接。

<code>$where</code>(服务端 JavaScript)如何处理?

包含 $where 的聚合与查找会被标记为 warn 或更高级别。该规则按集合可配置 — 你可以在生产数据源上硬阻断 $where,在开发环境放行。

可以按集合作用域设置规则吗?

可以。作用域可以是数据库类型(所有 MongoDB)、特定数据源实例(仅 prod-mongo)或特定集合。作用域更精确的规则优先级更高。

可以与 MongoDB Atlas 协同工作吗?

可以。FutrixData 把 Atlas 与其他 MongoDB 端点等同对待 — 输入连接字符串,输出脱敏结果。Atlas 的 IP 白名单需要包含 FutrixData 主机(自托管时则为你的网络出口)。

性能开销?

静态规则评估只需微秒级。Explain 探针只在访问路径重要的读取上额外加一次往返。写入仅做静态评估 — 没有探针。

在你自己的数据库上试用 FutrixData

免费桌面应用支持 macOS、Windows、Linux。生产环境部署可选自托管 Enterprise Edition。