社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

PyTorch机器学习框架遭遇恶意依赖供应链攻击

嘶吼专业版 • 2 年前 • 297 次点击  

PyTorch机器学习框架遭遇恶意依赖供应链链攻击。 

与Keras 和 TensorFlow类似,PyTorch是基于Python的开源机器学习框架。PyTorch广泛用于计算机视觉和自然语言处理任务。12月31日,PyTorch团队称其发现了PyTorch中的恶意依赖,受到供应链攻击。

供应链攻击

PyTorch团队识别出了一个与PyTorch框架'torchtriton'库名字一样的恶意依赖。攻击者在PyPI中上传了一个与torchtriton'库名字一样的恶意依赖库,实现了供应链攻击。因此,攻击者可以通过依赖攻击向量来识别成功入侵开源学习框架。

恶意torchtriton库的主要功能包括:

获取系统信息

来自/etc/resolv.conf 的nameservers;

来自gethostname() 的hostname;

来自getlogin() 的当前 username;

来自getcwd() 的当前working directory name。

环境变量;

读取系统文件

/etc/hosts

/etc/passwd

$HOME/*

$HOME/.gitconfig

$HOME/.ssh/*

并通过到域名*.h4ck[.]cfd的加密的DNS查询来上传包括文件内容在内的以上信息,使用的DNS服务器为wheezy[.]io。文件上传功能的文件大小限制为99999字节,还会上传$HOME 目录的前1000个文件。

修复补丁

PyTorch团队建议通过2022年12月25日到12月30日之间通过pip安装PyTorch的用户,尽量卸载torchtriton和PyTorch,并使用12月30日之后的最新版本。卸载恶意依赖库的命令如下:

$ pip3 uninstall -y torch torchvision torchaudio torchtriton$ pip3 cache purge

PyTorch团队已经将'torchtriton'库重命名为'pytorch-triton'以预防潜在的类似攻击。

图 PyTorch重命名'torchtriton'库

此外,用户还可以通过以下命令来确定是否受到该供应链攻击的影响:

python3 -c "import pathlib;import importlib.util;s=importlib.util.find_spec('triton');affected=any(x.name == 'triton' for x in (pathlib.Path(s.submodule_search_locations[0]if s is not None else '/' ) / 'runtime').glob('*'));print('You are {}affected'.format('' if affected else 'not '))"


截止2021年12月31日,BleepingComputer发现恶意'torchtriton' 依赖在上传一周内已经下载超过2300次。

https://pytorch.org/blog/compromised-nightly-dependency/#how-to-check-if-your-python-environment-is-affected

参考及来源:https://www.bleepingcomputer.com/news/security/pytorch-discloses-malicious-dependency-chain-compromise-over-holidays/

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/151316
 
297 次点击