0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何判断Jupyter实例是否安全

jf_pJlTbmA9 来源:NVIDIA 作者:NVIDIA 2023-07-05 16:30 次阅读

如何判断 Jupyter 实例是否安全? NVIDIA AI 红色团队开发了 JupyterLab 扩展,以自动评估 Jupyter 环境的安全性。 jupysec 是一种工具,它根据近 100 条规则评估用户环境,这些规则检测 AI 红色团队确定为潜在漏洞、攻击向量或危害指标的配置和工件。

NVIDIA AI 红队和 Jupyter

NVIDIA AI 红色团队积极评估 NVIDIA 人工智能产品和开发管道的安全性。在操作上,团队经常遇到 Jupyter 生态系统中的软件,这是一套强大而灵活的工具,许多机器学习( ML )研究人员和工程师使用。 AI 红色团队确定了 Jupyter 配置和功能,可用于扩展访问、获得持久性或操纵开发运行时和工件。

Jupyter 生态系统由许多互连组件组成,这些组件设计用于在客户机 – 服务器模型中执行 Julia 、 Python 或 R 代码。通常,用户在基于浏览器的交互式开发环境中与代码交互。该代码通过 HTTP / S 和 WebSocket 发送到 Jupyter 服务器,该服务器可能在本地、本地或云中远程运行。然后, Jupyter 服务器通过消息队列分派代码以在内核中执行。有关更多信息,请参见图 1 和 Jupyter 架构文档。

jupyter-architecture.png 图 1 。 Jupyter 体系结构概述

尽管非常灵活,但这种模块化架构为威胁参与者提供了影响机器学习开发周期和衍生系统的多种机会。例如,通过访问像 JupyterLab 这样的客户端应用程序,他们可以在经过身份验证的用户的上下文中向服务器发送命令。用 Jupyter 团队的话说,“命令可能会相互冲突、碰撞和覆盖。”有关详细信息,请参阅 运行Notebook 服务器。

类似地,通过访问服务器和内核,威胁参与者可能能够与用户运行时交互,而无需访问用户的主机。请注意, JupyterLab 仅适用于一个用户。根据 运行 Notebook 服务器,官方的多用户解决方案是 JupyterHub 。

凭借其模块化和广泛的用例, Jupyter 生态系统有几个配置文件和值来实现定制。 Jupyter 开发人员和贡献者一直在努力平衡安全性和可用性与默认值以及与安全相关的功能和配置。

然而,用户可能会无意中引入安全漏洞。此外,如果有足够的访问权限,这些配置可能会被威胁参与者恶意更改,从而影响 ML 过程。 NVIDIA AI 红色团队的一些技术示例包括:

1.默认情况下,当启动 JupyterServer (独立或作为 JupyterLab 实例化的一部分)时,服务器仅侦听本地主机生成的请求。但是,通过修改用于启动进程的配置值或命令行参数,可以使服务器侦听包括广播域在内的其他接口。用户可能有意通过网络访问其服务器,无意中将其服务器暴露给恶意访问。

2.Jupyter 默认启用了 check to prevent cross-site request forgeries ( CSRF )。这可以防止用户在不知不觉中向 Jupyter 服务器提交攻击者控制的代码。然而,威胁参与者可以在配置文件中禁用此检查,从而将用户暴露于 CSRF 。

3.通过足够的访问权限和凭据材料,攻击者可以将自己的 Jupyter 客户端连接到用户运行的内核。这意味着他们可以创建变量和函数,用恶意克隆覆盖导入,或者运行任意代码 在与用户相同的上下文中 。成功瞄准 Jupyter 部署的威胁参与者可能有训练时间,因此可能会严重影响最终 AI 系统的效能。

总之,有风险的配置值可能是有意的、无意的或恶意活动的结果。由于 Jupyter 生态系统的模块化特性,控制应用程序行为的值可能分散在十几个配置文件和命令行实用程序中。您如何识别和分类他们,并在必要时采取行动?

使用 jupitec

jupysec 是一组 Jupyter 安全规则和一个 JupyterLab 扩展,旨在针对已知的安全风险审计 Jupyter 环境。它可以作为独立脚本或 JupyterLab 扩展提供,以最大限度地提高用户将该工具集成到现有工作流中的能力。

该扩展将安全报告小部件添加到 Launcher 中。这是在用户浏览器中运行的扩展的客户端组件。当用户单击此小部件时, Jupyter 客户端向 Jupyter 服务器发送 HTTP / GET 请求。服务器验证请求是否来自经过身份验证的用户,执行 jupysec rules ,并将任何结果呈现并返回给用户。

每个 jupysec finding 都包含一个类别、找到查找结果的文档、违规行、有关该配置为何存在安全风险的其他详细信息,以及建议的补救措施。每个发现都被赋予一个 UUID ,并通过 Jinja 模板呈现给用户。 jupitec 不维护状态,因此每次执行都会重新评估整个规则集。

在 I Python 启动目录中有一个名为10_norm.py的文件。每当使用该配置文件启动 JupyterLab 时,就会运行该脚本,如 documented by IPython 所示,并在 IPython Profiles: Big Bag o’ Functionality 中演示。该发现是从特定的 jupysec rule 中产生的。

