<返回更多

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

2023-01-08    嘶吼RoarTalk
加入收藏

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

与Keras 和 TensorFlow类似,PyTorch是基于Python/ target=_blank class=infotextkey>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/

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>