近日,腾讯洋葱反入侵系统检测发现 PyPI官方仓库被恶意上传了request 钓鱼包,由于国内开源镜像站均同步于PyPI官方仓库,所以该问题不仅会通过官方仓库,还可能通过各个开源镜像站影响广大用户,腾讯安全应急响应中心(TSRC)秉承共建安全生态的原则,TSRC在此建议各开源镜像站以及对开源镜像站有依赖的公司,请尽快自查处理,确保恶意库得到清除,保障业务安全。
原文连接(https://mp.weixin.qq.com/s/dkPdXfGfSK097GI6Ln92lA)
事件描述
7月31号 攻击者在PyPI官方仓库上传了request 恶意包,该恶意包通过伪造著名python 库 requests 包名来进行钓鱼, 攻击者可对受感染的主机进行入侵,并实施窃取用户敏感信息及数字货币密钥、种植持久化后门、命令控制等一系列活动。
恶意包感染过程如下:
1.用户安装
根据用户习惯,在安装requests包,容易将名字打错为 request,结果是使用pip安装成恶意包。
1 | pip install requests -->> pip install request |
由于requests库非常流行,每日下载量巨大,导致这种由于错误输入包名而被感染的数量就会非常多。
2.远程下载恶意代码
在pip安装request包的机制中,会主动执行包中的setup.py文件,在setup.py文件中包含攻击者远程下载并执行恶意代码的逻辑,同时对C2域名进行编码混淆,解密后的C2地址为:https://dexy.top/request/check.so
1 2 3 4 5 6 7 8 9 10 11 12 13 | 域名: dexy.top who.dexy.top:3500 ip: 199.247.5.158 url: http://dexy.top/request/check.so http://dexy.top/x.pyx 检查命令 pip list | grep "request" | grep -v "requests" |
处理方法
1.检查服务器或docker容器镜像,是否存在request包,卸载request包
1 2 3 4 | 检查命令 pip list | grep "request" | grep -v "requests" 卸载request命令 pip uninstall request |
2.通过修改hosts域名解析到其他IP地址
1 2 | echo "127.0.0.1 dexy.top" >> /etc/hosts echo "127.0.0.1 who.dexy.top" >> /etc/hosts |
如果服务器集群使用的是自己DNS服务器,可以通过修改DNS解析IP
3.禁用ip
1 2 3 | 199.247.5.158 144.208.125.37 199.247.5.158 |
如服务器上存在request包,检查服务器是否存在其他异常!如存在其他异常,及时处理!保障业务安全。