跳至主要内容

安全性

LangChain 与各种外部资源(如本地和远程文件系统、API 和数据库)有着庞大的集成生态系统。这些集成允许开发人员创建多功能的应用程序,这些应用程序将 LLM 的强大功能与访问、交互和操作外部资源的能力相结合。

最佳实践

在构建此类应用程序时,开发人员应记住遵循良好的安全实践

  • 限制权限: 特定于应用程序需求地设置权限范围。授予广泛或过多的权限会导致严重的安全性漏洞。为了避免此类漏洞,请考虑使用只读凭据、禁止访问敏感资源、使用沙箱技术(如在容器中运行)等,具体取决于您的应用程序。
  • 预测潜在的滥用: 正如人类会犯错一样,大型语言模型 (LLM) 也会犯错。始终假设任何系统访问或凭据都可能以其分配的权限允许的任何方式使用。例如,如果一对数据库凭据允许删除数据,那么最好假设任何能够使用这些凭据的 LLM 实际上可能会删除数据。
  • 纵深防御: 没有任何安全技术是完美的。微调和良好的链设计可以降低,但不能消除大型语言模型 (LLM) 可能犯错的可能性。最好结合多种分层安全方法,而不是依赖任何单层防御来确保安全。例如:使用只读权限和沙箱来确保 LLM 只能访问明确用于它们使用的数据。

不这样做带来的风险包括但不限于

  • 数据损坏或丢失。
  • 未经授权访问机密信息。
  • 关键资源的性能或可用性受到损害。

示例场景及其缓解策略

  • 用户可能会要求具有文件系统访问权限的代理删除不应该删除的文件,或者读取包含敏感信息的文件的内容。为了缓解,将代理限制为仅使用特定目录,并且只允许它读取或写入安全读取或写入的文件。考虑通过在容器中运行来进一步隔离代理。
  • 用户可能会要求具有外部 API 写入权限的代理将恶意数据写入 API,或者从该 API 中删除数据。为了缓解,请为代理提供只读 API 密钥,或者将其限制为仅使用那些对这种滥用有抵抗力的端点。
  • 用户可能会要求具有数据库访问权限的代理删除表或修改架构。为了缓解,将凭据范围限定到代理需要访问的表,并考虑发布 READ-ONLY 凭据。

如果您正在构建访问外部资源(如文件系统、API 或数据库)的应用程序,请考虑与您公司的安全团队交谈,以确定如何最好地设计和保护您的应用程序。

报告漏洞

请通过电子邮件向 [email protected]. 报告安全漏洞。这将确保问题得到及时处理并采取必要的行动。


此页面对您有帮助吗?


您也可以留下详细的反馈 在 GitHub 上.