jupitec 不会为用户修正这些发现,因为这几乎肯定会对环境产生破坏性的改变。与任何自动安全工具一样,可能存在误报。可以使用启动目录通过自动连接到远程数据存储来改善开发人员的体验。

然而,同样的配置更改也可以用于过滤敏感信息。木星无法分辨出两者的区别,但可以提醒你潜在的问题。在消除误报后,用户和管理员应采取建议的步骤来加强环境或调查异常指标。

总结

Jupyter 生态系统非常强大且可配置,这使其成为研究人员和开发人员以及威胁行为者的一个有吸引力的工具。 jupitec 可以自动评估 Jupyter 环境的安全性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4689

    浏览量

    102120
  • AI
    AI
    +关注

    关注

    87

    文章

    27532

    浏览量

    265167
  • 机器学习
    +关注

    关注

    66

    文章

    8211

    浏览量

    131251
收藏 人收藏

    评论

    相关推荐

    怎么判断单片机是否起振 如何判断晶振好坏

    该怎么判断单片机是否起振?如何判断晶振好坏?
    发表于 07-21 09:15 1248次阅读
    怎么<b class='flag-5'>判断</b>单片机<b class='flag-5'>是否</b>起振 如何<b class='flag-5'>判断</b>晶振好坏

    如何判断链表是否有环

    如何判断链表是否有环?
    发表于 08-10 17:07 549次阅读
    如何<b class='flag-5'>判断</b>链表<b class='flag-5'>是否</b>有环

    MOS管的安全工作区SOA详解—如何判断一个MOS管是否工作在SOA区?

    测量MOS管的电压和电流波形,判断电压和电流是否超标
    的头像 发表于 03-18 09:02 1607次阅读
    MOS管的<b class='flag-5'>安全</b>工作区SOA详解—如何<b class='flag-5'>判断</b>一个MOS管<b class='flag-5'>是否</b>工作在SOA区?

    如何判断Tina板子中的固件是否安全

    客户希望在用户空间判断如何获取设备的安全状态。Tina下越来越多的方案开始支持安全功能,客户经常会问起如何判断当前板子中的固件是否
    发表于 12-29 06:44

    如何判断可控硅的三个极?如何判断可控硅是否损坏?

    如何判断可控硅的三个极?如何判断可控硅是否损坏?
    发表于 03-02 17:11 1.1w次阅读

    神器jupyter的优势和使用教程

    Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合
    的头像 发表于 02-05 09:36 7930次阅读
    神器<b class='flag-5'>jupyter</b>的优势和使用教程

    如何判断万用表是否正常?

    万用表分数字式和指针式。下面分别介绍一下判断是否正常的方法。
    的头像 发表于 06-11 18:00 2.2w次阅读

    常用的五种Jupyter Notebook扩展插件

    Jupyter Notebook 是一个很棒的教学、探索和编程环境,但其功能不足也是出了名的。幸好,有许多方法可以改进这个不错的工具,如 Jupyter Notebook 扩展工具。
    的头像 发表于 09-26 10:35 2191次阅读

    写一个脚本判断日期是否合法

    用shell脚本判断输入的日期是否合法。就是判断日期是否是真实的日期,比如20170110就是合法日期,20171332就不合法。假定年份不超过4位。
    的头像 发表于 12-30 09:14 986次阅读

    如何判断是否需要安全地毯呢?

    安全地毯作为其中一种特殊的保护开关,具有保护范围大,价格低、寿命长、安全可靠、安装自由、方便等特点,使现场通道畅通,方便运输送料,因而得到广泛应用。如何判断是否需要
    的头像 发表于 08-07 20:53 272次阅读
    如何<b class='flag-5'>判断</b><b class='flag-5'>是否</b>需要<b class='flag-5'>安全</b>地毯呢?

    如何判断安全光幕是否正常工作?

    如何判断安全光幕是否正常工作? 很多客户初次使用安全光幕的时候,就会比较疑惑,光幕是否安装正确,光幕是否
    的头像 发表于 08-30 09:35 319次阅读
    如何<b class='flag-5'>判断</b><b class='flag-5'>安全</b>光幕<b class='flag-5'>是否</b>正常工作?

    如何判断安全光栅是否安全?

    如何判断安全光栅是否安全?  安全光栅是用于机械设备和潜在危险场合的光电防护装置,主要功能是有效保护人员人身
    的头像 发表于 09-25 10:17 318次阅读

    什么是 Jupyter Notebook

    Jupyter Notebook 是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码、数学方程、可视化和 Markdown,其用途包括数据清理和转换、数值模拟、统计建模、机器学习
    的头像 发表于 10-16 11:15 2208次阅读
    什么是 <b class='flag-5'>Jupyter</b> Notebook

    如何判断单片机是否起振?如何判断晶振的好坏?

    如何判断单片机是否起振?如何判断晶振的好坏? 判断单片机是否起振以及晶振的好坏是单片机开发和相关领域中常见的问题。 首先,我们需要了解什么是
    的头像 发表于 01-16 11:20 2154次阅读

    如何判断电感是否损坏吗

    电子发烧友网站提供《如何判断电感是否损坏吗.docx》资料免费下载
    发表于 01-22 09:25 0次下载