跳到主要内容

安全

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

最佳实践

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

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

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

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

具有缓解策略的示例场景:

  • 用户可以要求有权访问文件系统的代理删除不应删除的文件或读取包含敏感信息的文件的内容。为了缓解这种情况,请将代理限制为仅使用特定目录,并仅允许其读取或写入可以安全读取或写入的文件。考虑通过在容器中运行代理来进一步沙箱化代理。
  • 用户可以要求具有外部 API 写入权限的代理将恶意数据写入 API,或从该 API 中删除数据。为了缓解这种情况,请为代理提供只读 API 密钥,或限制其仅使用已经能够防止此类滥用的端点。
  • 用户可以要求有权访问数据库的代理删除表或更改模式。为了缓解这种情况,请将凭据范围限制为仅代理需要访问的表,并考虑颁发只读凭据。

报告漏洞

请通过电子邮件向 security@langchain.dev 报告安全漏洞。这将确保问题得到及时分类并根据需要采取行动。