在Azure Machine Learning中,可以将任何源中的文件和内容上传到Azure。 Jupyter 笔记本或脚本中加载的内容可能会从会话读取数据、访问组织中Azure中的敏感数据或代表你运行恶意进程。
重要
仅从受信任的源运行笔记本或脚本。 例如,当你或你的安全团队审核笔记本文件或脚本时。
潜在威胁
使用Azure Machine Learning进行开发通常涉及基于 Web 的开发环境,例如笔记本或Azure Machine Learning studio。 使用基于 Web 的开发环境时,潜在威胁包括:
-
- DOM 注入:此类攻击可以修改浏览器中显示的 UI。 例如,通过更改运行按钮在Jupyter Notebook中的行为方式。
- 访问令牌或 Cookie:XSS 攻击还可以访问本地存储和浏览器 Cookie。 Microsoft Entra身份验证令牌存储在本地存储中。 XSS 攻击可以使用此令牌代表你进行 API 调用,然后将数据发送到外部系统或 API。
跨网站请求伪造 (CSRF):此攻击可能会将图像或链接的 URL 替换为恶意脚本或 API 的 URL。 加载图像或单击链接时,将调用 URL。
Azure Machine Learning studio笔记本
Azure Machine Learning Studio 在浏览器中提供在线笔记本服务体验。 笔记本中的单元格可输出包含恶意代码的 HTML 文档或片段。 呈现输出时,代码可以运行。
可能的威胁:
- 跨站点脚本 (XSS)
- 跨网站请求伪造 (CSRF)
Azure Machine Learning 提供的缓解措施:
- 在 iframe 中对代码单元格输出进行沙盒处理。 iframe 会阻止脚本访问父 DOM、Cookie 或会话存储。
- 使用 dompurify 库清理 Markdown 单元格内容。 当呈现 markdown 单元格时,此清理会阻止恶意脚本执行。
- Image URL 和 markdown 链接会被发送到微软拥有的端点,用于检测恶意值。 如果终结点检测到恶意值,它将拒绝请求。
建议的操作:
- 在将文件上传到工作室之前,请验证你是否信任文件的内容。 必须确认你上传的是受信任的文件。
- 选择打开外部应用程序的链接时,系统会提示你信任该应用程序。
Azure Machine Learning计算实例
Azure Machine Learning计算实例托管 Jupyter 和 JupyterLab。 使用其中的一个时,笔记本单元格中的代码可输出包含恶意代码的 HTML 文档或片段。 呈现输出后,代码可以运行。 使用托管在计算实例上的 RStudio 或 Posit Workbench(以前的 RStudio Workbench)时,也存在相同的威胁。
可能的威胁:
- 跨站点脚本 (XSS)
- 跨网站请求伪造 (CSRF)
Azure Machine Learning 提供的缓解措施:
- 没有。 Jupyter 和 JupyterLab 是Azure Machine Learning计算实例上托管的开源应用程序。
建议的操作:
- 确保你信任文件的内容,然后再将其上传。 必须确认你上传的是受信任的文件。
报告安全问题或顾虑
Azure Machine Learning符合Azure赏金计划的条件。 有关详细信息,请访问 Azure赏金计划。