如何判斷 Jupyter 實例是否安全? NVIDIA AI 紅色團隊開發(fā)了 JupyterLab 擴展,以自動評估 Jupyter 環(huán)境的安全性。 jupysec 是一種工具,它根據(jù)近 100 條規(guī)則評估用戶環(huán)境,這些規(guī)則檢測 AI 紅色團隊確定為潛在漏洞、攻擊向量或危害指標的配置和工件。
NVIDIA AI 紅隊和 Jupyter
NVIDIA AI 紅色團隊積極評估 NVIDIA 人工智能產(chǎn)品和開發(fā)管道的安全性。在操作上,團隊經(jīng)常遇到 Jupyter 生態(tài)系統(tǒng)中的軟件,這是一套強大而靈活的工具,許多機器學(xué)習(xí)( ML )研究人員和工程師使用。 AI 紅色團隊確定了 Jupyter 配置和功能,可用于擴展訪問、獲得持久性或操縱開發(fā)運行時和工件。
Jupyter 生態(tài)系統(tǒng)由許多互連組件組成,這些組件設(shè)計用于在客戶機 – 服務(wù)器模型中執(zhí)行 Julia 、 Python 或 R 代碼。通常,用戶在基于瀏覽器的交互式開發(fā)環(huán)境中與代碼交互。該代碼通過 HTTP / S 和 WebSocket 發(fā)送到 Jupyter 服務(wù)器,該服務(wù)器可能在本地、本地或云中遠程運行。然后, Jupyter 服務(wù)器通過消息隊列分派代碼以在內(nèi)核中執(zhí)行。有關(guān)更多信息,請參見圖 1 和 Jupyter 架構(gòu)文檔。
圖 1 。 Jupyter 體系結(jié)構(gòu)概述
盡管非常靈活,但這種模塊化架構(gòu)為威脅參與者提供了影響機器學(xué)習(xí)開發(fā)周期和衍生系統(tǒng)的多種機會。例如,通過訪問像 JupyterLab 這樣的客戶端應(yīng)用程序,他們可以在經(jīng)過身份驗證的用戶的上下文中向服務(wù)器發(fā)送命令。用 Jupyter 團隊的話說,“命令可能會相互沖突、碰撞和覆蓋。”有關(guān)詳細信息,請參閱 運行Notebook 服務(wù)器。
類似地,通過訪問服務(wù)器和內(nèi)核,威脅參與者可能能夠與用戶運行時交互,而無需訪問用戶的主機。請注意, JupyterLab 僅適用于一個用戶。根據(jù) 運行 Notebook 服務(wù)器,官方的多用戶解決方案是 JupyterHub 。
憑借其模塊化和廣泛的用例, Jupyter 生態(tài)系統(tǒng)有幾個配置文件和值來實現(xiàn)定制。 Jupyter 開發(fā)人員和貢獻者一直在努力平衡安全性和可用性與默認值以及與安全相關(guān)的功能和配置。
然而,用戶可能會無意中引入安全漏洞。此外,如果有足夠的訪問權(quán)限,這些配置可能會被威脅參與者惡意更改,從而影響 ML 過程。 NVIDIA AI 紅色團隊的一些技術(shù)示例包括:
1.默認情況下,當啟動 JupyterServer (獨立或作為 JupyterLab 實例化的一部分)時,服務(wù)器僅偵聽本地主機生成的請求。但是,通過修改用于啟動進程的配置值或命令行參數(shù),可以使服務(wù)器偵聽包括廣播域在內(nèi)的其他接口。用戶可能有意通過網(wǎng)絡(luò)訪問其服務(wù)器,無意中將其服務(wù)器暴露給惡意訪問。
2.Jupyter 默認啟用了 check to prevent cross-site request forgeries ( CSRF )。這可以防止用戶在不知不覺中向 Jupyter 服務(wù)器提交攻擊者控制的代碼。然而,威脅參與者可以在配置文件中禁用此檢查,從而將用戶暴露于 CSRF 。
3.通過足夠的訪問權(quán)限和憑據(jù)材料,攻擊者可以將自己的 Jupyter 客戶端連接到用戶運行的內(nèi)核。這意味著他們可以創(chuàng)建變量和函數(shù),用惡意克隆覆蓋導(dǎo)入,或者運行任意代碼 在與用戶相同的上下文中 。成功瞄準 Jupyter 部署的威脅參與者可能有訓(xùn)練時間,因此可能會嚴重影響最終 AI 系統(tǒng)的效能。
總之,有風(fēng)險的配置值可能是有意的、無意的或惡意活動的結(jié)果。由于 Jupyter 生態(tài)系統(tǒng)的模塊化特性,控制應(yīng)用程序行為的值可能分散在十幾個配置文件和命令行實用程序中。您如何識別和分類他們,并在必要時采取行動?
使用 jupitec
jupysec 是一組 Jupyter 安全規(guī)則和一個 JupyterLab 擴展,旨在針對已知的安全風(fēng)險審計 Jupyter 環(huán)境。它可以作為獨立腳本或 JupyterLab 擴展提供,以最大限度地提高用戶將該工具集成到現(xiàn)有工作流中的能力。
該擴展將安全報告小部件添加到 Launcher 中。這是在用戶瀏覽器中運行的擴展的客戶端組件。當用戶單擊此小部件時, Jupyter 客戶端向 Jupyter 服務(wù)器發(fā)送 HTTP / GET 請求。服務(wù)器驗證請求是否來自經(jīng)過身份驗證的用戶,執(zhí)行 jupysec rules ,并將任何結(jié)果呈現(xiàn)并返回給用戶。
每個 jupysec finding 都包含一個類別、找到查找結(jié)果的文檔、違規(guī)行、有關(guān)該配置為何存在安全風(fēng)險的其他詳細信息,以及建議的補救措施。每個發(fā)現(xiàn)都被賦予一個 UUID ,并通過 Jinja 模板呈現(xiàn)給用戶。 jupitec 不維護狀態(tài),因此每次執(zhí)行都會重新評估整個規(guī)則集。
在 I Python 啟動目錄中有一個名為10_norm.py的文件。每當使用該配置文件啟動 JupyterLab 時,就會運行該腳本,如 documented by IPython 所示,并在 IPython Profiles: Big Bag o’ Functionality 中演示。該發(fā)現(xiàn)是從特定的 jupysec rule 中產(chǎn)生的。
jupitec 不會為用戶修正這些發(fā)現(xiàn),因為這幾乎肯定會對環(huán)境產(chǎn)生破壞性的改變。與任何自動安全工具一樣,可能存在誤報。可以使用啟動目錄通過自動連接到遠程數(shù)據(jù)存儲來改善開發(fā)人員的體驗。
然而,同樣的配置更改也可以用于過濾敏感信息。木星無法分辨出兩者的區(qū)別,但可以提醒你潛在的問題。在消除誤報后,用戶和管理員應(yīng)采取建議的步驟來加強環(huán)境或調(diào)查異常指標。
總結(jié)
Jupyter 生態(tài)系統(tǒng)非常強大且可配置,這使其成為研究人員和開發(fā)人員以及威脅行為者的一個有吸引力的工具。 jupitec 可以自動評估 Jupyter 環(huán)境的安全性。
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5238瀏覽量
105761 -
AI
+關(guān)注
關(guān)注
87文章
34173瀏覽量
275336 -
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8490瀏覽量
134080
發(fā)布評論請先 登錄
如何判斷Tina板子中的固件是否是安全呢
以后Jupyter也能做可視化Debug了
神器jupyter的優(yōu)勢和使用教程

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

如何判斷安全光柵是否安全?
什么是 Jupyter Notebook

如何判斷繼電器是否正常工作
華為云 Flexus X 實例部署安裝 Jupyter Notebook,學(xué)習(xí) AI,機器學(xué)習(xí)算法

評論