当下,在技术开发领域下载并使用开源软件包已经成为一种常态,或者更确切地说,它本身就是每位技术开发者的必备技能,就比如现在使用最广泛的安卓手机,其使用的就是一套开源的安卓系统,毕竟所有开源软件包都已经过市场验证,有了一定的用户基础,在它的基础上进行二次开发,投入的成本将会是最低,且实现的功能也是最全。
因此,在IPFS技术开发领域也有不少场景会使用到开源软件包,就连它的底层技术也是IPFS官方实验室给出的开源代码,各大IPFS运营企业在此基础上进行的二次开发。然而,您确信您正在使用的开源代码一定是安全的吗?网安信安全团队提醒您一些开源软件包的“坑“千万不要踩!
近日,网安信安全团队结合当前IPFS领域一些安全事件的起因,专门针对IPFS领域的开源代码进行了一次安全方面的研究,发现很多在Python官方软件包存储库(PyPI)上被下载了数千次的开源软件包竟然是“假冒软件包“,这些假冒软件包几乎都暗含秘密代码和后门程序,能瞬间”感染“你的服务器。
打错一个字母,你的“矿机”一不小心就有可能成为别人的”矿机“
据研究发现,目前在PyPI存储库中,那些暗含秘密代码和后门程序的恶意软件包十分泛滥,这些恶意软件包的名称往往都是模仿了一些被常用的,合规的,甚至是热门的软件包的名称,有些是个别字母不同,有些是字母的位置不同,还有些是字母多一个或少一个字母等等。
因此,当您不小心在搜索框中输入了错误的软件名称,将某个字母恰好弄反或少输入或多输入了一个字母,例如将合法且流行的软件包matplotlib的名称打成了“mplatlib”,您就有可能成功下载一套暗含了typosquatting attacks(域名抢注攻击)恶意代码的软件包,如果正常使用了就中了它的圈套。
此外,在研究中,网安信安全团队还发现了6个能“神不知鬼不觉“的在您服务器上执行恶意挖矿代码的软件包,这些软件包不仅可以使用您的服务器进行挖矿,还会将挖矿所得秘密转存到获利者的钱包,也就是说,您的”矿机“也许一不小心就成为了别人的矿机。最近网安信安全团队遇到的几起IPFS服务器被”挂马“的安全事件,基本上都是踩了这些挖矿代码的”坑”。
以上6个含有恶意挖矿代码的软件包都是由PyPI用户名nedog123的人发布的,名称分别为:maratlib、maratlib1、matplatlib-plus、mllearnlib、mplatlib、learninglib,这些名称与许多被广泛使用的软件包十分相似,一些“粗心”且不熟悉业务的技术开发者很容易就会中了它的圈套。所有的恶意挖矿代码都隐藏在上述6个软件包的setup.py文件中,如果一不小心被您执行,它就会瞬间“感染”您的服务器,并会使用ubqminer或T-Rex加密矿工进行挖矿。
暗含恶意代码和后门的垃圾软件泛滥,擦亮眼睛最重要
上文中提到,PyPl是Python官方推出的开源软件包的“仓库”,所有人都可以在PyPIs上下载自己所需的开源软件包或上传自己开发的开源软件包,这一方面满足了技术开发爱好者的开发需求,另一方面则给“有心人”提供了“作恶”的机会,直接导致PyPI上暗含恶意代码和后门的垃圾软件包泛滥成灾,稍微疏忽就会着了它们的“道”,发生比较严重的安全事故。
在刚刚过去的5月份,网安信安全团队就接收到了客户报告的多起服务器被挂马事件以及账户中的高价值资产被恶意盗走。例如,某IPFS运营企业客户由于执行了某种恶意挖矿代码,致使某台管理服务器上的管理员私钥遭泄露,导致这台管理服务器旗下所有服务器全部遭到挖矿代码攻击,极大的影响了他们的挖矿效率。再例如,某IPFS运营企业客户的服务器遭受了“伪装”的恶意代码攻击,导致账户中价值超过100万的数字资产被恶意盗走,损失惨重。
当然,PyPI上虽然满是暗含恶意代码的开源软件包,但并不是所有的软件包都是出于攻击的目的,有些可能仅仅是场恶作剧,但无论是恶意的,还是非恶意,都是通过混淆来诱使人们安装冒牌软件来达到一些不可告人的目的。
因此,网安信安全团队提醒广大IPFS运营企业,许多具有强烈攻击属性的恶意软件包往往都是很普通,很正常,而导致您遭受攻击的方式也是很低级的,同时也是最简单的。所有的开源代码本身就存在风险,因此建议您在下载并使用开源代码的时候,务必谨慎甄别,尤其是涉及到您服务器上非常重要且私密信息的时候,更要多加防范,最好是与第三方安全服务公司合作,对所有即将或正在使用的开源代码进行详尽的安全风险评估。