自我复制蠕虫袭击180余个软件包
至少187个通过JavaScript代码库NPM提供的代码包已感染一种自我复制蠕虫,该蠕虫会窃取开发者凭证并将这些密钥发布在GitHub上。这款恶意软件曾短暂感染安全厂商CrowdStrike的多个代码包,每次安装受感染软件包时都会窃取并发布更多凭证。
这款新型恶意软件被命名为"Shai-Hulud"——源自弗兰克·赫伯特《沙丘》小说系列中巨型沙虫的名称——因为它会在新的公共GitHub代码库中发布所有窃取的凭证,该代码库包含"Shai-Hulud"名称。
比利时安全公司Aikido的研究员Charlie Eriksen表示:“当开发者安装受感染软件包时,恶意软件会在环境中查找npm令牌。如果找到,它将修改该npm令牌有权访问的20个最热门软件包,将自身复制到软件包中并发布新版本。”
这场不断发展的风暴中心是NPM(Node Package Manager的缩写)上提供的代码库,该平台作为JavaScript开发的中心枢纽,为广泛使用的JavaScript组件提供最新更新。
Shai-Hulud蠕虫出现前几天,未知攻击者发起了一场广泛的网络钓鱼活动,该活动冒充NPM并要求开发者"更新"其多因素身份验证登录选项。该攻击导致恶意软件被插入至少二十多个NPM代码包中,但疫情迅速得到控制,且主要专注于窃取加密货币支付。
8月下旬,另一起NPM开发者遭入侵事件导致恶意软件被添加到"nx"中,这是一个开源代码开发工具包,每周下载量高达600万次。在nx入侵事件中,攻击者引入了从用户设备中搜刮来自GitHub和NPM等程序员目的地以及SSH和API密钥的身份验证令牌的代码。但恶意nx代码没有将这些被盗凭证发送到攻击者控制的中央服务器,而是在受害者的GitHub账户中创建了一个新的公共代码库,并在那里发布被盗数据供全世界查看和下载。
上月对nx的攻击不像蠕虫那样自我传播,但这款Shai-Hulud恶意软件确实具备此能力,并捆绑了侦察工具以协助其传播。具体而言,它使用开源工具TruffleHog搜索开发者机器上暴露的凭证和访问令牌。然后尝试创建新的GitHub操作并发布任何被盗密钥。
Aikido的Eriksen告诉KrebsOnSecurity:“一旦第一个人被入侵,就无法阻止它。“他表示,第一个被此蠕虫入侵的NPM软件包似乎是在9月14日世界标准时间17:58左右被修改的。
专注于安全的代码开发平台socket.dev报告称,Shai-Halud攻击短暂入侵了CrowdStrike管理的至少25个NPM代码包。Socket.dev表示受影响的软件包已被NPM注册表迅速移除。
在与KrebsOnSecurity分享的书面声明中,CrowdStrike表示在检测到公共NPM注册表中的几个恶意软件包后,公司迅速将其移除并在公共注册表中轮换了密钥。
声明称:“这些软件包未在Falcon传感器中使用,平台未受影响,客户仍受保护。“声明指的是该公司广泛使用的端点威胁检测服务。“我们正在与NPM合作并进行彻底调查。”
StepSecurity对此次攻击的分析发现,对于云特定操作,恶意软件会枚举AWS、Azure和Google Cloud Platform密钥。分析还发现整个攻击设计假定受害者在Linux或macOS环境中工作,并且故意跳过Windows系统。
StepSecurity表示,Shai-Hulud通过使用被盗的NPM身份验证令牌传播,将其代码添加到受害者账户中的前20个软件包。
StepSecurity的Ashish Kurmi写道:“这产生了连锁效应,受感染的软件包导致维护者凭证被盗,进而感染该用户维护的所有其他软件包。”
Eriksen表示,Shai-Hulud仍在传播,尽管其传播速度似乎在最近几小时有所减弱。
“我仍然不时看到软件包版本出现,但在过去约6小时内没有新的软件包被入侵,“Eriksen说。“但随着东海岸开始工作,情况可能会改变。我几乎会将此攻击视为一个’活物’,就像病毒一样。因为它可以休眠一段时间,如果只是一个人突然意外感染,他们可能重新开始传播。特别是如果存在超级传播者攻击。”
Eriksen表示,目前看来,攻击者用于外泄收集数据的网址因速率限制而被禁用。
Nicholas Weaver是加利福尼亚州伯克利非营利组织国际计算机科学研究所的研究员。Weaver称Shai-Hulud蠕虫是"进行供应链攻击的供应链攻击”。Weaver表示,NPM(及所有其他类似软件包存储库)需要立即切换到一种发布模型,该模型要求使用防网络钓鱼的双因素认证方法对每个发布请求进行明确的人工同意。
“任何不足意味着此类攻击将继续并变得更加普遍,但切换到双因素认证方法将在攻击传播之前有效遏制它们,“Weaver说。“允许纯自动化流程更新已发布的软件包现在已被证明是灾难的配方。”