安全策略¶
支持的版本¶
版本 | 支持 |
---|---|
0.11.1 | :white_check_mark: |
我们如何进行安全保障¶
尽可能地,TorchServe 依赖于自动化工具进行安全扫描。特别是,我们支持
依赖项分析:使用 Dependabot
Docker 扫描:使用 Snyk
代码分析:使用 CodeQL
重要的安全准则¶
TorchServe 在以下端口上监听
HTTP -
8080
,8081
,8082
gRPC -
7070
,7071
默认情况下,这些端口可供
localhost
访问。可以通过遵循 HTTP 和 gRPC 的指南来配置地址。TorchServe 不会阻止用户将地址配置为任何值,包括通配符地址0.0.0.0
。请注意将地址配置为0.0.0.0
的安全风险,这将使主机上所有地址(包括任何公开可访问的地址)能够访问上面显示的端口上监听的 TorchServe 端点。默认情况下,TorchServe 的 Docker 映像配置为将端口
8080
,8081
,8082
,7070
,7071
暴露给主机。在启动容器时,将容器暴露的端口映射到localhost
端口或特定 IP 地址,如本 安全指南 中所示。务必验证与 TorchServe 一起使用的
.mar
文件的真实性。从互联网上的不可信来源下载的
.mar
文件可能包含恶意代码,从而损害应用程序的完整性。TorchServe 执行打包在
mar
文件中的任意 Python 代码。请确保您已经审核了所使用的代码的安全性,或者它来自您信任的来源。TorchServe 支持自定义 插件 和 处理程序。这些可以用来扩展 TorchServe 功能,以使用诸如以下工具执行运行时安全扫描
Clamd: https://pypi.ac.cn/project/clamd/
VirusTotal: https://virustotal.github.io/vt-py/
Fickling: https://github.com/trailofbits/fickling
在容器环境中运行 TorchServe 并加载不可信的
.mar
文件,从安全角度来看不能保证隔离。
默认情况下,TorchServe 允许您从所有 URL 注册模型。请务必在 config.properties 中设置
allowed_urls
参数以限制此操作。您可以在 配置指南 中找到更多详细信息。use_env_allowed_urls=true
在 config.properties 中是必需的,用于从环境变量中读取allowed_urls
。
启用 SSL
TorchServe 支持两种配置 SSL 的方法
使用密钥库
使用私钥/证书文件
您可以在 配置指南 中找到更多详细信息。
针对不良输入和提示注入准备您的模型。一些建议
预分析:检查模型在暴露于提示注入时的默认性能(例如,使用 提示注入模糊测试)。
输入清理:在将数据馈送到模型之前,严格清理输入。这包括以下技术
验证:对允许的字符和数据类型实施严格的规则。
过滤:删除可能存在恶意的脚本或代码片段。
编码:将特殊字符转换为安全表示。
验证:运行工具以识别潜在的脚本注入(例如,检测提示注入尝试的模型)。
如果您打算使用共享内存并行运行多个模型,您有责任确保模型不会相互交互或访问彼此的数据。主要关注的领域是租户隔离、资源分配、模型共享和硬件攻击。
TorchServe 默认情况下强制执行令牌授权:查看 文档 获取更多信息。
默认情况下,TorchServe 阻止您在启动后注册和删除模型。查看模型 API 控制 文档 获取更多信息。
报告漏洞¶
如果您发现任何漏洞,请将其报告给 https://127.0.0.1/whitehat 和 [email protected]