快捷方式

安全策略

支持的版本

版本 支持
0.11.1 :white_check_mark:

我们如何进行安全保障

尽可能地,TorchServe 依赖于自动化工具进行安全扫描。特别是,我们支持

  1. 依赖项分析:使用 Dependabot

  2. Docker 扫描:使用 Snyk

  3. 代码分析:使用 CodeQL

重要的安全准则

  1. TorchServe 在以下端口上监听

    1. HTTP - 8080, 8081, 8082

    2. gRPC - 7070, 7071

    默认情况下,这些端口可供 localhost 访问。可以通过遵循 HTTPgRPC 的指南来配置地址。TorchServe 不会阻止用户将地址配置为任何值,包括通配符地址 0.0.0.0。请注意将地址配置为 0.0.0.0 的安全风险,这将使主机上所有地址(包括任何公开可访问的地址)能够访问上面显示的端口上监听的 TorchServe 端点。

  2. 默认情况下,TorchServe 的 Docker 映像配置为将端口 8080, 8081, 8082, 7070, 7071 暴露给主机。在启动容器时,将容器暴露的端口映射到 localhost 端口或特定 IP 地址,如本 安全指南 中所示。

  3. 务必验证与 TorchServe 一起使用的 .mar 文件的真实性。

    1. 从互联网上的不可信来源下载的 .mar 文件可能包含恶意代码,从而损害应用程序的完整性。

    2. TorchServe 执行打包在 mar 文件中的任意 Python 代码。请确保您已经审核了所使用的代码的安全性,或者它来自您信任的来源。

    3. TorchServe 支持自定义 插件处理程序。这些可以用来扩展 TorchServe 功能,以使用诸如以下工具执行运行时安全扫描

      • Clamd: https://pypi.ac.cn/project/clamd/

      • VirusTotal: https://virustotal.github.io/vt-py/

      • Fickling: https://github.com/trailofbits/fickling

    4. 在容器环境中运行 TorchServe 并加载不可信的 .mar 文件,从安全角度来看不能保证隔离。

  4. 默认情况下,TorchServe 允许您从所有 URL 注册模型。请务必在 config.properties 中设置 allowed_urls 参数以限制此操作。您可以在 配置指南 中找到更多详细信息。

    • use_env_allowed_urls=true 在 config.properties 中是必需的,用于从环境变量中读取 allowed_urls

  5. 启用 SSL

    TorchServe 支持两种配置 SSL 的方法

    1. 使用密钥库

    2. 使用私钥/证书文件

    您可以在 配置指南 中找到更多详细信息。

  6. 针对不良输入和提示注入准备您的模型。一些建议

    1. 预分析:检查模型在暴露于提示注入时的默认性能(例如,使用 提示注入模糊测试)。

    2. 输入清理:在将数据馈送到模型之前,严格清理输入。这包括以下技术

      • 验证:对允许的字符和数据类型实施严格的规则。

      • 过滤:删除可能存在恶意的脚本或代码片段。

      • 编码:将特殊字符转换为安全表示。

      • 验证:运行工具以识别潜在的脚本注入(例如,检测提示注入尝试的模型)。

  7. 如果您打算使用共享内存并行运行多个模型,您有责任确保模型不会相互交互或访问彼此的数据。主要关注的领域是租户隔离、资源分配、模型共享和硬件攻击。

  8. TorchServe 默认情况下强制执行令牌授权:查看 文档 获取更多信息。

  9. 默认情况下,TorchServe 阻止您在启动后注册和删除模型。查看模型 API 控制 文档 获取更多信息。

报告漏洞

如果您发现任何漏洞,请将其报告给 https://127.0.0.1/whitehat 和 [email protected]

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取适合初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源